fix(studio): Task 3 review — UiRoot.Pick, RenderStack IDisposable, dt cleanup
Code-review follow-ups to the ImGui inspector: - Add public UiRoot.Pick(x,y) over the private HitTestTopDown (honors Z-order + modal exclusivity); StudioWindow uses it instead of a manual UiElement.HitTest with subtracted ScreenPosition. - RenderStack : IDisposable — disposes the GL pieces it owns in one place; StudioWindow OnClosing + Dispose both call _stack?.Dispose(), closing the error-path leak (only UiHost was disposed on the Dispose-without-OnClosing path). - Drop the stale _dt field; OnRender passes its own dt to Tick + BeginFrame. - Fix a stale PanelFbo comment. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
d2240974ec
commit
101a35cc2d
4 changed files with 32 additions and 25 deletions
|
|
@ -22,8 +22,21 @@ public sealed record RenderStack(
|
|||
Wb.WbDrawDispatcher DrawDispatcher,
|
||||
SceneLightingUboBinding LightingUbo,
|
||||
AcDream.App.UI.UiHost UiHost,
|
||||
AcDream.App.UI.UiDatFont? VitalsDatFont)
|
||||
AcDream.App.UI.UiDatFont? VitalsDatFont) : System.IDisposable
|
||||
{
|
||||
/// <summary>Dispose the GL pieces this stack OWNS (everything created in
|
||||
/// <see cref="RenderBootstrap.Create"/>). <see cref="Dats"/> + <see cref="Gl"/> are caller-owned
|
||||
/// and NOT disposed here. Called once at studio teardown.</summary>
|
||||
public void Dispose()
|
||||
{
|
||||
DrawDispatcher.Dispose();
|
||||
MeshAdapter.Dispose();
|
||||
TextureCache.Dispose();
|
||||
MeshShader.Dispose();
|
||||
LightingUbo.Dispose();
|
||||
UiHost.Dispose();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Resolves a sprite id (0x06xxxxxx) to a (GL handle, width, height) triple.
|
||||
/// Copied verbatim from GameWindow's ResolveChrome closure — it calls
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue