mirror of https://github.com/ppy/SDL3-CS.git
Compare commits
7 Commits
64a12c444b
...
3767eb2ab9
| Author | SHA1 | Date |
|---|---|---|
|
|
3767eb2ab9 | |
|
|
4988d55819 | |
|
|
3c21f68505 | |
|
|
2c185bf63b | |
|
|
508573fe62 | |
|
|
2b556b39ce | |
|
|
40707381f6 |
|
|
@ -15,7 +15,7 @@ namespace SDL.SourceGeneration
|
||||||
{
|
{
|
||||||
public readonly Dictionary<string, List<GeneratedMethod>> Methods = new Dictionary<string, List<GeneratedMethod>>();
|
public readonly Dictionary<string, List<GeneratedMethod>> Methods = new Dictionary<string, List<GeneratedMethod>>();
|
||||||
|
|
||||||
private static readonly string[] sdlPrefixes = ["SDL_", "TTF_", "IMG_", "Mix_"];
|
private static readonly string[] sdlPrefixes = ["SDL_", "TTF_", "IMG_", "MIX_"];
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Checks whether the method is from any SDL library.
|
/// Checks whether the method is from any SDL library.
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
|
using NUnit.Framework;
|
||||||
|
|
||||||
|
namespace SDL.Tests
|
||||||
|
{
|
||||||
|
[TestFixture]
|
||||||
|
public class TestError
|
||||||
|
{
|
||||||
|
[Test]
|
||||||
|
public void TestUnsupported()
|
||||||
|
{
|
||||||
|
Assert.That((bool)SDL3.SDL_Unsupported(), Is.False);
|
||||||
|
Assert.That(SDL3.SDL_GetError(), Is.EqualTo("That operation is not supported"));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestInvalidParam()
|
||||||
|
{
|
||||||
|
Assert.That((bool)SDL3.SDL_InvalidParamError("test"), Is.False);
|
||||||
|
Assert.That(SDL3.SDL_GetError(), Is.EqualTo("Parameter 'test' is invalid"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
|
using NUnit.Framework;
|
||||||
|
using static SDL.SDL3_mixer;
|
||||||
|
using static SDL.SDL3;
|
||||||
|
|
||||||
|
namespace SDL.Tests
|
||||||
|
{
|
||||||
|
[TestFixture]
|
||||||
|
public class TestMixer
|
||||||
|
{
|
||||||
|
[Test]
|
||||||
|
public unsafe void TestBasic()
|
||||||
|
{
|
||||||
|
SDL_Init(0);
|
||||||
|
|
||||||
|
bool init = MIX_Init();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Assert.That(init, Is.True, SDL_GetError);
|
||||||
|
Assert.That(MIX_Version(), Is.EqualTo(SDL_MIXER_VERSION));
|
||||||
|
|
||||||
|
Assume.That(MIX_GetNumAudioDecoders() > 0);
|
||||||
|
string? name = MIX_GetAudioDecoder(0);
|
||||||
|
Assert.That(name, Is.Not.Null, SDL_GetError);
|
||||||
|
|
||||||
|
Assume.That(@"C:\Windows\Media\Windows Logon.wav", Does.Exist);
|
||||||
|
var decoder = MIX_CreateAudioDecoder(@"C:\Windows\Media\Windows Logon.wav", 0);
|
||||||
|
Assert.That(decoder != null, SDL_GetError);
|
||||||
|
MIX_DestroyAudioDecoder(decoder);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
MIX_Quit();
|
||||||
|
SDL_Quit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -8,14 +8,14 @@ namespace SDL
|
||||||
[Macro]
|
[Macro]
|
||||||
public static unsafe SDLBool SDL_Unsupported()
|
public static unsafe SDLBool SDL_Unsupported()
|
||||||
{
|
{
|
||||||
fixed (byte* fmt = "That operation is not supported"u8)
|
fixed (byte* fmt = "That operation is not supported\0"u8)
|
||||||
return SDL_SetError(fmt, __arglist());
|
return SDL_SetError(fmt, __arglist());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Macro]
|
[Macro]
|
||||||
public static unsafe SDLBool SDL_InvalidParamError([NativeTypeName("const char *")] byte* param)
|
public static unsafe SDLBool SDL_InvalidParamError([NativeTypeName("const char *")] byte* param)
|
||||||
{
|
{
|
||||||
fixed (byte* fmt = "Parameter '%s' is invalid"u8)
|
fixed (byte* fmt = "Parameter '%s' is invalid\0"u8)
|
||||||
return SDL_SetError(fmt, __arglist(param));
|
return SDL_SetError(fmt, __arglist(param));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -312,7 +312,6 @@ def run_clangsharp(command, header: Header):
|
||||||
"--file", header.input_file(),
|
"--file", header.input_file(),
|
||||||
"--output", header.output_file(),
|
"--output", header.output_file(),
|
||||||
"--libraryPath", header.base,
|
"--libraryPath", header.base,
|
||||||
|
|
||||||
"--methodClassName", header.base,
|
"--methodClassName", header.base,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -374,6 +373,8 @@ def get_string_returning_functions(sdl_api):
|
||||||
yield "TTF_GetFontFamilyName"
|
yield "TTF_GetFontFamilyName"
|
||||||
yield "TTF_GetFontStyleName"
|
yield "TTF_GetFontStyleName"
|
||||||
|
|
||||||
|
yield "MIX_GetAudioDecoder"
|
||||||
|
|
||||||
|
|
||||||
def should_skip(solo_headers: list[Header], header: Header):
|
def should_skip(solo_headers: list[Header], header: Header):
|
||||||
if len(solo_headers) == 0:
|
if len(solo_headers) == 0:
|
||||||
|
|
|
||||||
|
|
@ -79,9 +79,9 @@ namespace SDL
|
||||||
[DllImport("SDL3_mixer", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
[DllImport("SDL3_mixer", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||||
public static extern int MIX_GetNumAudioDecoders();
|
public static extern int MIX_GetNumAudioDecoders();
|
||||||
|
|
||||||
[DllImport("SDL3_mixer", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
[DllImport("SDL3_mixer", CallingConvention = CallingConvention.Cdecl, EntryPoint = "MIX_GetAudioDecoder", ExactSpelling = true)]
|
||||||
[return: NativeTypeName("const char *")]
|
[return: NativeTypeName("const char *")]
|
||||||
public static extern byte* MIX_GetAudioDecoder(int index);
|
public static extern byte* Unsafe_MIX_GetAudioDecoder(int index);
|
||||||
|
|
||||||
[DllImport("SDL3_mixer", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
[DllImport("SDL3_mixer", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
|
||||||
public static extern MIX_Mixer* MIX_CreateMixerDevice(SDL_AudioDeviceID devid, [NativeTypeName("const SDL_AudioSpec *")] SDL_AudioSpec* spec);
|
public static extern MIX_Mixer* MIX_CreateMixerDevice(SDL_AudioDeviceID devid, [NativeTypeName("const SDL_AudioSpec *")] SDL_AudioSpec* spec);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue