Acme-MITHALDU-BleedingOpenGL

 view release on metacpan or  search on metacpan

BleedingOpenGL.pm  view on Meta::CPAN

	GLU_PATH_LENGTH
	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

BleedingOpenGL.pm  view on Meta::CPAN

	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()
        #
        glpcOpenWindow($p{'x'},$p{'y'},$p{'width'},$p{'height'},
                       $p{'parent'},$p{'mask'},$p{'steal'},



( run in 2.178 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )