aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/video_core/renderer_opengl/gl_resource_manager.h
diff options
context:
space:
mode:
authorGravatar bunnei <bunneidev@gmail.com>2015-08-11 17:19:45 -0400
committerGravatar bunnei <bunneidev@gmail.com>2015-08-11 17:19:45 -0400
commit93f607f5497a5fee142a0d2010881444a4ff0c80 (patch)
tree3728be088656eed0f4d53fde0f4ca194d640bf82 /src/video_core/renderer_opengl/gl_resource_manager.h
parentdf25b047f870d84bf7d37ccbbaf9bfb88a2ccd7f (diff)
parent254582aa35306c7bdebb90b0cd2dda88fe188087 (diff)
Merge pull request #1023 from yuriks/gl-state-bugs
OpenGL: Fix state tracking in situations with reused object handles
Diffstat (limited to 'src/video_core/renderer_opengl/gl_resource_manager.h')
-rw-r--r--src/video_core/renderer_opengl/gl_resource_manager.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_resource_manager.h b/src/video_core/renderer_opengl/gl_resource_manager.h
index 6f9dc012..82173d59 100644
--- a/src/video_core/renderer_opengl/gl_resource_manager.h
+++ b/src/video_core/renderer_opengl/gl_resource_manager.h
@@ -10,6 +10,7 @@
#include "video_core/renderer_opengl/generated/gl_3_2_core.h"
#include "video_core/renderer_opengl/gl_shader_util.h"
+#include "video_core/renderer_opengl/gl_state.h"
class OGLTexture : private NonCopyable {
public:
@@ -28,6 +29,7 @@ public:
void Release() {
if (handle == 0) return;
glDeleteTextures(1, &handle);
+ OpenGLState::ResetTexture(handle);
handle = 0;
}
@@ -51,6 +53,7 @@ public:
void Release() {
if (handle == 0) return;
glDeleteProgram(handle);
+ OpenGLState::ResetProgram(handle);
handle = 0;
}
@@ -74,6 +77,7 @@ public:
void Release() {
if (handle == 0) return;
glDeleteBuffers(1, &handle);
+ OpenGLState::ResetBuffer(handle);
handle = 0;
}
@@ -97,6 +101,7 @@ public:
void Release() {
if (handle == 0) return;
glDeleteVertexArrays(1, &handle);
+ OpenGLState::ResetVertexArray(handle);
handle = 0;
}
@@ -120,6 +125,7 @@ public:
void Release() {
if (handle == 0) return;
glDeleteFramebuffers(1, &handle);
+ OpenGLState::ResetFramebuffer(handle);
handle = 0;
}