mirror of
				https://github.com/thunderbrewhq/thunderbrew
				synced 2025-10-27 14:26:04 +03:00 
			
		
		
		
	 706c8903a1
			
		
	
	
		706c8903a1
		
			
		
	
	
	
	
		
			
			* chore(build): add vendored SDL 3.0.0 library * chore(build): add vendored glew-cmake-2.2.0 library * feat(console): in the presence of -opengl launch flag, change GxApi to OpenGl * feat(gx): add uncompleted CGxDeviceGLSDL targeting Windows and Linux * chore(build): change SDL3 linkage from shared (bad) to to static (good)
		
			
				
	
	
		
			89 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|   Copyright (C) 1997-2023 Sam Lantinga <slouken@libsdl.org>
 | |
| 
 | |
|   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 <windows.h>
 | |
| 
 | |
| 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 = "SDL Test";
 | |
| 
 | |
|     if (!RegisterClass(&wc)) {
 | |
|         MessageBox(NULL, "Window Registration Failed!", "Error!",
 | |
|                    MB_ICONEXCLAMATION | MB_OK);
 | |
|         return 0;
 | |
|     }
 | |
| 
 | |
|     hwnd =
 | |
|         CreateWindow("SDL Test", "", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,
 | |
|                      CW_USEDEFAULT, w, h, NULL, NULL, GetModuleHandle(NULL),
 | |
|                      NULL);
 | |
|     if (hwnd == NULL) {
 | |
|         MessageBox(NULL, "Window Creation Failed!", "Error!",
 | |
|                    MB_ICONEXCLAMATION | MB_OK);
 | |
|         return 0;
 | |
|     }
 | |
| 
 | |
|     ShowWindow(hwnd, SW_SHOW);
 | |
| 
 | |
|     return hwnd;
 | |
| }
 | |
| 
 | |
| static void
 | |
| DestroyWindowNative(void *window)
 | |
| {
 | |
|     DestroyWindow((HWND)window);
 | |
| }
 | |
| 
 | |
| #endif
 |