namespace Msp {
namespace GL {
-enum BlendEquation
+enum BlendEquation: std::uint8_t
{
ADD,
SUBTRACT,
MAX
};
-enum BlendFactor
+enum BlendFactor: std::uint8_t
{
ZERO,
ONE,
ONE_MINUS_CONSTANT_ALPHA
};
-enum ColorWriteMask
+enum ColorWriteMask: std::uint8_t
{
WRITE_NONE = 0,
WRITE_RED = 1,
};
/**
-Blends incoming fragments with those already in the framebuffer.
+Blends incoming fragment color values with those already in the framebuffer.
*/
struct Blend
{
void factors(BlendFactor, BlendFactor);
};
- bool enabled;
- BlendEquation equation;
- BlendFactor src_factor;
- BlendFactor dst_factor;
- Color constant;
- ColorWriteMask write_mask;
+ bool enabled = false;
+ BlendEquation equation = ADD;
+ BlendFactor src_factor = ONE;
+ BlendFactor dst_factor = ZERO;
+ Color constant = { 0.0f, 0.0f, 0.0f, 0.0f };
+ ColorWriteMask write_mask = WRITE_ALL;
- Blend();
+ Blend() = default;
Blend(BlendFactor, BlendFactor);
Blend(BlendEquation, BlendFactor, BlendFactor);
};