diff options
| author | 2018-03-26 20:09:01 -0400 | |
|---|---|---|
| committer | 2018-03-26 21:17:03 -0400 | |
| commit | 67bc2f5ecd325d8d23d6d3d1ac979c8c78fdd743 (patch) | |
| tree | e0f68a2ecce868f25c1f4c7e498f5217e9beaa4a /src | |
| parent | graphics_surface: Fix merge conflicts. (diff) | |
| download | yuzu-67bc2f5ecd325d8d23d6d3d1ac979c8c78fdd743.tar.gz yuzu-67bc2f5ecd325d8d23d6d3d1ac979c8c78fdd743.tar.xz yuzu-67bc2f5ecd325d8d23d6d3d1ac979c8c78fdd743.zip | |
gl_rasterizer: Move PrimitiveTopology check to MaxwellToGL.
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 13 | ||||
| -rw-r--r-- | 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() { | |||
| 326 | state.Apply(); | 326 | state.Apply(); |
| 327 | 327 | ||
| 328 | // Draw the vertex batch | 328 | // Draw the vertex batch |
| 329 | GLenum primitive_mode; | ||
| 330 | switch (regs.draw.topology) { | ||
| 331 | case Maxwell::PrimitiveTopology::TriangleStrip: | ||
| 332 | primitive_mode = GL_TRIANGLE_STRIP; | ||
| 333 | break; | ||
| 334 | default: | ||
| 335 | UNREACHABLE(); | ||
| 336 | } | ||
| 337 | |||
| 338 | const bool is_indexed = accelerate_draw == AccelDraw::Indexed; | 329 | const bool is_indexed = accelerate_draw == AccelDraw::Indexed; |
| 339 | |||
| 340 | AnalyzeVertexArray(is_indexed); | 330 | AnalyzeVertexArray(is_indexed); |
| 341 | state.draw.vertex_buffer = stream_buffer->GetHandle(); | 331 | state.draw.vertex_buffer = stream_buffer->GetHandle(); |
| 342 | state.Apply(); | 332 | state.Apply(); |
| @@ -384,7 +374,8 @@ void RasterizerOpenGL::DrawArrays() { | |||
| 384 | if (is_indexed) { | 374 | if (is_indexed) { |
| 385 | UNREACHABLE(); | 375 | UNREACHABLE(); |
| 386 | } else { | 376 | } else { |
| 387 | glDrawArrays(primitive_mode, 0, regs.vertex_buffer.count); | 377 | glDrawArrays(MaxwellToGL::PrimitiveTopology(regs.draw.topology), 0, |
| 378 | regs.vertex_buffer.count); | ||
| 388 | } | 379 | } |
| 389 | 380 | ||
| 390 | // Disable scissor test | 381 | // 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) { | |||
| 37 | return {}; | 37 | return {}; |
| 38 | } | 38 | } |
| 39 | 39 | ||
| 40 | inline GLenum PrimitiveTopology(Maxwell::PrimitiveTopology topology) { | ||
| 41 | switch (topology) { | ||
| 42 | case Maxwell::PrimitiveTopology::TriangleStrip: | ||
| 43 | return GL_TRIANGLE_STRIP; | ||
| 44 | } | ||
| 45 | LOG_CRITICAL(Render_OpenGL, "Unimplemented primitive topology=%d", topology); | ||
| 46 | UNREACHABLE(); | ||
| 47 | return {}; | ||
| 48 | } | ||
| 49 | |||
| 40 | } // namespace MaxwellToGL | 50 | } // namespace MaxwellToGL |