pfFluxedGeoState(3pf) OpenGL Performer 3.2.2 libpr C++ Reference Pages
NAMEpfFluxedGeoState - Multibuffered wrapper for pfGeoState
FUNCTION SPECIFICATION
#include <Performer/pr/pfFluxedStates.h>
pfFluxedGeoState::pfFluxedGeoState();
pfFluxedGeoState::~pfFluxedGeoState();
void* pfFluxedGeoState::getWriteableAttr(uint64_t attr);
void* pfFluxedGeoState::getWriteableMultiAttr(uint64_t attr,
int index);
void* pfFluxedGeoState::getAttr(uint64_t attr);
void* pfFluxedGeoState::getMultiAttr(uint64_t attr, int index);
void pfFluxedGeoState::writeComplete();
void pfFluxedGeoState::setMode(uint64_t mode, int val);
int pfFluxedGeoState::getMode(uint64_t mode);
void pfFluxedGeoState::setVal(uint64_t gsval, float val);
float pfFluxedGeoState::getVal(uint64_t gsval);
PARENT CLASS FUNCTIONS
The OpenGL Performer class pfFluxedGeoState is derived from the parent
class pfObject, so each of these member functions of class pfObject are
also directly usable with objects of class pfFluxedGeoState. This is
also true for ancestor classes of class pfObject.
void* pfObject::operator new(size_t);
void* pfObject::operator new(size_t, void *arena);
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 pfFluxedGeoState can also be used with these
functions designed for objects of class pfMemory.
void* pfMemory::getData(const void *ptr);
Page 1
pfFluxedGeoState(3pf) OpenGL Performer 3.2.2 libpr C++ Reference Pages
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();
DESCRIPTIONpfFluxedGeoState is a utility class which allows for multi-process safe
state changes in dynamic pfShader passes. pfFluxedGeoState uses pfFlux as
its synchronization mechanism, so the api is similar.
pfFluxedGeoState::getWriteableAttr is used to request a writeable
attribute from the pfFluxedGeoState. On a pfGeoState, one normally
creates an attribute and sets it via pfGeoState::setAttr. This means of
setting attributes is not possible on pfFluxedGeoState since Performer
must do some extra internal book-keeping to make sure state changes are
frame synchronous. pfFluxedGeoState::getWriteableAttr will allocate an
attribute if it does not exist on the pfFluxedGeoState or return the
existing one. Once changes to the attribute are complete, it is necessary
to call pfFluxedGeoState::writeComplete to commit the changes. The
attributes supported by this function are the same as those of
pfGeoState::setAttr:
PFSTATE_FRONTMTL
PFSTATE_BACKMTL
PFSTATE_TEXTURE
PFSTATE_TEXENV
PFSTATE_FOG
PFSTATE_LIGHTMODEL
PFSTATE_LIGHTS
PFSTATE_COLORTABLE
PFSTATE_HIGHLIGHT
PFSTATE_LPOINTSTATE
PFSTATE_TEXGEN
PFSTATE_TEXLOD
PFSTATE_TEXMAT
PFSTATE_DECALPLANE
PFSTATE_COMBINER
Page 2
pfFluxedGeoState(3pf) OpenGL Performer 3.2.2 libpr C++ Reference Pages
PFSTATE_ENVTXPROG
PFSTATE_ENFRAGPROG
PFSTATE_SHADPROG
pfFluxedGeoState::getWriteableMultiAttr is used to get a writeable
multi-attribute. The behavior is the same as for
pfFluxedGeoState::getWriteableAttr. index specifies which element of the
multi-attribute to return. Currently, the only multi-attributes that
performer supports are related to multi-texturing, so attr must be one
of:
PFSTATE_TEXTURE
PFSTATE_TEXENV
PFSTATE_TEXGEN
PFSTATE_TEXLOD
PFSTATE_TEXMAT
pfFluxedGeoState::getAttr and pfFluxedGeoState::getMultiAttr are used to
retrieve pointers to read-only attributes. These attributes should not be
modified since Performer can not keep track of the changes.
pfFluxedGeoState::getAttr and pfFluxedGeoState::getMultiAttr support the
same attribute types as pfFluxedGeoState::getWriteableAttr and
pfFluxedGeoState::getWriteableMultiAttr.
pfFluxedGeoState::setMode and pfFluxedGeoState::getMode are used to set
and get the modes on this pfFluxedGeoState. The supported modes are the
same as those of pfGeoState:
PFSTATE_TRANSPARENCY
PFSTATE_ANTIALIAS
PFSTATE_DECAL
PFSTATE_ALPHAFUNC
PFSTATE_ENLIGHTING
PFSTATE_ENTEXTURE
PFSTATE_ENFOG
PFSTATE_CULLFACE
PFSTATE_ENWIREFRAME
PFSTATE_ENCOLORTABLE
PFSTATE_ENHIGHLIGHTING
PFSTATE_ENLPOINTSTATE
PFSTATE_ENTEXGEN
PFSTATE_ENTEXLOD
PFSTATE_ENTEXMAT
PFSTATE_ENCOMBINER
PFSTATE_ENVTXPROG
PFSTATE_ENFRAGPROG
PFSTATE_ENSHADPROG
pfFluxedGeoState::setVal and pfFluxedGeoState::getVal are used to set and
Page 3
pfFluxedGeoState(3pf) OpenGL Performer 3.2.2 libpr C++ Reference Pages
get this pfFluxedGeoState's values. The supported values are the same as
for pfGeoState:
PFSTATE_ALPHAREF
SEE ALSO
pfGeoState, pfFluxedFBState, pfShader
Page 4