Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool WindowWin::Init(uint32 a_Width, uint32 a_Height)
- {
- m_Width = a_Width;
- m_Height = a_Height;
- m_Dim.x = (float)m_Width;
- m_Dim.y = (float)m_Height;
- WNDCLASS temp = {
- CS_HREDRAW | CS_VREDRAW | CS_OWNDC, // defines the class style
- Win32Messages, // pointer to the message handler function
- 0, // extra bytes following the window class structure
- 0, // extra bytes following the window instance
- m_Instance, // instance handle
- LoadIcon(NULL, IDI_APPLICATION), // icon handle
- LoadCursor(NULL, IDC_ARROW), // cursor
- NULL, // background brush
- NULL, // menu name
- "TmplQ" // window title
- };
- if (!RegisterClass(&temp)) { return false; }
- // Bram fixed my stuff
- // Now with centered window!
- // Determine window position and dimensions
- const int x = GetSystemMetrics(SM_CXSCREEN) / 2 - m_Width / 2;
- const int y = GetSystemMetrics(SM_CYSCREEN) / 2 - m_Height / 2;
- m_Pos.x = (float)x;
- m_Pos.y = (float)y;
- m_Center.x = (float)(m_Width / 2);
- m_Center.y = (float)(m_Height / 2);
- const DWORD style = WS_OVERLAPPEDWINDOW;
- const DWORD ext_style = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;
- RECT dim = {
- 0, 0,
- m_Width, m_Height
- };
- AdjustWindowRect(&dim, style, FALSE);
- const int w = dim.right - dim.left;
- const int h = dim.bottom - dim.top;
- m_Window = CreateWindowEx (
- ext_style,
- "TmplQ", // window class
- "TmplQ", // window title
- style, // visibility settings
- x, y,
- w, h,
- NULL,
- NULL,
- temp.hInstance,
- NULL
- );
- if (!m_Window) { return false; }
- if (!(m_WindowContext = GetDC(m_Window))) { return false; }
- LOG("Context: %x", m_WindowContext);
- PIXELFORMATDESCRIPTOR pfd = {
- sizeof(PIXELFORMATDESCRIPTOR), // size
- 1, // version
- PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, // flags
- PFD_TYPE_RGBA, // pixel type
- 32, // color bits
- 0, 0, 0, 0, 0, 0, 0, 0, // color rgba
- 0, 0, 0, 0, 0, // accum bits, rgba
- 24, // depth bits
- 0, // stencil bits
- 0, // aux buffers
- PFD_MAIN_PLANE, // layer type
- 0, // reserved
- 0, 0, 0 // layer, visible, damage
- };
- unsigned int format;
- if (!(format = ChoosePixelFormat(m_WindowContext, &pfd))) { return false; }
- if (!SetPixelFormat(m_WindowContext, format, &pfd)) { return false; }
- HGLRC hrc;
- if (!(hrc = wglCreateContext(m_WindowContext))) { return false; }
- if (!wglMakeCurrent(m_WindowContext, hrc)) { return false; }
- GLenum status = glewInit();
- if (status != GLEW_OK)
- {
- char error[256];
- sprintf(error, "%s", glewGetErrorString(status));
- MessageBoxA(NULL, error, "GLEW error", MB_OK | MB_ICONEXCLAMATION);
- return false;
- }
- ShowWindow(m_Window, 1);
- UpdateWindow(m_Window);
- wglSwapIntervalEXT(0);
- s_WindowWin = this;
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement