feat(render): #86 @ClearColor — Render phase auto-clears + auto-presents
@ClearColor(0xRRGGBB) declares the framebuffer clear colour, so the engine owns the per-frame clear and flip: the Render phase clears to the colour at the top and presents after the handlers run. Games drop the repeated Screen.clear(color)/Screen.show() boilerplate, and the colour is configured declaratively (an annotation) rather than in the handler body. Opt-in and backward-compatible: a program with no @ClearColor is byte-for-byte identical (it clears/presents itself, or the light system owns the present). Parser reads @ClearColor(int) into g_clear_color/g_has_clear_color; emit_game_main emits rt_clear before and rt_present after the Render phase, gated on the flag. Example clear_color (pixel-readback verified — an undrawn pixel holds the clear colour, proving the engine cleared), docs page + inventory entry. Full suite 108/0, goldens byte-identical, fixpoint holds. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
bccd26fb29
commit
d9287d6b1d
8 changed files with 18108 additions and 17936 deletions
|
|
@ -24,7 +24,8 @@
|
|||
"annot-toclients",
|
||||
"annot-system",
|
||||
"annot-enginesystem",
|
||||
"annot-namespace"
|
||||
"annot-namespace",
|
||||
"annot-clearcolor"
|
||||
],
|
||||
"builtins": [
|
||||
"fn-print",
|
||||
|
|
@ -723,4 +724,4 @@
|
|||
"tiled-world_count",
|
||||
"tiled-world_map"
|
||||
]
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue