summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/FramebufferManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/VideoBackends/OGL/FramebufferManager.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/FramebufferManager.cpp21
1 files changed, 9 insertions, 12 deletions
diff --git a/Source/Core/VideoBackends/OGL/FramebufferManager.cpp b/Source/Core/VideoBackends/OGL/FramebufferManager.cpp
index 0deec1d3cc..782c60b745 100644
--- a/Source/Core/VideoBackends/OGL/FramebufferManager.cpp
+++ b/Source/Core/VideoBackends/OGL/FramebufferManager.cpp
@@ -110,24 +110,24 @@ FramebufferManager::FramebufferManager(int targetWidth, int targetHeight, int ms
// Create EFB target renderbuffers.
GLuint glObj[2];
- glGenRenderbuffers(2, glObj);
+ glGenTextures(2, glObj);
m_efbColor = glObj[0];
m_efbDepth = glObj[1];
- glBindRenderbuffer(GL_RENDERBUFFER, m_efbColor);
- glRenderbufferStorageMultisample(GL_RENDERBUFFER, m_msaaSamples, GL_RGBA, m_targetWidth, m_targetHeight);
+ glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, m_efbColor);
+ glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, m_msaaSamples, GL_RGBA, m_targetWidth, m_targetHeight, false);
- glBindRenderbuffer(GL_RENDERBUFFER, m_efbDepth);
- glRenderbufferStorageMultisample(GL_RENDERBUFFER, m_msaaSamples, GL_DEPTH_COMPONENT24, m_targetWidth, m_targetHeight);
+ glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, m_efbDepth);
+ glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, m_msaaSamples, GL_DEPTH_COMPONENT24, m_targetWidth, m_targetHeight, false);
- glBindRenderbuffer(GL_RENDERBUFFER, 0);
+ glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, 0);
// Bind target renderbuffers to EFB framebuffer.
glBindFramebuffer(GL_FRAMEBUFFER, m_efbFramebuffer);
- glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, m_efbColor);
- glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, m_efbDepth);
+ glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D_MULTISAMPLE, m_efbColor, 0);
+ glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D_MULTISAMPLE, m_efbDepth, 0);
GL_REPORT_FBO_ERROR();
@@ -237,10 +237,7 @@ FramebufferManager::~FramebufferManager()
glObj[0] = m_efbColor;
glObj[1] = m_efbDepth;
- if (m_msaaSamples <= 1)
- glDeleteTextures(2, glObj);
- else
- glDeleteRenderbuffers(2, glObj);
+ glDeleteTextures(2, glObj);
m_efbColor = 0;
m_efbDepth = 0;