Program Listing for File textureStorage.h
↰ Return to documentation for file (PrismEngine/src/textureStorage.h)
#pragma once
#include "utils.h"
#include "layersMacroses.h"
#include "pgcLayersObjsTemplate.h"
#include "textureLoader.h"
DECLARE_PGC_LAYER_INSTANCE(L1)
class TextureStorage : public L1_Object<TextureStorage> {
public:
void createImpl();
TextureId load(std::string texturePath);
std::shared_ptr<PGC::Texture> get(TextureId textureId);
bool remove(TextureId textureId);
void cleanupImpl();
private:
void updateDescriptors();
uint32_t getNextAvailableIndex(utils::Context* context);
std::vector<PGC::Texture> textures;
std::vector<uint32_t> freeTextureIndices;
PGC::L2::TextureLoader* textureLoader;
};
END_NAMESPACE_DECLARATION