#define GLFW_INCLUDE_NONE #include "XCEngine/RHI/OpenGL/OpenGLDepthStencilView.h" #include #include namespace XCEngine { namespace RHI { OpenGLDepthStencilView::OpenGLDepthStencilView() : m_texture(0), m_framebuffer(0), m_mipLevel(0) { } OpenGLDepthStencilView::~OpenGLDepthStencilView() { } bool OpenGLDepthStencilView::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_DEPTH_ATTACHMENT, GL_TEXTURE_2D, texture, mipLevel); if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) { return false; } glBindFramebuffer(GL_FRAMEBUFFER, 0); return true; } void OpenGLDepthStencilView::Shutdown() { if (m_framebuffer) { glDeleteFramebuffers(1, &m_framebuffer); m_framebuffer = 0; } } void OpenGLDepthStencilView::Bind() { glBindFramebuffer(GL_FRAMEBUFFER, m_framebuffer); } void OpenGLDepthStencilView::Unbind() { glBindFramebuffer(GL_FRAMEBUFFER, 0); } } // namespace RHI } // namespace XCEngine