Question

J'ai fait un nouveau projet et à peu près ce guide , mais chaque fois que j'appelle une fonction OpenGL en fait l'endroit marqué // Drawing code here il se bloque. J'ai ce là:

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();

Mais appeler une fonction OpenGL se bloque il, les rapports GDB: Program received signal: "EXC_BAD_ACCESS". Tout d'abord, si elle a fait le travail, est que le bon code? Faire tout ce genre de choses en tête chaque fois qu'il est appelé? Son supposé être pour 2d, avec l'origine en haut à gauche. Et pourquoi est-il le temps? Je CoreVideo et OpenGL liés et importés ... Je veux une application Cocoa configuré pour utiliser OpenGL je peux donc se concentrer sur le code du jeu.

Merci.

Était-ce utile?

La solution

L'article que vous Liées est pas vraiment un projet complet - il est juste une discussion et de l'échantillon d'utiliser CVDisplayLink pour conduire la boucle de dessin. Vous allez probablement faire mieux en commençant par Apple

Autres conseils

Consultez MyOpenGLView.m code exemple d'Apple pour GLFullScreen . Ils utilisent CVDisplayLink avec succès. La chose qui manque dans « des boucles de rendu OpenGL Driving » est le fait que vous devez ajouter un mutex pour éviter deux threads d'accéder au même contexte opengl.

Vous pouvez essayer de remplacer « [self bounds] .size.width » avec des chiffres codés en dur pour voir si cela fait partie du problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top