Acme-MITHALDU-BleedingOpenGL
view release on metacpan or search on metacpan
BleedingOpenGL.pm view on Meta::CPAN
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
use Acme::MITHALDU::BleedingOpenGL qw/ :all /;
use Acme::MITHALDU::BleedingOpenGL::Config; # for build information
eval 'use OpenGL::Image 1.03'; # Need to use OpenGL::Image 1.03 or higher!
my $hasImage = !$@;
my $hasIM_635 = $hasImage && OpenGL::Image::HasEngine('Magick','6.3.5');
eval 'use OpenGL::Shader';
my $hasShader = !$@;
eval 'use Image::Magick';
my $hasIM = !$@;
# This does not seem to be needed and it adds an extra, unneeded
# dependency to the build process. Leaving this in as a comment
# just in case it is being used somewhere here
#
# use Math::Trig;
eval 'use Time::HiRes qw( gettimeofday )';
my $hasHires = !$@;
glTexImage2D_c(GL_TEXTURE_2D, 0, $Tex_Type, $Tex_Width, $Tex_Height,
0, $Tex_Format, $Tex_Size, $Tex_Pixels->ptr());
}
# Benchmarks for Image Loading
if (DO_TESTS && $hasIM)
{
my $loops = 1000;
my $im = new Image::Magick();
$im->Read($Tex_File);
$im->Set(magick=>'RGBA',depth=>8);
$im->Negate(channel=>'alpha');
# Bench ImageToBlob
my $start = gettimeofday();
for (my $i=0;$i<$loops;$i++)
{
my($blob) = $im->ImageToBlob();
( run in 0.830 second using v1.01-cache-2.11-cpan-beeb90c9504 )