Pregunta

Hice un nuevo proyecto y más o menos copiado esta guía , pero siempre que llame a cualquier función OpenGL que es el lugar marcado // Drawing code here de que se estrelle. Tengo esta ahí:

glViewport(0, 0, [self bounds].size.width, [self bounds].size.height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0, [self bounds].size.width, [self bounds].size.height, 0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.375, 0.375, 0.0);

glClearColor(1, 1, 1, 1);
glClear(GL_COLOR_BUFFER_BIT);

glColor3f(0, 0, 0);

glBegin(GL_LINES);
glVertex2f(10, 10);
glVertex2f(300, 300);
glEnd();

glFlush();

Pero sólo llamar una función OpenGL se estrella, la presentación de informes GDB: Program received signal: "EXC_BAD_ACCESS". En primer lugar, si lo hizo el trabajo, es que el código bueno? Haciendo todas esas cosas en la parte superior cada vez que se llama? Se supone que es para 2D, con origen en la parte superior izquierda. Y por qué se bloquea constantemente? He CoreVideo y OpenGL vinculados e importados ... Quiero conseguir una aplicación Cocoa configurado para utilizar OpenGL para que pueda centrarse en el código del juego.

Gracias.

¿Fue útil?

Solución

El artículo se ha vinculado no es realmente un proyecto completo - es sólo una discusión y de la muestra de la utilización de CVDisplayLink para conducir el bucle dibujo. Probablemente irá mejor, comenzando con Guía de programación OpenGL.

Otros consejos

Salida MyOpenGLView.m en código de ejemplo de Apple para GLFullScreen . Utilizan CVDisplayLink éxito. Lo que falta en la conducción "OpenGL Loops" es el hecho de que es necesario agregar un mutex para evitar el acceso a dos hilos de un mismo contexto OpenGL.

Usted podría intentar reemplazar '[límites auto] .size.width' con los números no modificables para ver si esto es parte del problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top