Browse Source

OpenGL: flip front faces if Z scale is inverted

nce_cpp
Liam 4 years ago
parent
commit
6c926f3cac
  1. 5
      src/video_core/renderer_opengl/gl_rasterizer.cpp

5
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;

Loading…
Cancel
Save