dipende da ciò che crea il tuo contesto OpenGL.
Se stai usando GLFW (che consiglio vivamente per standalone applicazioni finestre OGL), allora si può fare prima di creare la finestra:
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
Si noti che se si richiede un 3.0 pre-contesto GL su hardware/driver moderni, è probabile che tu riceva un contesto più recente possibile in modalità compatibilità. Controlla cosa restituisce la tua GPU da glGetString(GL_VERSION)
per essere sicuro.
Se si utilizza un'altra API per la creazione del contesto OpenGL, controllare il suo manuale di riferimento per funzioni simili.
BTW: Credo che sia impossibile ottenere un errore in fase di compilazione - il compilatore può non essere a conoscenza che contesto OpenGL riceverete dopo la vostra richiesta (se applicabile). Il modo corretto per garantire che non si stia utilizzando la funzionalità fuori versione è il test per glGetError()
.
Inoltre, si consiglia di utilizzare il wrapper di estensione gl3w
se si compila per Windows.
Quale piattaforma Are You On? La risposta alla tua domanda dipende da cosa usi per collegarti a OpenGL. – ltjax