diff --git a/SDL3-CS.Tests/MainCallbacksTest.cs b/SDL3-CS.Tests/MainCallbacksTest.cs index 246cf5c..34dc62f 100644 --- a/SDL3-CS.Tests/MainCallbacksTest.cs +++ b/SDL3-CS.Tests/MainCallbacksTest.cs @@ -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(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(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)])] diff --git a/SDL3-CS.Tests/MyWindow.cs b/SDL3-CS.Tests/MyWindow.cs index ec34ac2..a5ae375 100644 --- a/SDL3-CS.Tests/MyWindow.cs +++ b/SDL3-CS.Tests/MyWindow.cs @@ -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(userdata); if (handle.GetTarget(out var window)) return window.handleEventFromFilter(e); - return 1; + return SDL_bool.SDL_TRUE; } public Action? 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; } } diff --git a/SDL3-CS.Tests/TestClipboard.cs b/SDL3-CS.Tests/TestClipboard.cs index cb99d2f..674694b 100644 --- a/SDL3-CS.Tests/TestClipboard.cs +++ b/SDL3-CS.Tests/TestClipboard.cs @@ -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)); diff --git a/SDL3-CS.Tests/TestPositionalInputVisualisation.cs b/SDL3-CS.Tests/TestPositionalInputVisualisation.cs index 182b53f..fa844c9 100644 --- a/SDL3-CS.Tests/TestPositionalInputVisualisation.cs +++ b/SDL3-CS.Tests/TestPositionalInputVisualisation.cs @@ -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: diff --git a/SDL3-CS/SDL3/SDL_clipboard.cs b/SDL3-CS/SDL3/SDL_clipboard.cs index 64906ad..7869685 100644 --- a/SDL3-CS/SDL3/SDL_clipboard.cs +++ b/SDL3-CS/SDL3/SDL_clipboard.cs @@ -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); } }