From 95dbc6eb0ecb945ed6669d5d58db5eb23d86beac Mon Sep 17 00:00:00 2001
From: Yuri Kunde Schlesner <yuriks@yuriks.net>
Date: Mon, 31 Aug 2015 12:03:21 -0300
Subject: [PATCH] OpenGL: Add support for glFrontFace in the state tracker

---
 src/video_core/renderer_opengl/gl_state.cpp | 5 +++++
 src/video_core/renderer_opengl/gl_state.h   | 1 +
 2 files changed, 6 insertions(+)

diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp
index c44497fc3..a82372995 100644
--- a/src/video_core/renderer_opengl/gl_state.cpp
+++ b/src/video_core/renderer_opengl/gl_state.cpp
@@ -11,6 +11,7 @@ OpenGLState::OpenGLState() {
     // These all match default OpenGL values
     cull.enabled = false;
     cull.mode = GL_BACK;
+    cull.front_face = GL_CCW;
 
     depth.test_enabled = false;
     depth.test_func = GL_LESS;
@@ -67,6 +68,10 @@ void OpenGLState::Apply() {
         glCullFace(cull.mode);
     }
 
+    if (cull.front_face != cur_state.cull.front_face) {
+        glFrontFace(cull.front_face);
+    }
+
     // Depth test
     if (depth.test_enabled != cur_state.depth.test_enabled) {
         if (depth.test_enabled) {
diff --git a/src/video_core/renderer_opengl/gl_state.h b/src/video_core/renderer_opengl/gl_state.h
index 84b3d49bc..b8ab45bb8 100644
--- a/src/video_core/renderer_opengl/gl_state.h
+++ b/src/video_core/renderer_opengl/gl_state.h
@@ -11,6 +11,7 @@ public:
     struct {
         bool enabled; // GL_CULL_FACE
         GLenum mode; // GL_CULL_FACE_MODE
+        GLenum front_face; // GL_FRONT_FACE
     } cull;
 
     struct {