pfFluxedFBState(3pf) OpenGL Performer 3.2.2 libpr C Reference Pages
NAME
pfNewFFBS, pfGetFFBSClassType, pfFFBSStencilOp, pfFFBSStencilFunc,
pfFFBSStencilMask, pfGetFFBSStencilOp, pfGetFFBSStencilFunc,
pfGetFFBSStencilMask, pfFFBSBlendFunc, pfGetFFBSBlendFunc,
pfFFBSDepthFunc, pfFFBSDepthRange, pfGetFFBSDepthFunc,
pfGetFFBSDepthRange, pfFFBSDepthMask, pfGetFFBSDepthMask,
pfFFBSColorMask, pfGetFFBSColorMask, pfFFBSEnable, pfGetFFBSEnable,
pfFFBSColorMatrix, pfGetFFBSColorMatrix, pfFFBSShadeModel,
pfGetFFBSShadeModel, pfFFBSBlendEquation, pfGetFFBSBlendEquation,
pfFFBSBlendColor, pfGetFFBSBlendColor, pfFFBSPixelBias,
pfGetFFBSPixelBias, pfFFBSPixelScale, pfGetFFBSPixelScale,
pfFFBSPixelMap, pfGetFFBSPixelMap - Multibuffered wrapper for pfFBState
FUNCTION SPECIFICATION
#include <Performer/pr.h>
pfFluxedFBState* pfNewFFBS(void *arena);
pfType* pfGetFFBSClassType(void);
void pfFFBSStencilOp(pfFluxedFBState* _ffbs,
unsigned int stencilfail, unsigned int zfail,
unsigned int zpass);
void pfFFBSStencilFunc(pfFluxedFBState* _ffbs,
unsigned int func, GLint ref, GLuint mask);
void pfFFBSStencilMask(pfFluxedFBState* _ffbs,
GLuint mask);
void pfGetFFBSStencilOp(pfFluxedFBState* _ffbs,
unsigned int *stencilfail, unsigned int *zfail,
unsigned int *zpass);
void pfGetFFBSStencilFunc(pfFluxedFBState* _ffbs,
unsigned int *func, GLint *ref, GLuint *mask);
void pfGetFFBSStencilMask(pfFluxedFBState* _ffbs,
GLuint *mask);
void pfFFBSBlendFunc(pfFluxedFBState* _ffbs,
unsigned int sfactor, unsigned int dfactor);
void pfGetFFBSBlendFunc(pfFluxedFBState* _ffbs,
unsigned int *sfactor, unsigned int *dfactor);
void pfFFBSDepthFunc(pfFluxedFBState* _ffbs,
unsigned int func);
void pfFFBSDepthRange(pfFluxedFBState* _ffbs,
GLclampd near, GLclampd far);
Page 1
pfFluxedFBState(3pf) OpenGL Performer 3.2.2 libpr C Reference Pages
void pfGetFFBSDepthFunc(pfFluxedFBState* _ffbs,
unsigned int *func);
void pfGetFFBSDepthRange(pfFluxedFBState* _ffbs,
GLclampd *near, GLclampd *far);
void pfFFBSDepthMask(pfFluxedFBState* _ffbs,
GLboolean flag);
void pfGetFFBSDepthMask(pfFluxedFBState* _ffbs,
GLboolean *flag);
void pfFFBSColorMask(pfFluxedFBState* _ffbs, GLboolean r,
GLboolean g, GLboolean b, GLboolean a);
void pfGetFFBSColorMask(pfFluxedFBState* _ffbs,
GLboolean *r, GLboolean *g, GLboolean *b,
GLboolean *a);
void pfFFBSEnable(pfFluxedFBState* _ffbs,
unsigned int mode, int flag);
void pfGetFFBSEnable(pfFluxedFBState* _ffbs,
unsigned int mode, int *flag);
void pfFFBSColorMatrix(pfFluxedFBState* _ffbs,
GLfloat *matrix);
void pfGetFFBSColorMatrix(pfFluxedFBState* _ffbs,
GLfloat *matrix);
void pfFFBSShadeModel(pfFluxedFBState* _ffbs,
unsigned int mode);
void pfGetFFBSShadeModel(pfFluxedFBState* _ffbs,
unsigned int* mode);
void pfFFBSBlendEquation(pfFluxedFBState* _ffbs,
unsigned int mode);
void pfGetFFBSBlendEquation(pfFluxedFBState* _ffbs,
unsigned int *mode);
void pfFFBSBlendColor(pfFluxedFBState* _ffbs, GLfloat r,
GLfloat g, GLfloat b, GLfloat a);
void pfGetFFBSBlendColor(pfFluxedFBState* _ffbs,
GLfloat *r, GLfloat *g, GLfloat *b, GLfloat *a);
void pfFFBSPixelBias(pfFluxedFBState* _ffbs, GLfloat r,
GLfloat g, GLfloat b, GLfloat a);
Page 2
pfFluxedFBState(3pf) OpenGL Performer 3.2.2 libpr C Reference Pages
void pfGetFFBSPixelBias(pfFluxedFBState* _ffbs, GLfloat *r,
GLfloat *g, GLfloat *b, GLfloat *a);
void pfFFBSPixelScale(pfFluxedFBState* _ffbs, GLfloat r,
GLfloat g, GLfloat b, GLfloat a);
void pfGetFFBSPixelScale(pfFluxedFBState* _ffbs,
GLfloat *r, GLfloat *g, GLfloat *b, GLfloat *a);
void pfFFBSPixelMap(pfFluxedFBState* _ffbs,
unsigned int which, GLsizei size,
GLfloat *pixmapValues);
void pfGetFFBSPixelMap(pfFluxedFBState* _ffbs,
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. Casting an
object of class pfFluxedFBState to an object of class pfObject is taken
care of automatically. This is also true for casts to objects of
ancestor classes of class pfObject.
void pfUserDataSlot(pfObject *obj, int slot, void *data);
void pfUserData(pfObject *obj, void *data);
void* pfGetUserDataSlot(pfObject *obj, int slot);
void* pfGetUserData(pfObject *obj);
int pfGetNumUserData(pfObject *obj);
int pfGetNamedUserDataSlot(const char *name);
const char* pfGetUserDataSlotName(int slot);
int pfGetNumNamedUserDataSlots(void);
int pfGetGLHandle(pfObject *obj);
int pfDeleteGLHandle(pfObject *obj);
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.
pfType * pfGetType(const void *ptr);
int pfIsOfType(const void *ptr, pfType *type);
int pfIsExactType(const void *ptr, pfType *type);
const char * pfGetTypeName(const void *ptr);
int pfRef(void *ptr);
int pfUnref(void *ptr);
int pfUnrefDelete(void *ptr);
int pfUnrefGetRef(void *ptr);
int pfGetRef(const void *ptr);
Page 3
pfFluxedFBState(3pf) OpenGL Performer 3.2.2 libpr C Reference Pages
int pfCopy(void *dst, void *src);
int pfDelete(void *ptr);
int pfIsFluxed(void *ptr);
int pfCompare(const void *ptr1, const void *ptr2);
void pfPrint(const void *ptr, uint which, uint verbose,
FILE *file);
void * pfGetArena(void *ptr);
DESCRIPTION
pfFluxedFBState 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.
pfFFBStateStencilOp, pfFFBStateStencilFunc, pfFFBStateStencilMask
correspond to the OpenGL funcions glStencilOp, glStencilFunc, and
glStencilMask. These functions control the operation of the stencil
buffer and the stencil test.
pfFFBStateBlendFunc, pfFFBStateBlendEquation, pfFFBStateBlendColor
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.
pfFFBStateDepthFunc, pfFFBStateDepthRange, and pfFFBStateDepthMask
control the operation of the depth buffer. They correspond to the OpenGL
functions glDepthFunc, glDepthRange, and glDepthMask
pfFFBStateColorMask controls which color channels in the frame buffer are
modified by rendering commands. This function corresponds to glColorMask
in OpenGL.
pfFFBStateEnable 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
pfFFBStateColorMatrix 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
Page 4
pfFluxedFBState(3pf) OpenGL Performer 3.2.2 libpr C Reference Pages
glMatrixMode(GL_COLOR) followed by glLoadMatrixf(<matrix>).
pfFFBStateShadeModel is used to control whether OpenGL flat shades or
smooth shades triangles. The corresponding OpenGL function is
glShadeModel
pfFFBStatePixelBias and pfFFBStatePixelScale 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.
pfFFBStatePixelMap 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 5