2012-06-29 12 views
9

È possibile utilizzare GLUT su OS X Lion o OS X Mountain Lion utilizzando il profilo principale (quindi posso utilizzare GLSL 1.50)?GLUT su OS X con OpenGL 3.2 Core Profile

Posso usare il GLUT integrato o devo usare una libreria di terze parti come FreeGLUT?

E c'è qualche semplice applicazione "Hello world" disponibile per OS X con un progetto XCode o un make-file?

risposta

16

È necessario almeno Mac OS X Lion (OS X 10.7 o successivo) per il supporto di base di OpenGL 3.2. Per utilizzare l'OpenGL 3.2 Nucleo profilo, basta aggiungere

glutInitDisplayMode(GLUT_3_2_CORE_PROFILE | ... | ...); 

nel vostro main -funzione. È possibile controllare da

std::printf("%s\n%s\n", 
     glGetString(GL_RENDERER), // e.g. Intel HD Graphics 3000 OpenGL Engine 
     glGetString(GL_VERSION) // e.g. 3.2 INTEL-8.0.61 
     ); 
+1

Ciao. Ho os X Mavericks e questa soluzione non funziona ancora. Potresti per favore aiutarmi su questo? ecco il mio codice https://gist.github.com/dhirajbodicherla/11238004 – Dhiraj

+1

fantastico, grazie ... molta disinformazione su GLUT là fuori, era quasi convinto di dover rimanere in 2.1 terra ... –

+0

Sia GLUT che FreeGLUT sembrano causare errori durante la configurazione per il profilo Core. In questo momento dovrai utilizzare una diversa libreria di finestre per utilizzare il profilo Core su OSX. – Rebs

0

GLUT non supporta OpenGL 3.2, in quanto non fornisce alcuna funzionalità per specificare la versione del contesto OpenGL desiderata. Inoltre, la funzionalità di GLUT si basa su API che non sono disponibili con il Core Profile di OpenGL 3.2.

Devi passare a FreeGLUT o GLFW.

+0

Ma FreeGLUT supporta OpenGL 3.2 su OS/X? Non sono riuscito a trovare dettagli su questo. – Mortennobel

+1

In realtà, non lo so. Ho pensato che fosse così, ma devo ammettere che non c'è alcun suggerimento nella documentazione dell'API (che è piuttosto incompleto). Io personalmente uso GLFW, che certamente supporta OpenGL 3.2. – flyx

+3

Raccomando anche GLFW per 3.2 su OS/X. È l'unica cosa che ha funzionato per me. SDL 2 rivendica la compatibilità ma mi sono imbattuto in tutti i tipi di problemi su OS/X. –

0

flyx è sbagliato, OpenGL 3.2 è la versione che aggiunge i profili di base e di compatibilità (non 3.3). Tuttavia, Apple non supporta affatto i profili di compatibilità (nessun motivo, semplicemente non lo fanno). GLUT è disponibile in xcode come framework e puoi usarlo in questo modo. Quindi puoi farlo in un modo completamente non standard, specifico per piattaforma.