Pergunta

Fiz um novo projeto e praticamente copiado este guia, mas sempre que eu chamo de qualquer função do OpenGL, o ponto marcado // Drawing code here ele trava. Eu tenho isso 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();

Mas apenas chamar uma função OpenGL trava, relatando GDB: Program received signal: "EXC_BAD_ACCESS". Primeiro de tudo, se funcionou, esse código é bom? Fazendo tudo isso no topo toda vez que é chamado? É para ser 2D, com origem na capa superior. E por que está travando? Eu tenho CoreVideo e OpenGL vinculados e importados ... quero configurar um aplicativo de cacau para usar o OpenGL para que eu possa me concentrar no código do jogo.

Obrigado.

Foi útil?

Solução

O artigo que você vinculou não é realmente um projeto completo - é apenas uma discussão e amostra do uso do CVDISPLAYLINK para acionar o loop de desenho. Você provavelmente se sairá melhor começando com a Apple's Guia de programação OpenGL.

Outras dicas

Confira myopenglview.m em Código de amostra da Apple para GlfullScreen. Eles usam o CVDisplayLink com sucesso. A coisa que falta no "Driving OpenGL Rendering Loops" é o fato de você precisar adicionar um mutex para evitar dois threads acessando o mesmo contexto OpenGL.

Você pode tentar substituir '[Louse auto] .Size.Width' por números codificados para ver se isso faz parte do problema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top