Domanda

ho fatto un nuovo progetto e praticamente copiato questa guida , ma ogni volta che io chiamo una funzione OpenGL rende il luogo segnato // Drawing code here si blocca. Ho questo c'è:

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

Ma solo chiamando una funzione OpenGL si blocca, riportando GDB: Program received signal: "EXC_BAD_ACCESS". Prima di tutto, se non lavoro, è che il codice buono? Facendo tutta quella roba in alto ogni volta che viene chiamato? Il suo doveva essere per 2d, con origine in alto a sinistra. E perché è in crash? Ho CoreVideo e OpenGL linked e importati ... voglio ottenere un'applicazione Cocoa impostato per l'uso di OpenGL in modo da poter concentrarsi sul codice del gioco.

Grazie.

È stato utile?

Soluzione

L'articolo si è collegato non è in realtà un progetto completo - è solo una discussione e campione di utilizzare CVDisplayLink per guidare il ciclo di disegno. Probabilmente fare meglio iniziando con Apple Guida alla programmazione OpenGL.

Altri suggerimenti

Scopri MyOpenGLView.m in codice di esempio di Apple per GLFullScreen . Usano CVDisplayLink successo. La cosa che manca in "Guidare rendering OpenGL Loops" è il fatto che è necessario aggiungere un mutex per evitare due thread accesso alla stesso contesto OpenGL.

Si potrebbe provare a sostituire '[auto] limiti .size.width' con i numeri hard-coded per vedere se questo è parte del problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top