/** * Copyright (c) 2025 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #include "renderui.h" #include "display/ui/rendertext.h" #include "display/ui/renderconsole.h" #include "display/ui/renderfps.h" #include "display/ui/rendertextbox.h" #include "display/spritebatch/spritebatch.h" #include "display/camera/camera.h" renderuicallback_t RENDER_UI_CALLBACKS[] = { { .init = renderTextInit, .dispose = renderTextDispose }, { .draw = renderTextboxDraw, }, { .draw = renderConsoleDraw, }, { .draw = renderFPSDraw, }, }; #define RENDER_UI_CALLBACKS_COUNT ( \ sizeof(RENDER_UI_CALLBACKS) / sizeof(RENDER_UI_CALLBACKS[0]) \ ) void renderUIInit(void) { for (int32_t i = 0; i < RENDER_UI_CALLBACKS_COUNT; i++) { if(!RENDER_UI_CALLBACKS[i].init) continue; RENDER_UI_CALLBACKS[i].init(); } } void renderUIDraw(void) { cameraUIPush(); for (int32_t i = 0; i < RENDER_UI_CALLBACKS_COUNT; i++) { if(!RENDER_UI_CALLBACKS[i].draw) continue; RENDER_UI_CALLBACKS[i].draw(); } spriteBatchFlush(); cameraUIPop(); } void renderUIDispose(void) { for (int32_t i = 0; i < RENDER_UI_CALLBACKS_COUNT; i++) { if(!RENDER_UI_CALLBACKS[i].dispose) continue; RENDER_UI_CALLBACKS[i].dispose(); } }