我使用以下方式注册了一个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
设置为零不能成为问题:我已经与其他测试人员一起做过这个......
我疯了......我已经花了好几个小时来解决这个问题
由于
答案 0 :(得分:0)
问题是零,我不得不这样做:
*outData = new double; // memory-leak, but not as I did it really.