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
{
sfBlendEquationAdd, ///< Pixel = Src * SrcFactor + Dst * DstFactor
sfBlendEquationSubtract, ///< Pixel = Src * SrcFactor - Dst * DstFactor
sfBlendEquationReverseSubtract ///< Pixel = Dst * DstFactor - Src * SrcFactor
sfBlendEquationAdd, ///< Pixel = Src * SrcFactor + Dst * DstFactor
sfBlendEquationSubtract, ///< Pixel = Src * SrcFactor - Dst * DstFactor
sfBlendEquationReverseSubtract, ///< Pixel = Dst * DstFactor - Src * SrcFactor
sfBlendEquationMin, ///< Pixel = min(Dst, Src)
sfBlendEquationMax ///< Pixel = max(Dst, Src)
} 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 sfBlendAdd; ///< Add source to 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
+9 -1
View File
@@ -40,6 +40,14 @@ const sfBlendMode sfBlendAdd = { sfBlendFactorSrcAlpha, sfBlendFactorOne, sfBlen
const sfBlendMode sfBlendMultiply = { 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,
sfBlendFactorOne, sfBlendFactorZero, sfBlendEquationAdd };
sfBlendFactorOne, sfBlendFactorZero, sfBlendEquationAdd };