Что не так с созданием этого контекста? - PullRequest
1 голос
/ 13 февраля 2011

Я хотел бы создать контекст рендеринга для использования opengl. WglMakeCurrent (hdc, hrc) возвращает true.

Но по некоторым причинам функции OpenGL игнорируются.

Вот код для создания контекста:

int pixelFormat;

hdc = GetDC(hwnd);

PIXELFORMATDESCRIPTOR pfd;
memset(&pfd, 0, sizeof(PIXELFORMATDESCRIPTOR));
pfd.nSize  = sizeof(PIXELFORMATDESCRIPTOR);
pfd.nVersion   = 1;
pfd.dwFlags    = PFD_DOUBLEBUFFER | PFD_SUPPORT_OPENGL | PFD_DRAW_TO_WINDOW;
pfd.iPixelType = PFD_TYPE_RGBA;
pfd.cColorBits = 32;
pfd.cDepthBits = 32;
pfd.iLayerType = PFD_MAIN_PLANE;

pixelFormat = ChoosePixelFormat(hdc,&pfd);
SetPixelFormat(hdc,pixelFormat,&pfd);

hrc = wglCreateContext(hdc);
wglMakeCurrent(hdc, hrc);

И создание окна:

hinst = GetModuleHandle(NULL);

WNDCLASSEX wnd;
memset(&wnd, 0, sizeof(WNDCLASSEX));
wnd.hInstance = hinst;
wnd.style = CS_HREDRAW | CS_VREDRAW;
        wnd.cbSize = sizeof(WNDCLASSEX);
        wnd.lpszClassName = "__myGLApp__";
        wnd.lpfnWndProc = WndProc;
        RegisterClassEx(&wnd);

        hwnd = CreateWindowEx(WS_EX_TOOLWINDOW, 
            "__myGLApp__",
            "valami",
            WS_VISIBLE,
            xpos,
            ypos,
            width,
            height,
            NULL,
            NULL,
            hinst,
            NULL);

Куда я иду не так?

1 Ответ

0 голосов
/ 26 января 2012

вы можете использовать функцию glGetError (), чтобы получить код ошибки.Вы также можете получить текстовое описание с помощью функций gluErrorString () и gluErrorUnicodStringEXT () из служебной библиотеки.Как то так:

char *message;
message = gluErrorString(glGetError());
printf("OpenGL error: %s\n", message);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...