代码之家  ›  专栏  ›  技术社区  ›  mk12

Cocoa应用程序在OpenGL调用时崩溃

  •  1
  • mk12  · 技术社区  · 15 年前

    this guide ,但每当我调用任何OpenGL函数时,它都会被标记为spot // Drawing code here 它崩溃了。我有这个:

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

    但是仅仅调用一个OpenGL函数就会崩溃,报告 GDB: Program received signal: "EXC_BAD_ACCESS". 首先,如果它真的工作了,那代码好吗?每次接到电话都在上面做那些事?它应该是二维的,原点在左上角。为什么它会崩溃?我有CoreVideo和OpenGL链接和导入。。。我想建立一个Cocoa应用程序来使用OpenGL,这样我就可以专注于游戏代码了。

    谢谢

    3 回复  |  直到 15 年前
        1
  •  1
  •   dodgio    14 年前
        2
  •  0
  •   Nick Sonneveld    14 年前

    查看MyOpenGLView.m in Apple's sample code for GLFullScreen . 他们成功地使用了CVDisplayLink。“驱动OpenGL渲染循环”中缺少的一点是,您需要添加一个互斥体,以避免两个线程访问相同的OpenGL上下文。

        3
  •  -1
  •   William Knight    15 年前