]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/frameformat.cpp
Completely hide OpenGL from the public headers
[libs/gl.git] / source / core / frameformat.cpp
index 3b114e7f2f0ebd01da02ea39ce5edd72f64e2be8..3568dffa4b11ee7d29e0fe01c94e23e9fc8c1cb6 100644 (file)
@@ -1,6 +1,7 @@
 #include "deviceinfo.h"
 #include "error.h"
 #include "frameformat.h"
+#include "gl.h"
 
 using namespace std;
 
@@ -123,7 +124,7 @@ PixelFormat get_attachment_pixelformat(FrameAttachment fa)
        return make_pixelformat(comp, type);
 }
 
-GLenum get_gl_attachment(FrameAttachment fa)
+unsigned get_gl_attachment(FrameAttachment fa)
 {
        if(get_attach_point(fa)==get_attach_point(DEPTH_ATTACHMENT))
                return GL_DEPTH_ATTACHMENT;
@@ -133,5 +134,20 @@ GLenum get_gl_attachment(FrameAttachment fa)
                return GL_COLOR_ATTACHMENT0+get_attach_point(fa);
 }
 
+unsigned get_gl_buffer_bits(const FrameFormat &format)
+{
+       unsigned bits = 0;
+       for(FrameAttachment a: format)
+       {
+               if(get_attach_point(a)==get_attach_point(DEPTH_ATTACHMENT))
+                       bits |= GL_DEPTH_BUFFER_BIT;
+               else if(get_attach_point(a)==get_attach_point(STENCIL_ATTACHMENT))
+                       bits |= GL_STENCIL_BUFFER_BIT;
+               else
+                       bits |= GL_COLOR_BUFFER_BIT;
+       }
+       return bits;
+}
+
 } // namespace GL
 } // namespace Msp