]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/framebuffer.h
Store default-block uniform data in a memory block
[libs/gl.git] / source / core / framebuffer.h
index acb0d3ee918b5fa946549fc12484027fc9a26505..a58d31d890927f0a59261169748554b24c49c29b 100644 (file)
@@ -2,8 +2,8 @@
 #define MSP_GL_FRAMEBUFFER_H_
 
 #include <vector>
+#include "color.h"
 #include "frameformat.h"
-#include "gl.h"
 #include "texturecube.h"
 #include <msp/gl/extensions/arb_geometry_shader4.h>
 #include <msp/gl/extensions/ext_framebuffer_multisample.h>
@@ -19,13 +19,6 @@ class Texture2DMultisample;
 class Texture3D;
 class WindowView;
 
-enum BufferBits
-{
-       COLOR_BUFFER_BIT   = GL_COLOR_BUFFER_BIT,
-       DEPTH_BUFFER_BIT   = GL_DEPTH_BUFFER_BIT,
-       STENCIL_BUFFER_BIT = GL_STENCIL_BUFFER_BIT
-};
-
 class framebuffer_incomplete: public std::runtime_error
 {
 public:
@@ -128,8 +121,18 @@ public:
        static Framebuffer &system();
 };
 
-inline BufferBits operator|(BufferBits a, BufferBits b)
-{ return static_cast<BufferBits>(static_cast<int>(a)|static_cast<int>(b)); }
+
+union ClearValue
+{
+       Color color;
+       struct
+       {
+               float depth;
+               int stencil;
+       } depth_stencil;
+
+       ClearValue(): color(0.0f, 0.0f, 0.0f, 0.0f) { }
+};
 
 } // namespace GL
 } // namespace Msp