Hi,
I'm currently trying to compile gl-render.cc against Mac's OpenGL
framework. If I compile against Mac's "X11/GL" then everything is
just fine, but with "framework OpenGL" I have got problems. I
already was able to do a hack for this:
gl-render.cc: In member function 'virtual void
opengl_renderer::draw(const
axes::properties&)':
gl-render.cc:595: error: invalid conversion from 'int*' to 'GLint*'
gl-render.cc:595: error: initializing argument 2 of 'void
glGetIntegerv(GLenum, GLint*)'
gl-render.cc: In member function 'virtual void
opengl_renderer::init_marker(const std::string&, double, float)':
gl-render.cc:2634: error: invalid conversion from 'int*' to 'GLint*'
gl-render.cc:2634: error: initializing argument 2 of 'void
glGetIntegerv(GLenum, GLint*)'
but I'm not able to find out what the compiler wants from me for this:
gl-render.cc: In member function 'virtual void
opengl_tesselator::init()':
gl-render.cc:273: error: invalid conversion from 'void (*)()' to
'GLvoid (*)(...)'
gl-render.cc:273: error: initializing argument 3 of 'void
gluTessCallback(GLUtesselator*, GLenum, GLvoid (*)(...))'
gl-render.cc:275: error: invalid conversion from 'void (*)()' to
'GLvoid (*)(...)'
gl-render.cc:275: error: initializing argument 3 of 'void
gluTessCallback(GLUtesselator*, GLenum, GLvoid (*)(...))'
gl-render.cc:277: error: invalid conversion from 'void (*)()' to
'GLvoid (*)(...)'
gl-render.cc:277: error: initializing argument 3 of 'void
gluTessCallback(GLUtesselator*, GLenum, GLvoid (*)(...))'
gl-render.cc:279: error: invalid conversion from 'void (*)()' to
'GLvoid (*)(...)'
gl-render.cc:279: error: initializing argument 3 of 'void
gluTessCallback(GLUtesselator*, GLenum, GLvoid (*)(...))'
gl-render.cc:281: error: invalid conversion from 'void (*)()' to
'GLvoid (*)(...)'
gl-render.cc:281: error: initializing argument 3 of 'void
gluTessCallback(GLUtesselator*, GLenum, GLvoid (*)(...))'
gl-render.cc:283: error: invalid conversion from 'void (*)()' to
'GLvoid (*)(...)'
gl-render.cc:283: error: initializing argument 3 of 'void
gluTessCallback(GLUtesselator*, GLenum, GLvoid (*)(...))'
Looking inside the OpenGL framework I get:
bash$ grep -re "gluTessCallback" /System/Library/Frameworks/
OpenGL.framework/*
/System/Library/Frameworks/OpenGL.framework/Headers/glu.h:extern void
gluTessCallback (GLUtesselator* tess, GLenum which, GLvoid
(*CallBackFunc)());
Looking inside X11R6/GL I get:
bash$ grep -re "gluTessCallback" /usr/X11R6/include/GL/*.h
/usr/X11R6/include/GL/glu.h:extern void gluTessCallback
(GLUtesselator* tess,
GLenum which, _GLUfuncptr CallBackFunc);
bash$ grep -re "_GLUfuncptr" /usr/X11R6/include/GL/*.h
/usr/X11R6/include/GL/glu.h:typedef GLvoid (*_GLUfuncptr)();
/usr/X11R6/include/GL/glu.h:typedef GLvoid (*_GLUfuncptr)(GLvoid);
Can somebody please send me a suggestion what I should change?
The second question is: Are there any other platforms that have a
header "OpenGL/gl.h" instead of "GL/gl.h" or do we just have this
"OpenGL/gl.h" on Mac? I'm asking this question because I'd like to
adjust the test procedure OCTAVE_OPENGL in aclocal.m4.
Best regards,
Thomas