mirror of https://github.com/ppy/SDL3-CS.git
Fix tests
This commit is contained in:
parent
15e2c5442d
commit
9f75280505
|
|
@ -22,24 +22,20 @@ namespace SDL.Tests
|
|||
SDL3.SDL_EnterAppMainCallbacks(0, (byte**)objectHandle.Handle, &AppInit, &AppIterate, &AppEvent, &AppQuit);
|
||||
}
|
||||
|
||||
protected virtual int Init()
|
||||
protected virtual SDL_AppResult Init()
|
||||
{
|
||||
SDL3.SDL_SetLogPriorities(SDL_LogPriority.SDL_LOG_PRIORITY_VERBOSE);
|
||||
SDL3.SDL_SetLogOutputFunction(&LogOutput, IntPtr.Zero);
|
||||
return CONTINUE;
|
||||
return SDL_AppResult.SDL_APP_CONTINUE;
|
||||
}
|
||||
|
||||
protected const int TERMINATE_ERROR = -1;
|
||||
protected const int CONTINUE = 0;
|
||||
protected const int TERMINATE_SUCCESS = 1;
|
||||
|
||||
protected virtual int Iterate()
|
||||
protected virtual SDL_AppResult Iterate()
|
||||
{
|
||||
Thread.Sleep(10);
|
||||
return CONTINUE;
|
||||
return SDL_AppResult.SDL_APP_CONTINUE;
|
||||
}
|
||||
|
||||
protected virtual int Event(SDL_Event e)
|
||||
protected virtual SDL_AppResult Event(SDL_Event e)
|
||||
{
|
||||
switch (e.Type)
|
||||
{
|
||||
|
|
@ -47,10 +43,10 @@ namespace SDL.Tests
|
|||
case SDL_EventType.SDL_EVENT_WINDOW_CLOSE_REQUESTED:
|
||||
case SDL_EventType.SDL_EVENT_TERMINATING:
|
||||
case SDL_EventType.SDL_EVENT_KEY_DOWN when e.key.key == SDL_Keycode.SDLK_ESCAPE:
|
||||
return TERMINATE_SUCCESS;
|
||||
return SDL_AppResult.SDL_APP_SUCCESS;
|
||||
}
|
||||
|
||||
return CONTINUE;
|
||||
return SDL_AppResult.SDL_APP_CONTINUE;
|
||||
}
|
||||
|
||||
protected virtual void Quit()
|
||||
|
|
@ -64,7 +60,7 @@ namespace SDL.Tests
|
|||
}
|
||||
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvCdecl)])]
|
||||
private static int AppInit(IntPtr* appState, int argc, byte** argv)
|
||||
private static SDL_AppResult AppInit(IntPtr* appState, int argc, byte** argv)
|
||||
{
|
||||
IntPtr handle = (IntPtr)argv;
|
||||
*appState = handle;
|
||||
|
|
@ -73,27 +69,27 @@ namespace SDL.Tests
|
|||
if (objectHandle.GetTarget(out var target))
|
||||
return target.Init();
|
||||
|
||||
return TERMINATE_ERROR;
|
||||
return SDL_AppResult.SDL_APP_FAILURE;
|
||||
}
|
||||
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvCdecl)])]
|
||||
private static int AppIterate(IntPtr appState)
|
||||
private static SDL_AppResult AppIterate(IntPtr appState)
|
||||
{
|
||||
var objectHandle = new ObjectHandle<MainCallbacksTest>(appState, true);
|
||||
if (objectHandle.GetTarget(out var target))
|
||||
return target.Iterate();
|
||||
|
||||
return TERMINATE_ERROR;
|
||||
return SDL_AppResult.SDL_APP_FAILURE;
|
||||
}
|
||||
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvCdecl)])]
|
||||
private static int AppEvent(IntPtr appState, SDL_Event* e)
|
||||
private static SDL_AppResult AppEvent(IntPtr appState, SDL_Event* e)
|
||||
{
|
||||
var objectHandle = new ObjectHandle<MainCallbacksTest>(appState, true);
|
||||
if (objectHandle.GetTarget(out var target))
|
||||
return target.Event(*e);
|
||||
|
||||
return TERMINATE_ERROR;
|
||||
return SDL_AppResult.SDL_APP_FAILURE;
|
||||
}
|
||||
|
||||
[UnmanagedCallersOnly(CallConvs = [typeof(CallConvCdecl)])]
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ namespace SDL.Tests
|
|||
|
||||
public MyWindow()
|
||||
{
|
||||
if (SDL_InitSubSystem(init_flags) < 0)
|
||||
if (SDL_InitSubSystem(init_flags) == SDL_bool.SDL_FALSE)
|
||||
throw new InvalidOperationException($"failed to initialise SDL. Error: {SDL_GetError()}");
|
||||
|
||||
initSuccess = true;
|
||||
|
|
@ -51,18 +51,18 @@ namespace SDL.Tests
|
|||
|
||||
// ReSharper disable once UseCollectionExpression
|
||||
[UnmanagedCallersOnly(CallConvs = new[] { typeof(CallConvCdecl) })]
|
||||
private static int nativeFilter(IntPtr userdata, SDL_Event* e)
|
||||
private static SDL_bool nativeFilter(IntPtr userdata, SDL_Event* e)
|
||||
{
|
||||
var handle = new ObjectHandle<MyWindow>(userdata);
|
||||
if (handle.GetTarget(out var window))
|
||||
return window.handleEventFromFilter(e);
|
||||
|
||||
return 1;
|
||||
return SDL_bool.SDL_TRUE;
|
||||
}
|
||||
|
||||
public Action<SDL_Event>? EventFilter;
|
||||
|
||||
private int handleEventFromFilter(SDL_Event* e)
|
||||
private SDL_bool handleEventFromFilter(SDL_Event* e)
|
||||
{
|
||||
switch (e->Type)
|
||||
{
|
||||
|
|
@ -76,7 +76,7 @@ namespace SDL.Tests
|
|||
break;
|
||||
}
|
||||
|
||||
return 1;
|
||||
return SDL_bool.SDL_TRUE;
|
||||
}
|
||||
|
||||
private void handleKeyFromFilter(SDL_KeyboardEvent e)
|
||||
|
|
@ -105,8 +105,8 @@ namespace SDL.Tests
|
|||
switch (e.key.key)
|
||||
{
|
||||
case SDL_Keycode.SDLK_R:
|
||||
bool old = SDL_GetRelativeMouseMode() == SDL_bool.SDL_TRUE;
|
||||
SDL_SetRelativeMouseMode(old ? SDL_bool.SDL_FALSE : SDL_bool.SDL_TRUE);
|
||||
bool old = SDL_GetWindowRelativeMouseMode(sdlWindowHandle) == SDL_bool.SDL_TRUE;
|
||||
SDL_SetWindowRelativeMouseMode(sdlWindowHandle, old ? SDL_bool.SDL_FALSE : SDL_bool.SDL_TRUE);
|
||||
break;
|
||||
|
||||
case SDL_Keycode.SDLK_V:
|
||||
|
|
@ -170,14 +170,8 @@ namespace SDL.Tests
|
|||
Console.WriteLine($"gamepad added: {e.gdevice.which}");
|
||||
break;
|
||||
|
||||
case SDL_EventType.SDL_EVENT_WINDOW_PEN_ENTER:
|
||||
SDL_PenCapabilityInfo info;
|
||||
var cap = SDL_GetPenCapabilities((SDL_PenID)e.window.data1, &info);
|
||||
|
||||
if (cap.HasFlag(SDL_PenCapabilityFlags.SDL_PEN_AXIS_XTILT_MASK))
|
||||
Console.WriteLine("has pen xtilt axis");
|
||||
|
||||
Console.WriteLine(info.max_tilt);
|
||||
case SDL_EventType.SDL_EVENT_PEN_PROXIMITY_IN:
|
||||
Console.WriteLine($"pen proximity in: {e.pproximity.which}");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ namespace SDL.Tests
|
|||
[Test]
|
||||
public unsafe void TestClipboardData()
|
||||
{
|
||||
int ret = SDL3.SDL_SetClipboardData(&dataCallback, &cleanupCallback, IntPtr.Zero, "test/one", "test/two");
|
||||
var ret = SDL3.SDL_SetClipboardData(&dataCallback, &cleanupCallback, IntPtr.Zero, "test/one", "test/two");
|
||||
Assert.That(ret, Is.EqualTo(0), SDL3.SDL_GetError);
|
||||
|
||||
Assert.That(SDL3.SDL_HasClipboardData("test/one"), Is.EqualTo(SDL_bool.SDL_TRUE));
|
||||
|
|
@ -46,7 +46,7 @@ namespace SDL.Tests
|
|||
}
|
||||
|
||||
ret = SDL3.SDL_ClearClipboardData();
|
||||
Assert.That(ret, Is.EqualTo(0), SDL3.SDL_GetError);
|
||||
Assert.That(ret, Is.EqualTo(SDL_bool.SDL_TRUE), SDL3.SDL_GetError);
|
||||
|
||||
Assert.That(cleanups, Is.EqualTo(1));
|
||||
|
||||
|
|
|
|||
|
|
@ -11,12 +11,11 @@ namespace SDL.Tests
|
|||
private SDL_Window* window;
|
||||
private SDL_Renderer* renderer;
|
||||
|
||||
protected override int Init()
|
||||
protected override SDL_AppResult Init()
|
||||
{
|
||||
// decouple pen, mouse and touch events
|
||||
SDL_SetHint(SDL_HINT_MOUSE_TOUCH_EVENTS, "0");
|
||||
SDL_SetHint(SDL_HINT_TOUCH_MOUSE_EVENTS, "0");
|
||||
SDL_SetHint(SDL_HINT_PEN_NOT_MOUSE, "2");
|
||||
|
||||
SDL_Init(SDL_InitFlags.SDL_INIT_VIDEO);
|
||||
|
||||
|
|
@ -48,7 +47,7 @@ namespace SDL.Tests
|
|||
SDL_RenderFillRect(renderer, &r);
|
||||
}
|
||||
|
||||
protected override int Iterate()
|
||||
protected override SDL_AppResult Iterate()
|
||||
{
|
||||
const float gray = 0.1f;
|
||||
SDL_SetRenderDrawColorFloat(renderer, gray, gray, gray, 1.0f);
|
||||
|
|
@ -86,7 +85,7 @@ namespace SDL.Tests
|
|||
return base.Iterate();
|
||||
}
|
||||
|
||||
protected override int Event(SDL_Event e)
|
||||
protected override SDL_AppResult Event(SDL_Event e)
|
||||
{
|
||||
SDL_ConvertEventToRenderCoordinates(renderer, &e);
|
||||
|
||||
|
|
@ -117,7 +116,7 @@ namespace SDL.Tests
|
|||
switch (e.key.key)
|
||||
{
|
||||
case SDL_Keycode.SDLK_R:
|
||||
SDL_SetRelativeMouseMode(SDL_GetRelativeMouseMode() == SDL_bool.SDL_TRUE ? SDL_bool.SDL_FALSE : SDL_bool.SDL_TRUE);
|
||||
SDL_SetWindowRelativeMouseMode(window, SDL_GetWindowRelativeMouseMode(window) == SDL_bool.SDL_TRUE ? SDL_bool.SDL_FALSE : SDL_bool.SDL_TRUE);
|
||||
break;
|
||||
|
||||
case SDL_Keycode.SDLK_F:
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@ namespace SDL
|
|||
{
|
||||
[LibraryImport("SDL3", StringMarshalling = StringMarshalling.Utf8)]
|
||||
[UnmanagedCallConv(CallConvs = [typeof(CallConvCdecl)])]
|
||||
private static unsafe partial int SDL_SetClipboardData(SDL_ClipboardDataCallback callback, SDL_ClipboardCleanupCallback cleanup, IntPtr userdata, string[] mime_types, UIntPtr num_mime_types);
|
||||
private static unsafe partial SDL_bool SDL_SetClipboardData(SDL_ClipboardDataCallback callback, SDL_ClipboardCleanupCallback cleanup, IntPtr userdata, string[] mime_types, UIntPtr num_mime_types);
|
||||
|
||||
public static unsafe int SDL_SetClipboardData(SDL_ClipboardDataCallback callback, SDL_ClipboardCleanupCallback cleanup, IntPtr userdata, params string[] mime_types)
|
||||
public static unsafe SDL_bool SDL_SetClipboardData(SDL_ClipboardDataCallback callback, SDL_ClipboardCleanupCallback cleanup, IntPtr userdata, params string[] mime_types)
|
||||
=> SDL_SetClipboardData(callback, cleanup, userdata, mime_types, (UIntPtr)mime_types.Length);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue