Objective C glutDisplayFunc with method

时间:2013-05-10 10:32:43

标签: objective-c opengl glut

如何使用Objective C方法作为glutDisplayFunc(以及类似函数)的参数?我对ObjC很新,所以我不完全知道这是如何工作的

在C ++中,你可以传入一个空白,但在ObjC中,我尝试了这个:

    //...
    glutDisplayFunc([self display]);
    //...

-(void) display{
    glutPostRedisplay();
}

我也尝试过静态方法

    //...
    glutDisplayFunc([self display]);
    //...

+(void) display{
    glutPostRedisplay();
}

但每次我收到错误“将'void'传递给参数不兼容类型为void(*)(void)”。 我以为你可以通过一个空白。

那么,我怎样才能完成这项工作(必须是一种方法)

1 个答案:

答案 0 :(得分:0)

  

在C ++中,你可以传入一个空白

不,你不能。

  

那么,我怎样才能完成这项工作(必须是一种方法)

你不能。您感兴趣的内容将是 closure delegate ,但GLUT将采用全局范围C样式回调函数 。您可以做的最好的事情是编写一个全局范围包装器,其调用约定与C兼容,然后调用全局范围类实例的方法。