Implemented Win32 version of the native window test

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403524
This commit is contained in:
Sam Lantinga 2009-02-09 06:41:49 +00:00
parent 408d9f3ed8
commit 1e44bc512b
2 changed files with 50 additions and 4 deletions

View File

@ -29,7 +29,7 @@ quit(int rc)
{
SDL_VideoQuit();
if (native_window) {
factory->DestroyWindow(native_window);
factory->DestroyNativeWindow(native_window);
}
exit(rc);
}
@ -137,7 +137,7 @@ main(int argc, char *argv[])
quit(2);
}
printf("Creating native window for %s driver\n", driver);
native_window = factory->CreateWindow(WINDOW_W, WINDOW_H);
native_window = factory->CreateNativeWindow(WINDOW_W, WINDOW_H);
if (!native_window) {
fprintf(stderr, "Couldn't create native window\n");
quit(3);

View File

@ -12,17 +12,63 @@ NativeWindowFactory Win32WindowFactory = {
DestroyWindowWin32
};
static Display *dpy;
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 *
CreateWindowWin32(int w, int h)
{
return NULL;
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
DestroyWindowWin32(void *window)
{
DestroyWindow((HWND)window);
}
#endif