#pragma once // ui_icons.h - SVG icon definitions and atlas rasterization via nanosvg #include "base/base_inc.h" typedef enum UI_IconID { UI_ICON_CLOSE, UI_ICON_CHECK, UI_ICON_CHEVRON_DOWN, UI_ICON_KNOB, UI_ICON_SLIDER_THUMB, UI_ICON_FADER, UI_ICON_TRANSPORT_REWIND, UI_ICON_TRANSPORT_STOP, UI_ICON_TRANSPORT_PLAY, UI_ICON_TRANSPORT_RECORD, UI_ICON_POP_OUT, UI_ICON_POP_IN, UI_ICON_COUNT } UI_IconID; typedef struct UI_IconInfo { F32 u0, v0, u1, v1; // UV coordinates in icon atlas F32 w, h; // pixel dimensions at rasterized size } UI_IconInfo; extern UI_IconInfo g_icons[UI_ICON_COUNT]; // Rasterizes all icons into an RGBA8 atlas bitmap (4 bytes per pixel). // Returns malloc'd data (caller frees). Sets *out_w, *out_h to atlas dimensions. // icon_size is the pixel height to rasterize each icon at. U8 *ui_icons_rasterize_atlas(S32 *out_w, S32 *out_h, S32 icon_size);