Bläddra i källkod

gl_state: Remove front face tracking

ReinUsesLisp 6 år sedan
förälder
incheckning
925521da5f

+ 1 - 1
src/video_core/renderer_opengl/gl_rasterizer.cpp

@@ -1025,7 +1025,7 @@ void RasterizerOpenGL::SyncCullMode() {
         state.cull.mode = MaxwellToGL::CullFace(regs.cull.cull_face);
     }
 
-    state.cull.front_face = MaxwellToGL::FrontFace(regs.cull.front_face);
+    glFrontFace(MaxwellToGL::FrontFace(regs.cull.front_face));
 }
 
 void RasterizerOpenGL::SyncPrimitiveRestart() {

+ 0 - 4
src/video_core/renderer_opengl/gl_state.cpp

@@ -170,10 +170,6 @@ void OpenGLState::ApplyCulling() {
     if (UpdateValue(cur_state.cull.mode, cull.mode)) {
         glCullFace(cull.mode);
     }
-
-    if (UpdateValue(cur_state.cull.front_face, cull.front_face)) {
-        glFrontFace(cull.front_face);
-    }
 }
 
 void OpenGLState::ApplyRasterizerDiscard() {

+ 0 - 1
src/video_core/renderer_opengl/gl_state.h

@@ -34,7 +34,6 @@ public:
     struct {
         bool enabled = false;       // GL_CULL_FACE
         GLenum mode = GL_BACK;      // GL_CULL_FACE_MODE
-        GLenum front_face = GL_CCW; // GL_FRONT_FACE
     } cull;
 
     struct {

+ 4 - 0
src/video_core/renderer_opengl/renderer_opengl.cpp

@@ -571,6 +571,10 @@ void RendererOpenGL::DrawScreenTriangles(const ScreenInfo& screen_info, float x,
     state.textures[0] = screen_info.display_texture;
     state.framebuffer_srgb.enabled = screen_info.display_srgb;
     state.Apply();
+
+    // TODO: Signal state tracker about these changes
+    glFrontFace(GL_CW);
+
     glNamedBufferSubData(vertex_buffer.handle, 0, sizeof(vertices), std::data(vertices));
     glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
     // Restore default state