Acme-MITHALDU-BleedingOpenGL

 view release on metacpan or  search on metacpan

BleedingOpenGL.pm  view on Meta::CPAN

	glRasterPos4iv
	glRasterPos4sv
	glReadPixels
	glRectdv
	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};



( run in 0.629 second using v1.01-cache-2.11-cpan-39bf76dae61 )