osg::BlendFunc Class Reference

`#include <BlendFunc>`

Inheritance diagram for osg::BlendFunc:

## Public Types

enum

BlendFuncMode {
DST_ALPHA = GL_DST_ALPHA , DST_COLOR = GL_DST_COLOR , ONE = GL_ONE , ONE_MINUS_DST_ALPHA = GL_ONE_MINUS_DST_ALPHA ,
ONE_MINUS_DST_COLOR = GL_ONE_MINUS_DST_COLOR , ONE_MINUS_SRC_ALPHA = GL_ONE_MINUS_SRC_ALPHA , ONE_MINUS_SRC_COLOR = GL_ONE_MINUS_SRC_COLOR , SRC_ALPHA = GL_SRC_ALPHA ,
SRC_ALPHA_SATURATE = GL_SRC_ALPHA_SATURATE , SRC_COLOR = GL_SRC_COLOR , CONSTANT_COLOR = GL_CONSTANT_COLOR , ONE_MINUS_CONSTANT_COLOR = GL_ONE_MINUS_CONSTANT_COLOR ,
CONSTANT_ALPHA = GL_CONSTANT_ALPHA , ONE_MINUS_CONSTANT_ALPHA = GL_ONE_MINUS_CONSTANT_ALPHA , ZERO = GL_ZERO
}

Public Types inherited from osg::StateAttribute
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 , SAMPLEMASKI ,
PRIMITIVERESTARTINDEX , CLIPCONTROL , VALIDATOR , VIEWMATRIXEXTRACTOR ,
OSGNV_PARAMETER_BLOCK , OSGNVEXT_TEXTURE_SHADER , OSGNVEXT_VERTEX_PROGRAM , OSGNVEXT_REGISTER_COMBINERS ,
OSGNVCG_PROGRAM , OSGNVSLANG_PROGRAM , OSGNVPARSE_PROGRAM_PARSER , UNIFORMBUFFERBINDING ,
TRANSFORMFEEDBACKBUFFERBINDING , ATOMICCOUNTERBUFFERBINDING , PATCH_PARAMETER , FRAME_BUFFER_OBJECT ,
VERTEX_ATTRIB_DIVISOR , SHADERSTORAGEBUFFERBINDING , INDIRECTDRAWBUFFERBINDING , VIEWPORTINDEXED ,
DEPTHRANGEINDEXED , SCISSORINDEXED , BINDIMAGETEXTURE , SAMPLER ,
CAPABILITY = 100
}

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
Public Types inherited from osg::Object
enum | DataVariance { DYNAMIC , STATIC , UNSPECIFIED }

## Public Member Functions

| BlendFunc ()
| BlendFunc (GLenum source, GLenum destination)
| BlendFunc (GLenum source, GLenum destination, GLenum source_alpha, GLenum destination_alpha)
| BlendFunc (const BlendFunc &trans, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
| META_StateAttribute (osg, BlendFunc, BLENDFUNC)
virtual int | compare (const StateAttribute &sa) const
virtual bool | getModeUsage (StateAttribute::ModeUsage &usage) const
void | setFunction (GLenum source, GLenum destination)
void | setFunction (GLenum source_rgb, GLenum destination_rgb, GLenum source_alpha, GLenum destination_alpha)
void | setSource (GLenum source)
GLenum | getSource () const
void | setSourceRGB (GLenum source)
GLenum | getSourceRGB () const
void | setSourceAlpha (GLenum source)
GLenum | getSourceAlpha () const
void | setDestination (GLenum destination)
GLenum | getDestination () const
void | setDestinationRGB (GLenum destination)
GLenum | getDestinationRGB () const
void | setDestinationAlpha (GLenum destination)
GLenum | getDestinationAlpha () const
virtual void | apply (State &state) const
Public Member Functions inherited from osg::StateAttribute
| StateAttribute ()
| StateAttribute (const StateAttribute &sa, const CopyOp &copyop=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 StateAttribute * | asStateAttribute ()
virtual const StateAttribute * | asStateAttribute () 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
Public Member Functions inherited from osg::Object
| Object ()
| Object (bool threadSafeRefUnref)
| Object (const Object &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
std::string | getCompoundClassName () const
virtual Node * | asNode ()
virtual const Node * | asNode () const
virtual NodeVisitor * | asNodeVisitor ()
virtual const NodeVisitor * | asNodeVisitor () const
virtual StateSet * | asStateSet ()
virtual const StateSet * | asStateSet () const
virtual Uniform * | asUniform ()
virtual const Uniform * | asUniform () const
virtual Camera * | asCamera ()
virtual const Camera * | asCamera () const
virtual Drawable * | asDrawable ()
virtual const Drawable * | asDrawable () const
virtual Callback * | asCallback ()
virtual const Callback * | asCallback () const
virtual CallbackObject * | asCallbackObject ()
virtual const CallbackObject * | asCallbackObject () const
virtual UserDataContainer * | asUserDataContainer ()
virtual const UserDataContainer * | asUserDataContainer () const
virtual ValueObject * | asValueObject ()
virtual const ValueObject * | asValueObject () const
virtual Image * | asImage ()
virtual const Image * | asImage () const
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)
template<class T>
void | setUserDataContainer (const ref_ptr< T > &udc)
osg::UserDataContainer * | getUserDataContainer ()
const osg::UserDataContainer * | getUserDataContainer () const
osg::UserDataContainer * | getOrCreateUserDataContainer ()
virtual void | setUserData (Referenced *obj)
template<class T>
void | setUserData (const ref_ptr< T > &ud)
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)
template<typename T>
BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool | getUserValue (const std::string &name, T &value) const
Public Member Functions inherited from osg::Referenced
| 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

## Protected Member Functions

virtual | ~BlendFunc ()
Protected Member Functions inherited from osg::StateAttribute
virtual | ~StateAttribute ()
void | addParent (osg::StateSet *object)
void | removeParent (osg::StateSet *object)
Protected Member Functions inherited from osg::Object
virtual | ~Object ()
Protected Member Functions inherited from osg::Referenced
virtual | ~Referenced ()
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const
void | deleteUsingDeleteHandler () const

## Protected Attributes

GLenum | _source_factor
GLenum | _destination_factor
GLenum | _source_factor_alpha
GLenum | _destination_factor_alpha
Protected Attributes inherited from osg::StateAttribute
ParentList | _parents
ref_ptr< ShaderComponent > | _shaderComponent
ref_ptr< StateAttributeCallback > | _updateCallback
ref_ptr< StateAttributeCallback > | _eventCallback
Protected Attributes inherited from osg::Object
std::string | _name
DataVariance | _dataVariance
osg::UserDataContainer * | _userDataContainer
Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr | _observerSet
OpenThreads::Atomic | _refCount

## Additional Inherited Members

Static Public Member Functions inherited from osg::Referenced
static OpenThreads::Mutex * | getGlobalReferencedMutex ()
static void | setDeleteHandler (DeleteHandler *handler)
static DeleteHandler * | getDeleteHandler ()

## Detailed Description

Encapsulates OpenGL blend/transparency state.

Blending combines incoming fragment with a fragment already present in the target buffer.

OpenGL 1.1 supports following source and destination blending factors: GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA, GL_ZERO, GL_ONE.

Moreover, there are three source-only blending factors: GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA_SATURATE and two destination-only blending factors: GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR. OpenGL 1.4 allowed to use these five blending factors as both - source and destination blending factors.

Following four source and destination blending factors were added by Imaging subset of OpenGL 1.2 and made mandatory by OpenGL 1.4: GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_ALPHA

OpenGL 1.4 further provides glBlendFuncSeparate (promoted from GL_EXT_blend_func_separate). It makes possible to set blending functions for RGB and Alpha separately. Before, it was possible to set just one blending function for RGBA.

## Member Enumeration Documentation

## BlendFuncMode

enum osg::BlendFunc::BlendFuncMode

Enumerator
DST_ALPHA |
DST_COLOR |
ONE |
ONE_MINUS_DST_ALPHA |
ONE_MINUS_DST_COLOR |
ONE_MINUS_SRC_ALPHA |
ONE_MINUS_SRC_COLOR |
SRC_ALPHA |
SRC_ALPHA_SATURATE |
SRC_COLOR |
CONSTANT_COLOR |
ONE_MINUS_CONSTANT_COLOR |
CONSTANT_ALPHA |
ONE_MINUS_CONSTANT_ALPHA |
ZERO |

## Constructor & Destructor Documentation

## BlendFunc() [1/4]

osg::BlendFunc::BlendFunc | ( |  | ) |

Referenced by BlendFunc(), osg::BlendFunci::BlendFunci(), osg::BlendFunci::BlendFunci(), osg::BlendFunci::BlendFunci(), compare(), and META_StateAttribute().

## BlendFunc() [2/4]

osg::BlendFunc::BlendFunc | ( | GLenum | source,
|  | GLenum | destination )

## BlendFunc() [3/4]

osg::BlendFunc::BlendFunc | ( | GLenum | source,
|  | GLenum | destination,
|  | GLenum | source_alpha,
|  | GLenum | destination_alpha )

## BlendFunc() [4/4]

osg::BlendFunc::BlendFunc | ( | const BlendFunc & | trans,
|  | const CopyOp & | copyop = CopyOp::SHALLOW_COPY )

inline

Copy constructor using CopyOp to manage deep vs shallow copy.

References _destination_factor, _destination_factor_alpha, _source_factor, _source_factor_alpha, BlendFunc(), osg::CopyOp::SHALLOW_COPY, and osg::StateAttribute::StateAttribute().

## ~BlendFunc()

virtual osg::BlendFunc::~BlendFunc | ( |  | ) |

protected virtual

## Member Function Documentation

## apply()

virtual void osg::BlendFunc::apply | ( | State & |  | ) | const

virtual

apply the OpenGL state attributes. The render info for the current OpenGL context is passed in to allow the StateAttribute to obtain details on the the current context and state.

Reimplemented from osg::StateAttribute.

Reimplemented in osg::BlendFunci.

## compare()

virtual int osg::BlendFunc::compare | ( | const StateAttribute & | sa | ) | const

inline virtual

Return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs.

Implements osg::StateAttribute.

Reimplemented in osg::BlendFunci.

References _destination_factor, _destination_factor_alpha, _source_factor, _source_factor_alpha, BlendFunc(), COMPARE_StateAttribute_Parameter, COMPARE_StateAttribute_Types, and osg::StateAttribute::StateAttribute().

Referenced by osg::BlendFunci::compare().

## getDestination()

GLenum osg::BlendFunc::getDestination | ( |  | ) | const

inline

References _destination_factor.

## getDestinationAlpha()

GLenum osg::BlendFunc::getDestinationAlpha | ( |  | ) | const

inline

References _destination_factor_alpha.

## getDestinationRGB()

GLenum osg::BlendFunc::getDestinationRGB | ( |  | ) | const

inline

References _destination_factor.

## getModeUsage()

virtual bool osg::BlendFunc::getModeUsage | ( | StateAttribute::ModeUsage & |  | ) | const

inline virtual

Return the modes associated with this StateAttribute.

Reimplemented from osg::StateAttribute.

References osg::StateAttribute::ModeUsage::usesMode().

## getSource()

GLenum osg::BlendFunc::getSource | ( |  | ) | const

inline

References _source_factor.

## getSourceAlpha()

GLenum osg::BlendFunc::getSourceAlpha | ( |  | ) | const

inline

References _source_factor_alpha.

## getSourceRGB()

GLenum osg::BlendFunc::getSourceRGB | ( |  | ) | const

inline

References _source_factor.

## META_StateAttribute()

osg::BlendFunc::META_StateAttribute | ( | osg | ,
|  | BlendFunc | ,
|  | BLENDFUNC | )

References osg::StateAttribute::BLENDFUNC, and BlendFunc().

## setDestination()

void osg::BlendFunc::setDestination | ( | GLenum | destination | ) |

inline

References _destination_factor, and _destination_factor_alpha.

## setDestinationAlpha()

void osg::BlendFunc::setDestinationAlpha | ( | GLenum | destination | ) |

inline

References _destination_factor_alpha.

## setDestinationRGB()

void osg::BlendFunc::setDestinationRGB | ( | GLenum | destination | ) |

inline

References _destination_factor.

## setFunction() [1/2]

void osg::BlendFunc::setFunction | ( | GLenum | source,
|  | GLenum | destination )

inline

References _destination_factor, _destination_factor_alpha, _source_factor, and _source_factor_alpha.

## setFunction() [2/2]

void osg::BlendFunc::setFunction | ( | GLenum | source_rgb,
|  | GLenum | destination_rgb,
|  | GLenum | source_alpha,
|  | GLenum | destination_alpha )

inline

References _destination_factor, _destination_factor_alpha, _source_factor, and _source_factor_alpha.

## setSource()

void osg::BlendFunc::setSource | ( | GLenum | source | ) |

inline

References _source_factor, and _source_factor_alpha.

## setSourceAlpha()

void osg::BlendFunc::setSourceAlpha | ( | GLenum | source | ) |

inline

References _source_factor_alpha.

## setSourceRGB()

void osg::BlendFunc::setSourceRGB | ( | GLenum | source | ) |

inline

References _source_factor.

## Member Data Documentation

## _destination_factor

GLenum osg::BlendFunc::_destination_factor

protected

Referenced by BlendFunc(), compare(), getDestination(), getDestinationRGB(), setDestination(), setDestinationRGB(), setFunction(), and setFunction().

## _destination_factor_alpha

GLenum osg::BlendFunc::_destination_factor_alpha

protected

Referenced by BlendFunc(), compare(), getDestinationAlpha(), setDestination(), setDestinationAlpha(), setFunction(), and setFunction().

## _source_factor

GLenum osg::BlendFunc::_source_factor

protected

Referenced by BlendFunc(), compare(), getSource(), getSourceRGB(), setFunction(), setFunction(), setSource(), and setSourceRGB().

## _source_factor_alpha

GLenum osg::BlendFunc::_source_factor_alpha

protected

Referenced by BlendFunc(), compare(), getSourceAlpha(), setFunction(), setFunction(), setSource(), and setSourceAlpha().

The documentation for this class was generated from the following file:

- BlendFunc