int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MSG msg; bool done = false; fullscreen = MessageBox(nullptr, L"Do you want run application in fullscreen mode?", L"Is fullscreen mode", MB_YESNO | MB_ICONQUESTION) == IDNO ? false : true; if (!create_gl_window(L"OpenGL window", 1024, 768, 32, fullscreen)) return 0; while (!done) { if (PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE)) { if (msg.message == WM_QUIT) done = true; else { TranslateMessage(&msg); DispatchMessage(&msg); } } else { if (active) { if (keys[VK_ESCAPE]) done = true; else { draw_gl_scene(); SwapBuffers(hDC); } } if (keys[VK_F1]) { keys[VK_F1] = false; kill_gl_window(); fullscreen = !fullscreen; if (!create_gl_window(L"OpenGL window", 1024, 768, 32, fullscreen)) return 0; } } } kill_gl_window(); return (msg.wParam); }
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MSG msg; bool done = false; #if PROMPT_FULLSCREEN fullscreen = MessageBox(nullptr, L"Do you want run application in fullscreen mode?", L"Is fullscreen mode", MB_YESNO | MB_ICONQUESTION) == IDNO ? false : true; #endif if (!create_gl_window(WND_TITLE, WND_WIDTH, WND_HEIGHT, COLOR_BITS, fullscreen)) return 0; while (!done) { if (PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE)) { if (msg.message == WM_QUIT) done = true; else { TranslateMessage(&msg); DispatchMessage(&msg); } } else { if ((active && !draw_gl_scene()) || keys[VK_ESCAPE]) done = true; else SwapBuffers(hDC); if (keys[VK_F1]) { keys[VK_F1] = false; kill_gl_window(); fullscreen = !fullscreen; if (!create_gl_window(WND_TITLE, WND_WIDTH, WND_HEIGHT, COLOR_BITS, fullscreen)) return 0; } } } kill_gl_window(); return (msg.wParam); }
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { WNDCLASS wc; wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; wc.lpfnWndProc = (WNDPROC)window_proc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon( NULL, IDI_WINLOGO ); wc.hCursor = LoadCursor( NULL, IDC_ARROW ); wc.hbrBackground = NULL; wc.lpszMenuName = NULL; wc.lpszClassName = "Win32GL"; RegisterClass( &wc ); RECT window_rect; SetRect( &window_rect, 0, 0, mAppWindowWidth, mAppWindowHeight ); DWORD ex_style = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE; DWORD style = WS_OVERLAPPEDWINDOW; AdjustWindowRectEx( &window_rect, style, FALSE, ex_style ); HWND hWnd = CreateWindowEx( ex_style, "Win32GL", "Win32GL LLQtWebKit test", style | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, 80, 0, window_rect.right - window_rect.left, window_rect.bottom - window_rect.top, NULL, NULL, hInstance, NULL ); static PIXELFORMATDESCRIPTOR pfd = { sizeof( PIXELFORMATDESCRIPTOR ), 1, PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, PFD_TYPE_RGBA, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, PFD_MAIN_PLANE, 0, 0, 0, 0 }; HDC hDC = GetDC( hWnd ); GLuint pixel_format = ChoosePixelFormat( hDC, &pfd ); SetPixelFormat( hDC, pixel_format, &pfd ); HGLRC hRC = wglCreateContext( hDC ); wglMakeCurrent( hDC, hRC ); ShowWindow( hWnd,SW_SHOW ); SetForegroundWindow( hWnd ); SetFocus( hWnd ); resize_gl_screen( mAppWindowWidth, mAppWindowHeight ); GLuint texture_handle = 0; glGenTextures( 1, &texture_handle ); glBindTexture( GL_TEXTURE_2D, texture_handle ); glTexImage2D( GL_TEXTURE_2D, 0, 3, gTextureWidth, gTextureHeight, 0, GL_RGB, GL_UNSIGNED_BYTE, 0 ); glTexParameteri( GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR ); glTexParameteri( GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR ); init_qt( hWnd ); bool done = false; while( ! done ) { MSG msg; if ( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) ) { if ( WM_QUIT == msg.message ) { done = true; } else { TranslateMessage( &msg ); DispatchMessage( &msg ); }; } else { draw_gl_scene( texture_handle ); SwapBuffers( hDC ); }; }; wglMakeCurrent( NULL,NULL ); wglDeleteContext( hRC ); ReleaseDC( hWnd,hDC ); DestroyWindow( hWnd ); UnregisterClass( "Win32GL", hInstance ); reset_qt(); return 0; }
/*! starts drawing the window */ void engine::start_draw() { // draws ogl stuff draw_gl_scene(); }
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MSG msg; bool done = false; #if PROMPT_FULLSCREEN fullscreen = MessageBox(nullptr, L"Do you want run application in fullscreen mode?", L"Is fullscreen mode", MB_YESNO | MB_ICONQUESTION) == IDNO ? false : true; #endif int width = WND_WIDTH; int height = WND_HEIGHT; get_window_size(&width, &height); if (!create_gl_window(WND_TITLE, width, height, COLOR_BITS, fullscreen)) return 0; while (!done) { if (PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE)) { if (msg.message == WM_QUIT) done = true; else { TranslateMessage(&msg); DispatchMessage(&msg); } } else { if ((active && !draw_gl_scene()) || keys[VK_ESCAPE]) { #ifdef _DEBUG OutputDebugString(L"[INFO] ESC typed. Program will be closed\n"); #endif done = true; } else SwapBuffers(hDC); if (keys['T'] && !t_press) { t_press = true; twinkle = !twinkle; } if (!keys['T']) t_press = false; //if (keys[VK_UP]) tilt -= 0.5f; // Up //if (keys[VK_DOWN]) tilt += 0.5f; // Down if (keys[VK_PRIOR]) zoom -= 0.2f; // PgUp if (keys[VK_NEXT]) zoom += 0.2f; // PgDown glBlendFunc(GL_SRC_ALPHA, GL_ONE); glEnable(GL_BLEND); if (keys[VK_F1]) { keys[VK_F1] = false; kill_gl_window(); fullscreen = !fullscreen; get_window_size(&width, &height); if (!create_gl_window(WND_TITLE, width, height, COLOR_BITS, fullscreen)) return 0; } } } kill_gl_window(); return (msg.wParam); }