#pragma once #include "component_texture_quad.h" typedef struct ComponentAtlas { Component component; ivec2 frameSize; ivec2 size; u32 index; } ComponentAtlas; void component_atlas_init(ComponentAtlas* self, ECS* ecs, const ivec2 frameSize, const ivec2 size, u32 index); void component_atlas_tick(ComponentAtlas* self, ECS* ecs); void component_atlas_uv_get(ComponentAtlas* self, Texture* texture, vec2 uvMin, vec2 uvMax); static const ComponentInfo COMPONENT_ATLAS_INFO = { .system = { .functions = { NULL, NULL, (ECSFunction)component_atlas_tick, NULL, NULL, } }, .type = COMPONENT_ATLAS, .size = sizeof(ComponentAtlas) };