/* * gfx_sprite_clip — включить/выключить клип спрайтов по экрану. * on=1 (дефолт) — clip-ядра; on=0 — noclip-ядра (приложение ГАРАНТИРУЕТ, * что спрайты целиком на экране; ~+19% на анимации — клип-кода в noclip * нет физически, см. _gfx_blit_sprite_noclip.c). * * Переключение — перенаправлением указателей _gfx_blit_fn/_gfx_heal_fn * (ОДИН раз здесь, не ветка в горячем цикле). Флаг _gfx_sprite_clip * остаётся для gfx_get_sprite_clip(). Настоящая функция (не inline): * только этот модуль ссылается на noclip-ядра — программа без вызова * gfx_sprite_clip() их не линкует. */ #include "../_bgi.h" void gfx_sprite_clip(uint8_t on) { _gfx_sprite_clip = on; if (on) { _gfx_blit_fn = _gfx_blit_sprite; _gfx_heal_fn = _gfx_heal_sprite; } else { _gfx_blit_fn = _gfx_blit_sprite_noclip; _gfx_heal_fn = _gfx_heal_sprite_noclip; } }