Big changes
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
#include <assert.h>
|
||||
#include "render/rendertarget.h"
|
||||
|
||||
#include "render/texturesmanager.h"
|
||||
#include "render/texture2d.h"
|
||||
#include "render/gl_shared.h"
|
||||
|
||||
void RenderTarget::setDefaultFramebuffer()
|
||||
{
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
||||
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
|
||||
}
|
||||
|
||||
RenderTarget::RenderTarget()
|
||||
@@ -19,7 +19,7 @@ RenderTarget::~RenderTarget()
|
||||
m_framebuffer = -1;
|
||||
}
|
||||
|
||||
void RenderTarget::create(const char* name /*= nullptr*/)
|
||||
void RenderTarget::Create(const char* name /*= nullptr*/)
|
||||
{
|
||||
assert(g_texturesManager);
|
||||
|
||||
@@ -27,35 +27,35 @@ void RenderTarget::create(const char* name /*= nullptr*/)
|
||||
// Create FBO
|
||||
|
||||
// generate frame buffer
|
||||
glGenFramebuffers(1, &m_framebuffer);
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, m_framebuffer);
|
||||
glGenFramebuffersEXT(1, &m_framebuffer);
|
||||
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_framebuffer);
|
||||
}
|
||||
|
||||
void RenderTarget::destroy()
|
||||
void RenderTarget::Destroy()
|
||||
{
|
||||
GLint drawFboId;
|
||||
glGetIntegerv(GL_FRAMEBUFFER_BINDING, &drawFboId);
|
||||
|
||||
if (drawFboId == (GLint)m_framebuffer)
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, 0);
|
||||
glDeleteFramebuffers(1, &m_framebuffer);
|
||||
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
|
||||
glDeleteFramebuffersEXT(1, &m_framebuffer);
|
||||
}
|
||||
|
||||
void RenderTarget::finialize()
|
||||
void RenderTarget::Finialize()
|
||||
{
|
||||
if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) {
|
||||
assert(0 && "RenderTarget::finialize: failed to finialize framebuffer. Framebuffer is not complete");
|
||||
if (glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT) != GL_FRAMEBUFFER_COMPLETE_EXT) {
|
||||
assert(0 && "RenderTarget::Finialize: failed to Finialize framebuffer. Framebuffer is not complete");
|
||||
}
|
||||
}
|
||||
|
||||
void RenderTarget::attachColorTexture(int slot, Texture2D* texture)
|
||||
void RenderTarget::AttachColorTexture(int slot, Texture2D* texture)
|
||||
{
|
||||
assert(texture && "Failed to assing nullptr texture");
|
||||
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + slot, GL_TEXTURE_2D, texture->GetHandle(), 0);
|
||||
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0 + slot, GL_TEXTURE_2D, texture->GetHandle(), 0);
|
||||
}
|
||||
|
||||
void RenderTarget::attachDepthTexture(Texture2D* texture)
|
||||
void RenderTarget::AttachDepthTexture(Texture2D* texture)
|
||||
{
|
||||
assert(texture && "Failed to assing nullptr texture");
|
||||
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, texture->GetHandle(), 0);
|
||||
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, texture->GetHandle(), 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user