Jelajahi Sumber

OpenGL: flip front faces if Z scale is inverted

Liam 4 tahun lalu
induk
melakukan
cb913e5c02
1 mengubah file dengan 3 tambahan dan 2 penghapusan
  1. 3 2
      src/video_core/renderer_opengl/gl_rasterizer.cpp

+ 3 - 2
src/video_core/renderer_opengl/gl_rasterizer.cpp

@@ -561,8 +561,9 @@ void RasterizerOpenGL::SyncViewport() {
         flags[Dirty::FrontFace] = false;
         flags[Dirty::FrontFace] = false;
 
 
         GLenum mode = MaxwellToGL::FrontFace(regs.front_face);
         GLenum mode = MaxwellToGL::FrontFace(regs.front_face);
-        if (regs.screen_y_control.triangle_rast_flip != 0 &&
-            regs.viewport_transform[0].scale_y < 0.0f) {
+        if ((regs.screen_y_control.triangle_rast_flip != 0 &&
+             regs.viewport_transform[0].scale_y < 0.0f) ||
+            regs.viewport_transform[0].scale_z < 0.0f) {
             switch (mode) {
             switch (mode) {
             case GL_CW:
             case GL_CW:
                 mode = GL_CCW;
                 mode = GL_CCW;