pfOverride(3pf) OpenGL Performer 3.2.2 libpr C++ Reference Pages
NAME
pfOverride, pfGetOverride, pfGLOverride, pfGetGLOverride - Override state
element(s).
FUNCTION SPECIFICATION
#include <Performer/pr.h>
void pfOverride(uint64_t mask, int val);
uint64_t pfGetOverride(void);
void pfGLOverride(int which, float val);
float pfGetGLOverride(int which);
PARAMETERS
mask is a bit mask that specifies the state elements that are to be set
to the override value val. mask is a bitwise OR of:
PFSTATE_ENLIGHTING
PFSTATE_ENTEXTURE
PFSTATE_ENFOG
PFSTATE_ENWIREFRAME
PFSTATE_ENHIGHLIGHTING
PFSTATE_ENCOLORTABLE
PFSTATE_FRONTMTL
PFSTATE_BACKMTL
PFSTATE_TEXTURE
PFSTATE_TEXENV
PFSTATE_ALPHAFUNC
PFSTATE_TRANSPARENCY
PFSTATE_ANTIALIAS
PFSTATE_CULLFACE
PFSTATE_DECAL
PFSTATE_ALPHAREF
PFSTATE_COLORTABLE
PFSTATE_HIGHLIGHT
PFSTATE_FOG
PFSTATE_LIGHTS
PFSTATE_LIGHTMODEL
PFSTATE_COMBINER
PFSTATE_VTXPROG
PFSTATE_FRAGPROG
PFSTATE_SHADPROG
val is a symbolic token and either PF_ON or PF_OFF indicating whether
the state elements in mask should be overridden or not.
DESCRIPTION
pfOverride is used to override individual state elements. If a state
element is overridden, all subsequent attempts to modify it will be
ignored. An overridden state element is locked to the current value at
the time pfOverride is called.
Page 1
pfOverride(3pf) OpenGL Performer 3.2.2 libpr C++ Reference Pages
Example 1:
pfTransparency(PFTR_OFF);
tex->apply();
pfDisable(PFEN_LIGHTING);
pfOverride(PFSTATE_TRANSPARENCY | PFSTATE_TEXTURE | PFSTATE_ENLIGHTING, PF_ON);
This example turns off transparency and lighting and applies tex to all
subsequent geometry for which texturing is enabled.
pfOverride with a val of PF_OFF will free the state elements specified by
mask to be modified. Although state elements will not be restored to
their pre-override condition, pfPushState and pfPopState may be used to
do so. The override mask is pushed and popped along with the rest of the
state.
pfGetOverride returns the current override mask.
pfOverride is a display-listable command. If a pfDispList has been
opened by pfDispList::open, pfOverride will not have immediate effect but
will be captured by the pfDispList and will only have effect when that
pfDispList is later drawn with pfDispList::draw.
pfGLOverride overrides the graphics library mechanism used to achieve a
desired effect such as transparency and visually correct coplanar
geometry. which identifies the mechanism to override and is one of the
following:
PFGL_TRANSPARENCY
val may be either PFGL_TRANSP_MSALPHA or PFGL_TRANSP_BLEND. in
which case multisample ("screen-door") or blending will be used
when transparency is enabled (see pfTransparency).
PFGL_DECAL
val may be either PFGL_DECAL_STENCIL or PFGL_DECAL_DISPLACE in
which case stenciling or displacement will be used for all
decals (see pfDecal).
pfGetGLOverride returns the override mode corresponding to which.
SEE ALSO
pfDispList, pfDrawDList, pfGeoState, pfOpenDList, pfState,
pfTransparency, pfDecal
Page 2