Skip to content

Commit

Permalink
Implement min and max blend modes
Browse files Browse the repository at this point in the history
  • Loading branch information
ChrisThrasher committed Jul 3, 2023
1 parent 6476e94 commit 2258293
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 4 deletions.
10 changes: 7 additions & 3 deletions include/SFML/Graphics/BlendMode.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;


Expand All @@ -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


Expand Down
10 changes: 9 additions & 1 deletion src/SFML/Graphics/BlendMode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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,
sfBlendFactorDstColor, sfBlendFactorZero, sfBlendEquationAdd };

////////////////////////////////////////////////////////////
const sfBlendMode sfBlendMmax = { sfBlendFactorOne, sfBlendFactorOne, sfBlendEquationMax,
sfBlendFactorDstColor, sfBlendFactorZero, sfBlendEquationAdd };

////////////////////////////////////////////////////////////
const sfBlendMode sfBlendNone = { sfBlendFactorOne, sfBlendFactorZero, sfBlendEquationAdd,
sfBlendFactorOne, sfBlendFactorZero, sfBlendEquationAdd };
sfBlendFactorOne, sfBlendFactorZero, sfBlendEquationAdd };

0 comments on commit 2258293

Please sign in to comment.