2012-06-29 20 views
9

¿Es posible usar GLUT en OS X Lion o OS X Mountain Lion usando el perfil central (para que pueda usar GLSL 1.50)?GLUT en OS X con OpenGL 3.2 Core Profile

¿Puedo utilizar el GLUT integrado o necesito usar una biblioteca de terceros como FreeGLUT?

¿Y hay alguna aplicación 'Hola mundo' sencilla disponible para OS X con un proyecto XCode o un archivo make?

Respuesta

16

Necesita al menos Mac OS X Lion (OS X 10.7 o superior) para el soporte básico de OpenGL 3.2. Para utilizar el Core Perfil OpenGL 3.2, sólo tiene que añadir

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

en su main -función. Puede verificarlo por

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

Hola. Tengo os X Mavericks y esta solución todavía no funciona. ¿Podrías ayudarme en esto? aquí está mi código https://gist.github.com/dhirajbodicherla/11238004 – Dhiraj

+1

increíble, gracias ... mucha información errónea sobre GLUT por ahí, estaba casi convencido de que tenía que quedarme en 2.1 tierra ... –

+0

GLUT y FreeGLUT parecen desencadenar errores al configurarlos para el perfil Core. En este momento, necesitará usar una biblioteca de ventanas diferente para usar el perfil Core en OSX. – Rebs

0

GLUT no es compatible con OpenGL 3.2, ya que no proporciona ninguna funcionalidad para especificar la versión de contexto OpenGL deseada. Además, la funcionalidad de GLUT se basa en API que no están disponibles con OpenGL 3.2 Core Profile.

Tienes que cambiar a FreeGLUT o GLFW.

+0

Pero, ¿admite FreeGLUT OpenGL 3.2 en OS/X? No pude encontrar ningún detalle sobre esto. – Mortennobel

+1

En realidad, no sé. Pensé que sí, pero tengo que admitir que no hay ninguna pista en la documentación de la API (que por cierto es bastante incompleta) que sí. Yo personalmente uso GLFW, que sin duda admite OpenGL 3.2. – flyx

+3

También recomiendo GLFW para 3.2 en OS/X. Es la única lib que funcionó para mí. SDL 2 reclama compatibilidad pero me topé con todo tipo de problemas en OS/X. –

0

flyx es incorrecto, OpenGL 3.2 es la versión que agregó los perfiles de núcleo y compatibilidad (no 3.3). Sin embargo, Apple simplemente no admite perfiles de compatibilidad en absoluto (no hay razón, simplemente no lo hacen). GLUT viene en xcode como un marco y puede usarlo de esa manera. Entonces puede hacerlo de una manera completamente no estándar, específica de la plataforma.