Я пытаюсь создать приложение OpenGL для окон. Насколько я понимаю, одной из первых вещей, которые я должен приобрести, является Контекст устройства, который должен быть передан нескольким функциям, которые выбирают и устанавливают формат пикселей и создают контекст рендеринга. Я использовал the OpenGL wiki, чтобы получить общее представление о том, что я должен делать. Мой код что-то вроде:OpenGL get Device Context
#include <iostream>
#include <windef.h>
#include <wingdi.h>
HDC hdc;
int main() {
hdc = wglGetCurrentDC();
std::cout << "HDC: " << hdc << std::endl;
return 0;
}
Печатается
HDC: 0
Я приобрела устройство контекст относится к физическому устройству, но я где-то читал, что это относится к любой вытяжке «поверхности». В обоих случаях мой вопрос: как я могу получить ненулевой DC? Или я должен выполнить совершенно другой набор шагов, чтобы настроить всю систему OpenGL?
Я нашел много обучающих онлайн, но все они используют GLUT, GLEW, GLFW, X11, SDL и т. Д., Которые являются библиотеками. Библиотеки упрощают некоторые вещи, но обычно они не выполняют задачи, которые невозможно без их использования. На этот раз я хочу попытаться сделать что-то трудное и поэтому не использовать библиотеки, просто OpenGL.
Я нашел, наконец, a tutorial, который использовал только библиотеки окон для создания окна.
Я тоже так думаю, но в основном речь идет о создании контекста OpenGL, в то время как контекст, который мне нужен, - это контекст устройства. В статье говорится: «Вы должны знать, что такое дескриптор окна (HWND) и контекст устройства (DC), а также как их создавать». –
Итак, вы имеете в виду, что в этом случае код не применим. Я думаю, вы можете быть правы, но тогда возникает вопрос, как я должен его создать. –
Извините, вы правы; потому что это была функция WGL, я принял ее за «wglGetCurrentContext». –