pfFluxedFBState(3pf) OpenGL Performer 3.2.2 libpr C++ Reference Pages
NAMEpfFluxedFBState - Multibuffered wrapper for pfFBState
FUNCTION SPECIFICATION
#include <Performer/pr/pfFluxedStates.h>
pfFluxedFBState::pfFluxedFBState();
pfFluxedFBState::~pfFluxedFBState();
void pfFluxedFBState::setStencilOp(unsigned int stencilfail,
unsigned int zfail, unsigned int zpass);
void pfFluxedFBState::setStencilFunc(unsigned int func, GLint ref,
GLuint mask);
void pfFluxedFBState::setStencilMask(GLuint mask);
void pfFluxedFBState::getStencilOp(unsigned int *stencilfail,
unsigned int *zfail, unsigned int *zpass);
void pfFluxedFBState::getStencilFunc(unsigned int *func, GLint *ref,
GLuint *mask);
void pfFluxedFBState::getStencilMask(GLuint *mask);
void pfFluxedFBState::setBlendFunc(unsigned int sfactor,
unsigned int dfactor);
void pfFluxedFBState::getBlendFunc(unsigned int *sfactor,
unsigned int *dfactor);
void pfFluxedFBState::setDepthFunc(unsigned int func);
void pfFluxedFBState::setDepthRange(GLclampd near, GLclampd far);
void pfFluxedFBState::getDepthFunc(unsigned int *func);
void pfFluxedFBState::getDepthRange(GLclampd *near, GLclampd *far);
void pfFluxedFBState::setDepthMask(GLboolean flag);
void pfFluxedFBState::getDepthMask(GLboolean *flag);
void pfFluxedFBState::setColorMask(GLboolean r, GLboolean g,
GLboolean b, GLboolean a);
void pfFluxedFBState::getColorMask(GLboolean *r, GLboolean *g,
GLboolean *b, GLboolean *a);
Page 1
pfFluxedFBState(3pf) OpenGL Performer 3.2.2 libpr C++ Reference Pages
void pfFluxedFBState::setEnable(unsigned int mode, int flag);
void pfFluxedFBState::getEnable(unsigned int mode, int *flag);
void pfFluxedFBState::setColorMatrix(GLfloat *matrix);
void pfFluxedFBState::getColorMatrix(GLfloat *matrix);
void pfFluxedFBState::setShadeModel(unsigned int mode);
void pfFluxedFBState::getShadeModel(unsigned int* mode);
void pfFluxedFBState::setBlendEquation(unsigned int mode);
void pfFluxedFBState::getBlendEquation(unsigned int *mode);
void pfFluxedFBState::setBlendColor(GLfloat r, GLfloat g, GLfloat b,
GLfloat a);
void pfFluxedFBState::getBlendColor(GLfloat *r, GLfloat *g, GLfloat *b,
GLfloat *a);
void pfFluxedFBState::setPixelBias(GLfloat r, GLfloat g, GLfloat b,
GLfloat a);
void pfFluxedFBState::getPixelBias(GLfloat *r, GLfloat *g, GLfloat *b,
GLfloat *a);
void pfFluxedFBState::setPixelScale(GLfloat r, GLfloat g, GLfloat b,
GLfloat a);
void pfFluxedFBState::getPixelScale(GLfloat *r, GLfloat *g, GLfloat *b,
GLfloat *a);
void pfFluxedFBState::setPixelMap(unsigned int which, GLsizei size,
GLfloat *pixmapValues);
void pfFluxedFBState::getPixelMap(unsigned int which, GLsizei *size,
GLfloat *pixmapValues);
PARENT CLASS FUNCTIONS
The OpenGL Performer class pfFluxedFBState is derived from the parent
class pfObject, so each of these member functions of class pfObject are
also directly usable with objects of class pfFluxedFBState. 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);
Page 2
pfFluxedFBState(3pf) OpenGL Performer 3.2.2 libpr C++ Reference Pages
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 pfFluxedFBState 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();
DESCRIPTIONpfFluxedFBState is a multi-process safe wrapper for pfFBState. This class
is used by pfShader for frame synchronous changes of frame buffer state
elements. For a more detailed description of what this class does, please
see the pfFBState man page.
pfFluxedFBState::setStencilOp, pfFluxedFBState::setStencilFunc,
pfFluxedFBState::setStencilMask correspond to the OpenGL funcions
glStencilOp, glStencilFunc, and glStencilMask. These functions control
the operation of the stencil buffer and the stencil test.
pfFluxedFBState::setBlendFunc, pfFluxedFBState::setBlendEquation,
pfFluxedFBState::setBlendColor correspond to the OpenGL functions
glBlendFunc, glBlendEquationEXT, and glBlendColorEXT. They are used to
control the way incoming pixels are blended with those already in the
frame buffer.
pfFluxedFBState::setDepthFunc,pfFluxedFBState::setDepthRange, and
pfFluxedFBState::setDepthMask control the operation of the depth buffer.
They correspond to the OpenGL functions glDepthFunc, glDepthRange, and
glDepthMask
Page 3
pfFluxedFBState(3pf) OpenGL Performer 3.2.2 libpr C++ Reference Pages
pfFluxedFBState::setColorMask controls which color channels in the frame
buffer are modified by rendering commands. This function corresponds to
glColorMask in OpenGL.
pfFluxedFBState::setEnable controls which OpenGL modes are enabled and
which are disabled. For all modes except GL_MAP_COLOR, either glEnable or
glDisable will be called depending on the value of the second parameter.
For the GL_MAP_COLOR mode, glPixelTransferf will be used to turn pixel
maps on and off. The following modes are currently supported:
GL_BLEND
GL_DEPTH_TEST
GL_STENCIL_TEST
GL_SAMPLE_ALPHA_TO_MASK_SGIS
GL_SAMPLE_ALPHA_TO_ONE_SGIS
GL_MAP_COLOR
GL_MULTISAMPLE_SGIS
GL_LINE_SMOOTH
GL_POINT_SMOOTH
pfFluxedFBState::setColorMatrix sets the currently active color matrix.
The color matrix is applied to all colors going through the OpenGL pixel
pipeline; texture downloads, framebuffer to texture copies and
framebuffer in-place copies. The color matrix is specified in OpenGL by
calling glMatrixMode(GL_COLOR) followed by glLoadMatrixf(<matrix>).
pfFluxedFBState::setShadeModel is used to control whether OpenGL flat
shades or smooth shades triangles. The corresponding OpenGL function is
glShadeModel
pfFluxedFBState::setPixelBias and pfFluxedFBState::setPixelScale set the
pixel scale and bias on pixel pipeline operations. These functions
correspond to the glPixelTransferf function call with GL_RED_SCALE,
GL_RED_BIAS, GL_GREEN_SCALE, GL_GREEN_BIAS, GL_BLUE_SCALE, GL_BLUE_BIAS,
GL_ALPHA_SCALE and GL_ALPHA_BIAS as the pname parameter.
pfFluxedFBState::setPixelMap controls the color lookup table which is
applied in the pixel transfer pipeline. When colors are generated during
rendering operations, their color can acutally be used as an index into
this lookup table which determines the color that is actually written
into the framebuffer. This function corresponds to the OpenGL function
glPixelMapfv.
SEE ALSO
pfFBState, pfShader
Page 4