gl-render.cc: framework OpenGL on MacOSX

Ben Abbott bpabbott at mac.com
Tue Feb 10 18:28:34 CST 2009


On Feb 10, 2009, at 3:19 PM, Jonathan Stickel wrote:

> Ben Abbott wrote:
>> On Feb 10, 2009, at 1:59 PM, Jonathan Stickel <jjstickel at vcn.com>  
>> wrote:
>>> On 2/10/09 octave-maintainers-request at octave.org wrote:
>>>> Date: Tue, 10 Feb 2009 18:04:11 +0200
>>>> From: Shai Ayal <shaiay at gmail.com>
>>>> Subject: Re: gl-render.cc: framework OpenGL on MacOSX
>>>> To: Ben Abbott <bpabbott at mac.com>
>>>> Cc: octave maintainers mailing list <maintainers at octave.org>
>>>> Message-ID:
>>>>   <420fb9e60902100804o11fa60aem197842a446da77a8 at mail.gmail.com>
>>>> Content-Type: text/plain; charset=ISO-8859-1
>>>> On Tue, Feb 10, 2009 at 5:21 PM, Ben Abbott <bpabbott at mac.com>  
>>>> wrote:
>>>>> >
>>>>> > On Feb 9, 2009, at 1:15 PM, Thomas Treichl wrote:
>>>>> >
>>>>>> >> Ben Abbott schrieb:
>>>>>>> >>>
>>>>>>> >>> The result of configure is below.
>>>>>> >>
>>>>>> >> Ok, let me know if your next compilation also is successful  
>>>>>> (at least the
>>>>>> >> file src/gl-render.cc). I is compiled without the three-dots- 
>>>>>> call of
>>>>>> >> gluTessCallback on your Mac.
>>>>>> >>
>>>>>> >>  Thomas
>>>>> >
>>>>> > With the liboctave fix, I'm now able to build octave again and  
>>>>> the fltk
>>>>> > backend actually functions for me!
> <snip>
>>> It looks like I am also seeing this issue of compiling gl- 
>>> render.cc on Mac.  Has the fix propogated to the primary octave  
>>> development branch?
>>>
>>> Jonathan
>> Yes
>
> Hmm, OK, but I am getting this error:
>
>
> g++ -c -I/opt/local/include -fPIC -I. -I../../src -I.. -I../ 
> liboctave -I../src -I../libcruft/misc -I../.. -I../../liboctave - 
> I../../src -I../../libcruft/misc  -DHAVE_CONFIG_H -mieee-fp -I/opt/ 
> local/include/freetype2 -I/opt/local/include -Wall -W -Wshadow -Wold- 
> style-cast -I/usr/local/include -I/opt/local/include ../../src/ 
> graphics.cc -o pic/graphics.o
> ../../src/gl-render.cc: In member function ‘virtual void  
> opengl_tesselator::init()’:
> ../../src/gl-render.cc:273: error: invalid conversion from ‘void (*) 
> ()’ to ‘GLvoid (*)(...)’
> ../../src/gl-render.cc:273: error:   initializing argument 3 of  
> ‘void gluTessCallback(GLUtesselator*, GLenum, GLvoid (*)(...))’
> ../../src/gl-render.cc:275: error: invalid conversion from ‘void (*) 
> ()’ to ‘GLvoid (*)(...)’
> ../../src/gl-render.cc:275: error:   initializing argument 3 of  
> ‘void gluTessCallback(GLUtesselator*, GLenum, GLvoid (*)(...))’
> ../../src/gl-render.cc:277: error: invalid conversion from ‘void (*) 
> ()’ to ‘GLvoid (*)(...)’
> ../../src/gl-render.cc:277: error:   initializing argument 3 of  
> ‘void gluTessCallback(GLUtesselator*, GLenum, GLvoid (*)(...))’
> ../../src/gl-render.cc:279: error: invalid conversion from ‘void (*) 
> ()’ to ‘GLvoid (*)(...)’
> ../../src/gl-render.cc:279: error:   initializing argument 3 of  
> ‘void gluTessCallback(GLUtesselator*, GLenum, GLvoid (*)(...))’
> ../../src/gl-render.cc:281: error: invalid conversion from ‘void (*) 
> ()’ to ‘GLvoid (*)(...)’
> ../../src/gl-render.cc:281: error:   initializing argument 3 of  
> ‘void gluTessCallback(GLUtesselator*, GLenum, GLvoid (*)(...))’
> ../../src/gl-render.cc:283: error: invalid conversion from ‘void (*) 
> ()’ to ‘GLvoid (*)(...)’
> ../../src/gl-render.cc:283: error:   initializing argument 3 of  
> ‘void gluTessCallback(GLUtesselator*, GLenum, GLvoid (*)(...))’
> ../../src/gl-render.cc: In member function ‘virtual void  
> opengl_renderer::draw(const axes::properties&)’:
> ../../src/gl-render.cc:595: error: invalid conversion from ‘int*’ to  
> ‘GLint*’
> ../../src/gl-render.cc:595: error:   initializing argument 2 of  
> ‘void glGetIntegerv(GLenum, GLint*)’
> ../../src/gl-render.cc: In member function ‘virtual void  
> opengl_renderer::init_marker(const std::string&, double, float)’:
> ../../src/gl-render.cc:2677: error: invalid conversion from ‘int*’  
> to ‘GLint*’
> ../../src/gl-render.cc:2677: error:   initializing argument 2 of  
> ‘void glGetIntegerv(GLenum, GLint*)’
> make[2]: *** [pic/gl-render.o] Error 1

I've started a fresh build and am now past liboctave and libcruft.

I can think two things that may be different (besides that I'm running  
10.5.6).

(1) I'm using Thomas' macro to make sure the OpenGL stuff is found.

http://www-old.cae.wisc.edu/pipermail/octave-maintainers/2009-February/010703.html

If you're not using it, give it a try. If you are, make sure you're  
not passing some OpenGL specifics to configure.

When running configure I pass the following options ...

./configure --prefix=/sw FLIBS=/sw/lib/gcc4.3/lib/libgfortran.dylib  
F77=/sw/bin/gfortran --infodir='${prefix}/share/info' --mandir='$ 
{prefix}/share/man' --libexecdir='${prefix}/lib' -enable-shared - 
enable-dl --disable-static --without-mpi --with-hdf5 --with-fftw  
CPPFLAGS="-g -I/sw/include -I/sw/include/freetype2" FFLAGS="-g -ff2c"  
LDFLAGS="-L/sw/lib/fltk-aqua/lib -L/sw/lib -lfltk_gl -lfltk -lpthread"  
$blas

where $blas points to vecLib and is defined as

blas='--with-lapack=-Wl,-framework,Accelerate,-dylib_file,/System/ 
Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/ 
vecLib.framework/Versions/A/libLAPACK.dylib:/System/Library/Frameworks/ 
Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/ 
libLAPACK.dylib --with-blas=-Wl,-framework,Accelerate,-dylib_file,/ 
System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/ 
vecLib.framework/Versions/A/libBLAS.dylib:/System/Library/Frameworks/ 
Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/ 
libBLAS.dylib'

Also notice I've setup things to work with the Fink package manager.

(2) I've also modified the tests for FTGL in configure.in

  707 #ifdef HAVE_FTGL_FTGL_H
  708 #ifdef HAVE_FTGL_UPPERCASE
  709 #include <FTGL/FTGL.h>
  710 #include <FTGL/FTGLTextureFont.h>
  711 #else
  712 #include <FTGL/ftgl.h>
  713 #include <FTGL/FTGLTextureFont.h>
  714 #endif
  715 #elif HAVE_FTGL_H
  716 #ifdef HAVE_FTGL_UPPERCASE
  717 #include <FTGL.h>
  718 #include <FTGLTextureFont.h>
  719 #else
  720 #include <ftgl.h>
  721 #include <FTGLTextureFont.h>
  722 #endif
  723 #endif], [

Ben




More information about the Octave-maintainers mailing list