/*
 * sprite_flip — сахар канонического дабл-буфер-кадра поверх
 * sprite_update (docs/sprite-api-design.md §9.1):
 *   draw-страница = скрытая → sprite_update → ждать кадр → показать её.
 * Флип по vsync делает переход tear-free.  Приложение, рисующее свой
 * динамический фон/HUD, делает это банком 0x50 на СКРЫТОЙ странице ДО
 * sprite_flip (тогда heal учтёт его через ОЗУ-копию) — либо зовёт
 * составные части (gfx_set_draw_page/sprite_update/gfx_wait_vsync/
 * gfx_set_visible_page) сам.
 */
#include "../_bgi.h"
#include <sprite.h>

void sprite_flip(sprite_t *arr, uint8_t count)
{
    uint8_t hidden = gfx_get_visible_page() ^ 1;

    gfx_set_draw_page(hidden);
    sprite_update(arr, count);
    gfx_wait_vsync();
    gfx_set_visible_page(hidden);
}
