Mercurial > sdl-ios-xcode
view test/testnativew32.c @ 3083:0bc41e0361d3
Date: Mon, 2 Mar 2009 16:27:42 +0200
From: "Mike Gorchak"
Subject: About QNX support in SDL 1.3
Right now I'm working on QNX SDL 1.3 drivers implementation and looks like a
lot of code must be completely reworked. But I'm ready for it :) Also I want
to add QNX Graphics Framework SDL driver, which is fullscreen graphics
framework, with support of hardware accelerated OpenGL ES implementations.
This Graphics Framework (called GF in QNX) could also use QNX Photon (window
manager GUI) as window manager.
In the attachment initial patch for QNX support in SDL 1.3
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 03 Mar 2009 04:21:51 +0000 |
parents | 6f3308d4b6cd |
children | e8916fe9cfc8 |
line wrap: on
line source
#include "testnative.h" #ifdef TEST_NATIVE_WIN32 static void *CreateWindowWin32(int w, int h); static void DestroyWindowWin32(void *window); NativeWindowFactory Win32WindowFactory = { "win32", CreateWindowWin32, DestroyWindowWin32 }; 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) { 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