Explorar o código

Better fix for last point in D3D11 renderer, thanks to Nader Golbaz

Sam Lantinga %!s(int64=9) %!d(string=hai) anos
pai
achega
057bca8a68
Modificáronse 1 ficheiros con 6 adicións e 1 borrados
  1. 6 1
      src/render/direct3d11/SDL_render_d3d11.c

+ 6 - 1
src/render/direct3d11/SDL_render_d3d11.c

@@ -2576,7 +2576,12 @@ D3D11_RenderDrawLines(SDL_Renderer * renderer,
         NULL);
         NULL);
 
 
     D3D11_RenderFinishDrawOp(renderer, D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP, count);
     D3D11_RenderFinishDrawOp(renderer, D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP, count);
-    D3D11_RenderFinishDrawOp(renderer, D3D11_PRIMITIVE_TOPOLOGY_POINTLIST, count);
+
+    if (points[0].x != points[count - 1].x || points[0].y != points[count - 1].y) {
+        ID3D11DeviceContext_IASetPrimitiveTopology(rendererData->d3dContext, D3D11_PRIMITIVE_TOPOLOGY_POINTLIST);
+        ID3D11DeviceContext_Draw(rendererData->d3dContext, 1, count - 1);
+    }
+
     SDL_stack_free(vertices);
     SDL_stack_free(vertices);
     return 0;
     return 0;
 }
 }