88 gluPerspective gluUnProject_p gluOrtho2D gluErrorString gluBuild2DMipmaps_c
99/ ;
1010use OpenGL::GLUT qw/ :all / ;
11+ use OpenGL::Config;
1112
1213eval ' use OpenGL::Image 1.03' ; # Need to use OpenGL::Image 1.03 or higher!
1314my $hasImage = !$@ ;
1415my $hasIM_635 = $hasImage && OpenGL::Image::HasEngine(' Magick' ,' 6.3.5' );
1516
16- eval ' use OpenGL::Shader' ;
17- my $hasShader = !$@ ;
18-
1917eval ' use Image::Magick' ;
2018my $hasIM = !$@ ;
2119
10199my $VertexProgID ;
102100my $FragProgID ;
103101my $FBO_rendered = 0;
104- my $Shader ;
105102
106103# Object and scene global variables.
107104my $Teapot_Rot = 0.0;
@@ -631,39 +628,7 @@ sub ourInitShaders
631628{
632629 # Setup Vertex/Fragment Programs to render FBO texture
633630
634- if ($hasShader )
635- {
636- my $version = $OpenGL::Shader::VERSION ;
637- printf (" Using OpenGL::Shader v$version \n " );
638- my $types = OpenGL::Shader-> GetTypes();
639- my @types = keys (%$types );
640- printf (" This installation supports the following shader types: %s \n " , join (' ,' , @types ));
641-
642- # Use OpenGL::Shader
643- $Shader = new OpenGL::Shader();
644- if (!$Shader )
645- {
646- printf (" Unable to instantiate OpenGL::Shader\n " );
647- return ;
648- }
649-
650- my $type = $Shader -> GetType();
651- my $ext = lc ($type );
652-
653- my $stat = $Shader -> LoadFiles(" fragment.$ext " ," vertex.$ext " );
654- if (!$stat )
655- {
656- my $ver = $Shader -> GetVersion();
657- print " Using OpenGL::Shader('$type ') v$ver \n " ;
658- return ;
659- }
660- else
661- {
662- print " $stat \n " ;
663- }
664- }
665- # Fall back to doing it manually
666- elsif ($hasFragProg )
631+ if ($hasFragProg )
667632 {
668633 printf (" Using native OpenGL ARB Shader functions\n " );
669634 ($VertexProgID ,$FragProgID ) = glGenProgramsARB_p(2);
@@ -778,16 +743,7 @@ sub cbRenderScene
778743 glEnable(GL_DEPTH_TEST);
779744
780745 # Run shader programs for texture.
781- # If installed, use OpenGL::Shader
782- if ($Shader )
783- {
784- $Shader -> Enable();
785- $Shader -> SetVector(' center' ,0.0,0.0,2.0,0.0);
786- $Shader -> SetMatrix(' xform' ,$xform );
787- $Shader -> SetVector(' surfacecolor' ,1.0,0.5,0.0,1.0);
788- }
789- # Otherwise, do it manually
790- elsif ($hasFragProg )
746+ if ($hasFragProg )
791747 {
792748 glEnable(GL_VERTEX_PROGRAM_ARB);
793749 glEnable(GL_FRAGMENT_PROGRAM_ARB);
@@ -807,11 +763,7 @@ sub cbRenderScene
807763 glutWireTeapot(0.125);
808764 glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
809765
810- if ($Shader )
811- {
812- $Shader -> Disable();
813- }
814- elsif ($hasFragProg )
766+ if ($hasFragProg )
815767 {
816768 glDisable(GL_FRAGMENT_PROGRAM_ARB);
817769 glDisable(GL_VERTEX_PROGRAM_ARB);
@@ -1172,11 +1124,7 @@ sub ReleaseResources
11721124 glDeleteFramebuffersEXT_p( $FrameBufferID ) if ($FrameBufferID );
11731125 }
11741126
1175- if ($Shader )
1176- {
1177- undef ($Shader );
1178- }
1179- elsif ($hasFragProg )
1127+ if ($hasFragProg )
11801128 {
11811129 glBindProgramARB(GL_VERTEX_PROGRAM_ARB, 0);
11821130 glDeleteProgramsARB_p( $VertexProgID ) if ($VertexProgID );
0 commit comments