From: Kartik Thakore Date: Sun, 2 Aug 2009 14:37:56 +0000 (-0400) Subject: Merge branch 'patch' X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=1a54b647a438acdcbd5d6e86f2d2e159fa692a6c;hp=83bbf9fc7391cc24f2d048df0e33d963861aeb1f;p=sdlgit%2FSDL_perl.git Merge branch 'patch' --- diff --git a/src/OpenGL.xs b/src/OpenGL.xs index 7d89a19..5dddb06 100644 --- a/src/OpenGL.xs +++ b/src/OpenGL.xs @@ -14,6 +14,7 @@ #include #include +#include #ifdef USE_THREADS #define HAVE_TLS_CONTEXT @@ -709,6 +710,12 @@ glGet ( param ) croak("Unknown glGet parameter!"); } +const char * glGetString ( name ) + GLenum name + CODE: + RETVAL = (const char *)glGetString (name); + OUTPUT: + RETVAL Uint32 glIsEnabled ( cap ) @@ -1226,16 +1233,24 @@ glCallListsString ( string ) glCallLists(len,GL_BYTE,str); void -glRasterPos ( x, y, z, ... ) +glRasterPos ( x, y, ... ) double x double y - double z CODE: - if ( items == 4 ) { - double w = SvNV(ST(3)); - glRasterPos4d(x,y,z,w); - } else { - glRasterPos3d(x,y,z); + if (items == 2) + { + glRasterPos2d (x,y); + } + else if (items == 3) + { + double z = SvNV (ST(2)); + glRasterPos3d (x,y,z); + } + else if (items == 4) + { + double z = SvNV (ST(2)); + double w = SvNV (ST(3)); + glRasterPos4d (x,y,z,w); } void @@ -2704,5 +2719,87 @@ gluTessVertex ( tessobj, coords, vd ) #endif +GLUquadric * +gluNewQuadric () + CODE: + RETVAL = gluNewQuadric (); + OUTPUT: + RETVAL + +void +gluDeleteQuadric (quad) + GLUquadric *quad + CODE: + gluDeleteQuadric(quad); + +void +gluQuadricNormals ( quad, normal ) + GLUquadric *quad + GLenum normal + CODE: + gluQuadricNormals(quad, normal); + + +void +gluQuadricTexture ( quad, texture ) + GLUquadric *quad + GLboolean texture + CODE: + gluQuadricTexture ( quad, texture ); + +void +gluCylinder ( quad, base, top, height, slices, stacks ) + GLUquadric *quad + GLdouble base + GLdouble top + GLdouble height + GLint slices + GLint stacks + CODE: + gluCylinder ( quad, base, top, height, slices, stacks ); + +void +gluDisk ( quad, inner, outer, slices, loops ) + GLUquadric *quad + GLdouble inner + GLdouble outer + GLint slices + GLint loops + CODE: + gluDisk ( quad, inner, outer, slices, loops ); + +void +gluPartialDisk ( quad, inner, outer, slices, loops, start, sweep ) + GLUquadric *quad + GLdouble inner + GLdouble outer + GLint slices + GLint loops + GLdouble start + GLdouble sweep + + CODE: + gluPartialDisk ( quad, inner, outer, slices, loops, start, sweep ); + +void +gluSphere ( quad, radius, slices, stacks ) + GLUquadric *quad + GLdouble radius + GLint slices + GLint stacks + CODE: + gluSphere ( quad, radius, slices, stacks ); + + + +void +glXUseXFont ( font, first, count, list_base ) + Font font + int first + int count + int list_base + CODE: + glXUseXFont ( font, first, count, list_base ); + #endif diff --git a/t/opengl.t b/t/opengl.t index 58f7fcd..4b51c0b 100644 --- a/t/opengl.t +++ b/t/opengl.t @@ -15,7 +15,7 @@ use SDL::Config; use Test::More; if ( SDL::Config->has('GL') && SDL::Config->has('GLU') ) { - plan ( tests => 3 ); + plan ( tests => 4 ); } else { plan ( skip_all => 'OpenGL support not compiled' ); } @@ -36,6 +36,7 @@ can_ok('main', qw/ glFrontFace glFrustum glGet + glGetString glLight glLoadIdentity glMap1 @@ -64,4 +65,14 @@ can_ok('main',qw/ gluNurbsCurve gluNurbsProperty gluNurbsSurface - gluPwlCurve /); + gluPwlCurve + gluNewQuadric + gluDeleteQuadric + gluQuadricNormals + gluQuadricTexture + gluCylinder + gluDisk + gluPartialDisk + gluSphere /); + +can_ok('main',qw/glXUseXFont/); diff --git a/typemap b/typemap index e970268..18d0bd5 100644 --- a/typemap +++ b/typemap @@ -59,7 +59,10 @@ GLint* T_PTR float * T_PTR float T_NV GLfloat T_NV +GLUquadric * T_PTR +GLdouble T_NV Sound_DecoderInfo * T_PTR const Sound_DecoderInfo * T_PTR Sound_Sample * T_PTR Sound_AudioInfo * T_PTR +Font T_IV