GLU Tesselator说:“需要结合回调”但我定义了一个回调

时间:2010-09-12 17:20:19

标签: c++ callback tesselation glu

我使用以下方式注册了一个CALLBACK:

gluTessCallback(tess, GLU_TESS_COMBINE, (GLvoid(*)()) &scbCombine);

scbCombine是直接在同一.cpp文件中的函数:

void CALLBACK scbCombine(const double newVertex[3], const double *neighborVertex[4], const float neighborWeight[4], double **outData)
{
    instanceMDC->cbCombine(newVertex, neighborVertex, neighborWeight, outData);
    printf("scbCombine \n");
}

当我使用测试时,在控制台中打印"scbCombine \n"!然后在调用CALLBACK函数之后,tesselator调用错误回调,并显示以下消息:“need combine callback”(!!)

我的应用程序中已经有两个其他的tesselators,他们的工作正确。但最后一个没有。我尽可能地将这个代码与另一个代码进行了比较。但我不明白为什么它不起作用。

cbCombine方法(开头没有“s”)是:

void MyClass::cbCombine(const double newVertex[3], const double *neighborVertex[4], const float neighborWeight[4], double **outData)
{
    outData = 0;
}

但将outData设置为零不能成为问题:我已经与其他测试人员一起做过这个......

我疯了......我已经花了好几个小时来解决这个问题

由于

1 个答案:

答案 0 :(得分:0)

问题是零,我不得不这样做:

*outData = new double; // memory-leak, but not as I did it really.