You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
session.Clear(); // remove all geometry (session stays registered)
152
+
session.Dispose(); // unregister and release GPU buffers
153
+
```
154
+
155
+
### Known bugs fixed
156
+
157
+
-`VertexBuffer.Map(0)` and `IndexBuffer.Map(0)` — `Map()` takes **size in floats/shorts**, not an offset. Passing 0 maps nothing → no vertices written → geometry invisible. Fixed to pass actual buffer sizes.
158
+
- Auto-registration in constructor caused double-registration when App.cs also registered manually. Removed auto-registration; use `RegisterDrawSession()` instead.
159
+
160
+
### CanExecute conditions
161
+
162
+
`DrawSession.CanExecute(view)` returns `true` only when:
163
+
- Session is not disposed
164
+
- At least one line has been added (`_lines.Count > 0`)
165
+
- The view is a `View3D`
166
+
167
+
### Threading
168
+
169
+
-`_lines` list and `Invalidate()` → main/UI thread only
170
+
-`GetBoundingBox()` → may be called from render thread → reads `_cachedOutline` (volatile)
171
+
-`RenderScene()` → render thread → calls `RebuildBuffers()` when `_isDirty`
0 commit comments