pfCombiner(3pf) OpenGL Performer 3.2.2 libpr C Reference Pages
NAME
pfNewCombiner, pfGetCombinerClassType, pfApplyCombiner,
pfGeneralInputCombiner, pfGeneralOutputCombiner, pfFinalInputCombiner,
pfActiveCombinersCombiner, pfActiveConstColorsCombiner,
pfCombinerConstColor0, pfCombinerConstColor1,
pfCombinerGeneralConstColor0, pfCombinerGeneralConstColor1,
pfCombinerFinalConstColor0, pfCombinerFinalConstColor1, pfPrintCombiner,
pfGetMaxGeneralCombiners - Encapsulation of NV_register_combiners OpenGL
extension.
FUNCTION SPECIFICATION
#include <Performer/pr.h>
pfCombiner* pfNewCombiner(void *arena);
pfType* pfGetCombinerClassType(void);
void pfApplyCombiner(pfCombiner* _combiner);
void pfGeneralInputCombiner(pfCombiner* _combiner, GLenum stage,
GLenum portion, GLenum variable, GLenum input,
GLenum mapping, GLenum componentUsage);
void pfGeneralOutputCombiner(pfCombiner* _combiner,
GLenum stage, GLenum portion, GLenum abOutput,
GLenum cdOutput, GLenum sumOutput, GLenum scale,
GLenum bias, GLboolean abDotProduct,
GLboolean cdDotProduct, GLboolean muxSum);
void pfFinalInputCombiner(pfCombiner* _combiner,
GLenum variable, GLenum input, GLenum mapping,
GLenum componentUsage);
void pfActiveCombinersCombiner(pfCombiner* _combiner,
int count);
void pfActiveConstColorsCombiner(pfCombiner* _combiner,
int count);
void pfCombinerConstColor0(pfCombiner* _combiner,
const pfVec4 color);
void pfCombinerConstColor1(pfCombiner* _combiner,
const pfVec4 color);
void pfCombinerGeneralConstColor0(pfCombiner* _combiner,
GLenum stage, const pfVec4 color);
void pfCombinerGeneralConstColor1(pfCombiner* _combiner,
GLenum stage, const pfVec4 color);
Page 1
pfCombiner(3pf) OpenGL Performer 3.2.2 libpr C Reference Pages
void pfCombinerFinalConstColor0(pfCombiner* _combiner,
const pfVec4 color);
void pfCombinerFinalConstColor1(pfCombiner* _combiner,
const pfVec4 color);
int pfPrintCombiner(pfCombiner* _combiner, uint _travMode,
uint _verbose, char *prefix, FILE *file);
int pfGetMaxGeneralCombiners(pfCombiner* _combiner);
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. Casting an object of
class pfCombiner 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 pfCombiner 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);
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);
Page 2
pfCombiner(3pf) OpenGL Performer 3.2.2 libpr C Reference Pages
void * pfGetArena(void *ptr);
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 pfGetCombinerClassType returns the pfType pointer for the
class pfCombiner.
The number of active register combiners can be set with the function
pfActiveCombinersCombiner. The maximum number of available general
combiners can be queried with the function pfGetMaxGeneralCombiners.
The parameter stage for pfGeneralInputCombiner and
pfGeneralOutputCombiner can take on any of the following values:
GL_COMBINER0_NV
GL_COMBINER1_NV
GL_COMBINER2_NV
GL_COMBINER3_NV
GL_COMBINER4_NV
GL_COMBINER5_NV
GL_COMBINER6_NV
GL_COMBINER7_NV
The parameter variable in pfGeneralInputCombiner and pfFinalInputCombiner
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 pfFinalInputCombiner)
GL_VARIABLE_F_NV (applicable only to pfFinalInputCombiner)
GL_VARIABLE_G_NV (applicable only to pfFinalInputCombiner)
The parameter input for pfGeneralInputCombiner and pfFinalInputCombiner
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 pfFinalInputCombiner)
GL_SPARE0_PLUS_SECONDARY_COLOR_NV (applicable only to
pfFinalInputCombiner)
Page 3
pfCombiner(3pf) OpenGL Performer 3.2.2 libpr C Reference Pages
The parameter mapping to pfGeneralInputCombiner and pfFinalInputCombiner
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 LcpfGeneralOutputCombiner 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
The bias parameter of pfGeneralOutputCombiner can take the following
values:
GL_NONE
GL_BIAS_BY_NEGATIVE_ONE_HALF_NV
Accepted by the abOutput, cdOutput, and sumOutput parameter of
pfGeneralOutputCombiner 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