From 67bc2f5ecd325d8d23d6d3d1ac979c8c78fdd743 Mon Sep 17 00:00:00 2001 From: bunnei Date: Mon, 26 Mar 2018 20:09:01 -0400 Subject: gl_rasterizer: Move PrimitiveTopology check to MaxwellToGL. --- src/video_core/renderer_opengl/gl_rasterizer.cpp | 13 ++----------- src/video_core/renderer_opengl/maxwell_to_gl.h | 10 ++++++++++ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index c4abbb2cd..487d37a26 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp @@ -326,17 +326,7 @@ void RasterizerOpenGL::DrawArrays() { state.Apply(); // Draw the vertex batch - GLenum primitive_mode; - switch (regs.draw.topology) { - case Maxwell::PrimitiveTopology::TriangleStrip: - primitive_mode = GL_TRIANGLE_STRIP; - break; - default: - UNREACHABLE(); - } - const bool is_indexed = accelerate_draw == AccelDraw::Indexed; - AnalyzeVertexArray(is_indexed); state.draw.vertex_buffer = stream_buffer->GetHandle(); state.Apply(); @@ -384,7 +374,8 @@ void RasterizerOpenGL::DrawArrays() { if (is_indexed) { UNREACHABLE(); } else { - glDrawArrays(primitive_mode, 0, regs.vertex_buffer.count); + glDrawArrays(MaxwellToGL::PrimitiveTopology(regs.draw.topology), 0, + regs.vertex_buffer.count); } // Disable scissor test diff --git a/src/video_core/renderer_opengl/maxwell_to_gl.h b/src/video_core/renderer_opengl/maxwell_to_gl.h index 003ee2fd9..d847317ac 100644 --- a/src/video_core/renderer_opengl/maxwell_to_gl.h +++ b/src/video_core/renderer_opengl/maxwell_to_gl.h @@ -37,4 +37,14 @@ inline GLenum VertexType(Maxwell::VertexAttribute attrib) { return {}; } +inline GLenum PrimitiveTopology(Maxwell::PrimitiveTopology topology) { + switch (topology) { + case Maxwell::PrimitiveTopology::TriangleStrip: + return GL_TRIANGLE_STRIP; + } + LOG_CRITICAL(Render_OpenGL, "Unimplemented primitive topology=%d", topology); + UNREACHABLE(); + return {}; +} + } // namespace MaxwellToGL -- cgit v1.2.3