문제

I made a new project and pretty much copied this guide, but whenever I call any OpenGL function it the spot marked // Drawing code here it crashes. I have this there :

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

But just calling one OpenGL function crashes it, reporting GDB: Program received signal: "EXC_BAD_ACCESS". First of all, if it did work, is that code good? Doing all that stuff at the top every time it gets called? Its supposed to be for 2d, with origin at top-left. And why is it crashing? I have CoreVideo and OpenGL linked and imported... I want to get a Cocoa application set up to use OpenGL so I can focus on the game code.

Thanks.

도움이 되었습니까?

해결책

The article you linked isn't really a complete project -- it's just a discussion and sample of using CVDisplayLink to drive the drawing loop. You'll probably do better by starting with Apple's OpenGL Programming Guide.

다른 팁

Check out MyOpenGLView.m in Apple's sample code for GLFullScreen. They use CVDisplayLink successfully. The thing missing in "Driving OpenGL Rendering Loops" is the fact that you need to add a mutex to avoid two threads accessing the same opengl context.

You could try replacing '[self bounds].size.width' with hard-coded numbers to see if that is part of the problem.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top