summaryrefslogtreecommitdiff
path: root/src/3d/renderer_pipelines.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/3d/renderer_pipelines.cc')
-rw-r--r--src/3d/renderer_pipelines.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/3d/renderer_pipelines.cc b/src/3d/renderer_pipelines.cc
index 3abc3bd..195baad 100644
--- a/src/3d/renderer_pipelines.cc
+++ b/src/3d/renderer_pipelines.cc
@@ -253,7 +253,10 @@ void Renderer3D::create_mesh_pipeline() {
pipeline_desc.vertex.buffers = &vert_buffer_layout;
pipeline_desc.primitive.topology = WGPUPrimitiveTopology_TriangleList;
pipeline_desc.primitive.cullMode = WGPUCullMode_Back;
- pipeline_desc.primitive.frontFace = WGPUFrontFace_CW; // Y-flipped perspective
+ // CW winding compensates for Y-negation in perspective() (post-process chain).
+ // Direct-to-surface rendering uses standard CCW winding.
+ pipeline_desc.primitive.frontFace =
+ direct_render_ ? WGPUFrontFace_CCW : WGPUFrontFace_CW;
pipeline_desc.multisample.count = 1;
pipeline_desc.fragment = &fragment_state;
pipeline_desc.depthStencil = &depth_stencil;