我使用:

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" 被打印在控制台中!!!然后调用回调函数后,Tesselator用消息调用错误回调:“需要组合回调”(!!)

我的应用程序中已经还有另外两个镶嵌剂,它们的工作正确。但是最后一个没有。我将此代码与另一个代码进行了比较。但是我看不出为什么它不起作用。

cbCombine 方法(开始时没有“ S”)是:

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

但是设置 outData 零不是问题:我已经与其他镶嵌剂之一一起做到了...

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

谢谢

有帮助吗?

解决方案

问题是零,我必须这样做:

*outData = new double; // memory-leak, but not as I did it really.
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top