GLU Tesselator говорит: «Нужно объединить обратный вызов» Но я определил обратный вызов - PullRequest
0 голосов
/ 12 сентября 2010

Я зарегистрировал 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 тесселятор вызывает обратный вызов ошибки с сообщением: «нужен комбинированный обратный вызов» (!!)

У меня уже есть два других тесселятора в моем приложении, и они работают правильно.Но последний не делает.Я сравнил код этого как можно больше с кодом другого.Но я не понимаю, почему это не работает.

Метод cbCombine (без "s" в начале) таков:

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

Но настройка outData ноль не может быть проблемой: я уже делал это с одним из других тесселаторов ...

Я схожу с ума ... Я потратил уже несколько часов на эту проблему

Спасибо

1 Ответ

0 голосов
/ 12 сентября 2010

Проблема была в нуле, я должен был сделать это:

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