#pragma once #include #include struct TextureData { std::vector data; //expected format RGBA8888 int width, height; }; struct TextureCoord { double x, y, w, h; int pixelX, pixelY, pixelW, pixelH; size_t layer; }; class TextureAtlas { GLuint texture; std::vector textureCoords; public: TextureAtlas(std::vector &textures); TextureAtlas(const TextureAtlas &) = delete; ~TextureAtlas(); inline GLuint GetRawTextureId() { return texture; } TextureCoord GetTexture(int id) { return textureCoords[id]; } };