Provided by: libopengl-perl_0.7004+dfsg-1_amd64 bug

NAME

       OpenGL::Shader - abstraction for managing OpenGL shaders

SYNOPSIS

         ##########
         # Load and manage a shader
         use OpenGL(':all');
         use OpenGL::Shader;
         # Note: these APIs/methods requires a current GL context/window
         glutInit();
         glutInitDisplayMode(GLUT_RGBA);
         glutInitWindowSize($w,$h);
         my $Window_ID = glutCreateWindow( "OpenGL::Shader test" );

DESCRIPTION

       This module provides an extensible abstraction for managing OpenGL shaders.  As of 1.02 it is included
       with the OpenGL distribution.

       Example usage:

         # Get a hashref of shader types
         my $shaders = $OpenGL::Shader::GetTypes();

         # Test for shader support
         my $ok = OpenGL::Shader::HasType('Cg');

         # Instantiate a shader - list acceptable shaders by priority
         my $shdr = new OpenGL::Shader('GLSL','ARB');

         # Get shader type and version
         my $type = $shdr->GetType();
         my $ver = $shdr->GetVersion();

         # Load shader by strings
         my $stat = $shdr->Load($fragment,$vertex);

         # Load shader by file
         my $stat = $shdr->LoadFiles($fragment_file,$vertex_file);

         # Enable
         $shdr->Enable();

         # Get vertex attribute ID
         # returns undef if not supported or not found
         my $attr_id = $self->MapAttr($attr_name);
         glVertexAttrib4fARB($attr_id,$x,$y,$z,$w);

         # Get Global Variable ID (uniform/local)
         my $var_id = $self->Map($var_name);

         # Set float4 vector variable
         $stat = $self->SetVector($var_name,$x,$y,$z,$w);

         # Set float4x4 matrix via OGA
         $stat = $self->SetMatrix($var_name,$oga);

         # Do GL rendering

         # Disable
         $shdr->Disable();

         # Done
         glutDestroyWindow($Window_ID);

AUTHOR

       Bob "grafman" Free - grafman@graphcomp.com.  Copyright 2007 Graphcomp - ALL RIGHTS RESERVED.

       This program is free software; you can redistribute it and/or modify it under the same terms as Perl
       itself.

perl v5.40.1                                       2025-03-21                                OpenGL::Shader(3pm)