feat(a2b): implement 0x208 get-texture-size (geometry keystone)

Promote 0x208 from stub to a real VM op that writes the loaded texture's
width/height into its two output globals, via new IHost.GetTextureSize. This is
the single native primitive the CG-load subroutine (SC0000 label_12649) needs;
all downstream centering/anchor geometry is already computed in bytecode.

Non-Godot hosts return (0,0) so trace/selftest parity holds (engine 9/9 incl.
TraceDiffTests). Godot host gets a temporary (0,0) stub; real impl in the
compositor task.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
gamer147
2026-07-06 22:48:10 -04:00
parent e4242fddd1
commit 3512045916
10 changed files with 75 additions and 14 deletions

View File

@@ -54,6 +54,9 @@ public sealed class GodotAdvHost : IHost
_main.CallDeferred("DrawSlot", slot, bmp, dstX, dstY, width, height);
}
// Temporary stub — replaced by the real BMP-header-backed impl in Task 3 (blit compositor).
public (int Width, int Height) GetTextureSize(int slot) => (0, 0);
// ---- audio ops (OGG plays natively in Godot) ----
// BGM: addressed by direct name (BGM{id:D3}.OGG), NOT the manifest. Voice: via the per-scene manifest.
public void PlayBgm(long id)