Fixed compile error (trailing enum comma) and other minor things

This commit is contained in:
Jan Haller 2014-03-12 12:08:24 +01:00
parent fe7d6f513d
commit 05d196d86d
4 changed files with 37 additions and 33 deletions

View File

@ -57,7 +57,7 @@ struct SFML_GRAPHICS_API BlendMode
SrcAlpha, ///< (src.a,src.a,src.a,src.a) SrcAlpha, ///< (src.a,src.a,src.a,src.a)
OneMinusSrcAlpha, ///< (1,1,1,1) - (src.a,src.a,src.a,src.a) OneMinusSrcAlpha, ///< (1,1,1,1) - (src.a,src.a,src.a,src.a)
DstAlpha, ///< (dst.a,dst.a,dst.a,dst.a) DstAlpha, ///< (dst.a,dst.a,dst.a,dst.a)
OneMinusDstAlpha, ///< (1,1,1,1) - (dst.a,dst.a,dst.a,dst.a) OneMinusDstAlpha ///< (1,1,1,1) - (dst.a,dst.a,dst.a,dst.a)
}; };
//////////////////////////////////////////////////////// ////////////////////////////////////////////////////////
@ -67,8 +67,8 @@ struct SFML_GRAPHICS_API BlendMode
//////////////////////////////////////////////////////// ////////////////////////////////////////////////////////
enum BlendEquation enum BlendEquation
{ {
Add, ///< Pixel = Source * SourceFactor + Dst * DstFactor Add, ///< Pixel = Src * SrcFactor + Dst * DstFactor
Subtract, ///< Pixel = Source * SourceFactor - Dst * DstFactor Subtract ///< Pixel = Src * SrcFactor - Dst * DstFactor
}; };
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
@ -82,18 +82,17 @@ struct SFML_GRAPHICS_API BlendMode
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Construct the blend mode given the factors and equation. /// \brief Construct the blend mode given the factors and equation.
/// ///
/// \param colorSourceFactor Specifies how to compute the source factor for the color channels. /// \param colorSourceFactor Specifies how to compute the source factor for the color channels.
/// \param colorDstFactor Specifies how to compute the destination factor for the color channels. /// \param colorDestinationFactor Specifies how to compute the destination factor for the color channels.
/// \param colorBlendEquation Specifies how to combine the source and destination colors. /// \param colorBlendEquation Specifies how to combine the source and destination colors.
/// \param alphaSourceFactor Specifies how to compute the source factor. /// \param alphaSourceFactor Specifies how to compute the source factor.
/// \param alphaDstFactor Specifies how to compute the destination factor. /// \param alphaDestinationFactor Specifies how to compute the destination factor.
/// \param alphaBlendEquation Specifies how to combine the source and destination alphas. /// \param alphaBlendEquation Specifies how to combine the source and destination alphas.
///
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
BlendMode(BlendFactor colorSourceFactor, BlendFactor colorDstFactor, BlendMode(BlendFactor colorSourceFactor, BlendFactor colorDestinationFactor,
BlendEquation colorBlendEquation, BlendFactor alphaSourceFactor, BlendEquation colorBlendEquation, BlendFactor alphaSourceFactor,
BlendFactor alphaDstFactor, BlendEquation alphaBlendEquation); BlendFactor alphaDestinationFactor, BlendEquation alphaBlendEquation);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
// Member Data // Member Data
@ -110,8 +109,6 @@ struct SFML_GRAPHICS_API BlendMode
/// \relates BlendMode /// \relates BlendMode
/// \brief Overload of the == operator /// \brief Overload of the == operator
/// ///
/// This operator compares two blending modes and checks if they are equal.
///
/// \param left Left operand /// \param left Left operand
/// \param right Right operand /// \param right Right operand
/// ///
@ -124,8 +121,6 @@ SFML_GRAPHICS_API bool operator ==(const BlendMode& left, const BlendMode& right
/// \relates BlendMode /// \relates BlendMode
/// \brief Overload of the != operator /// \brief Overload of the != operator
/// ///
/// This operator compares two blending modes and checks if they are different.
///
/// \param left Left operand /// \param left Left operand
/// \param right Right operand /// \param right Right operand
/// ///
@ -162,7 +157,7 @@ SFML_GRAPHICS_API extern const BlendMode BlendNone;
/// \li Alpha Destination Factor (alphaDstFactor) /// \li Alpha Destination Factor (alphaDstFactor)
/// \li Alpha Blend Equation (alphaEquation) /// \li Alpha Blend Equation (alphaEquation)
/// ///
/// Each component has its own setter function. These make /// Each component has its own public member variable. These make
/// modifying a blending mode rather easy: /// modifying a blending mode rather easy:
/// ///
/// \code /// \code
@ -171,9 +166,9 @@ SFML_GRAPHICS_API extern const BlendMode BlendNone;
/// blendMode.colorEquation = sf::BlendMode::Subtract; // An exotic subtraction blending mode /// blendMode.colorEquation = sf::BlendMode::Subtract; // An exotic subtraction blending mode
/// \endcode /// \endcode
/// ///
/// The most common blending modes are defined as const /// The most common blending modes are defined as constants
/// variables for convenience and compatibility with older /// in the sf namespace, for convenience and compatibility with
/// code: /// older code:
/// ///
/// \code /// \code
/// sf::BlendMode alphaBlending = sf::BlendAlpha; /// sf::BlendMode alphaBlending = sf::BlendAlpha;

View File

@ -354,7 +354,7 @@ private:
/// \param mode Blending mode to apply /// \param mode Blending mode to apply
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
void applyBlendMode(BlendMode mode); void applyBlendMode(const BlendMode& mode);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Apply a new transform /// \brief Apply a new transform

View File

@ -1,7 +1,7 @@
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
// //
// SFML - Simple and Fast Multimedia Library // SFML - Simple and Fast Multimedia Library
// Copyright (C) 2007-2013 Laurent Gomila (laurent.gom@gmail.com) // Copyright (C) 2007-2014 Laurent Gomila (laurent.gom@gmail.com)
// //
// This software is provided 'as-is', without any express or implied warranty. // This software is provided 'as-is', without any express or implied warranty.
// In no event will the authors be held liable for any damages arising from the use of this software. // In no event will the authors be held liable for any damages arising from the use of this software.
@ -26,7 +26,6 @@
// Headers // Headers
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
#include <SFML/Graphics/BlendMode.hpp> #include <SFML/Graphics/BlendMode.hpp>
#include <SFML/Graphics/GLCheck.hpp>
namespace sf namespace sf
@ -58,14 +57,14 @@ alphaEquation (BlendMode::Add)
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
BlendMode::BlendMode(BlendFactor colorSourceFactor, BlendFactor colorDstFactor, BlendMode::BlendMode(BlendFactor colorSourceFactor, BlendFactor colorDestinationFactor,
BlendEquation colorBlendEquation, BlendFactor alphaSourceFactor, BlendEquation colorBlendEquation, BlendFactor alphaSourceFactor,
BlendFactor alphaDstFactor, BlendEquation alphaBlendEquation) : BlendFactor alphaDestinationFactor, BlendEquation alphaBlendEquation) :
colorSrcFactor(colorSourceFactor), colorSrcFactor(colorSourceFactor),
colorDstFactor(colorDstFactor), colorDstFactor(colorDestinationFactor),
colorEquation (colorBlendEquation), colorEquation (colorBlendEquation),
alphaSrcFactor(alphaSourceFactor), alphaSrcFactor(alphaSourceFactor),
alphaDstFactor(alphaDstFactor), alphaDstFactor(alphaDestinationFactor),
alphaEquation (alphaBlendEquation) alphaEquation (alphaBlendEquation)
{ {

View File

@ -388,22 +388,32 @@ void RenderTarget::applyCurrentView()
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
void RenderTarget::applyBlendMode(BlendMode mode) void RenderTarget::applyBlendMode(const BlendMode& mode)
{ {
// Apply the blend mode, falling back to the non-separate versions if necessary // Apply the blend mode, falling back to the non-separate versions if necessary
if (GLEW_EXT_blend_func_separate) if (GLEW_EXT_blend_func_separate)
glCheck(glBlendFuncSeparateEXT(factorToGlConstant(mode.colorSrcFactor), {
factorToGlConstant(mode.colorDstFactor), factorToGlConstant(mode.alphaSrcFactor), glCheck(glBlendFuncSeparateEXT(
factorToGlConstant(mode.alphaDstFactor))); factorToGlConstant(mode.colorSrcFactor), factorToGlConstant(mode.colorDstFactor),
factorToGlConstant(mode.alphaSrcFactor), factorToGlConstant(mode.alphaDstFactor)));
}
else else
glCheck(glBlendFunc(factorToGlConstant(mode.colorSrcFactor), {
glCheck(glBlendFunc(
factorToGlConstant(mode.colorSrcFactor),
factorToGlConstant(mode.colorDstFactor))); factorToGlConstant(mode.colorDstFactor)));
}
if (GLEW_EXT_blend_equation_separate) if (GLEW_EXT_blend_equation_separate)
glCheck(glBlendEquationSeparateEXT(equationToGlConstant(mode.colorEquation), {
glCheck(glBlendEquationSeparateEXT(
equationToGlConstant(mode.colorEquation),
equationToGlConstant(mode.alphaEquation))); equationToGlConstant(mode.alphaEquation)));
}
else else
{
glCheck(glBlendEquation(equationToGlConstant(mode.colorEquation))); glCheck(glBlendEquation(equationToGlConstant(mode.colorEquation)));
}
m_cache.lastBlendMode = mode; m_cache.lastBlendMode = mode;
} }