pfCombiner(3pf) OpenGL Performer 3.2.2 libpr C++ Reference Pages
NAMEpfCombiner - Encapsulation of NV_register_combiners OpenGL extension.
FUNCTION SPECIFICATION
#include <Performer/pr/pfCombiner.h>
pfCombiner::pfCombiner();
static pfType * pfCombiner::getClassType();
void pfCombiner::apply();
void pfCombiner::setGeneralInput(GLenum stage,
GLenum portion, GLenum variable, GLenum input,
GLenum mapping, GLenum componentUsage);
void pfCombiner::setGeneralOutput(GLenum stage,
GLenum portion, GLenum abOutput, GLenum cdOutput,
GLenum sumOutput, GLenum scale, GLenum bias,
GLboolean abDotProduct, GLboolean cdDotProduct,
GLboolean muxSum);
void pfCombiner::setFinalInput(GLenum variable,
GLenum input, GLenum mapping,
GLenum componentUsage);
void pfCombiner::setGeneralOutput(GLenum stage,
GLenum portion, GLenum componentUsage);
int pfCombiner::getMaxGeneralCombiners(void);
void pfCombiner::setActiveCombiners(int count);
void pfCombiner::setActiveConstColors(int count);
void pfCombiner::setConstantColor0(const pfVec4 color);
void pfCombiner::setConstantColor1(const pfVec4 color);
virtual int pfCombiner::print(uint _travMode, uint _verbose,
char *prefix, FILE *file);
PARENT CLASS FUNCTIONS
The OpenGL Performer class pfCombiner is derived from the parent class
pfObject, so each of these member functions of class pfObject are also
directly usable with objects of class pfCombiner. This is also true for
ancestor classes of class pfObject.
void* pfObject::operator new(size_t);
Page 1
pfCombiner(3pf) OpenGL Performer 3.2.2 libpr C++ Reference Pages
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 pfCombiner 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();
DESCRIPTION
A pfCombiner is an encapsulation of the state of all modes related to the
NV_register_combiners OpenGL extension. A pfCombiner can be used within
a pfGeoState by setting the PFSTATE_COMBINER attribute and the and the
PFEN_COMBINER state.
The function pfCombiner::getClassType returns the pfType pointer for the
class pfCombiner.
The number of active register combiners can be set with the function
pfCombiner::setActiveCombiners. The maximum number of available general
combiners can be queried with the function
pfCombiner::getMaxGeneralCombiners.
The parameter stage for pfCombiner::setGeneralInput and
pfCombiner::setGeneralOutput can take on any of the following values:
GL_COMBINER0_NV
GL_COMBINER1_NV
Page 2
pfCombiner(3pf) OpenGL Performer 3.2.2 libpr C++ Reference Pages
GL_COMBINER2_NV
GL_COMBINER3_NV
GL_COMBINER4_NV
GL_COMBINER5_NV
GL_COMBINER6_NV
GL_COMBINER7_NV
The parameter variable in pfCombiner::setGeneralInput and
pfCombiner::setFinalInput can take on any of the following values:
GL_VARIABLE_A_NV
GL_VARIABLE_B_NV
GL_VARIABLE_C_NV
GL_VARIABLE_D_NV
GL_VARIABLE_E_NV (applicable only to pfCombiner::setFinalInput)
GL_VARIABLE_F_NV (applicable only to pfCombiner::setFinalInput)
GL_VARIABLE_G_NV (applicable only to pfCombiner::setFinalInput)
The parameter input for pfCombiner::setGeneralInput and
pfCombiner::setFinalInput can take on any of the following values:
GL_ZERO
GL_CONSTANT_COLOR0_NV
GL_CONSTANT_COLOR1_NV
GL_FOG
GL_PRIMARY_COLOR_NV
GL_SECONDARY_COLOR_NV
GL_SPARE0_NV
GL_SPARE1_NV
GL_TEXTURE0_ARB
GL_TEXTURE1_ARB
GL_E_TIMES_F_NV (applicable only to pfCombiner::setFinalInput)
GL_SPARE0_PLUS_SECONDARY_COLOR_NV (applicable only to
pfCombiner::setFinalInput)
The parameter mapping to pfCombiner::setGeneralInput and
pfCombiner::setFinalInput can take on any of the following values:
GL_UNSIGNED_IDENTITY_NV
GL_UNSIGNED_INVERT_NV
GL_EXPAND_NORMAL_NV
GL_EXPAND_NEGATE_NV
GL_HALF_BIAS_NORMAL_NV
GL_HALF_BIAS_NEGATE_NV
GL_SIGNED_IDENTITY_NV
GL_SIGNED_NEGATE_NV
The scale parameter of
LcpfGeneralOutputCombinerpfCombiner::setGeneralOutput can take any of the
following values:
GL_NONE
GL_SCALE_BY_TWO_NV
GL_SCALE_BY_FOUR_NV
GL_SCALE_BY_ONE_HALF_NV
Page 3
pfCombiner(3pf) OpenGL Performer 3.2.2 libpr C++ Reference Pages
The bias parameter of pfCombiner::setGeneralOutput can take the following
values:
GL_NONE
GL_BIAS_BY_NEGATIVE_ONE_HALF_NV
Accepted by the abOutput, cdOutput, and sumOutput parameter of
pfCombiner::setGeneralOutput are the following values:
GL_DISCARD_NV
GL_PRIMARY_COLOR_NV
GL_SECONDARY_COLOR_NV
GL_SPARE0_NV
GL_SPARE1_NV
GL_TEXTURE0_ARB
GL_TEXTURE1_ARB
SEE ALSO
pfGeoState
Page 4