pfvmLogo(3pf) OpenGL Performer 3.2.2 libpfv C++ Reference Pages
NAMEpfvmLogo - Logo module for pfvViewer
FUNCTION SPECIFICATION
#include <Performer/pfvm/pfvmLogo.h>
pfvmLogo::pfvmLogo(pfvXmlNode* xml=NULL);
PARENT CLASS FUNCTIONS
The OpenGL Performer class pfvmLogo is derived from the parent class
pfvModule, so each of these member functions of class pfvModule are also
directly usable with objects of class pfvmLogo. This is also true for
ancestor classes of class pfvModule.
int pfvModule::getScope();
int pfvModule::getScopeIndex();
pfvObject* pfvModule::getScopeTarget();
int pfvModule::autoScope( int*scopeIndex );
void pfvModule::bindCallback(int which);
void pfvModule::unbindCallback(int which);
int pfvModule::getCBMask();
virtual void pfvModule::preConfig();
virtual void pfvModule::postConfig();
virtual void pfvModule::enterView(pfvView*v);
virtual void pfvModule::exitView(pfvView*v);
virtual void pfvModule::enterWorld();
virtual void pfvModule::exitWorld();
virtual void pfvModule::sync();
virtual void pfvModule::frame();
virtual void pfvModule::preCull(pfvDispChan*chan);
virtual void pfvModule::postCull(pfvDispChan*chan);
virtual void pfvModule::preDraw(pfvDispChan*chan);
virtual void pfvModule::postDraw(pfvDispChan*chan);
virtual void pfvModule::overlay(pfvDispChan*chan);
int pfvModule::bindKeys(char*keys);
int pfvModule::unbindKeys(char*keys)
char* pfvModule::getEventMask()
void pfvModule::setEventMask(char* str);
virtual int pfvModule::handleEvent(int evType, char key);
uint64_t pfvModule::getViewMask();
Since the class pfvModule is itself derived from the parent class
pfvobject, objects of class pfvmLogo can also be used with these
functions designed for objects of class pfvobject.
virtual int pfvObject::parseXml(pfvXmlNode*xml);
virtual int pfvObject::setXmlField(pfvXmlNode*xml);
char* pfvObject::getName();
void pfvObject::setName(char*_name);
Page 1
pfvmLogo(3pf) OpenGL Performer 3.2.2 libpfv C++ Reference Pages
Since the class pfvobject is itself derived from the parent class
pfObject, objects of class pfvmLogo can also be used with these functions
designed for objects of class pfObject.
void* pfObject::operator new(size_t);
void* pfObject::operator new(size_t, pfFluxMemory *fmem);
void pfObject::setUserData(void *data);
void pfObject::setUserData(int slot, void *data);
void* pfObject::getUserData(pfObject *obj);
void* pfObject::getUserData(pfObject *obj, int slot);
int pfObject::getNumUserData();
Since the class pfObject is itself derived from the parent class
pfMemory, objects of class pfvmLogo can also be used with these functions
designed for objects of class pfMemory.
void* pfMemory::getData(const void *ptr);
pfType * pfMemory::getType();
int pfMemory::isOfType(pfType *type);
int pfMemory::isExactType(pfType *type);
const char * pfMemory::getTypeName();
int pfMemory::copy(pfMemory *src);
int pfMemory::compare(const pfMemory *mem);
void pfMemory::print(uint which, uint verbose, char *prefix,
FILE *file);
int pfMemory::getArena(void *ptr);
void* pfMemory::getArena();
int pfMemory::ref();
int pfMemory::unref();
int pfMemory::unrefDelete();
int pfMemory::unrefGetRef();
int pfMemory::getRef();
int pfMemory::checkDelete();
int pfMemory::isFluxed();
void * pfMemory::getArena();
int pfMemory::getSize();
DESCRIPTIONpfvmLogo is a module for displaying one or more overlay images in
pfvViewer applications.
Currently, pfvmLogo can only be configured through XML tokens. A number
of <logo> tags can be defined, each corresponding to an independent
overlay image, as illustrated below:
========
XML tags
========
Page 2
pfvmLogo(3pf) OpenGL Performer 3.2.2 libpfv C++ Reference Pages
<module>
<class>pfvmLogo</class>
<data>
<logo>
...
parameters
...
</logo>
<logo>
...
parameters
...
</logo>
...
</data>
</module>
where parameters is one or more of the following:
<TexName>string</TexName> where string is the name of the file containing
the texture image that will be displayed in overlay.
<Pos>float,float,float,float</Pos> takes four floats representing the
position in which logo will be rendered (left, right, bottom and top
respectively). By default the range is 0 to 1.
<TexCoords>float,float,float,float</TexCoords> takes four floats
representing the region of the texture image that will be rendered (left,
right, bottom and top respectively). By default the range is 0 to 1,
causing the whole image to be rendered. See man glTexCoord2f for more
info.
<Color>float,float,float,float</Color> Takes four floats representing
r,g,b,a respectively. This color modulates the color of the image. See
man glColor4f for more info.
Example:
<module>
<class>pfvmLogo</class>
<data>
<logo>
<!-- specify the file -->
<TexName>/usr/share/Performer/data/perfbann.rgb</TexName>
<!-- cut out the picture on the right side of the logo -->
<TexCoords>0.0,0.7,0.0,1.0</TexCoords>
<!-- position in the upper right -->
<Pos>0.4,1.0.0.8,1.0</Pos>
Page 3
pfvmLogo(3pf) OpenGL Performer 3.2.2 libpfv C++ Reference Pages
<!-- make it half translucent-->
<Color>1.0,1.0,1.0,0.5</Color>
</logo>
</data>
</module>
=======
Scoping
=======
A pfvmLogo module can be scoped globally, to a single view, or to a
single world.
If scoped globally, pfvmLogo module will render its overlay image(s) on
all channels.
If scoped to a view, pfvmLogo module will render its overlay image(s)
only on channels belonging to its target-view. Note that the pfvmLogo
module renders images in its overlay callback, in view-normalized
coordinates. See man page for pfvDispChan::setViewRange for more details.
If scoped to a world, pfvmLogo module will render its overlay image(s) on
all channels belonging to pfvViews that are viewing module's target
world.
NOTES
The source code for the pfvmLogo Module is provided and can be found in
/usr/share/Performer/src/pguide/libpfv/viewer/modules/pfvmLogo
For examples of pfvViewer XML configuration files, look at the sample
.pfv files in /usr/share/Performer/config.
SEE ALSO
pfvModule, pfvViewer, pfvXml
Page 4