adding that file might be good, too
This commit is contained in:
parent
b48fe5909b
commit
f1628b98de
|
@ -0,0 +1,66 @@
|
||||||
|
// 31 march 2019
|
||||||
|
#include "uipriv_windows.hpp"
|
||||||
|
|
||||||
|
struct uiGLContext
|
||||||
|
{
|
||||||
|
uiControl* c;
|
||||||
|
|
||||||
|
HWND hwnd;
|
||||||
|
HDC dc;
|
||||||
|
HGLRC rc;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
uiGLContext* uiGLNewContext(uiControl* c)
|
||||||
|
{
|
||||||
|
uiGLContext* ctx;
|
||||||
|
|
||||||
|
ctx = uiNew(uiGLContext);
|
||||||
|
|
||||||
|
ctx->c = c;
|
||||||
|
if (c)
|
||||||
|
{
|
||||||
|
ctx->hwnd = (HWND)c->Handle(c); // welp
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// windowless context
|
||||||
|
ctx->hwnd = GetDesktopWindow();
|
||||||
|
}
|
||||||
|
|
||||||
|
PIXELFORMATDESCRIPTOR pfd;
|
||||||
|
memset(&pfd, 0, sizeof(pfd));
|
||||||
|
pfd.nSize = sizeof(pfd);
|
||||||
|
pfd.nVersion = 1;
|
||||||
|
pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL;
|
||||||
|
pfd.iPixelType = PFD_TYPE_RGBA;
|
||||||
|
pfd.cColorBits = 24;
|
||||||
|
pfd.cAlphaBits = 8;
|
||||||
|
pfd.cDepthBits = 24;
|
||||||
|
pfd.cStencilBits = 8;
|
||||||
|
pfd.iLayerType = PFD_MAIN_PLANE;
|
||||||
|
|
||||||
|
ctx->dc = GetDC(ctx->hwnd);
|
||||||
|
|
||||||
|
int pixelformat = ChoosePixelFormat(ctx->dc, &pfd);
|
||||||
|
SetPixelFormat(ctx->dc, pixelformat, &pfd);
|
||||||
|
|
||||||
|
ctx->rc = wglCreateContext(ctx->dc);
|
||||||
|
}
|
||||||
|
|
||||||
|
void uiGLFreeContext(uiGLContext* ctx)
|
||||||
|
{
|
||||||
|
wglDeleteContext(ctx->rc);
|
||||||
|
ReleaseDC(ctx->hwnd, ctx->dc);
|
||||||
|
uiFree(ctx);
|
||||||
|
}
|
||||||
|
|
||||||
|
void uiGLMakeContextCurrent(uiGLContext* ctx)
|
||||||
|
{
|
||||||
|
wglMakeCurrent(ctx->dc, ctx->rc);
|
||||||
|
}
|
||||||
|
|
||||||
|
void *uiGLGetProcAddress(const char* proc)
|
||||||
|
{
|
||||||
|
return (void*)wglGetProcAddress(proc);
|
||||||
|
}
|
Loading…
Reference in New Issue