Advertise on this site
Brought to you by the


POGL: Portable OpenGL APIs

POGL provides interfaces to support OpenGL APIs on languages that do not support C pointers. This is handled via suffixed APIs that support native-language references:
    _c APIs provides (CPTR) interfaces for languages (eg: Perl) that provide a means to pass around C pointers.
    _s APIs provides (PACKED) string interfaces for most other languages.
    _p are portable APIs that do not require passing pointers; instead, blocks of data may be passed around via (OGA) OpenGL::Array object references.

 glAccum - 1.0
glAccum($op, $value);


 glActiveStencilFaceEXT - GL_EXT_stencil_two_side

 glActiveTexture - 1.3

 glActiveTextureARB - GL_ARB_multitexture
glActiveTextureARB($texture);


 glAlphaFragmentOp1ATI - GL_ATI_fragment_shader

 glAlphaFragmentOp2ATI - GL_ATI_fragment_shader

 glAlphaFragmentOp3ATI - GL_ATI_fragment_shader

 glAlphaFunc - 1.0
glAlphaFunc($func, $ref);


 glApplyTextureEXT - GL_EXT_light_texture

 glAreProgramsResidentNV - GL_NV_vertex_program

 glAreTexturesResident - 1.0
glAreTexturesResident_c($n, (CPTR)textures, (CPTR)residences);

glAreTexturesResident_s($n, (PACKED)textures, (PACKED)residences);

(result,@residences) = glAreTexturesResident_p(@textureIDs);


 glAreTexturesResidentEXT - GL_EXT_texture_object

 glArrayElement - 1.0
glArrayElement($i);


 glArrayElementEXT - GL_EXT_vertex_array
glArrayElementEXT($i);


 glArrayObjectATI - GL_ATI_vertex_array_object

 glAsyncMarkerSGIX - GL_SGIX_async

 glAttachObjectARB - GL_ARB_shader_objects
glAttachObjectARB($containerObj, $obj);


 glAttachShader - 2.0

 glBegin - 1.0
glBegin($mode);


 glBeginFragmentShaderATI - GL_ATI_fragment_shader

 glBeginOcclusionQueryNV - GL_NV_occlusion_query

 glBeginQuery - 1.5

 glBeginQueryARB - GL_ARB_occlusion_query

 glBeginVertexShaderEXT - GL_EXT_vertex_shader

 glBindAttribLocation - 2.0

 glBindAttribLocationARB - GL_ARB_vertex_shader
glBindAttribLocationARB($programObj, $index, $name);


 glBindBuffer - 1.5

 glBindBufferARB - GL_ARB_vertex_buffer_object
glBindBufferARB($target,$buffer);


 glBindFragmentShaderATI - GL_ATI_fragment_shader

 glBindFramebufferEXT - GL_EXT_framebuffer_object
glBindFramebufferEXT($target,$framebuffer);


 glBindLightParameterEXT - GL_EXT_vertex_shader

 glBindMaterialParameterEXT - GL_EXT_vertex_shader

 glBindParameterEXT - GL_EXT_vertex_shader

 glBindProgramARB - GL_ARB_vertex_program
glBindProgramARB($target,$program);


 glBindProgramNV - GL_NV_vertex_program

 glBindRenderbufferEXT - GL_EXT_framebuffer_object
glBindRenderbufferEXT(target,renderbuffer);


 glBindTexGenParameterEXT - GL_EXT_vertex_shader

 glBindTexture - 1.0
glBindTexture($target, $texture);


 glBindTextureEXT - GL_EXT_texture_object

 glBindTextureUnitParameterEXT - GL_EXT_vertex_shader

 glBindVertexArrayAPPLE - GL_APPLE_vertex_array_object

 glBindVertexShaderEXT - GL_EXT_vertex_shader

 glBinormal3bEXT - GL_EXT_coordinate_frame

 glBinormal3bvEXT - GL_EXT_coordinate_frame

 glBinormal3dEXT - GL_EXT_coordinate_frame

 glBinormal3dvEXT - GL_EXT_coordinate_frame

 glBinormal3fEXT - GL_EXT_coordinate_frame

 glBinormal3fvEXT - GL_EXT_coordinate_frame

 glBinormal3iEXT - GL_EXT_coordinate_frame

 glBinormal3ivEXT - GL_EXT_coordinate_frame

 glBinormal3sEXT - GL_EXT_coordinate_frame

 glBinormal3svEXT - GL_EXT_coordinate_frame

 glBinormalPointerEXT - GL_EXT_coordinate_frame

 glBitmap - 1.0
glBitmap_c($width, $height, $xorig, $yorig, $xmove, $ymove, (CPTR)bitmap);

glBitmap_s($width, $height, $xorig, $yorig, $xmove, $ymove, (PACKED)bitmap);

glBitmap_p($width, $height, $xorig, $yorig, $xmove, $ymove, @bitmap);


 glBlendColor - 1.2
glBlendColor($red, $green, $blue, $alpha);


 glBlendColorEXT - GL_EXT_blend_color
glBlendColorEXT($red, $green, $blue, $alpha);


 glBlendEquation - 1.2
glBlendEquation($mode);


 glBlendEquationEXT - GL_EXT_blend_minmax
glBlendEquationEXT($mode);


 glBlendEquationSeparate - 2.0

 glBlendEquationSeparateEXT - GL_EXT_blend_equation_separate

 glBlendFunc - 1.0
glBlendFunc($sfactor, $dfactor);


 glBlendFuncSeparate - 1.4

 glBlendFuncSeparateEXT - GL_EXT_blend_func_separate

 glBlendFuncSeparateINGR - GL_INGR_blend_func_separate

 glBufferData - 1.5

 glBufferDataARB - GL_ARB_vertex_buffer_object
glBufferDataARB_c($target,$size,(CPTR)data,$usage);

glBufferDataARB_s($target,$size,(PACKED)data,$usage);

glBufferDataARB_p($target,(OGA)data,$usage);


 glBufferSubData - 1.5

 glBufferSubDataARB - GL_ARB_vertex_buffer_object
glBufferSubDataARB_c($target,$offset,$size,(CPTR)data);

glBufferSubDataARB_s($target,$offset,$size,(PACKED)data);

glBufferSubDataARB_p($target,$offset,(OGA)data);


 glCallList - 1.0
glCallList($list);


 glCallLists - 1.0
glCallLists_c($n, $type, (CPTR)lists);

glCallLists_s($n, $type, (PACKED)lists);

glCallLists_p(@lists);
Assumes GLint type


 glCheckFramebufferStatusEXT - GL_EXT_framebuffer_object
glCheckFramebufferStatusEXT($target);


 glClampColorARB - GL_ARB_color_buffer_float
glClampColorARB($target,$clamp);


 glClear - 1.0
glClear($mask);


 glClearAccum - 1.0
glClearAccum($red, $green, $blue, $alpha);


 glClearColor - 1.0
glClearColor($red, $green, $blue, $alpha);


 glClearDepth - 1.0
glClearDepth($depth);


 glClearIndex - 1.0
glClearIndex($c);


 glClearStencil - 1.0
glClearStencil($s);


 glClientActiveTexture - 1.3

 glClientActiveTextureARB - GL_ARB_multitexture
glClientActiveTextureARB($texture);


 glClientActiveVertexStreamATI - GL_ATI_vertex_streams

 glClipPlane - 1.0
glClipPlane_c($plane, (CPTR)eqn);

glClipPlane_s($plane, (PACKED)eqn);

glClipPlane_p($plane, $eqn0, $eqn1, $eqn2, $eqn3);


 glColor3b - 1.0
glColor3b($red, $green, $blue);


 glColor3bv - 1.0
glColor3bv_c((CPTR)v);

glColor3bv_s((PACKED)v);

glColor3bv_p($red, $green, $blue, $alpha);


 glColor3d - 1.0
glColor3d($red, $green, $blue);


 glColor3dv - 1.0
glColor3dv_c((CPTR)v);

glColor3dv_s((PACKED)v);

glColor3dv_p($red, $green, $blue, $alpha);


 glColor3f - 1.0
glColor3f($red, $green, $blue);


 glColor3fVertex3fSUN - GL_SUN_vertex

 glColor3fVertex3fvSUN - GL_SUN_vertex

 glColor3fv - 1.0
glColor3fv_c((CPTR)v);

glColor3fv_s((PACKED)v);

glColor3fv_p($red, $green, $blue, $alpha);


 glColor3hNV - GL_NV_half_float

 glColor3hvNV - GL_NV_half_float

 glColor3i - 1.0
glColor3i($red, $green, $blue);


 glColor3iv - 1.0
glColor3iv_c((CPTR)v);

glColor3iv_s((PACKED)v);

glColor3iv_p($red, $green, $blue, $alpha);


 glColor3s - 1.0
glColor3s($red, $green, $blue);


 glColor3sv - 1.0
glColor3sv_c((CPTR)v);

glColor3sv_s((PACKED)v);

glColor3sv_p($red, $green, $blue, $alpha);


 glColor3ub - 1.0
glColor3ub($red, $green, $blue);


 glColor3ubv - 1.0
glColor3ubv_c((CPTR)v);

glColor3ubv_s((PACKED)v);

glColor3ubv_p($red, $green, $blue, $alpha);


 glColor3ui - 1.0
glColor3ui($red, $green, $blue);


 glColor3uiv - 1.0
glColor3uiv_c((CPTR)v);

glColor3uiv_s((PACKED)v);

glColor3uiv_p($red, $green, $blue, $alpha);


 glColor3us - 1.0
glColor3us($red, $green, $blue);


 glColor3usv - 1.0
glColor3usv_c((CPTR)v);

glColor3usv_s((PACKED)v);

glColor3usv_p($red, $green, $blue, $alpha);


 glColor4b - 1.0
glColor4b($red, $green, $blue, $alpha);


 glColor4bv - 1.0
glColor4bv_c((CPTR)v);

glColor4bv_s((PACKED)v);


 glColor4d - 1.0
glColor4d($red, $green, $blue, $alpha);


 glColor4dv - 1.0
glColor4dv_c((CPTR)v);

glColor4dv_s((PACKED)v);


 glColor4f - 1.0
glColor4f($red, $green, $blue, $alpha);


 glColor4fNormal3fVertex3fSUN - GL_SUN_vertex

 glColor4fNormal3fVertex3fvSUN - GL_SUN_vertex

 glColor4fv - 1.0
glColor4fv_c((CPTR)v);

glColor4fv_s((PACKED)v);


 glColor4hNV - GL_NV_half_float

 glColor4hvNV - GL_NV_half_float

 glColor4i - 1.0
glColor4i($red, $green, $blue, $alpha);


 glColor4iv - 1.0
glColor4iv_c((CPTR)v);

glColor4iv_s((PACKED)v);


 glColor4s - 1.0
glColor4s($red, $green, $blue, $alpha);


 glColor4sv - 1.0
glColor4sv_c((CPTR)v);

glColor4sv_s((PACKED)v);


 glColor4ub - 1.0
glColor4ub(red, green, blue, alpha);


 glColor4ubVertex2fSUN - GL_SUN_vertex

 glColor4ubVertex2fvSUN - GL_SUN_vertex

 glColor4ubVertex3fSUN - GL_SUN_vertex

 glColor4ubVertex3fvSUN - GL_SUN_vertex

 glColor4ubv - 1.0
glColor4ubv_c((CPTR)v);

glColor4ubv_s((PACKED)v);


 glColor4ui - 1.0
glColor4ui($red, $green, $blue, $alpha);


 glColor4uiv - 1.0
glColor4uiv_c((CPTR)v);

glColor4uiv_s((PACKED)v);


 glColor4us - 1.0
glColor4us($red, $green, $blue, $alpha);


 glColor4usv - 1.0
glColor4usv_c((CPTR)v);

glColor4usv_s((PACKED)v);


 glColorFragmentOp1ATI - GL_ATI_fragment_shader

 glColorFragmentOp2ATI - GL_ATI_fragment_shader

 glColorFragmentOp3ATI - GL_ATI_fragment_shader

 glColorMask - 1.0
glColorMask($red, $green, $blue, $alpha);


 glColorMaterial - 1.0
glColorMaterial($face, $mode);


 glColorPointer - 1.0
glColorPointer_c($size, $type, $stride, (CPTR)pointer);

glColorPointer_s($size, $type, $stride, (PACKED)pointer);

glColorPointer_p($size, $type, $stride, (OGA)pointer);


 glColorPointerEXT - GL_EXT_vertex_array
glColorPointerEXT_c($size, $type, $stride, $count, (CPTR)pointer);

glColorPointerEXT_s($size, $type, $stride, $count, (PACKED)pointer);

glColorPointerEXT_p($size, (OGA)pointer);


 glColorPointerListIBM - GL_IBM_vertex_array_lists

 glColorPointervINTEL - GL_INTEL_parallel_arrays

 glColorSubTable - 1.2

 glColorSubTableEXT - GL_EXT_color_subtable

 glColorTable - 1.2

 glColorTableEXT - GL_EXT_paletted_texture

 glColorTableParameterfv - 1.2

 glColorTableParameterfvSGI - GL_SGI_color_table

 glColorTableParameteriv - 1.2

 glColorTableParameterivSGI - GL_SGI_color_table

 glColorTableSGI - GL_SGI_color_table

 glCombinerInputNV - GL_NV_register_combiners

 glCombinerOutputNV - GL_NV_register_combiners

 glCombinerParameterfNV - GL_NV_register_combiners

 glCombinerParameterfvNV - GL_NV_register_combiners

 glCombinerParameteriNV - GL_NV_register_combiners

 glCombinerParameterivNV - GL_NV_register_combiners

 glCombinerStageParameterfvNV - GL_NV_register_combiners2

 glCompileShader - 2.0

 glCompileShaderARB - GL_ARB_shader_objects
glCompileShaderARB($shaderObj);


 glCompressedTexImage1D - 1.3

 glCompressedTexImage1DARB - GL_ARB_texture_compression

 glCompressedTexImage2D - 1.3

 glCompressedTexImage2DARB - GL_ARB_texture_compression

 glCompressedTexImage3D - 1.3

 glCompressedTexImage3DARB - GL_ARB_texture_compression

 glCompressedTexSubImage1D - 1.3

 glCompressedTexSubImage1DARB - GL_ARB_texture_compression

 glCompressedTexSubImage2D - 1.3

 glCompressedTexSubImage2DARB - GL_ARB_texture_compression

 glCompressedTexSubImage3D - 1.3

 glCompressedTexSubImage3DARB - GL_ARB_texture_compression

 glConvolutionFilter1D - 1.2

 glConvolutionFilter1DEXT - GL_EXT_convolution

 glConvolutionFilter2D - 1.2

 glConvolutionFilter2DEXT - GL_EXT_convolution

 glConvolutionParameterf - 1.2

 glConvolutionParameterfEXT - GL_EXT_convolution

 glConvolutionParameterfv - 1.2

 glConvolutionParameterfvEXT - GL_EXT_convolution

 glConvolutionParameteri - 1.2

 glConvolutionParameteriEXT - GL_EXT_convolution

 glConvolutionParameteriv - 1.2

 glConvolutionParameterivEXT - GL_EXT_convolution

 glCopyColorSubTable - 1.2

 glCopyColorSubTableEXT - GL_EXT_color_subtable

 glCopyColorTable - 1.2

 glCopyColorTableSGI - GL_SGI_color_table

 glCopyConvolutionFilter1D - 1.2

 glCopyConvolutionFilter1DEXT - GL_EXT_convolution

 glCopyConvolutionFilter2D - 1.2

 glCopyConvolutionFilter2DEXT - GL_EXT_convolution

 glCopyPixels - 1.0
glCopyPixels($x, $y, $width, $height, $type);


 glCopyTexImage1D - 1.0
glCopyTexImage1D($target, $level, $internalFormat, $x, $y, $width, $border);


 glCopyTexImage1DEXT - GL_EXT_copy_texture

 glCopyTexImage2D - 1.0
glCopyTexImage2D($target, $level, $internalFormat, $x, $y, $width, $height, $border);


 glCopyTexImage2DEXT - GL_EXT_copy_texture

 glCopyTexSubImage1D - 1.0
glCopyTexSubImage1D($target, $level, $xoffset, $x, $y, $width);


 glCopyTexSubImage1DEXT - GL_EXT_copy_texture

 glCopyTexSubImage2D - 1.0
glCopyTexSubImage2D($target, $level, $xoffset, $yoffset, $x, $y, $width, $height);


 glCopyTexSubImage2DEXT - GL_EXT_copy_texture

 glCopyTexSubImage3D - 1.2
glCopyTexSubImage3D($target, $level, $xoffset, $yoffset, $zoffset, $x, $y, $width, $height);


 glCopyTexSubImage3DEXT - GL_EXT_copy_texture

 glCreateProgram - 2.0

 glCreateProgramObjectARB - GL_ARB_shader_objects
$obj = glCreateProgramObjectARB();


 glCreateShader - 2.0

 glCreateShaderObjectARB - GL_ARB_shader_objects
glCreateShaderObjectARB($shaderType);


 glCullFace - 1.0
glCullFace($mode);


 glCullParameterdvEXT - GL_EXT_cull_vertex

 glCullParameterfvEXT - GL_EXT_cull_vertex

 glCurrentPaletteMatrixARB - GL_ARB_matrix_palette

 glDeformSGIX - GL_SGIX_polynomial_ffd

 glDeformationMap3dSGIX - GL_SGIX_polynomial_ffd

 glDeformationMap3fSGIX - GL_SGIX_polynomial_ffd

 glDeleteAsyncMarkersSGIX - GL_SGIX_async

 glDeleteBuffers - 1.5

 glDeleteBuffersARB - GL_ARB_vertex_buffer_object
glDeleteBuffersARB_c($n,(CPTR)buffers);

glDeleteBuffersARB_s($n,(PACKED)buffers);

glDeleteBuffersARB_p(@buffers);


 glDeleteFencesAPPLE - GL_APPLE_fence

 glDeleteFencesNV - GL_NV_fence

 glDeleteFragmentShaderATI - GL_ATI_fragment_shader

 glDeleteFramebuffersEXT - GL_EXT_framebuffer_object
glDeleteFramebuffersEXT_c($n,(CPTR)framebuffers);

glDeleteFramebuffersEXT_s($n,(PACKED)framebuffers);

glDeleteFramebuffersEXT_p(@framebuffers);


 glDeleteLists - 1.0
glDeleteLists($list, $range);


 glDeleteObjectARB - GL_ARB_shader_objects
glDeleteObjectARB($obj);


 glDeleteOcclusionQueriesNV - GL_NV_occlusion_query

 glDeleteProgram - 2.0

 glDeleteProgramsARB - GL_ARB_vertex_program
glDeleteProgramsARB_c($n,(PACKED)programs);

glDeleteProgramsARB_p(@programIDs);


 glDeleteProgramsNV - GL_NV_vertex_program

 glDeleteQueries - 1.5

 glDeleteQueriesARB - GL_ARB_occlusion_query

 glDeleteRenderbuffersEXT - GL_EXT_framebuffer_object
glDeleteRenderbuffersEXT_c($n,(CPTR)renderbuffers);

glDeleteRenderbuffersEXT_s($n,(PACKED)renderbuffers);

glDeleteRenderbuffersEXT_p(@renderbuffers);


 glDeleteShader - 2.0

 glDeleteTextures - 1.0
glDeleteTextures_c($items, (CPTR)list);

glDeleteTextures_s($items, (PACKED)list);

glDeleteTextures_p(@textureIDs);


 glDeleteTexturesEXT - GL_EXT_texture_object

 glDeleteVertexArraysAPPLE - GL_APPLE_vertex_array_object

 glDeleteVertexShaderEXT - GL_EXT_vertex_shader

 glDepthBoundsEXT - GL_EXT_depth_bounds_test

 glDepthFunc - 1.0
glDepthFunc($func);


 glDepthMask - 1.0
glDepthMask($flag);


 glDepthRange - 1.0
glDepthRange($zNear, $zFar);


 glDetachObjectARB - GL_ARB_shader_objects
glDetachObjectARB($containerObj, $attachedObj);


 glDetachShader - 2.0

 glDetailTexFuncSGIS - GL_SGIS_detail_texture

 glDisable - 1.0
glDisable($cap);


 glDisableClientState - 1.0
glDisableClientState($cap);