X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fcore%2Fframebuffer.h;h=18e48f2022b6b1197129a6de6c57ee8a37cf38b3;hp=da828bf531f7c70eafc74d297712266fed97fa37;hb=160e9eea29bd10034733d59507fa1bcca36be401;hpb=93448d16e72e38afbaecbccf6fdedd46d6a82a73 diff --git a/source/core/framebuffer.h b/source/core/framebuffer.h index da828bf5..18e48f20 100644 --- a/source/core/framebuffer.h +++ b/source/core/framebuffer.h @@ -3,6 +3,7 @@ #include #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 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(); };