glrenderbuffer.h File Reference

Go to the documentation of this file. Source: include/ffw/graphics/glrenderbuffer.h

/* This file is part of FineFramework project */
#ifndef FFW_GRAPHICS_RENDERBUFFER
#define FFW_GRAPHICS_RENDERBUFFER

#include "glrenderextensions.h"

namespace ffw {
    class FFW_API GLRenderbuffer {
    public:
        GLRenderbuffer();
        GLRenderbuffer(const GLRenderbuffer& other) = delete;
        GLRenderbuffer(GLRenderbuffer&& other) NOEXCEPT;
        void swap(GLRenderbuffer& other) NOEXCEPT;
        virtual ~GLRenderbuffer();
        inline bool isCreated() const {
            return loaded;
        }
        void destroy();
        void bind() const;
        void unbind() const;
        inline GLuint getHandle() const {
            return buffer;
        }
        inline GLsizei getWidth() const {
            return width;
        }
        inline GLsizei getHeight() const {
            return height;
        }
        inline GLenum getInternalFormat() const {
            return internalformat;
        }
        inline GLsizei getSamples() const {
            return samples;
        }

        GLRenderbuffer& operator = (const GLRenderbuffer& other) = delete;
        GLRenderbuffer& operator = (GLRenderbuffer&& other) NOEXCEPT;
    protected:
        bool loaded;
        GLenum internalformat;
        GLuint buffer;
        GLsizei width;
        GLsizei height;
        GLsizei samples;
    };
};

inline void swap(ffw::GLRenderbuffer& first, ffw::GLRenderbuffer& second) NOEXCEPT {
    first.swap(second);
}
#endif