summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_state.cpp
diff options
context:
space:
mode:
authorRodolfo Bogado <rodolfoosvaldobogado@gmail.com>2018-11-08 02:27:47 +0100
committerRodolfo Bogado <rodolfoosvaldobogado@gmail.com>2018-11-11 20:36:53 +0100
commit4e6c64bf8d3622c6296f70ab64018c8c85855b0b (patch)
treed5b7484ed81357808e471e2dbcf441b93b7082a3 /src/video_core/renderer_opengl/gl_state.cpp
parentTry to fix problems with stencil test in some games, relax translation to opengl enums to avoid crashing and only generate logs of the errors. (diff)
downloadyuzu-4e6c64bf8d3622c6296f70ab64018c8c85855b0b.tar
yuzu-4e6c64bf8d3622c6296f70ab64018c8c85855b0b.tar.gz
yuzu-4e6c64bf8d3622c6296f70ab64018c8c85855b0b.tar.bz2
yuzu-4e6c64bf8d3622c6296f70ab64018c8c85855b0b.tar.lz
yuzu-4e6c64bf8d3622c6296f70ab64018c8c85855b0b.tar.xz
yuzu-4e6c64bf8d3622c6296f70ab64018c8c85855b0b.tar.zst
yuzu-4e6c64bf8d3622c6296f70ab64018c8c85855b0b.zip
Diffstat (limited to 'src/video_core/renderer_opengl/gl_state.cpp')
-rw-r--r--src/video_core/renderer_opengl/gl_state.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp
index 9517285e5..2635f2b0c 100644
--- a/src/video_core/renderer_opengl/gl_state.cpp
+++ b/src/video_core/renderer_opengl/gl_state.cpp
@@ -427,7 +427,7 @@ void OpenGLState::ApplySamplers() const {
}
}
-void OpenGLState::Apply() const {
+void OpenGLState::ApplyFramebufferState() const {
// Framebuffer
if (draw.read_framebuffer != cur_state.draw.read_framebuffer) {
glBindFramebuffer(GL_READ_FRAMEBUFFER, draw.read_framebuffer);
@@ -435,7 +435,9 @@ void OpenGLState::Apply() const {
if (draw.draw_framebuffer != cur_state.draw.draw_framebuffer) {
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, draw.draw_framebuffer);
}
+}
+void OpenGLState::ApplyVertexBufferState() const {
// Vertex array
if (draw.vertex_array != cur_state.draw.vertex_array) {
glBindVertexArray(draw.vertex_array);
@@ -445,7 +447,11 @@ void OpenGLState::Apply() const {
if (draw.vertex_buffer != cur_state.draw.vertex_buffer) {
glBindBuffer(GL_ARRAY_BUFFER, draw.vertex_buffer);
}
+}
+void OpenGLState::Apply() const {
+ ApplyFramebufferState();
+ ApplyVertexBufferState();
// Uniform buffer
if (draw.uniform_buffer != cur_state.draw.uniform_buffer) {
glBindBuffer(GL_UNIFORM_BUFFER, draw.uniform_buffer);