summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar bunnei2018-03-26 20:09:01 -0400
committerGravatar bunnei2018-03-26 21:17:03 -0400
commit67bc2f5ecd325d8d23d6d3d1ac979c8c78fdd743 (patch)
treee0f68a2ecce868f25c1f4c7e498f5217e9beaa4a /src
parentgraphics_surface: Fix merge conflicts. (diff)
downloadyuzu-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.cpp13
-rw-r--r--src/video_core/renderer_opengl/maxwell_to_gl.h10
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
40inline 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