#pragma once #include #include namespace anm2ed::resource::icon { constexpr auto SIZE_SMALL = glm::ivec2(64, 64); constexpr auto SIZE_NORMAL = glm::ivec2(128, 128); constexpr auto SIZE_LARGE = glm::ivec2(256, 256); constexpr auto SIZE_HUGE = glm::ivec2(512, 512); constexpr auto NONE_DATA = R"( )"; constexpr auto FILE_DATA = R"( )"; constexpr auto FOLDER_DATA = R"( )"; constexpr auto CLOSE_DATA = R"( )"; constexpr auto ROOT_DATA = R"( )"; constexpr auto LAYER_DATA = R"( )"; constexpr auto NULL_DATA = R"( )"; constexpr auto TRIGGERS_DATA = R"( )"; constexpr auto VISIBLE_DATA = R"( )"; constexpr auto INVISIBLE_DATA = R"( )"; constexpr auto SHOW_UNUSED_DATA = R"( )"; constexpr auto HIDE_UNUSED_DATA = R"( )"; constexpr auto SHOW_LAYERS_DATA = R"( )"; constexpr auto HIDE_LAYERS_DATA = R"( )"; constexpr auto SHOW_RECT_DATA = R"( )"; constexpr auto HIDE_RECT_DATA = R"( )"; constexpr auto ANIMATION_DATA = R"( )"; constexpr auto SPRITESHEET_DATA = R"( )"; constexpr auto EVENT_DATA = R"( )"; constexpr auto PAN_DATA = R"( )"; constexpr auto MOVE_DATA = R"( )"; constexpr auto ROTATE_DATA = R"( )"; constexpr auto SCALE_DATA = R"( )"; constexpr auto CROP_DATA = R"( )"; constexpr auto DRAW_DATA = R"( )"; constexpr auto ERASE_DATA = R"( )"; constexpr auto COLOR_PICKER_DATA = R"( )"; constexpr auto UNDO_DATA = R"( )"; constexpr auto REDO_DATA = R"( )"; constexpr auto TARGET_DATA = R"( )"; constexpr auto TARGET_ALT_DATA = R"( )"; constexpr auto INTERPOLATED_DATA = R"( )"; constexpr auto UNINTERPOLATED_DATA = R"( )"; constexpr auto PIVOT_DATA = R"( )"; constexpr auto TRIGGER_DATA = R"( )"; constexpr auto PLAYHEAD_DATA = R"( )"; #define SVG_LIST \ X(NONE, NONE_DATA, SIZE_SMALL) \ X(FILE, FILE_DATA, SIZE_NORMAL) \ X(FOLDER, FOLDER_DATA, SIZE_NORMAL) \ X(CLOSE, CLOSE_DATA, SIZE_NORMAL) \ X(ROOT, ROOT_DATA, SIZE_NORMAL) \ X(LAYER, LAYER_DATA, SIZE_NORMAL) \ X(NULL_, NULL_DATA, SIZE_NORMAL) \ X(TRIGGERS, TRIGGERS_DATA, SIZE_NORMAL) \ X(VISIBLE, VISIBLE_DATA, SIZE_NORMAL) \ X(INVISIBLE, INVISIBLE_DATA, SIZE_NORMAL) \ X(SHOW_RECT, SHOW_RECT_DATA, SIZE_NORMAL) \ X(HIDE_RECT, HIDE_RECT_DATA, SIZE_NORMAL) \ X(SHOW_UNUSED, SHOW_UNUSED_DATA, SIZE_NORMAL) \ X(HIDE_UNUSED, HIDE_UNUSED_DATA, SIZE_NORMAL) \ X(SHOW_LAYERS, SHOW_LAYERS_DATA, SIZE_NORMAL) \ X(HIDE_LAYERS, HIDE_LAYERS_DATA, SIZE_NORMAL) \ X(PAN, PAN_DATA, SIZE_NORMAL) \ X(MOVE, MOVE_DATA, SIZE_NORMAL) \ X(ROTATE, ROTATE_DATA, SIZE_NORMAL) \ X(SCALE, SCALE_DATA, SIZE_NORMAL) \ X(CROP, CROP_DATA, SIZE_NORMAL) \ X(DRAW, DRAW_DATA, SIZE_NORMAL) \ X(ERASE, ERASE_DATA, SIZE_NORMAL) \ X(COLOR_PICKER, COLOR_PICKER_DATA, SIZE_NORMAL) \ X(UNDO, UNDO_DATA, SIZE_NORMAL) \ X(REDO, REDO_DATA, SIZE_NORMAL) \ X(ANIMATION, ANIMATION_DATA, SIZE_NORMAL) \ X(SPRITESHEET, SPRITESHEET_DATA, SIZE_NORMAL) \ X(EVENT, EVENT_DATA, SIZE_NORMAL) \ X(INTERPOLATED, INTERPOLATED_DATA, SIZE_NORMAL) \ X(UNINTERPOLATED, UNINTERPOLATED_DATA, SIZE_NORMAL) \ X(TRIGGER, TRIGGER_DATA, SIZE_NORMAL) \ X(PLAYHEAD, PLAYHEAD_DATA, SIZE_NORMAL) \ X(PIVOT, PIVOT_DATA, SIZE_NORMAL) \ X(POINT, UNINTERPOLATED_DATA, SIZE_NORMAL) \ X(TARGET, TARGET_DATA, SIZE_HUGE) \ X(TARGET_ALT, TARGET_ALT_DATA, SIZE_HUGE) enum Type { #define X(name, data, size) name, SVG_LIST #undef X COUNT }; struct Info { const char* data{}; size_t length{}; glm::ivec2 size{}; }; const Info ICONS[COUNT] = { #define X(name, data, size) {data, std::strlen(data) - 1, size}, SVG_LIST #undef X }; }