forked from 1b-agent/opencadstudio-upstream
feat(text): suppress glyph strokes when SDF text is on
With OCS_TEXT_SDF set, text now renders only as SDF quads: the wire path skips building glyph-stroke geometry (bins stays empty, so the existing empty-wire branch still emits the insertion snap point). This removes the double draw (strokes + SDF) and, as a side effect, fixes the long-standing snap pollution (#276) — snapping near text no longer catches individual glyph-stroke endpoints, only the insertion point. Shared sdf_text_enabled() (cached env read) gates both the collector and the stroke suppression so they stay in lock-step. Flag off: unchanged. Verified in-app: TEXT/MTEXT/decorations render clean as single SDF, and snap no longer hits glyph strokes. Click-pick on text is limited while the flag is on (no stroke geometry) pending a text OBB pick box. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1 parent
1709d41e4f
commit
9f60470067
3 files changed
+16
-2
No files matched your search
@@ -198,7 +198,13 @@ pub fn tessellate(
|
||||
};
|
||||
|
||||
let anno = anno_scale as f64;
|
||||
for group in &stroke_groups {
|
||||
// With SDF text on, glyphs render as quads elsewhere — skip
|
||||
// building the stroke geometry so text is not double-drawn.
|
||||
// `bins` stays empty, so the empty-wire path below still emits
|
||||
// the insertion snap point (text stays snappable, no glyph
|
||||
// strokes polluting snap/pick).
|
||||
let sdf_text = crate::scene::text::sdf_atlas::sdf_text_enabled();
|
||||
for group in stroke_groups.iter().filter(|_| !sdf_text) {
|
||||
let lx_v = group.origin[0];
|
||||
let ly_v = group.origin[1];
|
||||
let slx_v = (lx_v - ref_lx_v) * anno + ref_lx_v;
|
||||
|
||||
Reference in new issue
Block a user