|
enum | Face { FRONT = 0,
BACK = 1
} |
|
enum | Function {
NEVER = GL_NEVER,
LESS = GL_LESS,
EQUAL = GL_EQUAL,
LEQUAL = GL_LEQUAL,
GREATER = GL_GREATER,
NOTEQUAL = GL_NOTEQUAL,
GEQUAL = GL_GEQUAL,
ALWAYS = GL_ALWAYS
} |
|
enum | Operation {
KEEP = GL_KEEP,
ZERO = GL_ZERO,
REPLACE = GL_REPLACE,
INCR = GL_INCR,
DECR = GL_DECR,
INVERT = GL_INVERT,
INCR_WRAP = GL_INCR_WRAP,
DECR_WRAP = GL_DECR_WRAP
} |
|
enum | Values {
OFF = 0x0,
ON = 0x1,
OVERRIDE = 0x2,
PROTECTED = 0x4,
INHERIT = 0x8
} |
|
enum | Type {
TEXTURE,
POLYGONMODE,
POLYGONOFFSET,
MATERIAL,
ALPHAFUNC,
ANTIALIAS,
COLORTABLE,
CULLFACE,
FOG,
FRONTFACE,
LIGHT,
POINT,
LINEWIDTH,
LINESTIPPLE,
POLYGONSTIPPLE,
SHADEMODEL,
TEXENV,
TEXENVFILTER,
TEXGEN,
TEXMAT,
LIGHTMODEL,
BLENDFUNC,
BLENDEQUATION,
LOGICOP,
STENCIL,
COLORMASK,
DEPTH,
VIEWPORT,
SCISSOR,
BLENDCOLOR,
MULTISAMPLE,
CLIPPLANE,
COLORMATRIX,
VERTEXPROGRAM,
FRAGMENTPROGRAM,
POINTSPRITE,
PROGRAM,
CLAMPCOLOR,
HINT,
VALIDATOR,
VIEWMATRIXEXTRACTOR,
OSGNV_PARAMETER_BLOCK,
OSGNVEXT_TEXTURE_SHADER,
OSGNVEXT_VERTEX_PROGRAM,
OSGNVEXT_REGISTER_COMBINERS,
OSGNVCG_PROGRAM,
OSGNVSLANG_PROGRAM,
OSGNVPARSE_PROGRAM_PARSER,
UNIFORMBUFFERBINDING,
TRANSFORMFEEDBACKBUFFERBINDING
} |
|
typedef GLenum | GLMode |
|
typedef unsigned int | GLModeValue |
|
typedef unsigned int | OverrideValue |
|
typedef std::pair< Type,
unsigned int > | TypeMemberPair |
|
typedef std::vector< StateSet * > | ParentList |
|
typedef osg::StateAttributeCallback | Callback |
|
enum | DataVariance { DYNAMIC,
STATIC,
UNSPECIFIED
} |
|
|
| StencilTwoSided () |
|
| StencilTwoSided (const StencilTwoSided &stencil, const CopyOp ©op=CopyOp::SHALLOW_COPY) |
|
| META_StateAttribute (osg, StencilTwoSided, STENCIL) |
|
virtual int | compare (const StateAttribute &sa) const |
|
virtual bool | getModeUsage (StateAttribute::ModeUsage &usage) const |
|
void | setFunction (Face face, Function func, int ref, unsigned int mask) |
|
void | setFunction (Face face, Function func) |
|
Function | getFunction (Face face) const |
|
void | setFunctionRef (Face face, int ref) |
|
int | getFunctionRef (Face face) const |
|
void | setFunctionMask (Face face, unsigned int mask) |
|
unsigned int | getFunctionMask (Face face) const |
|
void | setOperation (Face face, Operation sfail, Operation zfail, Operation zpass) |
|
void | setStencilFailOperation (Face face, Operation sfail) |
|
Operation | getStencilFailOperation (Face face) const |
|
void | setStencilPassAndDepthFailOperation (Face face, Operation zfail) |
|
Operation | getStencilPassAndDepthFailOperation (Face face) const |
|
void | setStencilPassAndDepthPassOperation (Face face, Operation zpass) |
|
Operation | getStencilPassAndDepthPassOperation (Face face) const |
|
void | setWriteMask (Face face, unsigned int mask) |
|
unsigned int | getWriteMask (Face face) const |
|
virtual void | apply (State &state) const |
|
| StateAttribute () |
|
| StateAttribute (const StateAttribute &sa, const CopyOp ©op=CopyOp::SHALLOW_COPY) |
|
virtual Object * | cloneType () const =0 |
|
virtual Object * | clone (const CopyOp &) const =0 |
|
virtual bool | isSameKindAs (const Object *obj) const |
|
virtual const char * | libraryName () const |
|
virtual const char * | className () const |
|
virtual Texture * | asTexture () |
|
virtual const Texture * | asTexture () const |
|
virtual Type | getType () const =0 |
|
virtual unsigned int | getMember () const |
|
TypeMemberPair | getTypeMemberPair () const |
|
virtual bool | isTextureAttribute () const |
|
bool | operator< (const StateAttribute &rhs) const |
|
bool | operator== (const StateAttribute &rhs) const |
|
bool | operator!= (const StateAttribute &rhs) const |
|
const ParentList & | getParents () const |
|
StateSet * | getParent (unsigned int i) |
|
const StateSet * | getParent (unsigned int i) const |
|
unsigned int | getNumParents () const |
|
void | setShaderComponent (ShaderComponent *sc) |
|
ShaderComponent * | getShaderComponent () |
|
const ShaderComponent * | getShaderComponent () const |
|
virtual bool | checkValidityOfAssociatedModes (osg::State &) const |
|
void | setUpdateCallback (StateAttributeCallback *uc) |
|
StateAttributeCallback * | getUpdateCallback () |
|
const StateAttributeCallback * | getUpdateCallback () const |
|
void | setEventCallback (StateAttributeCallback *ec) |
|
StateAttributeCallback * | getEventCallback () |
|
const StateAttributeCallback * | getEventCallback () const |
|
virtual void | compileGLObjects (State &) const |
|
virtual void | resizeGLObjectBuffers (unsigned int) |
|
virtual void | releaseGLObjects (State *=0) const |
|
| Object () |
|
| Object (bool threadSafeRefUnref) |
|
| Object (const Object &, const CopyOp ©op=CopyOp::SHALLOW_COPY) |
|
virtual void | setThreadSafeRefUnref (bool threadSafe) |
|
virtual void | setName (const std::string &name) |
|
void | setName (const char *name) |
|
const std::string & | getName () const |
|
void | setDataVariance (DataVariance dv) |
|
DataVariance | getDataVariance () const |
|
virtual void | computeDataVariance () |
|
void | setUserDataContainer (osg::UserDataContainer *udc) |
|
osg::UserDataContainer * | getUserDataContainer () |
|
const osg::UserDataContainer * | getUserDataContainer () const |
|
osg::UserDataContainer * | getOrCreateUserDataContainer () |
|
virtual void | setUserData (Referenced *obj) |
|
virtual Referenced * | getUserData () |
|
virtual const Referenced * | getUserData () const |
|
template<typename T > |
bool | getUserValue (const std::string &name, T &value) const |
|
template<typename T > |
void | setUserValue (const std::string &name, const T &value) |
|
| Referenced () |
|
| Referenced (bool threadSafeRefUnref) |
|
| Referenced (const Referenced &) |
|
Referenced & | operator= (const Referenced &) |
|
bool | getThreadSafeRefUnref () const |
|
OpenThreads::Mutex * | getRefMutex () const |
|
int | ref () const |
|
int | unref () const |
|
int | unref_nodelete () const |
|
int | referenceCount () const |
|
ObserverSet * | getObserverSet () const |
|
ObserverSet * | getOrCreateObserverSet () const |
|
void | addObserver (Observer *observer) const |
|
void | removeObserver (Observer *observer) const |
|
Provides OpenGL two sided stencil functionality, also known as separate stencil. It enables to specify different stencil function for front and back facing polygons. Two sided stenciling is used usually to eliminate the need of two rendering passes when using standard stenciling functions. See also
- See Also
- osg::Stencil.
Two sided stenciling is available since OpenGL 2.0. It is also supported by EXT_stencil_two_side extension especially on Nvidia cards. Another extension introduced by ATI is ATI_separate_stencil. However, ATI's extension is limited to have reference and mask value the same for both faces. ATI's extension is currently not supported by the current implementation.
osg::StencilTwoSided does nothing if OpenGL 2.0 or EXT_stencil_two_side are not available.