#define GLFW_INCLUDE_NONE #include "XCEngine/RHI/OpenGL/OpenGLRenderTargetView.h" #include #include namespace XCEngine { namespace RHI { OpenGLRenderTargetView::OpenGLRenderTargetView() : m_texture(0), m_framebuffer(0), m_mipLevel(0) { } OpenGLRenderTargetView::~OpenGLRenderTargetView() { } bool OpenGLRenderTargetView::Initialize(unsigned int texture, int mipLevel) { m_texture = texture; m_mipLevel = mipLevel; glGenFramebuffers(1, &m_framebuffer); glBindFramebuffer(GL_FRAMEBUFFER, m_framebuffer); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, texture, mipLevel); if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) { return false; } glBindFramebuffer(GL_FRAMEBUFFER, 0); return true; } void OpenGLRenderTargetView::Shutdown() { if (m_framebuffer) { glDeleteFramebuffers(1, &m_framebuffer); m_framebuffer = 0; } } void OpenGLRenderTargetView::Bind(unsigned int slot) { glBindFramebuffer(GL_FRAMEBUFFER, m_framebuffer); } void OpenGLRenderTargetView::Unbind() { glBindFramebuffer(GL_FRAMEBUFFER, 0); } } // namespace RHI } // namespace XCEngine