+++ /dev/null
-#ifndef MSP_GL_BLEND_H_
-#define MSP_GL_BLEND_H_
-
-#include "bindable.h"
-#include "gl.h"
-#include <msp/gl/extensions/ext_blend_minmax.h>
-
-namespace Msp {
-namespace GL {
-
-enum BlendEquation
-{
- ADD = GL_FUNC_ADD,
- SUBTRACT = GL_FUNC_SUBTRACT,
- REVERSE_SUBTRACT = GL_FUNC_REVERSE_SUBTRACT,
- MIN = GL_MIN,
- MAX = GL_MAX
-};
-
-enum BlendFactor
-{
- ZERO = GL_ZERO,
- ONE = GL_ONE,
- SRC_COLOR = GL_SRC_COLOR,
- ONE_MINUS_SRC_COLOR = GL_ONE_MINUS_SRC_COLOR,
- SRC_ALPHA = GL_SRC_ALPHA,
- ONE_MINUS_SRC_ALPHA = GL_ONE_MINUS_SRC_ALPHA,
- DST_COLOR = GL_DST_COLOR,
- ONE_MINUS_DST_COLOR = GL_ONE_MINUS_DST_COLOR,
- DST_ALPHA = GL_DST_ALPHA,
- ONE_MINUS_DST_ALPHA = GL_ONE_MINUS_DST_ALPHA,
- CONSTANT_COLOR = GL_CONSTANT_COLOR,
- ONE_MINUS_CONSTANT_COLOR = GL_ONE_MINUS_CONSTANT_COLOR,
- CONSTANT_ALPHA = GL_CONSTANT_ALPHA,
- ONE_MINUS_CONSTANT_ALPHA = GL_ONE_MINUS_CONSTANT_ALPHA
-};
-
-/**
-Blends incoming fragments with those already in the framebuffer.
-*/
-class Blend: public Bindable<Blend>
-{
-private:
- BlendEquation eq;
- BlendFactor src_factor;
- BlendFactor dst_factor;
-
-public:
- Blend();
- Blend(BlendFactor, BlendFactor);
- Blend(BlendEquation, BlendFactor, BlendFactor);
-
- void bind() const;
-
- static void unbind();
-
- static const Blend &alpha();
- static const Blend &additive();
- static const Blend &additive_alpha();
-};
-
-} // namespace GL
-} // namespace Msp
-
-#endif