[DO-981] qt package (!15)
Co-authored-by: aleksandr.vodyanov <aleksandr.vodyanov@avroid.tech> Reviewed-on: https://git.avroid.tech/Conan/conan_build/pulls/15
This commit is contained in:
58
recipes/opengl/all/test_package/win.cpp
Normal file
58
recipes/opengl/all/test_package/win.cpp
Normal file
@@ -0,0 +1,58 @@
|
||||
#include <windows.h>
|
||||
|
||||
static LRESULT CALLBACK WndProc(HWND hwnd,
|
||||
UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
LRESULT res = 1;
|
||||
switch (uMsg)
|
||||
{
|
||||
case WM_DESTROY:
|
||||
::PostQuitMessage (0);
|
||||
break;
|
||||
default:
|
||||
res = ::DefWindowProc(hwnd, uMsg, wParam, lParam);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
bool init_context()
|
||||
{
|
||||
static const wchar_t * class_name = L"ConanOpenGL";
|
||||
static const wchar_t * window_name = L"Conan OpenGL";
|
||||
WNDCLASSEXW wc = {0};
|
||||
wc.cbSize = sizeof(WNDCLASSEXW);
|
||||
wc.style = CS_HREDRAW | CS_VREDRAW;
|
||||
wc.lpfnWndProc = WndProc;
|
||||
wc.hInstance = ::GetModuleHandle(NULL);
|
||||
wc.hIcon = ::LoadIcon(0, IDI_APPLICATION);
|
||||
wc.hCursor = ::LoadCursor(0, IDC_ARROW);
|
||||
wc.hbrBackground = (HBRUSH) ::GetStockObject(WHITE_BRUSH);
|
||||
wc.lpszClassName = class_name;
|
||||
if (!::RegisterClassExW(&wc))
|
||||
return false;
|
||||
HWND hWnd = ::CreateWindowExW(0, class_name, window_name,
|
||||
WS_OVERLAPPEDWINDOW, 0, 0, 0, 0, NULL, NULL, wc.hInstance, NULL);
|
||||
if (!hWnd)
|
||||
return false;
|
||||
HDC hDC = ::GetDC(hWnd);
|
||||
if (!hDC)
|
||||
return false;
|
||||
PIXELFORMATDESCRIPTOR pfd = {0};
|
||||
pfd.nSize = sizeof(PIXELFORMATDESCRIPTOR);
|
||||
pfd.nVersion = 1;
|
||||
pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
|
||||
pfd.iPixelType = PFD_TYPE_RGBA;
|
||||
pfd.dwLayerMask = PFD_MAIN_PLANE;
|
||||
pfd.cColorBits = 32;
|
||||
pfd.cDepthBits = 16;
|
||||
int pixel_format = ::ChoosePixelFormat(hDC, &pfd);
|
||||
if(0 == pixel_format)
|
||||
return false;
|
||||
if (!::SetPixelFormat(hDC, pixel_format, &pfd))
|
||||
return false;
|
||||
HGLRC hGLRC = ::wglCreateContext(hDC);
|
||||
if (!hGLRC)
|
||||
return false;
|
||||
::wglMakeCurrent(hDC, hGLRC);
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user