From 9da97611e02d81ec7567c8eeb8a1bee286a17906 Mon Sep 17 00:00:00 2001 From: end Date: Mon, 3 Oct 2016 20:11:10 +0200 Subject: [PATCH] * fixed fbo classes --- game/glclasses.cpp | 24 ++++++++++++++---------- game/glclasses.hpp | 14 ++++++++++---- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/game/glclasses.cpp b/game/glclasses.cpp index ffef1b9..d2b0771 100644 --- a/game/glclasses.cpp +++ b/game/glclasses.cpp @@ -6,10 +6,11 @@ #include namespace endofthejedi { -VAO::VAO() { glGenVertexArrays(1, &m_name); } +VAO::VAO() {} VAO::~VAO() { glDeleteVertexArrays(1, &m_name); } +void VAO::init() { glGenVertexArrays(1, &m_name); } void VAO::bind() { glBindVertexArray(m_name); } void VAO::unbind() { glBindVertexArray(0); } @@ -125,27 +126,29 @@ GLuint Shader::location(const std::string &name) { return glGetUniformLocation(m_program, name.c_str()); } -Texture::Texture() { glGenTextures(1, &m_name); } +Texture::Texture() {} Texture::~Texture() { glDeleteTextures(1, &m_name); } +void Texture::init() { glGenTextures(1, &m_name); } + void Texture::bind() { glBindTexture(GL_TEXTURE_2D, m_name); } void Texture::unbind() { glBindTexture(GL_TEXTURE_2D, 0); } -void Texture::fill(GLenum target, GLint level, GLint internalFormat, - GLsizei width, GLsizei height, GLint border, GLenum format, - GLenum type, const GLvoid *data) { +void Texture::fill(GLint level, GLint internalFormat, GLsizei width, + GLsizei height, GLint border, GLenum format, GLenum type, + const GLvoid *data) { bind(); - glTexImage2D(target, level, internalFormat, width, height, border, format, - type, data); + glTexImage2D(GL_TEXTURE_2D, level, internalFormat, width, height, border, + format, type, data); } GLuint Texture::getName() { return m_name; } -Framebuffer::Framebuffer() { glGenFramebuffers(1, &m_name); } - +Framebuffer::Framebuffer() {} Framebuffer::~Framebuffer() { glDeleteFramebuffers(1, &m_name); } +void Framebuffer::init() { glGenFramebuffers(1, &m_name); } void Framebuffer::bind() { glBindFramebuffer(GL_FRAMEBUFFER, m_name); } void Framebuffer::unbind() { glBindFramebuffer(GL_FRAMEBUFFER, 0); } @@ -160,10 +163,11 @@ void Framebuffer::attachTexture(GLenum attachment, GLuint tex) { glFramebufferTexture2D(GL_FRAMEBUFFER, attachment, GL_TEXTURE_2D, tex, 0); } -Renderbuffer::Renderbuffer() { glGenRenderbuffers(1, &m_name); } +Renderbuffer::Renderbuffer() {} Renderbuffer::~Renderbuffer() { glDeleteRenderbuffers(1, &m_name); } +void Renderbuffer::init() { glGenRenderbuffers(1, &m_name); } void Renderbuffer::bind() { glBindRenderbuffer(GL_RENDERBUFFER, m_name); } void Renderbuffer::unbind() { glBindRenderbuffer(GL_RENDERBUFFER, 0); } diff --git a/game/glclasses.hpp b/game/glclasses.hpp index 069787a..8c1d864 100644 --- a/game/glclasses.hpp +++ b/game/glclasses.hpp @@ -16,6 +16,7 @@ template class BufferObject { public: BufferObject(); ~BufferObject(); + void init(); void bind(); void bind(GLuint index, GLintptr offset = 0, GLsizeiptr size = 0); void fill(GLenum usage, GLsizei size = 0, GLvoid *data = NULL); @@ -35,6 +36,7 @@ class VAO { public: VAO(); ~VAO(); + void init(); void bind(); void unbind(); void fill(GLuint index, GLint size, GLenum type, GLboolean normalized, @@ -70,11 +72,11 @@ class Texture { public: Texture(); ~Texture(); + void init(); void bind(); void unbind(); - void fill(GLenum target, GLint level, GLint internalFormat, GLsizei width, - GLsizei height, GLint border, GLenum format, GLenum type, - const GLvoid *data); + void fill(GLint level, GLint internalFormat, GLsizei width, GLsizei height, + GLint border, GLenum format, GLenum type, const GLvoid *data); GLuint getName(); }; @@ -86,6 +88,7 @@ class Framebuffer { public: Framebuffer(); ~Framebuffer(); + void init(); void bind(); void unbind(); void attachRenderbuffer(GLenum attachment, GLuint rbo); @@ -100,6 +103,7 @@ class Renderbuffer { public: Renderbuffer(); ~Renderbuffer(); + void init(); void bind(); void unbind(); void create(GLenum internalformat, GLsizei width, GLsizei height); @@ -110,10 +114,12 @@ class Renderbuffer { template pre endofthejedi::BufferObject::post #define TBufferObject(...) TBufferObject_(__VA_ARGS__) -TBufferObject(, BufferObject)() { glGenBuffers(1, &m_name); } +TBufferObject(, BufferObject)() {} TBufferObject(, ~BufferObject)() { glDeleteBuffers(1, &m_name); } +TBufferObject(void, init)() { glGenBuffers(1, &m_name); } + TBufferObject(void, bind)() { glBindBuffer(T, m_name); } TBufferObject(void, bind)(GLuint index, GLintptr offset, GLsizeiptr size) {