feat(gfx): surface+object render model (replaces flat layers)
GfxState: SurfaceStore (slot->{resId,colorkey} from create/set-texture) + object
SourceSlot/SrcRect/Visible (from draw-texture bind); SnapshotVisibleObjects returns
visible objects in ascending-handle order (=z-order) with their live surface resolved.
VM set/create/draw-texture wired to it. Oracle dumps visible objects. Erase removes the
object from the registry (faithful). Engine 44 green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -99,10 +99,10 @@ if (args[0] == "gfx")
|
||||
var gfxObjs = vm.Gfx.Objects.OrderBy(o => o.Slot).ToList();
|
||||
Console.WriteLine($" gfx objects: {gfxObjs.Count} -> " +
|
||||
string.Join(", ", gfxObjs.Select(o => $"0x{o.Handle:x}=slot{o.Slot}")));
|
||||
var layers = vm.Gfx.SnapshotLayers();
|
||||
Console.WriteLine($" layers ({layers.Count}, composite order):");
|
||||
foreach (var l in layers)
|
||||
Console.WriteLine($" h=0x{l.Handle:x} slot={l.Slot} src=({l.SrcX},{l.SrcY} {l.W}x{l.H}) dst=({l.DstX},{l.DstY})");
|
||||
var vis = vm.Gfx.SnapshotVisibleObjects();
|
||||
Console.WriteLine($" visible objects ({vis.Count}, ascending-handle = z-order):");
|
||||
foreach (var v in vis)
|
||||
Console.WriteLine($" h=0x{v.Handle:x} surf=0x{v.SurfaceResId:x} ({res.Resolve(sceneKey, v.SurfaceResId)?.Name ?? "?"}) src=({v.SrcX},{v.SrcY} {v.W}x{v.H}) dst=({v.DstX},{v.DstY})");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user