From 6aaedb813fa11ba0679c3051bc2eb28646b9506c Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Sat, 30 Aug 2025 16:53:58 -0700 Subject: Update to SDL3 --- src/contrib/SDL-3.2.20/test/testnativew32.c | 88 +++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 src/contrib/SDL-3.2.20/test/testnativew32.c (limited to 'src/contrib/SDL-3.2.20/test/testnativew32.c') diff --git a/src/contrib/SDL-3.2.20/test/testnativew32.c b/src/contrib/SDL-3.2.20/test/testnativew32.c new file mode 100644 index 0000000..815c932 --- /dev/null +++ b/src/contrib/SDL-3.2.20/test/testnativew32.c @@ -0,0 +1,88 @@ +/* + Copyright (C) 1997-2025 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely. +*/ + +#include "testnative.h" + +#ifdef TEST_NATIVE_WINDOWS + +#include + +static void *CreateWindowNative(int w, int h); +static void DestroyWindowNative(void *window); + +NativeWindowFactory WindowsWindowFactory = { + "windows", + CreateWindowNative, + DestroyWindowNative +}; + +LRESULT CALLBACK +WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) +{ + switch (msg) { + case WM_CLOSE: + DestroyWindow(hwnd); + break; + case WM_DESTROY: + PostQuitMessage(0); + break; + default: + return DefWindowProc(hwnd, msg, wParam, lParam); + } + return 0; +} + +static void * +CreateWindowNative(int w, int h) +{ + HWND hwnd; + WNDCLASS wc; + + wc.style = 0; + wc.lpfnWndProc = WndProc; + wc.cbClsExtra = 0; + wc.cbWndExtra = 0; + wc.hInstance = GetModuleHandle(NULL); + wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); + wc.hCursor = LoadCursor(NULL, IDC_ARROW); + wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); + wc.lpszMenuName = NULL; + wc.lpszClassName = TEXT("SDL Test"); + + if (!RegisterClass(&wc)) { + MessageBox(NULL, TEXT("Window Registration Failed!"), TEXT("Error!"), + MB_ICONEXCLAMATION | MB_OK); + return 0; + } + + hwnd = + CreateWindow(TEXT("SDL Test"), TEXT(""), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, + CW_USEDEFAULT, w, h, NULL, NULL, GetModuleHandle(NULL), + NULL); + if (!hwnd) { + MessageBox(NULL, TEXT("Window Creation Failed!"), TEXT("Error!"), + MB_ICONEXCLAMATION | MB_OK); + return 0; + } + + ShowWindow(hwnd, SW_SHOW); + + return hwnd; +} + +static void +DestroyWindowNative(void *window) +{ + DestroyWindow((HWND)window); +} + +#endif -- cgit v1.2.3