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
App-authored 3D zones were corrupted in the editor's docked weave-to-texture Play Mode (#233, #234). An app that authors its own 3D zone (a 3D band with a 2D/Local2D band beside it — the desktop-avatar pattern) rendered with the content truncated and a matching black band, a visibly magnified/broken weave, and its 2D band missing. Two bugs, one stale assumption — "the 3D zone is the full pane", true only while the provider was forcing it to be:
dxr_prov_converge_gameview_zone() paired the app's zone offset with the Game view pane's extent, producing a zone that overran the pane (e.g. (0,284) 1728x576 → (0,284) 1728x860 in an 860-tall pane) and a compositor viewport that overflowed its tile. Converge now repositions an app zone (pane origin + app offset, extent preserved, clamped) and never redefines its extent; the app-authored rect is recorded separately so converge is idempotent.
dxr_prov_get_woven_canvas() returned the zone as the GameView mirror's source rect. Since the mirror stretches that to fill the Game view, a sub-window zone was magnified — destroying the lenticular interlace and never sampling the 2D bands. It now returns the pane, which is what the runtime actually composites into the shared texture.
State pushed once before the session started was silently lost on every session restart (#233, #234, #235). The editor's docked↔undocked switch restarts the display subsystem mid-play, and session stop clears the provider's session state; because each C#→native push is change-detected or once-only, nothing re-pushed. Fixed for all six affected paths — the 3D zone (both render paths, not just the docked one), the transparent-background opt-in (sessions came back opaque), extra/multi-zone rects, the Local2D bridge and rect, and the DisplayXRWindowSpaceUI bridge. Bridges are now re-acquired by detecting the native pointer change rather than assuming a non-null wrapper is still live — a wrapper around a destroyed resource accepted copies silently, so the failure had no error signature.
Changed
dxr_prov_get_woven_canvas() now reports the Game view pane rect rather than the active 3D-zone rect. Identical for apps that author no zone (the provider's forced zone equals the pane); different only where an app authors a sub-window zone, which is the case this fixes.
dxr_prov_set_transparent_background(), dxr_prov_set_zone_count() and dxr_prov_set_zone() now persist their request across session restarts instead of applying only to the session that was live when they were called.