33 lines
950 B
C
33 lines
950 B
C
#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);
|