fix(editor): harden editor interactions and WebGPU rendering
Fix editor bug sweep regressions, WebGPU CSG/material crashes, Shift snap bypass behavior, arrow handle drag projection, and the wall preview null guard covered by the Sentry follow-up PRs.
This commit is contained in:
@@ -225,6 +225,7 @@ export function buildGutterGeometry(
|
||||
const drillBrush = new Brush(drill)
|
||||
prepareBrushForCSG(drillBrush)
|
||||
const next = csgEvaluator.evaluate(workingBrush, drillBrush, SUBTRACTION) as Brush
|
||||
prepareBrushForCSG(next)
|
||||
// Free the previous step's intermediate result (but not `merged`,
|
||||
// which is disposed once below).
|
||||
if (workingBrush.geometry !== merged) workingBrush.geometry.dispose()
|
||||
|
||||
@@ -97,7 +97,10 @@ export default function MoveGutterTool({ node }: { node: GutterNode }) {
|
||||
|
||||
const sx = Math.round(snap.eaveX * 20) / 20
|
||||
const sz = Math.round(snap.eaveZ * 20) / 20
|
||||
if (!lastSnap || lastSnap[0] !== sx || lastSnap[1] !== sz) {
|
||||
if (
|
||||
event.nativeEvent?.shiftKey !== true &&
|
||||
(!lastSnap || lastSnap[0] !== sx || lastSnap[1] !== sz)
|
||||
) {
|
||||
triggerSFX('sfx:grid-snap')
|
||||
lastSnap = [sx, sz]
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ const GutterTool = () => {
|
||||
const sx = Math.round(snap.eaveX * 20) / 20
|
||||
const sz = Math.round(snap.eaveZ * 20) / 20
|
||||
const prev = lastSnapRef.current
|
||||
if (!prev || prev[0] !== sx || prev[1] !== sz) {
|
||||
if (event.nativeEvent?.shiftKey !== true && (!prev || prev[0] !== sx || prev[1] !== sz)) {
|
||||
triggerSFX('sfx:grid-snap')
|
||||
lastSnapRef.current = [sx, sz]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user