Implement min and max blend modes

https://github.com/SFML/SFML/pull/1756
This commit is contained in:
Chris Thrasher committed 2023-07-03 15:55:02 -06:00
1 parent 6476e9442e
commit 1667644e3d
2 files changed
+16 -4

No files matched your search

+7 -3
View File
@@ -56,9 +56,11 @@ typedef enum
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
typedef enum typedef enum
{ {
sfBlendEquationAdd, ///< Pixel = Src * SrcFactor + Dst * DstFactor sfBlendEquationAdd, ///< Pixel = Src * SrcFactor + Dst * DstFactor
sfBlendEquationSubtract, ///< Pixel = Src * SrcFactor - Dst * DstFactor sfBlendEquationSubtract, ///< Pixel = Src * SrcFactor - Dst * DstFactor
sfBlendEquationReverseSubtract ///< Pixel = Dst * DstFactor - Src * SrcFactor sfBlendEquationReverseSubtract, ///< Pixel = Dst * DstFactor - Src * SrcFactor
sfBlendEquationMin, ///< Pixel = min(Dst, Src)
sfBlendEquationMax ///< Pixel = max(Dst, Src)
} sfBlendEquation; } sfBlendEquation;
@@ -80,6 +82,8 @@ typedef struct
CSFML_GRAPHICS_API const sfBlendMode sfBlendAlpha; ///< Blend source and dest according to dest alpha CSFML_GRAPHICS_API const sfBlendMode sfBlendAlpha; ///< Blend source and dest according to dest alpha
CSFML_GRAPHICS_API const sfBlendMode sfBlendAdd; ///< Add source to dest CSFML_GRAPHICS_API const sfBlendMode sfBlendAdd; ///< Add source to dest
CSFML_GRAPHICS_API const sfBlendMode sfBlendMultiply; ///< Multiply source and dest CSFML_GRAPHICS_API const sfBlendMode sfBlendMultiply; ///< Multiply source and dest
CSFML_GRAPHICS_API const sfBlendMode sfBlendMin; ///< Take minimum between source and dest
CSFML_GRAPHICS_API const sfBlendMode sfBlendMax; ///< Take maximum between source and dest
CSFML_GRAPHICS_API const sfBlendMode sfBlendNone; ///< Overwrite dest with source CSFML_GRAPHICS_API const sfBlendMode sfBlendNone; ///< Overwrite dest with source
+9 -1
View File
@@ -40,6 +40,14 @@ const sfBlendMode sfBlendAdd = { sfBlendFactorSrcAlpha, sfBlendFactorOne, sfBlen
const sfBlendMode sfBlendMultiply = { sfBlendFactorDstColor, sfBlendFactorZero, sfBlendEquationAdd, const sfBlendMode sfBlendMultiply = { sfBlendFactorDstColor, sfBlendFactorZero, sfBlendEquationAdd,
sfBlendFactorDstColor, sfBlendFactorZero, sfBlendEquationAdd }; sfBlendFactorDstColor, sfBlendFactorZero, sfBlendEquationAdd };
////////////////////////////////////////////////////////////
const sfBlendMode sfBlendMin = { sfBlendFactorOne, sfBlendFactorOne, sfBlendEquationMin,
sfBlendFactorOne, sfBlendFactorOne, sfBlendEquationMin };
////////////////////////////////////////////////////////////
const sfBlendMode sfBlendMax = { sfBlendFactorOne, sfBlendFactorOne, sfBlendEquationMax,
sfBlendFactorOne, sfBlendFactorOne, sfBlendEquationMax };
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
const sfBlendMode sfBlendNone = { sfBlendFactorOne, sfBlendFactorZero, sfBlendEquationAdd, const sfBlendMode sfBlendNone = { sfBlendFactorOne, sfBlendFactorZero, sfBlendEquationAdd,
sfBlendFactorOne, sfBlendFactorZero, sfBlendEquationAdd }; sfBlendFactorOne, sfBlendFactorZero, sfBlendEquationAdd };