Acme-MITHALDU-BleedingOpenGL
view release on metacpan or search on metacpan
Copyright (c) 1998,1999 Kenneth Albanowski. All rights reserved.
Copyright (c) 2000 Ilya Zakharevich. All rights reserved.
Copyright (c) 2007 Bob Free. All rights reserved.
Copyright (c) 2009-2013 Chris 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.
Perl OpenGL: a.k.a. POGL
As of OpenGL-0.57 POGL now requires FreeGLUT (GLUT on Mac OS X)
for full functionality:
http://freeglut.sourceforge.net/
This was due to licensing constraints and lack of window close events
in GLUT. Efforts are being made to support the original GLUT with
reduced functionality and limited to the common subset of operations.
NOTE: FreeGLUT distributions on Linux are deployed as libglut.so files,
making it difficult to detect whether GLUT or FreeGLUT is installed.
As such, FreeGLUT is assumed. See INSTALL for options to override
this default.
NOTE: POGL automatically installs a binary FreeGLUT library on 32bit
win32 perl platforms.
POGL provides access to most of the OpenGL 1.0, 1.1, and 1.2 APIs, and
many OpenGL Extensions, such as Framebuffer Objects (FBOs) and Vertex
Array Objects (VBOs).
Some amount of GLU is supported, and GLUT is completely supported up
to API version 3, with some support for 4.0 and FreeGlut 2.4.0. A small
portion of GLX and X11 may still be supported, but this is deprecated
in favor of FreeGLUT and will be removed in the future. If you use
this functionality, please let us know.
Compatibility notes with OpenGL 0.4:
The OpenGL 0.4 library, written by Stan Melax, contains more
support for some SGI specific functions then 0.5, so you may
wish to stay with 0.4 on an SGI system. For other machines,
0.5 should greatly improve compatibility (compiling where 0.4
wouldn't have).
Code-level compatibility with OpenGL 0.4 is available if you
refer to OpenGL simply via 'use OpenGL;'. If you request specific
packages (such as 'use OpenGL qw(glfunctions glconstants
glutfunctions);'), you'll get 0.5 specific support. For more
information, please read the OpenGL manual, available in OpenGL.pod.
Portions of this module that directly derive from Stan's code
are marked with "Melax" comments, and his copyright is described
in the COPYRIGHT file.
As this library is a simple binding between Perl and any library
that complies with the OpenGL API, this module should interoperate
seamlessly with any other modules that make use of OpenGL directly
or (through another library) indirectly.
For build instructions, please see the INSTALL file.
For a brief description of what functions are supported, please read
"SUPPORTS", and better yet read the two sample files, test.pl and
isosurf.pl.
Thanks for help developing this module goes to Stan Melax, Cass Everitt,
Alligator Descarte, and probably others that I've forgotten.
Happy Hacking,
Kenneth Albanowski <kjahds@kjahds.com>
As of April 13, 2007, Bob Free has assumed primary ownership of
this module.
As of July 03, 2011, Chris Marshall started the Perl OpenGL Project
at http://sourceforge.net/projects/pogl/ . All development and
module support going forward has moved there.
Chris Marshall is the current maintainer of this module.
Implemented GL_EXT_textureD3
Implemented GL_EXT_texture_env_dot3
Implemented GL_EXT_texture_filter_anisotropic
Implemented GL_EXT_texture_lod_bias
implemented GL_EXT_texture_mirror_clamp
implemented GL_EXT_vertex_array
Implemented GL_HP_occlusion_test
Implemented GL_IBM_rasterpos_clip
Implemented GL_NV_blend_square
Implemented GL_NV_copy_depth_to_color
Implemented GL_NV_depth_clamp
Implemented GL_NV_fog_distance
Implemented GL_NV_fragment_program2
Implemented GL_NV_fragment_program_option
Implemented GL_NV_light_max_exponent
Implemented GL_NV_packed_depth_stencil
Implemented GL_NV_texgen_reflection
Implemented GL_NV_texture_expand_normal
Implemented GL_NV_texture_rectangle
Implemented GL_NV_vertex_program2_option
Implemented GL_NV_vertex_program3
Implemented GL_S3_s3tc
Implemented GL_SGIS_generate_mipmap
Implemented GL_SGIS_texture_lod
Implemented GL_SGIX_depth_texture
Implemented GL_SGIX_shadow
Implemented GL_SUN_slice_accum
Added glDrawRangeElements_p
Added glColorPointer_p
Added glEdgeFlagPointer_p
Added glIndexPointer_p
Added glNormalPointer_p
Added glTexCoordPointer_p
Added glVertexPointer_p
Added 'include' folder for updated GL header files
Added 'utils' folder for header processing scripts
Added glversion utility to enhance Makefile.PL
Fixed compiler warnings in gl_util.c and OpenGL.xs
Fixed glPolygonOffsetEXT bias mapping
Fixed glDrawRangeElements_s code
Fixed glGetPointerv_c params pointer
Moved obsolete/deprecated extensions
Added $glext_implemented hashref of implemented GL extensions
Added glpCheckExtension
Updated test.pl
Ilya Zakharevich
Updated support for SunRay
Sherm Pendley
Added MacOSX support
Daiki Nomura
Helped add FreeBSD support
0.54: Martien Verbruggen fixed another Mesa limitation.
#ifdef out unglob'ing: symbol not found on Solaris...
0.53: Correct vertex_array detection in isosample.pl.
Add more vertex_array constants (and move the definition earlier).
Exchange (default) arguments for glp*: move display after window
(should not break old stuff, since there was/is no way to query
the display and window).
New function $d = glpDisplay() (croaks on failure).
Make glpOpenWindow() return the window handle.
New functions with signatures
void glpMoveResizeWindow(int x, int y, unsigned int width, unsigned int height, Window w, Display* display);
void glpMoveWindow(int x, int y, Window w, Display* display);
void glpResizeWindow(unsigned int width, unsigned int height, Window w, Display* display);
(w and display are optional).
0.52: More of the portability, bug fixes, and examples.
New option -steal for glpOpenWindow() to allow drawing into an
existing window (no "Visual" syncronization yet).
GL_EXT_vertex_array done on the level of cpp.
0.51: Portability enhancement (X and OS/2 PM), bug fixes, examples enhanced.
_have_glp() should be used instead of _have_glx to test for
presence of glp* functions.
Remap OpenGL 1.1 functions into GL_EXT_vertex_array interface
if needed.
( run in 0.579 second using v1.01-cache-2.11-cpan-39bf76dae61 )