Mercurial > sdl-ios-xcode
view test/testnativew32.c @ 5222:9c0593fa27d6
Create an OpenGL 1.1 context by default, if available.
This is easier for people to set up and work with, and is more conformant to the way desktop OpenGL works.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 07 Feb 2011 09:23:01 -0800 |
parents | e8916fe9cfc8 |
children |
line wrap: on
line source
#include "testnative.h" #ifdef TEST_NATIVE_WINDOWS 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