#pragma once #include #include #include #define checkGlError(op) checkGLErrorDetail(__FILE__, __LINE__, (op)) extern bool checkGLErrorDetail(const char* file, int line, const char* op); extern void checkFramebufferStatus(const char* name); class FrameBuffer { public: FrameBuffer(); virtual ~FrameBuffer(); bool InitializeGLContext(); bool Init(int width, int height, GLenum format); GLuint GetTextureName() const; GLuint GetFrameBufferName() const; GLenum GetFormat() const; int GetWidth() const; int GetHeight() const; private: void Reset(); bool CreateBuffers(); GLuint mFrameBufferName; GLuint mTextureName; int mWidth; int mHeight; GLenum mFormat; };