gl-render.cc: framework OpenGL on MacOSX

Ben Abbott bpabbott at mac.com
Fri Jan 30 18:26:39 CST 2009


On Jan 30, 2009, at 6:09 PM, Thomas Treichl wrote:

> 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

I don't get those errors, and my config.log has

#define HAVE_OPENGL_GL_H 1
#define HAVE_OPENGL_GLU_H 1
#define HAVE_OPENGL 1

The configure options used (from config.log) are below

./configure --prefix=/sw FLIBS=/sw/lib/gcc4.3/lib/libgfortran.dylib  
F77=/sw/bin/gfortran --infodir=${prefix}/s      hare/info --mandir=$ 
{prefix}/share/man --libexecdir=${prefix}/lib -enable-shared -enable- 
dl --disable-static --wit      hout-mpi --with-hdf5 --with-fftw  
CPPFLAGS=-g -I/sw/include -FOpenGL -I/sw/include/freetype2  FFLAGS=-g - 
ff2c LDFLA      GS=-L/sw/lib/fltk-aqua/lib -L/sw/lib -lfltk_gl - 
framework AGL -framework OpenGL -lfltk -lpthread -framework  
Carbon       --with-lapack=-Wl,-framework,Accelerate,-dylib_file,/ 
System/Library/Frameworks/Accelerate.framework/Versions/A/Fr       
ameworks/vecLib.framework/Versions/A/libLAPACK.dylib:/System/Library/ 
Frameworks/Accelerate.framework/Versions/A/Fr      ameworks/ 
vecLib.framework/Versions/A/libLAPACK.dylib --with-blas=-Wl,- 
framework,Accelerate,-dylib_file,/System/Lib      rary/Frameworks/ 
Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/ 
libBLAS.dylib:/System/Libra      ry/Frameworks/Accelerate.framework/ 
Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib

Although I don't get errors, the new backend isn't functional for me  
either.

Ben



More information about the Octave-maintainers mailing list