Acme-MITHALDU-BleedingOpenGL
view release on metacpan or search on metacpan
BleedingOpenGL.pm view on Meta::CPAN
# Copyright (c) 2009 Christopher Marshall. All rights reserved.
# Copyright (c) 2015 Bob Free. All rights reserved.
# Copyright (c) 2016 Chris Marshall. All rights reserved.
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
=head1 NAME
Acme::MITHALDU::BleedingOpenG - bleeding edge OpenGL experiments - you WILL get cut
=head1 DESCRIPTION
This is a fork of the official L<OpenGL> in which i implement modern OpenGL
functions not available in L<OpenGL> crudely, cluelessly and without any error
checking. The only reason this is on CPAN is to make development of
L<Microidium|https://github.com/wchristian/Microidium> a little easier.
You'd be insane to use this. I make no guarantees to not break this horribly at
any point.
Seriously, just use L<OpenGL>.
(PS: I'll probably be force-pushing the repo at various points too.)
=cut
require Exporter;
require DynaLoader;
use Carp;
$VERSION = '0.67049';
$BUILD_VERSION = $XS_VERSION = $VERSION;
$VERSION = eval($VERSION);
@ISA = qw(Exporter AutoLoader DynaLoader);
our $gl_version;
our $glext_installed = {};
# Implemented extensions and their dependencies
our $glext_dependencies =
{
GL_ARB_color_buffer_float=>'2.0', #39
GL_ARB_depth_texture=>'1.1', #22
GL_ARB_draw_buffers=>'1.3', #37
GL_ARB_fragment_program=>'1.4;ARB_vertex_program', #27
GL_ARB_fragment_program_shadow=>'1.4;ARB_fragment_program,ARB_shadow', #36
GL_ARB_fragment_shader=>'1.4;ARB_shader_objects', #32
GL_ARB_half_float_pixel=>'1.5', #40
GL_ARB_multisample=>'1.0', #5
GL_ARB_multitexture=>'1.1', # Moved to 1.2.1
GL_ARB_pixel_buffer_object=>'1.5', #42
GL_ARB_point_parameters=>'1.0', #14
GL_ARB_point_sprite=>'1.4', #35
GL_ARB_shading_language_100=>'1.4;ARB_shader_objects,ARB_fragment_shader,ARB_vertex_shader', #33
GL_ARB_shader_objects=>'1.4', #30
GL_ARB_shadow=>'1.1;ARB_depth_texture', #23
GL_ARB_shadow_ambient=>'1.1;ARB_shadow,ARB_depth_texture', #23
GL_ARB_texture_border_clamp=>'1.0', #13
GL_ARB_texture_cube_map=>'1.0', #7
GL_ARB_texture_env_add=>'1.0', #6
GL_ARB_texture_env_combine=>'1.1;ARB_multitexture', #17
GL_ARB_texture_env_dot3=>'1.1;ARB_multitexture,ARB_texture_env_combine', #19
GL_ARB_texture_float=>'1.1', #41
GL_ARB_texture_mirrored_repeat=>'1.0', #21
GL_ARB_texture_non_power_of_two=>'1.4', #34
GL_ARB_texture_rectangle=>'1.1', #38
GL_ARB_vertex_buffer_object=>'1.4', #28
GL_ARB_vertex_program=>'1.3', #26
GL_ARB_vertex_shader=>'1.4;ARB_shader_objects', #31
GL_ATI_texture_float=>'1.1', #280
GL_ATI_texture_mirror_once=>'1.0;EXT_texture3D', #221
GL_EXT_abgr=>'1.0', #1
GL_EXT_bgra=>'1.0', #129
GL_EXT_blend_color=>'1.0', #2
GL_EXT_blend_subtract=>'1.0', #38
GL_EXT_Cg_shader=>'1.0;ARB_shader_objects', #???
GL_EXT_copy_texture=>'1.0', #10
GL_EXT_framebuffer_object=>'1.1', #310
GL_EXT_packed_pixels=>'1.0', #23
GL_EXT_pixel_buffer_object=>'1.0', #???
GL_EXT_rescale_normal=>'1.0', #27
GL_EXT_separate_specular_color=>'1.0', #144
GL_EXT_shadow_funcs=>'1.1;ARB_depth_texture,ARB_shadow', #267
GL_EXT_stencil_wrap=>'1.0', #176
GL_EXT_subtexture=>'1.0', #9
GL_EXT_texture=>'1.0', #4
GL_EXT_texture3D=>'1.1;EXT_abgr', #6
GL_EXT_texture_cube_map=>'1.0', #6
GL_EXT_texture_env_combine=>'1.0', #158
GL_EXT_texture_env_dot3=>'1.0;EXT_texture_env_combine', #220
GL_EXT_texture_filter_anisotropic=>'1.0', #187
GL_EXT_texture_lod_bias=>'1.0', #186
GL_EXT_texture_mirror_clamp=>'1.0', #298
GL_EXT_vertex_array=>'1.0', #30
GL_HP_occlusion_test=>'1.0', #137
GL_IBM_rasterpos_clip=>'1.0', #110
GL_NV_blend_square=>'1.0', #194
GL_NV_copy_depth_to_color=>'1.0;NV_packed_depth_stencil', #243
GL_NV_depth_clamp=>'1.0', #260
GL_NV_fog_distance=>'1.0', #192
GL_NV_fragment_program_option=>'1.0;ARB_fragment_program', #303
GL_NV_fragment_program2=>'1.0;ARB_fragment_program,NV_fragment_program_option', #304
GL_NV_light_max_exponent=>'1.0', #189
GL_NV_multisample_filter_hint=>'1.0;ARB_multisample', #259
GL_NV_packed_depth_stencil=>'1.0', #226
GL_NV_texgen_reflection=>'1.0', #179
GL_NV_texture_compression_vtc=>'1.0;ARB_texture_compression,EXT_texture_compression_s3tc,ARB_texture_non_power_of_two', #228
GL_NV_texture_expand_normal=>'1.1', #286
GL_NV_texture_rectangle=>'1.0', #229
GL_NV_texture_shader=>'1.0;ARB_multitexture,ARB_texture_cube_map', #230
GL_NV_texture_shader2=>'1.0;NV_texture_shader', #231
GL_NV_texture_shader3=>'1.0;NV_texture_shader2', #265
GL_NV_vertex_program1_1=>'1.0;NV_vertex_program', #266
GL_NV_vertex_program2=>'1.0;NV_vertex_program', #287
GL_NV_vertex_program2_option=>'1.0;ARB_vertex_program', #305
GL_NV_vertex_program3=>'1.0;ARB_vertex_program,NV_vertex_program2_option', #306
GL_S3_s3tc=>'1.1', #276
GL_SGIS_generate_mipmap=>'1.1', #32
GL_SGIS_texture_lod=>'1.1', #24
GL_SGIX_depth_texture=>'1.1', #63
GL_SGIX_shadow=>'1.0', #34
GL_SUN_slice_accum=>'1.0' #258
};
@gl_func = qw(
glAccum
glAlphaFunc
glAreTexturesResident_s
glAreTexturesResident_c
glAreTexturesResident_p
glArrayElement
glBegin
glEnd
glBindTexture
glBitmap_s
glBitmap_c
glBitmap_p
glBlendFunc
glCallList
glCallLists_s
glCallLists_c
glCallLists_p
glClear
glClearAccum
glClearColor
glClearDepth
glClearIndex
glClearStencil
glClipPlane_p
glClipPlane_s
glClipPlane_c
glColorMask
glColorMaterial
glColorPointer_c
glColorPointer_s
glColorPointer_p
glCopyPixels
glCopyTexImage1D
glCopyTexImage2D
glCopyTexSubImage1D
glCopyTexSubImage2D
glCopyTexSubImage3D
glCullFace
glDeleteLists
glDeleteTextures_s
glDeleteTextures_c
glDeleteTextures_p
glDepthFunc
glDepthMask
glDepthRange
glDrawArrays
glDrawBuffer
glDrawBuffers_s
glDrawBuffers_c
glDrawBuffers_p
glDrawBuffersARB_s
glDrawBuffersARB_c
glDrawBuffersARB_p
glDrawElements_s
glDrawElements_c
glDrawElements_p
glDrawPixels_s
glDrawPixels_c
glDrawPixels_p
glDrawRangeElements_s
glDrawRangeElements_c
glDrawRangeElements_p
glEdgeFlag
glEdgeFlagPointer_c
glEdgeFlagPointer_s
glEdgeFlagPointer_p
glEnable
glDisable
glEnableClientState
glDisableClientState
glEvalCoord1d
glEvalCoord1f
BleedingOpenGL.pm view on Meta::CPAN
glCopyTexImage1DEXT
glCopyTexImage2DEXT
glCopyTexSubImage1DEXT
glCopyTexSubImage2DEXT
glCopyTexSubImage3DEXT
glBlendEquationEXT
glBlendColorEXT
glArrayElementEXT
glDrawArraysEXT
glVertexPointerEXT_c
glVertexPointerEXT_s
glVertexPointerEXT_p
glNormalPointerEXT_c
glNormalPointerEXT_s
glNormalPointerEXT_p
glColorPointerEXT_c
glColorPointerEXT_s
glColorPointerEXT_p
glIndexPointerEXT_c
glIndexPointerEXT_s
glIndexPointerEXT_p
glTexCoordPointerEXT_c
glTexCoordPointerEXT_s
glTexCoordPointerEXT_p
glEdgeFlagPointerEXT_c
glEdgeFlagPointerEXT_s
glEdgeFlagPointerEXT_p
glWindowPos2iMESA
glWindowPos2dMESA
glWindowPos3iMESA
glWindowPos3dMESA
glWindowPos4iMESA
glWindowPos4dMESA
glResizeBuffersMESA
glIsRenderbufferEXT
glBindRenderbufferEXT
glDeleteRenderbuffersEXT_c
glDeleteRenderbuffersEXT_s
glDeleteRenderbuffersEXT_p
glGenRenderbuffersEXT_c
glGenRenderbuffersEXT_s
glGenRenderbuffersEXT_p
glRenderbufferStorageEXT
glGetRenderbufferParameterivEXT_c
glGetRenderbufferParameterivEXT_s
glIsFramebufferEXT
glBindFramebufferEXT
glDeleteFramebuffersEXT_c
glDeleteFramebuffersEXT_s
glDeleteFramebuffersEXT_p
glGenFramebuffersEXT_c
glGenFramebuffersEXT_s
glGenFramebuffersEXT_p
glCheckFramebufferStatusEXT
glFramebufferTexture1DEXT
glFramebufferTexture2DEXT
glFramebufferTexture3DEXT
glFramebufferRenderbufferEXT
glGetFramebufferAttachmentParameterivEXT_c
glGetFramebufferAttachmentParameterivEXT_s
glGenerateMipmapEXT
glVertexAttrib1dARB
glVertexAttrib1dvARB_c
glVertexAttrib1dvARB_s
glVertexAttrib1dvARB_p
glVertexAttrib1fARB
glVertexAttrib1fvARB_c
glVertexAttrib1fvARB_s
glVertexAttrib1fvARB_p
glVertexAttrib1sARB
glVertexAttrib1svARB_c
glVertexAttrib1svARB_s
glVertexAttrib1svARB_p
glVertexAttrib2dARB
glVertexAttrib2dvARB_c
glVertexAttrib2dvARB_s
glVertexAttrib2dvARB_p
glVertexAttrib2fARB
glVertexAttrib2fvARB_c
glVertexAttrib2fvARB_s
glVertexAttrib2fvARB_p
glVertexAttrib2sARB
glVertexAttrib2svARB_c
glVertexAttrib2svARB_s
glVertexAttrib2svARB_p
glVertexAttrib3dARB
glVertexAttrib3dvARB_c
glVertexAttrib3dvARB_s
glVertexAttrib3dvARB_p
glVertexAttrib3fARB
glVertexAttrib3fvARB_c
glVertexAttrib3fvARB_s
glVertexAttrib3fvARB_p
glVertexAttrib3sARB
glVertexAttrib3svARB_c
glVertexAttrib3svARB_s
glVertexAttrib3svARB_p
glVertexAttrib4NbvARB_c
glVertexAttrib4NbvARB_s
glVertexAttrib4NbvARB_p
glVertexAttrib4NivARB_c
glVertexAttrib4NivARB_s
glVertexAttrib4NivARB_p
glVertexAttrib4NsvARB_c
glVertexAttrib4NsvARB_s
glVertexAttrib4NsvARB_p
glVertexAttrib4NubARB
glVertexAttrib4NubvARB_c
glVertexAttrib4NubvARB_s
glVertexAttrib4NubvARB_p
glVertexAttrib4NuivARB_c
glVertexAttrib4NuivARB_s
glVertexAttrib4NuivARB_p
glVertexAttrib4NusvARB_c
glVertexAttrib4NusvARB_s
glVertexAttrib4NusvARB_p
glVertexAttrib4bvARB_c
glVertexAttrib4bvARB_s
glVertexAttrib4bvARB_p
glVertexAttrib4dARB
glVertexAttrib4dvARB_c
BleedingOpenGL.pm view on Meta::CPAN
glProgramEnvParameter4fvARB_c
glProgramEnvParameter4fvARB_s
glProgramEnvParameter4fvARB_p
glProgramLocalParameter4dARB
glProgramLocalParameter4dvARB_c
glProgramLocalParameter4dvARB_s
glProgramLocalParameter4dvARB_p
glProgramLocalParameter4fARB
glProgramLocalParameter4fvARB_c
glProgramLocalParameter4fvARB_s
glProgramLocalParameter4fvARB_p
glGetProgramEnvParameterdvARB_c
glGetProgramEnvParameterdvARB_s
glGetProgramEnvParameterdvARB_p
glGetProgramEnvParameterfvARB_c
glGetProgramEnvParameterfvARB_s
glGetProgramEnvParameterfvARB_p
glGetProgramLocalParameterdvARB_c
glGetProgramLocalParameterdvARB_s
glGetProgramLocalParameterdvARB_p
glGetProgramLocalParameterfvARB_c
glGetProgramLocalParameterfvARB_s
glGetProgramLocalParameterfvARB_p
glGetProgramivARB_c
glGetProgramivARB_s
glGetProgramivARB_p
glGetProgramStringARB_c
glGetProgramStringARB_s
glGetProgramStringARB_p
glGetVertexAttribdvARB_c
glGetVertexAttribdvARB_s
glGetVertexAttribdvARB_p
glGetVertexAttribfvARB_c
glGetVertexAttribfvARB_s
glGetVertexAttribfvARB_p
glGetVertexAttribivARB_c
glGetVertexAttribivARB_s
glGetVertexAttribivARB_p
glGetVertexAttribPointervARB_c
glGetVertexAttribPointervARB_p
glIsProgramARB
glBindBufferARB
glDeleteBuffersARB_c
glDeleteBuffersARB_s
glDeleteBuffersARB_p
glGenBuffersARB_c
glGenBuffersARB_s
glGenBuffersARB_p
glIsBufferARB
glBufferDataARB_c
glBufferDataARB_s
glBufferDataARB_p
glBufferSubDataARB_c
glBufferSubDataARB_s
glBufferSubDataARB_p
glGetBufferSubDataARB_c
glGetBufferSubDataARB_s
glGetBufferSubDataARB_p
glMapBufferARB_c
glMapBufferARB_p
glUnmapBufferARB
glGetBufferParameterivARB_c
glGetBufferParameterivARB_s
glGetBufferParameterivARB_p
glGetBufferPointervARB_c
glGetBufferPointervARB_s
glGetBufferPointervARB_p
glActiveTextureARB
glClientActiveTextureARB
glMultiTexCoord1dARB
glMultiTexCoord1dvARB_c
glMultiTexCoord1dvARB_s
glMultiTexCoord1dvARB_p
glMultiTexCoord1fARB
glMultiTexCoord1fvARB_c
glMultiTexCoord1fvARB_s
glMultiTexCoord1fvARB_p
glMultiTexCoord1iARB
glMultiTexCoord1ivARB_c
glMultiTexCoord1ivARB_s
glMultiTexCoord1ivARB_p
glMultiTexCoord1sARB
glMultiTexCoord1svARB_c
glMultiTexCoord1svARB_s
glMultiTexCoord1svARB_p
glMultiTexCoord2dARB
glMultiTexCoord2dvARB_c
glMultiTexCoord2dvARB_s
glMultiTexCoord2dvARB_p
glMultiTexCoord2fARB
glMultiTexCoord2fvARB_c
glMultiTexCoord2fvARB_s
glMultiTexCoord2fvARB_p
glMultiTexCoord2iARB
glMultiTexCoord2ivARB_c
glMultiTexCoord2ivARB_s
glMultiTexCoord2ivARB_p
glMultiTexCoord2sARB
glMultiTexCoord2svARB_c
glMultiTexCoord2svARB_s
glMultiTexCoord2svARB_p
glMultiTexCoord3dARB
glMultiTexCoord3dvARB_c
glMultiTexCoord3dvARB_s
glMultiTexCoord3dvARB_p
glMultiTexCoord3fARB
glMultiTexCoord3fvARB_c
glMultiTexCoord3fvARB_s
glMultiTexCoord3fvARB_p
glMultiTexCoord3iARB
glMultiTexCoord3ivARB_c
glMultiTexCoord3ivARB_s
glMultiTexCoord3ivARB_p
glMultiTexCoord3sARB
glMultiTexCoord3svARB_c
glMultiTexCoord3svARB_s
glMultiTexCoord3svARB_p
glMultiTexCoord4dARB
glMultiTexCoord4dvARB_c
glMultiTexCoord4dvARB_s
glMultiTexCoord4dvARB_p
BleedingOpenGL.pm view on Meta::CPAN
glGetAttachedObjectsARB_c
glGetAttachedObjectsARB_s
glGetAttachedObjectsARB_p
glGetUniformLocationARB_c
glGetUniformLocationARB_p
glGetActiveUniformARB_c
glGetActiveUniformARB_s
glGetActiveUniformARB_p
glGetUniformfvARB_c
glGetUniformfvARB_p
glGetUniformivARB_c
glGetUniformivARB_p
glGetShaderSourceARB_c
glGetShaderSourceARB_p
glBindAttribLocationARB
glGetActiveAttribARB_c
glGetActiveAttribARB_s
glGetActiveAttribARB_p
glGetAttribLocationARB_c
glGetAttribLocationARB_p
glPointParameterfARB
glPointParameterfvARB_c
glPointParameterfvARB_s
glPointParameterfvARB_p
glSampleCoverageARB
glClampColorARB
glpHasGLUT
glpCheckExtension
glpFullScreen
glpRestoreScreen
);
# gl_func
# gltut
push @gl_func, qw(
glGenVertexArrays_p
glBindVertexArray
glAttachShader
glDeleteShader
glGetShaderiv_p
glGetShaderInfoLog_p
glGetProgramiv_p
glDrawElementsBaseVertex_c
glGenQueries_p
glDeleteQueries
glBeginQuery
glEndQuery
glGetQueryObjectiv
glGetQueryObjectuiv
glGetQueryiv
);
@glu_func = qw(
gluBeginCurve
gluBeginPolygon
gluBeginSurface
gluBeginTrim
gluBuild1DMipmaps_c
gluBuild1DMipmaps_s
gluBuild2DMipmaps_c
gluBuild2DMipmaps_s
gluCylinder
gluDeleteNurbsRenderer
gluDeleteQuadric
gluDeleteTess
gluDisk
gluEndCurve
gluEndPolygon
gluEndSurface
gluEndTrim
gluErrorString
gluGetNurbsProperty_p
gluGetString
gluGetTessProperty_p
gluLoadSamplingMatrices_p
gluLookAt
gluNewNurbsRenderer
gluNewQuadric
gluNewTess
gluNextContour
gluNurbsCurve_c
gluNurbsSurface_c
gluOrtho2D
gluPartialDisk
gluPerspective
gluPickMatrix_p
gluProject_p
gluPwlCurve_c
gluQuadricDrawStyle
gluQuadricNormals
gluQuadricOrientation
gluQuadricTexture
gluScaleImage_s
gluSphere
gluTessBeginContour
gluTessBeginPolygon
gluTessCallback
gluTessEndContour
gluTessEndPolygon
gluTessNormal
gluTessProperty
gluTessVertex_p
gluUnProject_p
);
@glut_func = qw(
done_glutInit
glutAddMenuEntry
glutAddSubMenu
glutAttachMenu
glutBitmapCharacter
glutBitmapHeight
glutBitmapLength
glutBitmapString
glutBitmapWidth
glutButtonBoxFunc
glutChangeToMenuEntry
glutChangeToSubMenu
glutCloseFunc
glutCopyColormap
glutCreateMenu
glutCreateSubWindow
glutCreateWindow
glutDestroyMenu
glutDestroyWindow
glutDetachMenu
glutDeviceGet
glutDialsFunc
glutDisplayFunc
glutEnterGameMode
glutEntryFunc
glutEstablishOverlay
glutExtensionSupported
glutForceJoystickFunc
glutFullScreen
glutGameModeGet
glutGameModeString
glutGet
glutGetColor
glutGetMenu
glutGetModifiers
glutGetWindow
glutHideOverlay
glutHideWindow
glutIconifyWindow
glutIdleFunc
glutIgnoreKeyRepeat
glutInit
glutInitDisplayMode
glutInitDisplayString
glutInitWindowPosition
glutInitWindowSize
glutKeyboardFunc
glutKeyboardUpFunc
glutLayerGet
glutLeaveGameMode
glutLeaveMainLoop
glutMainLoop
glutMainLoopEvent
glutMenuDestroyFunc
glutMenuStateFunc
glutMenuStatusFunc
glutMotionFunc
glutMouseFunc
glutMouseWheelFunc
glutOverlayDisplayFunc
glutPassiveMotionFunc
glutPopWindow
glutPositionWindow
glutPostOverlayRedisplay
glutPostRedisplay
glutPostWindowOverlayRedisplay
glutPostWindowRedisplay
glutPushWindow
glutRemoveMenuItem
glutRemoveOverlay
glutReportErrors
glutReshapeFunc
glutReshapeWindow
glutSetColor
BleedingOpenGL.pm view on Meta::CPAN
GLUT_CURSOR_INHERIT
GLUT_CURSOR_NONE
GLUT_CURSOR_FULL_CROSSHAIR
GLUT_ACTION_EXIT
GLUT_ACTION_GLUTMAINLOOP_RETURNS
GLUT_ACTION_CONTINUE_EXECUTION
GLUT_ACTION_ON_WINDOW_CLOSE
GLUT_GAME_MODE_ACTIVE
GLUT_GAME_MODE_POSSIBLE
GLUT_GAME_MODE_WIDTH
GLUT_GAME_MODE_HEIGHT
GLUT_GAME_MODE_PIXEL_DEPTH
GLUT_GAME_MODE_REFRESH_RATE
GLUT_GAME_MODE_DISPLAY_CHANGED
GLUT_CORE_PROFILE
GLUT_DEBUG
);
@glx_const = qw(
GLX_USE_GL
GLX_BUFFER_SIZE
GLX_LEVEL
GLX_RGBA
GLX_DOUBLEBUFFER
GLX_STEREO
GLX_AUX_BUFFERS
GLX_RED_SIZE
GLX_GREEN_SIZE
GLX_BLUE_SIZE
GLX_ALPHA_SIZE
GLX_DEPTH_SIZE
GLX_STENCIL_SIZE
GLX_ACCUM_RED_SIZE
GLX_ACCUM_GREEN_SIZE
GLX_ACCUM_BLUE_SIZE
GLX_ACCUM_ALPHA_SIZE
GLX_X_VISUAL_TYPE_EXT
GLX_TRANSPARENT_TYPE_EXT
GLX_TRANSPARENT_INDEX_VALUE_EXT
GLX_TRANSPARENT_RED_VALUE_EXT
GLX_TRANSPARENT_GREEN_VALUE_EXT
GLX_TRANSPARENT_BLUE_VALUE_EXT
GLX_TRANSPARENT_ALPHA_VALUE_EXT
X_PROTOCOL
X_PROTOCOL_REVISION
NoEventMask
KeyPressMask
KeyReleaseMask
ButtonPressMask
ButtonReleaseMask
EnterWindowMask
LeaveWindowMask
PointerMotionMask
PointerMotionHintMask
Button1MotionMask
Button2MotionMask
Button3MotionMask
Button4MotionMask
Button5MotionMask
ButtonMotionMask
KeymapStateMask
ExposureMask
VisibilityChangeMask
StructureNotifyMask
ResizeRedirectMask
SubstructureNotifyMask
SubstructureRedirectMask
FocusChangeMask
PropertyChangeMask
ColormapChangeMask
OwnerGrabButtonMask
KeyPress
KeyRelease
ButtonPress
ButtonRelease
MotionNotify
EnterNotify
LeaveNotify
FocusIn
FocusOut
KeymapNotify
Expose
GraphicsExpose
NoExpose
VisibilityNotify
CreateNotify
DestroyNotify
UnmapNotify
MapNotify
MapRequest
ReparentNotify
ConfigureNotify
ConfigureRequest
GravityNotify
ResizeRequest
CirculateNotify
CirculateRequest
PropertyNotify
SelectionClear
SelectionRequest
SelectionNotify
ColormapNotify
ClientMessage
MappingNotify
LASTEvent
ShiftMask
LockMask
ControlMask
Mod1Mask
Mod2Mask
Mod3Mask
Mod4Mask
Mod5Mask
ShiftMapIndex
LockMapIndex
ControlMapIndex
Mod1MapIndex
Mod2MapIndex
Mod3MapIndex
Mod4MapIndex
Mod5MapIndex
Button1Mask
Button2Mask
Button3Mask
Button4Mask
Button5Mask
AnyModifier
Button1
Button2
Button3
Button4
Button5
NotifyNormal
NotifyGrab
NotifyUngrab
NotifyWhileGrabbed
NotifyHint
NotifyAncestor
NotifyVirtual
NotifyInferior
NotifyNonlinear
NotifyNonlinearVirtual
NotifyPointer
NotifyPointerRoot
NotifyDetailNone
VisibilityUnobscured
VisibilityPartiallyObscured
VisibilityFullyObscured
PlaceOnTop
PlaceOnBottom
FamilyInternet
FamilyDECnet
FamilyChaos
PropertyNewValue
PropertyDelete
ColormapUninstalled
ColormapInstalled
GrabModeSync
GrabModeAsync
GrabSuccess
AlreadyGrabbed
GrabInvalidTime
GrabNotViewable
GrabFrozen
AsyncPointer
SyncPointer
ReplayPointer
AsyncKeyboard
SyncKeyboard
ReplayKeyboard
AsyncBoth
SyncBoth
StaticGray
GrayScale
StaticColor
PseudoColor
TrueColor
DirectColor
);
# Items to export into callers namespace by default. Note: do not export
# names by default without a very good reason. Use EXPORT_OK instead.
# Do not simply export all your public functions/methods/constants.
@oldfunctions = qw(
glpOpenWindow
glpMainLoop
glpMoveResizeWindow
glpMoveWindow
glpResizeWindow
glpDisplay
glXSwapBuffers
XPending
glpXNextEvent
glpXQueryPointer
glpFlush
glpSolidSphere
glpReadTex
glpClipPlane
glpGetClipPlane
glpLoadMatrixf glpLoadMatrixd glpMultMatrixf glpMultMatrixd
gluOrtho2D
gluPerspective
gluLookAt
glAccum
glAlphaFunc
glBegin
glBitmap
glBlendColorEXT
glBlendEquationEXT
glBlendFunc
glCallList
glCallLists
glClear
glClearAccum
glClearColor
glClearDepth
glClearIndex
glClearStencil
glClipPlane
glColor3b
glColor3bv
glColor3d
glColor3dv
glColor3f
glColor3fv
glColor3i
glColor3iv
glColor3s
glColor3sv
glColor3ub
glColor3ubv
glColor3ui
glColor3uiv
glColor3us
glColor3usv
glColor4b
glColor4bv
glColor4d
glColor4dv
glColor4f
glColor4fv
glColor4i
glColor4iv
glColor4s
glColor4sv
glColor4ub
glColor4ubv
glColor4ui
glColor4uiv
glColor4us
glColor4usv
glColorMask
glColorMaterial
glConvolutionFilter1DEXT
glConvolutionFilter2DEXT
glConvolutionParameterfEXT
glConvolutionParameterfvEXT
glConvolutionParameteriEXT
glConvolutionParameterivEXT
glCopyConvolutionFilter1DEXT
glCopyConvolutionFilter2DEXT
glCopyPixels
glCullFace
glDeleteLists
glDepthFunc
glDepthMask
glDepthRange
BleedingOpenGL.pm view on Meta::CPAN
glTexGendv
glTexGenf
glTexGenfv
glTexGeni
glTexGeniv
glTexImage1D
glTexImage2D
glTexImage3DEXT
glTexParameterf
glTexParameterfv
glTexParameteri
glTexParameteriv
glTexSubImage1DEXT
glTexSubImage2DEXT
glTexSubImage3DEXT
glTranslated
glTranslatef
glVertex2d
glVertex2dv
glVertex2f
glVertex2fv
glVertex2i
glVertex2iv
glVertex2s
glVertex2sv
glVertex3d
glVertex3dv
glVertex3f
glVertex3fv
glVertex3i
glVertex3iv
glVertex3s
glVertex3sv
glVertex4d
glVertex4dv
glVertex4f
glVertex4fv
glVertex4i
glVertex4iv
glVertex4s
glVertex4sv
glViewport
X_PROTOCOL
X_PROTOCOL_REVISION
NoEventMask
KeyPressMask
KeyReleaseMask
ButtonPressMask
ButtonReleaseMask
EnterWindowMask
LeaveWindowMask
PointerMotionMask
PointerMotionHintMask
Button1MotionMask
Button2MotionMask
Button3MotionMask
Button4MotionMask
Button5MotionMask
ButtonMotionMask
KeymapStateMask
ExposureMask
VisibilityChangeMask
StructureNotifyMask
ResizeRedirectMask
SubstructureNotifyMask
SubstructureRedirectMask
FocusChangeMask
PropertyChangeMask
ColormapChangeMask
OwnerGrabButtonMask
KeyPress
KeyRelease
ButtonPress
ButtonRelease
MotionNotify
EnterNotify
LeaveNotify
FocusIn
FocusOut
KeymapNotify
Expose
GraphicsExpose
NoExpose
VisibilityNotify
CreateNotify
DestroyNotify
UnmapNotify
MapNotify
MapRequest
ReparentNotify
ConfigureNotify
ConfigureRequest
GravityNotify
ResizeRequest
CirculateNotify
CirculateRequest
PropertyNotify
SelectionClear
SelectionRequest
SelectionNotify
ColormapNotify
ClientMessage
MappingNotify
LASTEvent
ShiftMask
LockMask
ControlMask
Mod1Mask
Mod2Mask
Mod3Mask
Mod4Mask
Mod5Mask
ShiftMapIndex
LockMapIndex
ControlMapIndex
Mod1MapIndex
Mod2MapIndex
Mod3MapIndex
Mod4MapIndex
Mod5MapIndex
Button1Mask
Button2Mask
Button3Mask
Button4Mask
Button5Mask
AnyModifier
Button1
Button2
Button3
Button4
Button5
NotifyNormal
NotifyGrab
NotifyUngrab
NotifyWhileGrabbed
NotifyHint
NotifyAncestor
NotifyVirtual
NotifyInferior
NotifyNonlinear
NotifyNonlinearVirtual
NotifyPointer
NotifyPointerRoot
NotifyDetailNone
VisibilityUnobscured
VisibilityPartiallyObscured
VisibilityFullyObscured
PlaceOnTop
PlaceOnBottom
FamilyInternet
FamilyDECnet
FamilyChaos
PropertyNewValue
PropertyDelete
ColormapUninstalled
ColormapInstalled
GrabModeSync
GrabModeAsync
GrabSuccess
AlreadyGrabbed
GrabInvalidTime
GrabNotViewable
GrabFrozen
AsyncPointer
SyncPointer
ReplayPointer
AsyncKeyboard
SyncKeyboard
ReplayKeyboard
AsyncBoth
SyncBoth
StaticGray
GrayScale
StaticColor
PseudoColor
TrueColor
DirectColor
);
@oldconstants = qw(
GL_CURRENT_BIT
GL_POINT_BIT
GL_LINE_BIT
GL_POLYGON_BIT
GL_POLYGON_STIPPLE_BIT
GL_PIXEL_MODE_BIT
GL_LIGHTING_BIT
GL_FOG_BIT
GL_DEPTH_BUFFER_BIT
GL_ACCUM_BUFFER_BIT
GL_STENCIL_BUFFER_BIT
GL_VIEWPORT_BIT
GL_TRANSFORM_BIT
GL_ENABLE_BIT
GL_COLOR_BUFFER_BIT
GL_HINT_BIT
GL_EVAL_BIT
GL_LIST_BIT
GL_TEXTURE_BIT
GL_SCISSOR_BIT
GL_ALL_ATTRIB_BITS
GL_FALSE
GL_TRUE
GL_POINTS
GL_LINES
GL_LINE_LOOP
GL_LINE_STRIP
GL_TRIANGLES
GL_TRIANGLE_STRIP
GL_TRIANGLE_FAN
GL_QUADS
GL_QUAD_STRIP
GL_POLYGON
GL_ACCUM
GL_LOAD
GL_RETURN
BleedingOpenGL.pm view on Meta::CPAN
GL_MAX_3D_TEXTURE_SIZE_EXT
GL_DETAIL_TEXTURE_2D_SGIS
GL_DETAIL_TEXTURE_2D_BINDING_SGIS
GL_LINEAR_DETAIL_SGIS
GL_LINEAR_DETAIL_ALPHA_SGIS
GL_LINEAR_DETAIL_COLOR_SGIS
GL_DETAIL_TEXTURE_LEVEL_SGIS
GL_DETAIL_TEXTURE_MODE_SGIS
GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS
GL_MULTISAMPLE_BIT_EXT
GL_MULTISAMPLE_SGIS
GL_SAMPLE_ALPHA_TO_MASK_SGIS
GL_SAMPLE_ALPHA_TO_ONE_SGIS
GL_SAMPLE_MASK_SGIS
GL_1PASS_SGIS
GL_2PASS_0_SGIS
GL_2PASS_1_SGIS
GL_4PASS_0_SGIS
GL_4PASS_1_SGIS
GL_4PASS_2_SGIS
GL_4PASS_3_SGIS
GL_SAMPLE_BUFFERS_SGIS
GL_SAMPLES_SGIS
GL_SAMPLE_MASK_VALUE_SGIS
GL_SAMPLE_MASK_INVERT_SGIS
GL_SAMPLE_PATTERN_SGIS
GL_LINEAR_SHARPEN_SGIS
GL_LINEAR_SHARPEN_ALPHA_SGIS
GL_LINEAR_SHARPEN_COLOR_SGIS
GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS
GLX_USE_GL
GLX_BUFFER_SIZE
GLX_LEVEL
GLX_RGBA
GLX_DOUBLEBUFFER
GLX_STEREO
GLX_AUX_BUFFERS
GLX_RED_SIZE
GLX_GREEN_SIZE
GLX_BLUE_SIZE
GLX_ALPHA_SIZE
GLX_DEPTH_SIZE
GLX_STENCIL_SIZE
GLX_ACCUM_RED_SIZE
GLX_ACCUM_GREEN_SIZE
GLX_ACCUM_BLUE_SIZE
GLX_ACCUM_ALPHA_SIZE
GLX_SAMPLES_SGIS
GLX_SAMPLE_BUFFER_SGIS
GLX_BAD_SCREEN
GLX_BAD_ATTRIBUTE
GLX_NO_EXTENSION
GLX_BAD_VISUAL
GLX_BAD_CONTEXT
GLX_BAD_VALUE
GLX_BAD_ENUM
GLXBadContext
GLXBadContextState
GLXBadDrawable
GLXBadPixmap
GLXBadContextTag
GLXBadCurrentWindow
GLXBadRenderRequest
GLXBadLargeRequest
GLXUnsupportedPrivateRequest
__GLX_NUMBER_ERRORS
__GLX_NUMBER_EVENTS
GLX_EXTENSION_NAME
GLX_EXTENSION_ALIAS
GLX_VENDOR
GLX_VERSION
GLX_EXTENSIONS
GLX_SGI_swap_control
GLX_SGI_video_sync
GLX_SGIS_multisample
GLX_SWAP_DEFAULT_SGI
GLX_SWAP_MUXPIPE_SGI
GLX_SWAP_GANG_SGI
GLX_MUXPIPE0_SGI
GLX_MUXPIPE1_SGI
GLX_MUXPIPE2_SGI
GLU_VERSION_1_1
GLU_INVALID_ENUM
GLU_INVALID_VALUE
GLU_OUT_OF_MEMORY
GLU_INCOMPATIBLE_GL_VERSION
GLU_VERSION
GLU_EXTENSIONS
GLU_TRUE
GLU_FALSE
GLU_SMOOTH
GLU_FLAT
GLU_NONE
GLU_POINT
GLU_LINE
GLU_FILL
GLU_SILHOUETTE
GLU_OUTSIDE
GLU_INSIDE
GLU_BEGIN
GLU_VERTEX
GLU_END
GLU_ERROR
GLU_EDGE_FLAG
GLU_CW
GLU_CCW
GLU_INTERIOR
GLU_EXTERIOR
GLU_UNKNOWN
GLU_TESS_ERROR1
GLU_TESS_ERROR2
GLU_TESS_ERROR3
GLU_TESS_ERROR4
GLU_TESS_ERROR5
GLU_TESS_ERROR6
GLU_TESS_ERROR7
GLU_TESS_ERROR8
GLU_AUTO_LOAD_MATRIX
GLU_CULLING
BleedingOpenGL.pm view on Meta::CPAN
GLU_PARAMETRIC_ERROR
GLU_DOMAIN_DISTANCE
GLU_MAP1_TRIM_2
GLU_MAP1_TRIM_3
GLU_OUTLINE_POLYGON
GLU_OUTLINE_PATCH
GLU_NURBS_ERROR1
GLU_NURBS_ERROR2
GLU_NURBS_ERROR3
GLU_NURBS_ERROR4
GLU_NURBS_ERROR5
GLU_NURBS_ERROR6
GLU_NURBS_ERROR7
GLU_NURBS_ERROR8
GLU_NURBS_ERROR9
GLU_NURBS_ERROR10
GLU_NURBS_ERROR11
GLU_NURBS_ERROR12
GLU_NURBS_ERROR13
GLU_NURBS_ERROR14
GLU_NURBS_ERROR15
GLU_NURBS_ERROR16
GLU_NURBS_ERROR17
GLU_NURBS_ERROR18
GLU_NURBS_ERROR19
GLU_NURBS_ERROR20
GLU_NURBS_ERROR21
GLU_NURBS_ERROR22
GLU_NURBS_ERROR23
GLU_NURBS_ERROR24
GLU_NURBS_ERROR25
GLU_NURBS_ERROR26
GLU_NURBS_ERROR27
GLU_NURBS_ERROR28
GLU_NURBS_ERROR29
GLU_NURBS_ERROR30
GLU_NURBS_ERROR31
GLU_NURBS_ERROR32
GLU_NURBS_ERROR33
GLU_NURBS_ERROR34
GLU_NURBS_ERROR35
GLU_NURBS_ERROR36
GLU_NURBS_ERROR37
);
@EXPORT = (@oldfunctions, @oldconstants);
# Other items we are prepared to export if requested
@EXPORT_OK = (@gl_extensions, @gl_func, @glu_func, @glut_func, @glx_func, @gl_const, @glu_const, @glut_const, @glx_const);
@constants = (@gl_const, @glu_const, @glut_const, @glx_const);
@functions = (@gl_func, @glu_func, @glut_func, @glx_func);
%EXPORT_TAGS = ('constants' => \@constants, 'functions' => \@functions, 'all' => \@EXPORT_OK, 'old' => \@EXPORT,
'glconstants' => \@gl_const, 'gluconstants' => \@glu_const, 'glutconstants' => \@glut_const, 'glxconstants' => \@glx_const,
'glfunctions' => \@gl_func, 'glufunctions' => \@glu_func, 'glutfunctions' => \@glut_func, 'glxfunctions' => \@glx_func,
'oldfunctions' => \@oldfunctions, 'oldconstants' => \@oldconstants,
);
@rename_old = qw(
glBitmap
glCallLists
glClipPlane
glColor3bv
glColor3dv
glColor3fv
glColor3iv
glColor3sv
glColor3ubv
glColor3uiv
glColor3usv
glColor4bv
glColor4dv
glColor4fv
glColor4iv
glColor4sv
glColor4ubv
glColor4uiv
glColor4usv
glConvolutionFilter1DEXT
glConvolutionFilter2DEXT
glConvolutionParameterfvEXT
glConvolutionParameterivEXT
glDetailTexFuncSGIS
glDrawPixels
glEvalCoord1dv
glEvalCoord1fv
glEvalCoord2dv
glEvalCoord2fv
glFeedbackBuffer
glFogfv
glFogiv
glGetBooleanv
glGetClipPlane
glGetConvolutionFilterEXT
glGetConvolutionParameterfvEXT
glGetConvolutionParameterivEXT
glGetDetailTexFuncSGIS
glGetDoublev
glGetFloatv
glGetHistogramEXT
glGetHistogramParameterfvEXT
glGetHistogramParameterivEXT
glGetIntegerv
glGetLightfv
glGetLightiv
glGetMapdv
glGetMapfv
glGetMapiv
glGetMaterialfv
glGetMaterialiv
glGetMinmaxEXT
glGetMinmaxParameterfvEXT
glGetMinmaxParameterivEXT
glGetPixelMapfv
glGetPixelMapuiv
glGetPixelMapusv
glGetPolygonStipple
glGetSeparableFilterEXT
glGetSharpenTexFuncSGIS
glGetTexEnvfv
BleedingOpenGL.pm view on Meta::CPAN
glRectfv
glRectiv
glRectsv
glSeparableFilter2DEXT
glSharpenTexFuncSGIS
glTexCoord1dv
glTexCoord1fv
glTexCoord1iv
glTexCoord1sv
glTexCoord2dv
glTexCoord2fv
glTexCoord2iv
glTexCoord2sv
glTexCoord3dv
glTexCoord3fv
glTexCoord3iv
glTexCoord3sv
glTexCoord4dv
glTexCoord4fv
glTexCoord4iv
glTexCoord4sv
glTexEnvfv
glTexEnviv
glTexGendv
glTexGenfv
glTexGeniv
glTexImage1D
glTexImage2D
glTexImage3DEXT
glTexParameterfv
glTexParameteriv
glTexSubImage1DEXT
glTexSubImage2DEXT
glTexSubImage3DEXT
glTranslated
glTranslatef
glVertex2dv
glVertex2fv
glVertex2iv
glVertex2sv
glVertex3dv
glVertex3fv
glVertex3iv
glVertex3sv
glVertex4dv
glVertex4fv
glVertex4iv
glVertex4sv
glViewport
);
sub AUTOLOAD {
# This AUTOLOAD is used to 'autoload' constants from the constant()
# XS function. If a constant is not found then control is passed
# to the AUTOLOAD in AutoLoader.
# NOTE: THIS AUTOLOAD FUNCTION IS FLAWED (but is the best we can do for now).
# Avoid old-style ``&CONST'' usage. Either remove the ``&'' or add ``()''.
if (@_ > 0) {
# Is it an old OpenGL-0.4 function? If so, remap it to newer variant
local($constname);
($constname = $AUTOLOAD) =~ s/.*:://;
if (grep ($_ eq $constname, @rename_old)) {
eval "sub $AUTOLOAD { $AUTOLOAD" . "_s(\@_) }";
goto &$AUTOLOAD;
}
$AutoLoader::AUTOLOAD = $AUTOLOAD;
goto &AutoLoader::AUTOLOAD;
}
local($constname);
($constname = $AUTOLOAD) =~ s/.*:://;
$val = constant($constname, @_ ? $_[0] : 0);
if (not defined $val) {
if ($! =~ /Invalid/) {
$AutoLoader::AUTOLOAD = $AUTOLOAD;
goto &AutoLoader::AUTOLOAD;
}
else {
($pack,$file,$line) = caller;
die "Your vendor has not defined OpenGL macro $constname, used at $file line $line.
";
}
}
eval "sub $AUTOLOAD { $val }";
goto &$AUTOLOAD;
}
bootstrap Acme::MITHALDU::BleedingOpenGL;
*OpenGL::Array::CLONE_SKIP = sub { 1 }; # OpenGL::Array is not thread safe
*OpenGL::Matrix::CLONE_SKIP = sub { 1 }; # OpenGL::Matrix is not thread safe
# The following material is directly copied from Stan Melax's original OpenGL-0.4
# (with modifications for OS/2).
%window_defaults=(
'x' => 0,
'y' => 0,
'width' => 500,
'height' => 500,
'parent' => 0,
'steal' => 0,
'mask' => (_have_glx() ? StructureNotifyMask() : 0),
'attributes'=> [],
);
sub glpOpenWindow {
# default values
my(%a) = @_;
my(%p) = %window_defaults;
foreach $k (keys(%a)){
exists($p{$k}) || warn "Not a valid parameter to glpOpenWindow: `$k'\n";
#print "parameter $k now ",$a{$k}," was ",$p{$k},"\n";
$p{$k} = $a{$k};
}
#
# glpcOpenWindow() no longer exported. Use fully qualified
# package name or (better!) glpOpenWindow()
BleedingOpenGL.pm view on Meta::CPAN
return $params;
}
sub glpRestoreScreen
{
my($params) = @_;
glutPositionWindow($params->{original_x},$params->{original_y});
glutReshapeWindow($params->{original_w},$params->{original_h});
glutPostRedisplay();
}
sub glpCheckExtension
{
my(@extensions) = @_;
# Get/cache OpenGL Version
if (!$gl_version)
{
$gl_version = glGetString(0x1F02); #GL_VERSION
return 'Unable to retrieve OpenGL version; need context?' if (!$gl_version);
}
return "Not a numeric version: '$version'" if ($gl_version !~ m|^(\d+\.\d+)|);
$gl_version = $1;
# Get/cache OpenGL Extension Installations
if (!scalar(%$glext_installed))
{
my $inst = glGetString(0x1F03); #GL_EXTENSIONS
foreach my $ext (split(' ',$inst))
{
$glext_installed->{$ext} = $glext_dependencies->{$ext} || 0;
}
}
if (!scalar(%$glext_installed))
{
return 'Unable to retrieve extensions; need context?'
}
foreach my $ext (@extensions)
{
return "$ext not installed" if (!defined($glext_installed->{$ext}));
# Check implementation
my($ver,$deps) = split(';',$glext_installed->{$ext});
return "$ext not implemented" if (!$ver);
return "Needs at least OpenGL $ver" if ($gl_version < $ver);
next if (!$deps);
# Check dependencies
foreach my $dep (split(',',$deps))
{
my $stat = glpCheckExtension("GL_$dep");
return "Depends on $deps" if ($stat);
}
}
return 0;
}
use Import::Into;
*OpenGL::import = sub {
my %known = map { $_ => 1 } qw (OpenGL::Shader::Objects OpenGL::Shader::GLSL OpenGL::Shader::CG OpenGL::Shader::ARB OpenGL::Image::Magick OpenGL::Image::Targa);
shift;
my $target = caller;
die "use Acme::MITHALDU::BleedingOpenGL" if !$known{$target};
__PACKAGE__->import::into($target, @_);
};
$INC{"OpenGL.pm"} = 1;
#OpenGL::Array helper methods for normalizing names and chaining operations
@OpenGL::Matrix::ISA = 'OpenGL::Array';
1;
__END__
( run in 0.572 second using v1.01-cache-2.11-cpan-39bf76dae61 )