Advertisement

Anyone know...

Started by March 30, 2001 11:01 PM
5 comments, last by NN 23 years, 7 months ago
...where I can get a *GOOD* C++ compiler for free? I can''t afford anything now, and my Dev-C++ 4 won''t compile anything right. I''ll go crazy if I don''t get this. I dunno how to put code in a text box, so I''ll just copy-and-paste (sheesh this''ll be long!): ---------------------------------------------------------------- // Includes #include #include // Function Declarations LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ); VOID EnableOpenGL( HWND hWnd, HDC * hDC, HGLRC * hRC ); VOID DisableOpenGL( HWND hWnd, HDC hDC, HGLRC hRC ); // WinMain int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow ) { WNDCLASS wc; HWND hWnd; HDC hDC; HGLRC hRC; MSG msg; BOOL bQuit = FALSE; float theta = 0.0f; // register window class wc.style = CS_OWNDC; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon( NULL, IDI_APPLICATION ); wc.hCursor = LoadCursor( NULL, IDC_ARROW ); wc.hbrBackground = (HBRUSH)GetStockObject( BLACK_BRUSH ); wc.lpszMenuName = NULL; wc.lpszClassName = "GLSample"; RegisterClass( &wc ); // create main window hWnd = CreateWindow( "GLSample", "OpenGL Sample", WS_CAPTION | WS_POPUPWINDOW | WS_VISIBLE, 0, 0, 256, 256, NULL, NULL, hInstance, NULL ); // enable OpenGL for the window EnableOpenGL( hWnd, &hDC, &hRC ); // program main loop while ( !bQuit ) { // check for messages if ( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) ) { // handle or dispatch messages if ( msg.message == WM_QUIT ) { bQuit = TRUE; } else { TranslateMessage( &msg ); DispatchMessage( &msg ); } } else { // OpenGL animation code goes here } } // shutdown OpenGL DisableOpenGL( hWnd, hDC, hRC ); // destroy the window explicitly DestroyWindow( hWnd ); return msg.wParam; } // Window Procedure LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) { switch ( message ) { case WM_CREATE: return 0; case WM_CLOSE: PostQuitMessage( 0 ); return 0; case WM_DESTROY: return 0; case WM_KEYDOWN: switch ( wParam ) { case VK_ESCAPE: PostQuitMessage( 0 ); return 0; } return 0; default: return DefWindowProc( hWnd, message, wParam, lParam ); } } // Enable OpenGL VOID EnableOpenGL( HWND hWnd, HDC * hDC, HGLRC * hRC ) { PIXELFORMATDESCRIPTOR pfd; int iFormat; // get the device context (DC) *hDC = GetDC( hWnd ); // set the pixel format for the DC ZeroMemory( &pfd, sizeof( pfd ) ); pfd.nSize = sizeof( pfd ); pfd.nVersion = 1; pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER; pfd.iPixelType = PFD_TYPE_RGBA; pfd.cColorBits = 24; pfd.cDepthBits = 16; pfd.iLayerType = PFD_MAIN_PLANE; iFormat = ChoosePixelFormat( *hDC, &pfd ); SetPixelFormat( *hDC, iFormat, &pfd ); // create and enable the render context (RC) *hRC = wglCreateContext( *hDC ); wglMakeCurrent( *hDC, *hRC ); } // Disable OpenGL VOID DisableOpenGL( HWND hWnd, HDC hDC, HGLRC hRC ) { wglMakeCurrent( NULL, NULL ); wglDeleteContext( hRC ); ReleaseDC( hWnd, hDC ); } ----------------------------------------------------------------- That''s all. I understand the reg. Window stuff and all that, but NeHe''s tut''s don''t help this any! I looked at the samples, but don''t understand those! Can someone send me some source or something? My e-mail is MechZell98@aol.com; I hope I don''t get flamed for postin this long msg...
Me again, I forgot to say that that was an example prog. and works, I just wanna find out what it all means (besides the windows stuff). Thanx in advance...
Advertisement
put simply, that code makes a window, attaches a device and opengl rendering context. It makes a blank window as far as I can tell, unless I missed something.
put simply, that code makes a window, attaches a device and opengl rendering context. It makes a blank window as far as I can tell, unless I missed something.
me again. If you don''t get this, use GLUT. Simple as it goes. This doesn''t even do anything in opengl really. A nice big black window with a title.
Actually that code makes a spining triangle... on a black background. That''s all... I can make a window like that *using* windows. I don''t get the animation code...
Advertisement
OOps, looked at the wrong code... I wuz lookin at the other code when I wrote the last one...

This topic is closed to new replies.

Advertisement