Reviewed the sf::BlendMode class (added a constructor, made minor modifications in comments)

This commit is contained in:
Laurent Gomila 2014-04-22 21:37:39 +02:00
parent ec494babbe
commit f99bbfc534
2 changed files with 32 additions and 12 deletions

View File

@ -35,14 +35,12 @@ namespace sf
{
////////////////////////////////////////////////////////////
/// \ingroup graphics
/// \brief Blending modes for drawing
///
////////////////////////////////////////////////////////////
struct SFML_GRAPHICS_API BlendMode
{
////////////////////////////////////////////////////////
/// \ingroup graphics
/// \brief Enumeration of the blending factors
///
/// The factors are mapped directly to their OpenGL equivalents,
@ -63,7 +61,6 @@ struct SFML_GRAPHICS_API BlendMode
};
////////////////////////////////////////////////////////
/// \ingroup graphics
/// \brief Enumeration of the blending equations
///
/// The equations are mapped directly to their OpenGL equivalents,
@ -83,6 +80,19 @@ struct SFML_GRAPHICS_API BlendMode
////////////////////////////////////////////////////////////
BlendMode();
////////////////////////////////////////////////////////////
/// \brief Construct the blend mode given the factors and equation.
///
/// This constructor uses the same factors and equation for both
/// color and alpha components. It also defaults to the Add equation.
///
/// \param sourceFactor Specifies how to compute the source factor for the color and alpha channels.
/// \param destinationFactor Specifies how to compute the destination factor for the color and alpha channels.
/// \param blendEquation Specifies how to combine the source and destination colors and alpha.
///
////////////////////////////////////////////////////////////
BlendMode(Factor sourceFactor, Factor destinationFactor, Equation blendEquation = Add);
////////////////////////////////////////////////////////////
/// \brief Construct the blend mode given the factors and equation.
///
@ -133,14 +143,13 @@ SFML_GRAPHICS_API bool operator ==(const BlendMode& left, const BlendMode& right
////////////////////////////////////////////////////////////
SFML_GRAPHICS_API bool operator !=(const BlendMode& left, const BlendMode& right);
////////////////////////////////////////////////////////////
// Commonly used blending modes
////////////////////////////////////////////////////////////
SFML_GRAPHICS_API extern const BlendMode BlendAlpha;
SFML_GRAPHICS_API extern const BlendMode BlendAdd;
SFML_GRAPHICS_API extern const BlendMode BlendMultiply;
SFML_GRAPHICS_API extern const BlendMode BlendNone;
SFML_GRAPHICS_API extern const BlendMode BlendAlpha; ///< Blend source and dest according to dest alpha
SFML_GRAPHICS_API extern const BlendMode BlendAdd; ///< Add source to dest
SFML_GRAPHICS_API extern const BlendMode BlendMultiply; ///< Multiply source and dest
SFML_GRAPHICS_API extern const BlendMode BlendNone; ///< Overwrite dest with source
} // namespace sf

View File

@ -37,10 +37,8 @@ const BlendMode BlendAlpha(BlendMode::SrcAlpha, BlendMode::OneMinusSrcAlpha, Ble
BlendMode::One, BlendMode::OneMinusSrcAlpha, BlendMode::Add);
const BlendMode BlendAdd(BlendMode::SrcAlpha, BlendMode::One, BlendMode::Add,
BlendMode::One, BlendMode::One, BlendMode::Add);
const BlendMode BlendMultiply(BlendMode::DstColor, BlendMode::Zero, BlendMode::Add,
BlendMode::DstColor, BlendMode::Zero, BlendMode::Add);
const BlendMode BlendNone(BlendMode::One, BlendMode::Zero, BlendMode::Add,
BlendMode::One, BlendMode::Zero, BlendMode::Add);
const BlendMode BlendMultiply(BlendMode::DstColor, BlendMode::Zero);
const BlendMode BlendNone(BlendMode::One, BlendMode::Zero);
////////////////////////////////////////////////////////////
@ -56,6 +54,19 @@ alphaEquation (BlendMode::Add)
}
////////////////////////////////////////////////////////////
BlendMode::BlendMode(Factor sourceFactor, Factor destinationFactor, Equation blendEquation) :
colorSrcFactor(sourceFactor),
colorDstFactor(destinationFactor),
colorEquation (blendEquation),
alphaSrcFactor(sourceFactor),
alphaDstFactor(destinationFactor),
alphaEquation (blendEquation)
{
}
////////////////////////////////////////////////////////////
BlendMode::BlendMode(Factor colorSourceFactor, Factor colorDestinationFactor,
Equation colorBlendEquation, Factor alphaSourceFactor,