]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/framebuffer.h
Move all OpenGL-specific code to a separate directory
[libs/gl.git] / source / core / framebuffer.h
index da828bf531f7c70eafc74d297712266fed97fa37..18e48f2022b6b1197129a6de6c57ee8a37cf38b3 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <vector>
 #include "color.h"
+#include "framebuffer_backend.h"
 #include "frameformat.h"
 #include "texturecube.h"
 
@@ -33,10 +34,9 @@ must be attached for the framebuffer to be usable.
 Requires the GL_EXT_framebuffer_object extension.  The blit functions require
 the GL_EXT_framebuffer_blit extension.
 */
-class Framebuffer
+class Framebuffer: public FramebufferBackend
 {
-       friend class Commands;
-       friend class PipelineState;
+       friend FramebufferBackend;
 
 private:
        struct Attachment
@@ -50,15 +50,13 @@ private:
                void clear();
        };
 
-       unsigned id;
        FrameFormat format;
        std::vector<Attachment> attachments;
        unsigned width;
        unsigned height;
-       mutable unsigned status;
        mutable unsigned dirty;
 
-       Framebuffer(unsigned);
+       Framebuffer(bool);
 public:
        /** Creates an empty framebuffer.  Format must be set before textures can
        be attached. */
@@ -72,9 +70,8 @@ public:
 
 private:
        void init();
-public:
-       ~Framebuffer();
 
+public:
        /** Sets the format of the framebuffer.  Once the format is set, it can't
        be changed. */
        void set_format(const FrameFormat &);
@@ -111,7 +108,7 @@ public:
 
        void refresh() const { if(dirty) update(); }
 
-       void set_debug_name(const std::string &);
+       using FramebufferBackend::set_debug_name;
 
        static Framebuffer &system();
 };