engine/dep/include/texconv/imagecontainer.h

28 lines
858 B
C++

#pragma once
#include <texconv/image.h>
class ImageContainer {
public:
bool load( const uf::stl::vector<Image>& images, int textureType, int mipmapFilter );
bool load( const uf::stl::vector<uf::stl::string>& filenames, int textureType, int mipmapFilter );
void unloadAll();
bool hasMipmaps() const { return images.size() > 1; }
bool hasSize(int size) const { return images.find(size) != images.end(); }
const Image& getByIndex(int index, bool ascending=true) const;
const Image& getBySize(int size) const { return images.at(size); }
int imageCount() const { return (int)images.size(); }
int width() const { return textureWidth; }
int height() const { return textureHeight; }
private:
int textureWidth = 0;
int textureHeight = 0;
uf::stl::unordered_map<int, Image> images;
uf::stl::vector<int> keys;
};