72ce66275e
Спрайтовая графика поверх accel block-copy (docs/sprite-api-design.md): - Ядро блиттинга: leaf'ы _bgi_blit_rows_raw (dst фикс, только src-страйд) / _bgi_copy_rows_raw (getimage) / _bgi_heal_rows_raw (src==dst). DI один на спрайт (санкция: малый спрайт под одним DI аудио не рвёт); src[0]-фикс снят (точная MAME подавляет CPU-байт триггера записи — на железе перепроверить; для heal был избыточен и снят безусловно). - Общие bracket-free ядра _gfx_blit_full/_gfx_heal_full (полная ширина: клип по экрану + split >256 для putimage) + лин _gfx_blit_sprite/ _gfx_heal_sprite (кадр ≤64, без split, 8-бит w/h) + noclip-варианты (клип-кода нет → полный codegen-win). Имя *_full (не *_clip) — «clip» двусмысленно (sprite-ядра тоже клипуют; различитель — ширина/split). - Движок retained-модели <sprite.h>: sprite_init/update/flip + inline move/frame/show/hide/touch; drawn[2] per-page внутри структуры; кадр — двухпроходно heal ВСЕ -> блит ВСЕ под одной W3-скобкой/банком на проход. - Флаг gfx_sprite_clip(on/off): приложение, само следящее за границами, отключает клип (~+19% на анимации; диспетч пока через if — funcptr далее). - putsprite/movesprite/gfx_blit/putimage(COPY)/getimage переведены на ядро. Тесты: examples/balls (движок, дабл-буфер, boundary-тест клипа), tests/sprites (RAM PASS, клип 4 края, атлас), tests/blitw (trig-leak), tests/spriteclip (hardware-probe: железо НЕ режет за краем -> клип нужен), tests/blitperf, tests/gfxbanks. size-baseline обновлён (53 программы). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
782 B
782 B
| 1 | # Эталон размеров _CODE (байт); обновление: python3 toolchain/size_check.py --update | |
|---|---|---|
| 2 | accfill | 3772 |
| 3 | argv | 3431 |
| 4 | assrtest | 3847 |
| 5 | attrprob | 4087 |
| 6 | balls | 6393 |
| 7 | banked | 1056 |
| 8 | bankedbg | 1067 |
| 9 | banklocl | 4683 |
| 10 | banktest | 3767 |
| 11 | bgi_img | 7060 |
| 12 | bgitest | 3737 |
| 13 | bios_text | 4461 |
| 14 | blitperf | 5860 |
| 15 | blitw | 4939 |
| 16 | cat | 913 |
| 17 | cblstream | 6217 |
| 18 | cbltest | 6366 |
| 19 | cblwav | 6434 |
| 20 | conio | 4605 |
| 21 | conio2 | 3929 |
| 22 | dec_test | 860 |
| 23 | errno | 5966 |
| 24 | fbench | 8085 |
| 25 | fdmax | 6023 |
| 26 | filetest | 10547 |
| 27 | gets | 509 |
| 28 | gfx_dbuf | 5032 |
| 29 | gfx_demo | 4103 |
| 30 | gfxbanks | 6044 |
| 31 | hello | 4167 |
| 32 | hello2 | 4244 |
| 33 | irqtest | 5850 |
| 34 | ls | 4835 |
| 35 | malloc | 4461 |
| 36 | mdview | 18878 |
| 37 | mdview2 | 27031 |
| 38 | mem_test | 4555 |
| 39 | mouse | 4382 |
| 40 | openenv | 6124 |
| 41 | ptime | 5744 |
| 42 | rt_test | 4892 |
| 43 | seek | 4188 |
| 44 | simple | 955 |
| 45 | solidt | 11531 |
| 46 | spriteclip | 4187 |
| 47 | sprites | 9968 |
| 48 | stattest | 7549 |
| 49 | stdlib | 6643 |
| 50 | stest2 | 3644 |
| 51 | strtest | 1340 |
| 52 | text_palette | 5024 |
| 53 | timedir | 5454 |
| 54 | winrest | 4459 |