Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<windows.h>
- #include<glgl.h>
- #include<glglu.h>
- #pragma comment(lib, "opengl32.lib")
- #pragma comment(lib, "glu32.lib")
- void InitGL(void)
- {
- glClearColor(1,0.3f,0.3f,0.3f);
- }
- void DrawGLScene(void)
- {
- /* code removed */
- }
- HGLRC hRC = NULL;
- HDC hDC = NULL;
- HWND hWnd = NULL;
- HINSTANCE hInstance = NULL;
- LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
- bool CreateGLWindow(char* title, int width, int height)
- {
- GLuint PixelFormat;
- WNDCLASS wc;
- RECT WindowRect;
- WindowRect.left = (long)0;
- WindowRect.right = (long)width;
- WindowRect.top = (long)0;
- WindowRect.bottom = (long)height;
- LPCSTR nazwa = TEXT("Start");
- hInstance = GetModuleHandle(NULL);
- wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
- wc.lpfnWndProc = (WNDPROC)WndProc;
- 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 = nazwa;
- RegisterClass(&wc);
- hWnd = CreateWindowEx(WS_EX_APPWINDOW | WS_EX_WINDOWEDGE, nazwa,
- nazwa,
- WS_SYSMENU |
- WS_CLIPSIBLINGS |
- WS_CLIPCHILDREN,
- 0,0,
- width,
- height,
- 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 = GetDC(hWnd);
- PixelFormat = ChoosePixelFormat(hDC, &pfd);
- HRESULT rez = SetPixelFormat(hDC, PixelFormat, &pfd);
- hRC = wglCreateContext(hDC);
- wglMakeCurrent(hDC, hRC);
- ShowWindow(hWnd, SW_SHOW);
- InitGL();
- return true;
- }
- LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
- {
- switch(uMsg)
- {
- case WM_ACTIVATE:
- {
- return 0;
- }
- case WM_CLOSE:
- {
- PostQuitMessage(0);
- return 0;
- }
- }
- return DefWindowProc(hWnd, uMsg, wParam, lParam);
- }
- int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,
- int nCmdShow)
- {
- MSG msg;
- bool done = false;
- if (!CreateGLWindow(NULL, 800,600))
- {
- return 0;
- }
- while(!done)
- {
- if (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
- {
- if (!GetMessage(&msg, 0, 0, 0)) done = true;
- else {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- }
- else
- {
- DrawGLScene();
- SwapBuffers(hDC);
- }
- }
- return (msg.wParam);
- }
Add Comment
Please, Sign In to add comment