# -*-perl-*- BEGIN{ # Set perl to not try to resolve all symbols at startup # The default behavior causes some problems because # opengl.pd builds an interface for all functions # defined in gl.h and glu.h even though they might not # actually be in the opengl libraries. $ENV{'PERL_DL_NONLAZY'}=0; } # use PDL::Graphics::OpenGL; sub hasDISPLAY { return defined $ENV{DISPLAY} && $ENV{DISPLAY} !~ /^\s*$/; } use Test::More; BEGIN { use PDL::Config; if ( $PDL::Config{WITH_3D} ) { # check if compiled if ( $PDL::Config{USE_POGL} ) { # check if using Perl OpenGL if ( hasDISPLAY or exists($ENV{'PDL_INT'}) ) { plan tests => 4; use_ok("OpenGL $PDL::Config{POGL_VERSION}", qw(:all)); use_ok('PDL::Graphics::OpenGL::Perl::OpenGL'); } else { # no DISPLAY plan tests => 2; use_ok("OpenGL $PDL::Config{POGL_VERSION}", qw(:all)); use_ok('PDL::Graphics::OpenGL::Perl::OpenGL'); exit; } } else { plan skip_all => 'Non-POGL TriD graphics not supported'; } } else { plan skip_all => 'TriD graphics not compiled'; } } # # Try opening 2 GL windows # SKIP: { if ( hasDISPLAY and OpenGL::_have_glx ) { eval { OpenGL::glpDisplay($ENV{DISPLAY}) }; skip "can't open X display", 2 if $@; } my $numwins = 2; my @windows; my $opt; $opt->{width} = 90; $opt->{height} = 90; foreach(0..$numwins-1){ $opt->{x} = ($numwins % 10) *100; $opt->{y} = int($numwins / 10) *100; my $win=eval 'PDL::Graphics::OpenGL::OO->new($opt)'; if (! defined($win) ) { skip "$@", 2 if $@ =~ /display mode not possible/; } else { isa_ok($win, 'PDL::Graphics::OpenGL::OO'); } push @windows, $win; } }