tstOGLSample.cpp revision 4604ab7d38c2bd2dfc255aa1facffdf81c1c9153
957e0fcedf2079feefdb1aa2d0da65e39cd8479cvboxsync// by Blaine Hodge
957e0fcedf2079feefdb1aa2d0da65e39cd8479cvboxsync// Function Declarations
957e0fcedf2079feefdb1aa2d0da65e39cd8479cvboxsyncLRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
957e0fcedf2079feefdb1aa2d0da65e39cd8479cvboxsyncvoid EnableOpenGL(HWND hWnd, HDC * hDC, HGLRC * hRC);
957e0fcedf2079feefdb1aa2d0da65e39cd8479cvboxsyncint WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
957e0fcedf2079feefdb1aa2d0da65e39cd8479cvboxsync // register window class
957e0fcedf2079feefdb1aa2d0da65e39cd8479cvboxsync wc.hbrBackground = (HBRUSH)GetStockObject( BLACK_BRUSH );
957e0fcedf2079feefdb1aa2d0da65e39cd8479cvboxsync // create main window
957e0fcedf2079feefdb1aa2d0da65e39cd8479cvboxsync // enable OpenGL for the window
d9b086bc8f68cd04745f397f8db45fca87c14365vboxsync // program main loop
957e0fcedf2079feefdb1aa2d0da65e39cd8479cvboxsync // check for messages
957e0fcedf2079feefdb1aa2d0da65e39cd8479cvboxsync // handle or dispatch messages
b27ea9ec24c539f55433c8c33d0219f14fb354d5vboxsync // OpenGL animation code goes here
b27ea9ec24c539f55433c8c33d0219f14fb354d5vboxsync glColor3f( 1.0f, 0.0f, 0.0f ); glVertex2f( 0.0f, 1.0f );
b27ea9ec24c539f55433c8c33d0219f14fb354d5vboxsync glColor3f( 0.0f, 1.0f, 0.0f ); glVertex2f( 0.87f, -0.5f );
b27ea9ec24c539f55433c8c33d0219f14fb354d5vboxsync glColor3f( 0.0f, 0.0f, 1.0f ); glVertex2f( -0.87f, -0.5f );
957e0fcedf2079feefdb1aa2d0da65e39cd8479cvboxsync printf("GL_RENDERER %s\n", glGetString(GL_RENDERER));
a5d4a2a6365cbfa15e179bc79d291133c4a0ff1evboxsync printf("GL_VERSION %s\n", glGetString(GL_VERSION));
a5d4a2a6365cbfa15e179bc79d291133c4a0ff1evboxsync printf("GL_EXTENSIONS %s\n", glGetString(GL_EXTENSIONS));
a5d4a2a6365cbfa15e179bc79d291133c4a0ff1evboxsync // shutdown OpenGL
a5d4a2a6365cbfa15e179bc79d291133c4a0ff1evboxsync // destroy the window explicitly
10028648143893a0291db53b6a5f7d061f8b0fa8vboxsync// Window Procedure
10028648143893a0291db53b6a5f7d061f8b0fa8vboxsyncLRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
a5d4a2a6365cbfa15e179bc79d291133c4a0ff1evboxsync return DefWindowProc( hWnd, message, wParam, lParam );
a5d4a2a6365cbfa15e179bc79d291133c4a0ff1evboxsync// Enable OpenGL
957e0fcedf2079feefdb1aa2d0da65e39cd8479cvboxsyncvoid EnableOpenGL(HWND hWnd, HDC * hDC, HGLRC * hRC)
957e0fcedf2079feefdb1aa2d0da65e39cd8479cvboxsync // get the device context (DC)
a5d4a2a6365cbfa15e179bc79d291133c4a0ff1evboxsync // set the pixel format for the DC
a5d4a2a6365cbfa15e179bc79d291133c4a0ff1evboxsync pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
a5d4a2a6365cbfa15e179bc79d291133c4a0ff1evboxsync // create and enable the render context (RC)
a5d4a2a6365cbfa15e179bc79d291133c4a0ff1evboxsync// Disable OpenGL