Я пытался использовать WGL_ARB_pbuffer для закадрового рендеринга с OpenGL,
но я потерпел неудачу во время инициализации.
Вот мой код
wglGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC) wglGetProcAddress("wglGetExtensionsStringARB");
if(!wglGetExtensionsStringARB) return;
const GLubyte* extensions = (const GLubyte*) wglGetExtensionsStringARB(wglGetCurrentDC());
Так что на самом деле это заканчивается на 2-й строке, потому что wglGetExtensionsStringARB получил NULL.
Я понятия не имею, почему wglGetProcAddress не работает.
Я включил «wglext.h», а также я определил, как показано ниже в заголовке.
PFNWGLGETEXTENSIONSSTRINGARBPROC pwglGetExtensionsStringARB = 0;
#define wglGetExtensionsStringARB pwglGetExtensionsStringARB
Почему я не могу использовать wglGetProcAddress, как я и предполагал ??
wglGetProcAddress
требуется контекст рендеринга OpenGL; вам нужно позвонить wglCreateContext
а также wglMakeCurrent
до звонка wglGetProcAddress
, Если вы еще не настроили контекст OpenGL, wglGetProcAddress
всегда вернется NULL
, Если вы не уверены, что у вас есть контекст OpenGL (например, если вы используете стороннюю платформу / библиотеку), позвоните wglGetCurrentContext
и убедитесь, что он не возвращается NULL
,
Других решений пока нет …