wglGetProcAddress возвращает NULL

я использую wlgGetProcAddress чтобы получить функции, используя контекст, созданный с wglCreateContext, Я установил контекст с wglMakeCurrent, Я получаю действительный указатель на функцию glGetStringi, но я получаю NULL за glGetString, я думал так glGetString а также glGetStringi были введены в той же версии OpenGL (1.0). Любые идеи, почему я получаю это NULL?

const GLubyte* (*glGetString)(GLenum);
const GLubyte* (*glGetStringi)(GLenum, GLuint);
glGetString = reinterpret_cast<decltype(glGetString)>(wglGetProcAddress("glGetString"));
glGetStringi = reinterpret_cast<decltype(glGetStringi)>(wglGetProcAddress("glGetStringi"));

В случае, если это имеет значение, у меня Radeon HD 7950 с версией драйвера 13.251.0.0.

1

Решение

glGetStringi был введен намного позже, чем 1,0 — я считаю, что это 3,3. Что еще хуже, на профиле ядра 3.3+ вы не можете использовать glGetString(GL_EXTENSIONS), но необходимо использовать glGetStringi, который недоступен для низкопрофильных версий.

Документация MSDN гласит wglGetProcAddress возвращает только адреса для функций расширения. И «расширение» в их терминах — это все, чего нет в GL 1.1.

Пожалуйста, прочитайте https://www.opengl.org/discussion_boards/showthread.php/168281-Can-t-get-wglGetProcAddress-to-work-in-opengl-3-1

6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]