UltimateZoneBuilder/Source/Native/OpenGLContext.h
2019-08-10 02:32:08 +02:00

41 lines
919 B
C++

#pragma once
class OpenGLContext
{
public:
OpenGLContext(HWND window);
~OpenGLContext();
void Begin();
void End();
void SwapBuffers();
explicit operator bool() const { return context != 0; }
private:
HWND window;
HDC dc;
HGLRC context;
};
class OpenGLCreationHelper
{
public:
OpenGLCreationHelper(HWND window);
~OpenGLCreationHelper();
HGLRC CreateContext(HDC hdc, int major_version, int minor_version, HGLRC share_context = 0);
private:
HWND window;
HDC hdc;
HWND query_window = 0;
HDC query_dc = 0;
HGLRC query_context = 0;
typedef HGLRC(WINAPI* ptr_wglCreateContextAttribsARB)(HDC, HGLRC, const int*);
typedef BOOL(WINAPI* ptr_wglGetPixelFormatAttribivEXT)(HDC, int, int, UINT, int*, int*);
typedef BOOL(WINAPI* ptr_wglGetPixelFormatAttribfvEXT)(HDC, int, int, UINT, int*, FLOAT*);
typedef BOOL(WINAPI* ptr_wglChoosePixelFormatEXT)(HDC, const int*, const FLOAT*, UINT, int*, UINT*);
};