bool WinInit (void) { WNDCLASSEX wcex; int x, y; int style; bool max; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = (WNDPROC)ScreenSaverProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = instance; wcex.hIcon = NULL; wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1); wcex.lpszMenuName = NULL; wcex.lpszClassName = APP_TITLE; wcex.hIconSm = NULL; if (!RegisterClassEx(&wcex)) { WinPopup ("Cannot create window class"); return false; } x = IniInt ("WindowX"); y = IniInt ("WindowY"); style = WS_TILEDWINDOW; style |= WS_MAXIMIZE; width = IniInt ("WindowWidth"); height = IniInt ("WindowHeight"); width = CLAMP (width, 800, 2048); height = CLAMP (height, 600, 2048); half_width = width / 2; half_height = height / 2; max = IniInt ("WindowMaximized") == 1; if (!(hwnd = CreateWindowEx (0, APP_TITLE, APP_TITLE, style, CW_USEDEFAULT, CW_USEDEFAULT, width, height, NULL, NULL, instance, NULL))) { WinPopup ("Cannot create window"); return false; } if (max) ShowWindow (hwnd, SW_MAXIMIZE); else ShowWindow (hwnd, SW_SHOW); UpdateWindow (hwnd); return true; }
void CameraInit (void) { angle = IniVector ("CameraAngle"); position = IniVector ("CameraPosition"); cam_auto=1;//IniInt("cam_auto"); camera_behavior=IniInt("camera_behavior"); }
void RenderInit (void) { HWND hWnd; unsigned PixelFormat; HFONT font; HFONT oldfont; hWnd = WinHwnd (); if (!(hDC = GetDC (hWnd))) YOUFAIL ("Can't Create A GL Device Context.") ; if (!(PixelFormat = ChoosePixelFormat(hDC,&pfd))) YOUFAIL ("Can't Find A Suitable PixelFormat.") ; if(!SetPixelFormat(hDC,PixelFormat,&pfd)) YOUFAIL ("Can't Set The PixelFormat."); if (!(hRC = wglCreateContext (hDC))) YOUFAIL ("Can't Create A GL Rendering Context."); if(!wglMakeCurrent(hDC,hRC)) YOUFAIL ("Can't Activate The GL Rendering Context."); //Load the fonts for printing debug info to the window. for (int i = 0; i < FONT_COUNT; i++) { fonts[i].base_char = glGenLists(96); font = CreateFont (FONT_SIZE, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, FF_DONTCARE|DEFAULT_PITCH, fonts[i].name); oldfont = (HFONT)SelectObject(hDC, font); wglUseFontBitmaps(hDC, 32, 96, fonts[i].base_char); SelectObject(hDC, oldfont); DeleteObject(font); } //If the program is running for the first time, set the defaults. if (!IniInt ("SetDefaults")) { IniIntSet ("SetDefaults", 1); IniIntSet ("Effect", EFFECT_BLOOM); IniIntSet ("ShowFog", 1); } //load in our settings letterbox = IniInt ("Letterbox") != 0; show_wireframe = IniInt ("Wireframe") != 0; show_fps = IniInt ("ShowFPS") != 0; show_fog = IniInt ("ShowFog") != 0; effect = IniInt ("Effect"); flat = IniInt ("Flat") != 0; fog_distance = WORLD_HALF; //clear the viewport so the user isn't looking at trash while the program starts glViewport (0, 0, WinWidth (), WinHeight ()); glClearColor (0.0f, 0.0f, 0.0f, 1.0f); glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); SwapBuffers (hDC); RenderResize (); }