OpenSceneGraph
3.0.1
|
Encapsulates OpenGL blend/transparency state. More...
Classes | |
class | Extensions |
Encapsulates queries of extension availability, obtains extension function pointers, and provides convenience wrappers for calling extension functions. More... | |
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. | |
Static Public Member Functions | |
static Extensions * | getExtensions (unsigned int contextID, bool createIfNotInitalized) |
Returns the Extensions object for the given context. | |
static void | setExtensions (unsigned int contextID, Extensions *extensions) |
setExtensions() allows users to override the extensions across graphics contexts. | |
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.
osg::BlendFunc::BlendFunc | ( | ) |
osg::BlendFunc::BlendFunc | ( | GLenum | source, |
GLenum | destination | ||
) |
osg::BlendFunc::BlendFunc | ( | GLenum | source, |
GLenum | destination, | ||
GLenum | source_alpha, | ||
GLenum | destination_alpha | ||
) |
osg::BlendFunc::BlendFunc | ( | const BlendFunc & | trans, |
const CopyOp & | copyop = CopyOp::SHALLOW_COPY |
||
) | [inline] |
Copy constructor using CopyOp to manage deep vs shallow copy.
virtual osg::BlendFunc::~BlendFunc | ( | ) | [protected, virtual] |
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.
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.
References COMPARE_StateAttribute_Types, and COMPARE_StateAttribute_Parameter.
GLenum osg::BlendFunc::getDestination | ( | ) | const [inline] |
GLenum osg::BlendFunc::getDestinationAlpha | ( | ) | const [inline] |
GLenum osg::BlendFunc::getDestinationRGB | ( | ) | const [inline] |
static Extensions* osg::BlendFunc::getExtensions | ( | unsigned int | contextID, |
bool | createIfNotInitalized | ||
) | [static] |
Returns the Extensions object for the given context.
If createIfNotInitalized is true and the Extensions object doesn't exist, getExtensions() creates it on the given context. Returns NULL if createIfNotInitalized is false and the Extensions object doesn't exist.
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().
GLenum osg::BlendFunc::getSource | ( | ) | const [inline] |
GLenum osg::BlendFunc::getSourceAlpha | ( | ) | const [inline] |
GLenum osg::BlendFunc::getSourceRGB | ( | ) | const [inline] |
osg::BlendFunc::META_StateAttribute | ( | osg | , |
BlendFunc | , | ||
BLENDFUNC | |||
) |
void osg::BlendFunc::setDestination | ( | GLenum | destination | ) | [inline] |
void osg::BlendFunc::setDestinationAlpha | ( | GLenum | destination | ) | [inline] |
void osg::BlendFunc::setDestinationRGB | ( | GLenum | destination | ) | [inline] |
static void osg::BlendFunc::setExtensions | ( | unsigned int | contextID, |
Extensions * | extensions | ||
) | [static] |
setExtensions() allows users to override the extensions across graphics contexts.
Typically used when you have different extensions supported across graphics pipes, but need to ensure that they all use the same low common denominator extensions.
void osg::BlendFunc::setFunction | ( | GLenum | source, |
GLenum | destination | ||
) | [inline] |
void osg::BlendFunc::setFunction | ( | GLenum | source_rgb, |
GLenum | destination_rgb, | ||
GLenum | source_alpha, | ||
GLenum | destination_alpha | ||
) | [inline] |
void osg::BlendFunc::setSource | ( | GLenum | source | ) | [inline] |
void osg::BlendFunc::setSourceAlpha | ( | GLenum | source | ) | [inline] |
void osg::BlendFunc::setSourceRGB | ( | GLenum | source | ) | [inline] |
GLenum osg::BlendFunc::_destination_factor [protected] |
GLenum osg::BlendFunc::_destination_factor_alpha [protected] |
GLenum osg::BlendFunc::_source_factor [protected] |
GLenum osg::BlendFunc::_source_factor_alpha [protected] |
![]() | Generated at Mon Oct 3 2011 12:39:41 for the OpenSceneGraph by doxygen 1.7.5. |