Zależy co tworzy swój kontekst OpenGL.
Jeśli używasz GLFW (który szczerze polecam dla autonomicznych OGL okna aplikacji), to można to zrobić przed utworzeniem okno:
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR,3);
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR,1);
glfwOpenWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_CORE_PROFILE);
// the last line shouldn't be necessary
// as you request a specific GL context version -
// - at least my ATI will then default to core profile
Zauważ, że jeśli wniosek wstępny 3.0 kontekst GL na nowoczesnym sprzęcie/sterownikach prawdopodobnie otrzymasz najnowszy możliwy kontekst w trybie zgodności. Sprawdź, co zwraca twój GPU z glGetString(GL_VERSION)
, aby się upewnić.
Jeśli używasz innego API do tworzenia kontekstu OpenGL, sprawdź jego podręcznik odniesienia, aby uzyskać podobne funkcje.
BTW: wierzę, że to niemożliwe, aby uzyskać błąd w czasie kompilacji - kompilator może nie być świadomy tego, co OpenGL kontekst otrzymasz po życzenie (jeśli występują). Prawidłowym sposobem zapewnienia, że nie używasz funkcji poza wersją, jest testowanie pod kątem glGetError()
.
Jeśli korzystasz z systemu Windows, zalecamy używanie opakowania rozszerzeń gl3w
.
Co platforma jesteś stronie? Odpowiedź na twoje pytanie zależy od tego, czego używasz do połączenia z OpenGL. – ltjax