Provided by: libopengl-image-perl_1.03-2_all bug

NAME

       OpenGL::Image::Common - class for OpenGL imaging engines

DESCRIPTION

       This module provides a base class for OpenGL imaging engines.  Requires the OpenGL module.

SYNOPSIS

         ##########
         # Check for installed imaging engines

         use OpenGL::Image::Common;
         my $img = new OpenGL::Image::Common(%params);

         ##########
         # Must supply width and height, or source:

         # source - source image file path (some engines supports URLs).
         # width,height - width and height in pixels for cache allocation.

         ##########
         # Optional params:

         # engine - specifies imaging engine; defaults to 'Targa'.

         ##########
         # Methods defined in this Common module:

         # Get native engine object
         # Note: must not change image dimensions
         my $obj = $img->Native;
         $obj->Quantize() if ($obj);

         # Alternately (Assuming the native engine supports Blur):
         $img->Native->Blur();

         # Test if image width is a power of 2
         if ($img->IsPowerOf2());

         # Test if all listed values are a power of 2
         if ($img->IsPowerOf2(@list));

         # Get largest power of 2 size within dimensions of image
         my $size = $img->GetPowerOf2();

         # Get all parameters as a hashref
         my $params = $img->Get();

         # Get one or more parameter values
         my @values = $img->Get(@params);

         # Get/Set Pixel values (normalized to 1.0)
         my($r,$g,$b,$a) = $img->GetPixel($x,$y);

         # Sync cache after done modifying pixels
         $img->SetPixel($x,$y,$r,$g,$b,$a);
         $frame->Sync();

         ##########
         # Supported parameters:

         # version - version of the engine
         # source - source image, if defined
         # width - width of image in pixels
         # height - height of image in pixels
         # pixels - number of pixels
         # components - number of pixel components
         # size - bytes per component
         # length - cache size in bytes
         # endian - 1 if big endian; otherwise 0
         # alpha - 1 if has alpha channel, -1 if has inverted alpha channel; 0 if none
         # flipped - 1 bit set if cache scanlines are top to bottom; others reserved
         # gl_internalformat - internal GL pixel format. eg: GL_RGBA8, GL_RGBA16
         # gl_format - GL pixel format. eg: GL_RGBA, GL_BGRA
         # gl_type - GL data type.  eg: GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT

         ##########
         # APIs defined in engine modules:

         # Get engine version
         my $ver = OpenGL::Image::ENGINE_MODULE::EngineVersion();

         # Get engine description
         my $desc = OpenGL::Image::ENGINE_MODULE::EngineDescription();

         ##########
         # Methods defined in engine modules:

         # Sync the image cache after modifying pixels.
         # Used by some engines for paged caches; otherwise a NOP.
         $img->Sync();

         # Return the image's cache as an OpenGL::Array object.
         # Note: OGA may change after a cache update
         my $oga = $img->GetArray();

         # Return a C pointer to the image's cache.
         # For use with OpenGL's "_c" APIs.
         # Note: pointer may change after a cache update
         $img->Ptr();

         # Save the image to a PNG file (assuming the native engine supports PNGs).
         $img->Save('MyImage.png');

         # Get image blob.
         my $blob = $img->GetBlob();

VERSION

       v1.03

AUTHOR

       Author: Bob "grafman" Free - grafman@graphcomp.com

COPYRIGHT AND LICENSE

       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.