macos - support - EXEC_BAD_ACCESS en el programa OpenGL de 2 líneas
opengl mac download (2)
Debe crear un contexto OpenGL antes de poder llamar a las funciones gl *. Hay varias formas de hacerlo, por ejemplo, usando GLUT o SDL.
El siguiente programa simple produce un EXEC_BAD_ACCESS (error de segmentación) cuando se ejecuta, y no entiendo por qué:
#include <OpenGL/gl.h>
int main(void) {
const GLubyte * strVersion;
// The next line gives an ''EXEC_BAD_ACCESS''
strVersion = glGetString (GL_VERSION);
}
Estoy ejecutando Xcode en OS X 10.6.5 y estoy enlazando con el framework OpenGL. Cualquier idea sería apreciada.
Para C Especificación para crear la variable GLubyte, llámala por
const GLubyte* glGetString(GL_VERSION );
entonces deberías poder obtener la versión. por el siguiente
const char *GLVersionString = glGetString(GL_VERSION);
//Or better yet, use the GL3 way to get the version number
int OpenGLVersion[2];
glGetIntegerv(GL_MAJOR_VERSION, &OpenGLVersion[0])
glGetIntegerv(GL_MINOR_VERSION, &OpenGLVersion[1])
aquí hay más información básica sobre glGetString:
glGetString returns a pointer to a static string describing some aspect of the current GL connection. name can be one of the following:
GL_VENDOR
Returns the company responsible for this GL implementation.
This name does not change from release to release.
GL_RENDERER
Returns the name of the renderer.
This name is typically specific to a particular configuration of a hardware platform.
It does not change from release to release.
GL_VERSION
Returns a version or release number.
GL_SHADING_LANGUAGE_VERSION
Returns a version or release number for the shading language.
GL_EXTENSIONS
Returns a space-separated list of supported extensions to GL.