Program Listing for File TextureManager.h¶
↰ Return to documentation for file (Source\Azura\RenderSystem\Inc\Generic\TextureManager.h
)
#pragma once
#include "Types.h"
#include "Memory/HeapMemoryBuffer.h"
#include "Memory/MonotonicAllocator.h"
#include "Containers/Vector.h"
#include "GenericTypes.h"
#include "Log/Log.h"
namespace Azura {
struct TextureRequirements;
class TextureManager
{
struct TextureEntry
{
TextureDesc m_desc;
U32 m_handle;
Containers::Vector<U8> m_data;
TextureEntry(Memory::MonotonicAllocator& allocator);
};
static U32 s_currentTextureId;
public:
explicit TextureManager(const TextureRequirements& requirements);
U32 Load(const String& path);
const TextureDesc* GetInfo(U32 handle) const;
const U8* GetData(U32 handle) const;
Log log_TextureManager;
private:
const U32 m_maxTextures;
Memory::HeapMemoryBuffer m_textureBuffer;
Memory::MonotonicAllocator m_textureAllocator;
Containers::Vector<TextureEntry> m_storedTextures;
};
} // namespace Azura