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 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 ©op=CopyOp::SHALLOW_COPY) |
| | Copy constructor using CopyOp to manage deep vs shallow copy.
|
| | META_StateAttribute (osg, BlendFunc, BLENDFUNC) |
| virtual int | compare (const StateAttribute &sa) const |
| | Return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs.
|
| virtual bool | getModeUsage (StateAttribute::ModeUsage &usage) const |
| | Return the modes associated with this StateAttribute.
|
| 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 |
| | apply the OpenGL state attributes.
|
Protected Member Functions |
| virtual | ~BlendFunc () |
Protected Attributes |
| GLenum | _source_factor |
| GLenum | _destination_factor |
| GLenum | _source_factor_alpha |
| GLenum | _destination_factor_alpha |
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.