Files
marl/src/template/marl.c
2026-05-30 15:05:58 +10:00

60 lines
1.3 KiB
C

/*
* Template for a Marl implementation.
*/
#include "marl.h"
#include <stdint.h>
#include <stdlib.h>
struct Marl_Window {};
struct Marl_Font {};
Marl_Window* _marl_createWindow(const char* title, int width, int height) {
return malloc(sizeof(Marl_Window));
}
Marl_Event _marl_poll(Marl_Window* window) {
return (Marl_Event){Marl_None, 0, 0, Marl_MouseLeft};
}
void _marl_clearScreen(Marl_Window* window, uint32_t colour) {}
void _marl_drawRect(Marl_Window* window, int x, int y, int width, int height, uint32_t colour) {}
void _marl_drawText(Marl_Window* window, Marl_Font* font, const char* text, int x, int y, uint32_t colour) {}
int _marl_render(Marl_Window* window) {
return 0;
}
void _marl_destroyWindow(Marl_Window** windowptr) {
free(*windowptr);
*windowptr = NULL;
}
Marl_Font* _marl_font_load(const char* path, float size) {
return malloc(sizeof(Marl_Font));
}
void _marl_font_destroy(Marl_Font** font) {
free(*font);
*font = NULL;
}
int _marl_font_textWidth(Marl_Font* font, const char* text) {
return 0;
}
struct _Marl Marl = {
/*
* General rendering
*/
_marl_createWindow, _marl_poll, _marl_clearScreen, _marl_drawRect, _marl_drawText, _marl_render, _marl_destroyWindow,
/*
* Text and fonts
*/
{ _marl_font_load, _marl_font_destroy, _marl_font_textWidth }
};