Browse Source

gl_state: Remove front face tracking

pull/15/merge
ReinUsesLisp 6 years ago
parent
commit
925521da5f
  1. 2
      src/video_core/renderer_opengl/gl_rasterizer.cpp
  2. 4
      src/video_core/renderer_opengl/gl_state.cpp
  3. 1
      src/video_core/renderer_opengl/gl_state.h
  4. 4
      src/video_core/renderer_opengl/renderer_opengl.cpp

2
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.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() { void RasterizerOpenGL::SyncPrimitiveRestart() {

4
src/video_core/renderer_opengl/gl_state.cpp

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

1
src/video_core/renderer_opengl/gl_state.h

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

4
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.textures[0] = screen_info.display_texture;
state.framebuffer_srgb.enabled = screen_info.display_srgb; state.framebuffer_srgb.enabled = screen_info.display_srgb;
state.Apply(); state.Apply();
// TODO: Signal state tracker about these changes
glFrontFace(GL_CW);
glNamedBufferSubData(vertex_buffer.handle, 0, sizeof(vertices), std::data(vertices)); glNamedBufferSubData(vertex_buffer.handle, 0, sizeof(vertices), std::data(vertices));
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
// Restore default state // Restore default state

Loading…
Cancel
Save