From: Nobuyuki Horie Date: 2001-09-13T10:52:35+09:00 Subject: [ruby-talk:21179] Re: OpenGL under windows Hello, I am using it with mswin32 version of Ruby. (rbogl-0.32a.tgz package) I compiled it with MS VC++ v.6.0, but I need some patch for compiling as follows; -- opengl.mswin32.diff -- diff -bBurN opengl/extconf.rb opengl.win/extconf.rb --- opengl/extconf.rb Mon Apr 30 14:33:09 2001 +++ opengl.win/extconf.rb Thu Sep 13 10:45:34 2001 @@ -24,6 +24,11 @@ gl_libname = "opengl32" glu_libname = "glu32" glut_libname = "glut32" +elsif (/mswin32/ =~ PLATFORM) + $CFLAGS="-DWIN32" + gl_libname = "opengl32" + glu_libname = "glu32" + glut_libname = "glut32" else $CFLAGS += " -I." diff -bBurN opengl/glu.c opengl.win/glu.c --- opengl/glu.c Mon Apr 30 13:10:30 2001 +++ opengl.win/glu.c Thu Sep 13 10:45:34 2001 @@ -9,6 +9,12 @@ #include "GL/glu.h" #include "rbogl.h" +#ifdef WIN32 +typedef void (CALLBACK*(VOIDFUNC))(); +#else +typedef void (*VOIDFUNC)(); +#endif + #if defined(GLU_VERSION_1_2) typedef GLUtesselator tesselatorObj; #else /* GLU_VERSION_1_2 */ @@ -784,7 +790,7 @@ if (NIL_P(arg3)) gluTessCallback(tdata->tobj, type, NULL); else - gluTessCallback(tdata->tobj, type, t_begin); + gluTessCallback(tdata->tobj, type, (VOIDFUNC)(t_begin)); break; #if defined(GLU_VERSION_1_2) case GLU_TESS_EDGE_FLAG: @@ -795,7 +801,7 @@ if (NIL_P(arg3)) gluTessCallback(tdata->tobj, type, NULL); else - gluTessCallback(tdata->tobj, type, t_edgeFlag); + gluTessCallback(tdata->tobj, type, (VOIDFUNC)(t_edgeFlag)); break; #if defined(GLU_VERSION_1_2) case GLU_TESS_VERTEX: @@ -806,7 +812,7 @@ if (NIL_P(arg3)) gluTessCallback(tdata->tobj, type, NULL); else - gluTessCallback(tdata->tobj, type, t_vertex); + gluTessCallback(tdata->tobj, type, (VOIDFUNC)(t_vertex)); break; #if defined(GLU_VERSION_1_2) case GLU_TESS_END: @@ -817,7 +823,7 @@ if (NIL_P(arg3)) gluTessCallback(tdata->tobj, type, NULL); else - gluTessCallback(tdata->tobj, type, t_end); + gluTessCallback(tdata->tobj, type, (VOIDFUNC)(t_end)); break; #if defined(GLU_VERSION_1_2) case GLU_TESS_ERROR: @@ -828,7 +834,7 @@ if (NIL_P(arg3)) gluTessCallback(tdata->tobj, type, NULL); else - gluTessCallback(tdata->tobj, type, t_error); + gluTessCallback(tdata->tobj, type, (VOIDFUNC)(t_error)); break; #if defined(GLU_VERSION_1_2) case GLU_TESS_COMBINE: @@ -836,49 +842,49 @@ if (NIL_P(arg3)) gluTessCallback(tdata->tobj, type, NULL); else - gluTessCallback(tdata->tobj, type, t_combine); + gluTessCallback(tdata->tobj, type, (VOIDFUNC)(t_combine)); break; case GLU_TESS_BEGIN_DATA: rb_ary_store(tdata->t_ref, TESS_BEGIN_DATA, arg3); if (NIL_P(arg3)) gluTessCallback(tdata->tobj, type, NULL); else - gluTessCallback(tdata->tobj, type, t_begin_data); + gluTessCallback(tdata->tobj, type, (VOIDFUNC)(t_begin_data)); break; case GLU_TESS_VERTEX_DATA: rb_ary_store(tdata->t_ref, TESS_VERTEX_DATA, arg3); if (NIL_P(arg3)) gluTessCallback(tdata->tobj, type, NULL); else - gluTessCallback(tdata->tobj, type, t_vertex_data); + gluTessCallback(tdata->tobj, type, (VOIDFUNC)(t_vertex_data)); break; case GLU_TESS_END_DATA: rb_ary_store(tdata->t_ref, TESS_END_DATA, arg3); if (NIL_P(arg3)) gluTessCallback(tdata->tobj, type, NULL); else - gluTessCallback(tdata->tobj, type, t_end_data); + gluTessCallback(tdata->tobj, type, (VOIDFUNC)(t_end_data)); break; case GLU_TESS_ERROR_DATA: rb_ary_store(tdata->t_ref, TESS_ERROR_DATA, arg3); if (NIL_P(arg3)) gluTessCallback(tdata->tobj, type, NULL); else - gluTessCallback(tdata->tobj, type, t_error_data); + gluTessCallback(tdata->tobj, type, (VOIDFUNC)(t_error_data)); break; case GLU_TESS_EDGE_FLAG_DATA: rb_ary_store(tdata->t_ref, TESS_EDGE_DATA, arg3); if (NIL_P(arg3)) gluTessCallback(tdata->tobj, type, NULL); else - gluTessCallback(tdata->tobj, type, t_edgeFlag_data); + gluTessCallback(tdata->tobj, type, (VOIDFUNC)(t_edgeFlag_data)); break; case GLU_TESS_COMBINE_DATA: rb_ary_store(tdata->t_ref, TESS_COMBINE_DATA, arg3); if (NIL_P(arg3)) gluTessCallback(tdata->tobj, type, NULL); else - gluTessCallback(tdata->tobj, type, t_combine_data); + gluTessCallback(tdata->tobj, type, (VOIDFUNC)(t_combine_data)); break; #endif /* GLU_VERSION_1_2 */ } -- end -- On 2001 September 13 Thursday 05:18, you wrote: > I need to get the OpenGL module from the RAA working in a MS-Windows > environment. Has anyone already done this and can you share how you did > it? Nobuyuki. -- ************************************** Nobuyuki Horie, Ph.D. Lab. Genetic Engineering/Univ. of Shizuoka mail: horie@smail.u-shizuoka-ken.ac.jp home page: http://www.u-shizuoka-ken.ac.jp