0

以下を使用してコールバックを登録しました:

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関数を呼び出した後、テッセレータは次のメッセージを含むエラーコールバックを呼び出します:「コールバックを組み合わせる必要があります」(!!)

私のアプリにはすでに2つのテッセレーターがあり、それらは正しく機能します。しかし、最後のものはそうではありません。私は、このコードを他のコードと可能な限り比較しました。しかし、なぜそれが機能しないのかわかりません。

メソッド(最初cbCombineに「s」を付けない)は次のとおりです。

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

しかし、outDataゼロに設定することは問題にはなりません。私はすでに他のテッセレーターの1つでこれを行いました...

私は夢中になっています...私はこの問題にすでに何時間も費やしました

ありがとう

4

1 に答える 1

0

問題はゼロでした、私はこれをしなければなりませんでした:

*outData = new double; // memory-leak, but not as I did it really.
于 2010-09-12T18:38:59.397 に答える