Skip to main content
GameDev.net gamedev.net
🔒 Locked

Fullscreen OpenGL

Started by Drakon Oct 18, 2001 at 5:01 PM 2 replies 500+ views
Original Post
Drakon
Drakon
I''ve been reading the OpenGL Game Programming book... But I can''t get fullscreen to work. It gives me these bugs: Compiling... OpenGLsrc.cpp E:\BeginOGLWork\OpenGLsrc.cpp(19) : error C2065: ''screenWidth'' : undeclared identifier E:\BeginOGLWork\OpenGLsrc.cpp(20) : error C2065: ''screenHeight'' : undeclared identifier E:\BeginOGLWork\OpenGLsrc.cpp(21) : error C2065: ''screenBpp'' : undeclared identifier E:\BeginOGLWork\OpenGLsrc.cpp(28) : error C2065: ''extendedWindowStyle'' : undeclared identifier E:\BeginOGLWork\OpenGLsrc.cpp(29) : error C2065: ''windowStyle'' : undeclared identifier E:\BeginOGLWork\OpenGLsrc.cpp(53) : error C2065: ''SetupPixelFormat'' : undeclared identifier E:\BeginOGLWork\OpenGLsrc.cpp(130) : warning C4551: function call missing argument list Error executing cl.exe. OpenGLsrc.obj - 6 error(s), 1 warning(s) Here is the code: NOTE: THE FULLSCREEN STUFF IS BETWEEN THE //''s. #include #include #include #include HDC g_hDC; float angle = 0.0f; bool fullScreen = TRUE; LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam){ static HGLRC hRC; static HDC hDC; int width; int height; // DEVMODE devModeScreen; memset(&devModeScreen, 0, sizeof(devModeScreen)); devModeScreen.dmSize = sizeof(devModeScreen); devModeScreen.dmPelsWidth = screenWidth; devModeScreen.dmPelsHeight = screenHeight; devModeScreen.dmBitsPerPel = screenBpp; devModeScreen.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_BITSPERPEL; if(ChangeDisplaySettings(&devModeScreen, CDS_FULLSCREEN) != DISP_CHANGE_SUCCESSFUL) fullScreen = false; if(fullScreen){ extendedWindowStyle = WS_EX_APPWINDOW; windowStyle = WS_POPUP; ShowCursor(FALSE); } else { extendedWindowStyle = NULL; windowStyle = WS_OVERLAPPEDWINDOW | WS_VISIBLE | WS_SYSMENU | WS_CLIPCHILDREN | WS_CLIPSIBLINGS; RECT windowRect; windowRect.top = 0; windowRect.left = 0; windowRect.bottom = screenHeight; windowRect.right = screenWidth; AdjustWindowRectEx(&windowRect, windowStyle, FALSE, extendedWindowStyle); } // PAINTSTRUCT ps; switch(msg){ case WM_CREATE: hDC = GetDC(hwnd); g_hDC = hDC; SetupPixelFormat(hDC); hRC = wglCreateContext(hDC); wglMakeCurrent(hDC, hRC); return 0; break; case WM_CLOSE: wglMakeCurrent(hDC, NULL); wglDeleteContext(hRC); PostQuitMessage(0); return 0; break; case WM_SIZE: height = HIWORD(lparam); width = LOWORD(lparam); if(height==0){ height = 1; } glViewport(0,0,height,width); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,1.0f,1000.0f); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); return 0; break; default: break; } return DefWindowProc(hwnd, msg, wparam, lparam); } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd){ WNDCLASSEX wc; HWND hwnd; bool done; MSG msg; wc.cbClsExtra = 0; wc.cbSize = sizeof(WNDCLASSEX); wc.cbWndExtra = 0; wc.hbrBackground = NULL; wc.hCursor = LoadCursor(NULL, IDC_CROSS); wc.hIcon = LoadIcon(NULL, NULL); wc.hIconSm = LoadIcon(NULL, NULL); wc.hInstance = hInstance; wc.lpfnWndProc = WndProc; wc.lpszClassName = "WCClass"; wc.lpszMenuName = NULL; wc.style = CS_HREDRAW | CS_VREDRAW; if(!RegisterClassEx(&wc)){ return 0; } hwnd = CreateWindowEx(NULL, "WCClass", "Beginning OpenGL review", WS_VISIBLE | WS_OVERLAPPEDWINDOW | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_SYSMENU, 0, 0, 400, 400, NULL, NULL, hInstance, NULL); if (!hwnd) return 0; ShowWindow(hwnd, SW_SHOW); UpdateWindow(hwnd); done = false; while(!done){ PeekMessage(&msg, hwnd, NULL, NULL, PM_REMOVE); if(msg.message == WM_QUIT){ done = true; } else { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity; angle = angle + 0.1f; if(angle >= 1.0f) angle = 0.0f; glTranslatef(0.0f,0.0f,-5.0f); glRotatef(angle, 2.0f,2.0f,2.0f); glColor3f(0.0f,1.0f,1.0f); glBegin(GL_TRIANGLES); glVertex3f(0.0f,0.0f,0.0f); glVertex3f(2.0f,0.0f,0.0f); glVertex3f(2.0f,2.0f,0.0f); glEnd(); SwapBuffers(g_hDC); TranslateMessage(&msg); DispatchMessage(&msg); } } return msg.wParam; } It worked fine without the fullscreen code in. If anyone knows what is wrong, please reply
"Go for the eyes, Boo, go for the eyes!"
Drakon
Drakon
Uhh. What goes in the ()''s of GetSystemMetrics? And, where does it(the systemMetrics stuff) go?
"Go for the eyes, Boo, go for the eyes!"
Spider_In_A_Web
Spider_In_A_Web
the following two will give you screen height and width!!

place them just after the first // i guess!!

UINT windowStyle;
DWORD extendedWindowStyle;
int screenWidth = GetSystemMetrics(SM_CXSCREEN);
int screenHeight = GetSystemMetrics(SM_CYSCREEN);
int screenBpp = 16; //or any bits per pixel value you prefer

that will clear the first 5 errors, the problem is simply that you are not declaring your variables!!!

As for the last error, that involves looking properly and i dont have time, sorry!!

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.