diff options
Diffstat (limited to 'src/3d/renderer_pipelines.cc')
| -rw-r--r-- | src/3d/renderer_pipelines.cc | 5 |
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; |
