forked from 1b-agent/opencadstudio-upstream
feat: GPU scissor rect for paper-space viewport wires
Viewport-projected wires now clip at pixel level to their viewport boundary. - WireModel.vp_scissor: Option<[f32; 4]> — paper-space bbox set on projection - WireGpu.vp_scissor carries it through to the draw loop - Pipeline.compute_wire_scissors() converts paper→NDC→pixel each frame - render() calls set_scissor_rect() per wire, reset after viewport group - INTEGRATION_GAPS.md: Viewport ⚠️ → ✅, all 51 gaps resolved Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
This commit is contained in:
1 parent
27aca41dd1
commit
899b3f4796
38 files changed
+112
-13
No files matched your search
@@ -976,6 +976,7 @@ impl Scene {
|
||||
out.points = clipped;
|
||||
out.color = [r * 0.80, g * 0.80, b * 0.80, a * 0.85];
|
||||
out.line_weight_px = wire.line_weight_px;
|
||||
out.vp_scissor = Some([vp_x0, vp_y0, vp_x1, vp_y1]);
|
||||
projected.push(out);
|
||||
}
|
||||
|
||||
@@ -3212,6 +3213,7 @@ fn tessellate_entity(
|
||||
key_vertices: vec![],
|
||||
aabb: WireModel::UNBOUNDED_AABB,
|
||||
plinegen: true,
|
||||
vp_scissor: None,
|
||||
});
|
||||
return wires;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user