// Copyright 2008 Dolphin Emulator Project // Licensed under GPLv2+ // Refer to the license.txt file included. #pragma once #include #include #include #include "Common/CommonTypes.h" class HiresTexture { public: using SOILPointer = std::unique_ptr; static void Init(); static void Update(); static void Shutdown(); static std::shared_ptr Search( const u8* texture, size_t texture_size, const u8* tlut, size_t tlut_size, u32 width, u32 height, int format, bool has_mipmaps ); static std::string GenBaseName( const u8* texture, size_t texture_size, const u8* tlut, size_t tlut_size, u32 width, u32 height, int format, bool has_mipmaps, bool dump = false ); ~HiresTexture(); struct Level { Level(); SOILPointer data; size_t data_size = 0; u32 width = 0; u32 height = 0; }; std::vector m_levels; private: static std::unique_ptr Load(const std::string& base_filename, u32 width, u32 height); static void Prefetch(); static std::string GetTextureDirectory(const std::string& game_id); HiresTexture() {} };