/usr/share/perl5/OpenGL/Image.pod is in libopengl-image-perl 1.03-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 | =head1 NAME
OpenGL::Image - OpenGL wrapper to load images
=head1 DESCRIPTION
This module is an extensible wrapper to abstract imaging interfaces
By default, this module uses the OpenGL::Image::Targa module; support for
other imaging libraries may be added by providing plug-in modules
in the OpenGL/Image folder.
An OpenGL::Image::Magick module is also provided for use with
PerlMagick. For best performance, ImageMagick 6.3.5 or newer should
be installed.
=head1 SYNOPSIS
##########
# Check for installed imaging engines
use OpenGL::Image;
# Get hashref of installed imaging engines
# Keys are engine names; values are info hashes, including version,
# priority (1 .. n, 1 is highest), module (Perl module name)
# and description.
# Priority can be set using Engines.lst (see INSTALL); otherwise
# 'Targa' has top priority, and others are in unspecified order.
my $engine_hashref = OpenGL::Image::GetEngines();
# In list context, returns list of info hashes sorted by engine
# priority; info hash does not include a priority value.
my @sorted_engine_info = OpenGL::Image::GetEngines();
# Check for a specific engine and optional version support
# Returns an info hashref for the engine if available; otherwise undef.
my $info_hashref = OpenGL::Image::HasEngine('Magick','6.3.5');
##########
# Load texture - defaults to highest priority engine if none specified;
# if Engines.lst is not specified, the highest priority is the Targa engine.
my $tex = new OpenGL::Image(source=>'test.tga');
# Get GL info
my($ifmt,$fmt,$type) = $tex->Get('gl_internalformat','gl_format','gl_type');
my($w,$h) = $tex->Get('width','height');
# Test if power of 2
if (!$tex->IsPowerOf2()) return;
# Set texture
glTexImage2D_c(GL_TEXTURE_2D, 0, $ifmt, $w, $h, 0, $fmt, $type, $tex->Ptr());
##########
# Modify GL frame using ImageMagick
my $frame = new OpenGL::Image(engine=>'Magick',width=>$w,height=>$h);
# Get default GL info
my($def_fmt,$def_type) = $tex->Get('gl_format','gl_type');
# Read frame pixels
glReadPixels_c(0, 0, $width, $height, $def_fmt, $def_type, $frame->Ptr());
# Sync native image buffer
# Must use this prior to making native calls
$frame->Sync();
# Modify frame pixels
$frame->Native->Blur();
# Sync OGA
# Must use this atfer all native calls are done
$frame->SyncOGA();
# Draw back to frame
glDrawPixels_c(0, 0, $width, $height, $def_fmt, $def_type, $frame->Ptr());
##########
# Save GL frame
my $image = new OpenGL::Image(width=>$width,height=>$height);
# Read frame pixels
glReadPixels_c(0, 0, $width, $height, $def_fmt, $def_type, $image->Ptr());
# Save file - automatically does a Sync before write
$image->Save('MyImage.tga');
##########
# Get/Set normalized pixels
my($r,$g,$b,$a) = $img->GetPixel($x,$y);
$img->SetPixel($x,$y, 1.0, 0.5, 0.0, 1.0);
# Sync cache after done modifying pixels
$frame->Sync();
##########
# Methods defined in OpenGL::Image::Common:
# Get native engine object
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 one or more parameter values
my @values = $img->Get(@params);
# 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();
##########
# 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: normal alpha channel, -1: inverted alpha channel; 0: none
# flipped - 1 bit set if cache ordered 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 and Methods defined in engine modules:
# Get engine version
my $ver = OpenGL::Image::ENGINE_MODULE::EngineVersion();
# Sync the image cache after a write.
# Used by some engines for paged caches; otherwise a NOP.
$img->Sync();
# Save the image to a PNG file (assuming the engine supports PNGs)
$img->Save('MyImage.png');
# Get image blob.
my $blob = $img->GetBlob();
=head1 VERSION
v1.03
=head1 AUTHOR
Author: Bob "grafman" Free - grafman@graphcomp.com
Contributor: Geoff Broadwell
=head1 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.
=cut
|