archivemuh
This commit is contained in:
63
archive/dusksdl2/display/ui/renderui.c
Normal file
63
archive/dusksdl2/display/ui/renderui.c
Normal file
@@ -0,0 +1,63 @@
|
||||
/**
|
||||
* 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();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user