私は仕事のために数時間前にopenGLを学んだばかりで、テッセレーションを使って凹面ポリゴンをレンダリングすることを任されています。私は、関連する章もavailable onlineことで、OpenGL Programming Guide, Seventh Editionから得ているOpenGLでコールバックを登録するときのコンパイルエラー
#ifndef CALLBACK
#define CALLBACK
#endif
#include "GL/gl.h"
#include "GL/glu.h"
void CALLBACK beginCallback(GLenum which);
void drawHook()
{
GLUtesselator* tessObj = gluNewTess();
gluTessCallback(tessObj, GLU_TESS_BEGIN, beginCallback);
}
void CALLBACK beginCallback(GLenum which)
{
glBegin(which);
}
:私は、次のコードをコンパイルしようとしています。しかし、次のエラーが返される:
hook.cc:28: error: invalid conversion from ‘void (*)(GLenum)’ to ‘void (*)()’
hook.cc:28: error: initializing argument 3 of ‘void gluTessCallback(GLUtesselator*, GLenum, void (*)())’
このエラーはgluTessCallback
の3番目の引数は引数を取らない関数で、まだそうでない場合は「公式」のOpenGL参照状態であることを信じるように私をリード。
ここに何か不足しているか、本が間違っていますか?