27 void RegisterGenerator(AssetType type, ThumbnailGenerateFn generator);
28 void DeregisterGenerator(AssetType type, ThumbnailGenerateFn generator);
55 void CreateRequestedThumbnails();
58 uint16_t LoadDdsBufferToAtlas(std::string_view name, Grindstone::Containers::BufferSpan inputBuffer);
59 uint16_t LoadNamedAssetToAtlas(std::string_view name);
60 uint16_t LoadThumbnailByPathToAtlas(
const std::filesystem::path& path);
63 enum class IconStatus {
71 IconStatus status = IconStatus::Pending;
74 std::unordered_map<AssetType, ThumbnailGenerateFn> generators;
75 std::unordered_map<Grindstone::Uuid, IconData> iconsByUuid;
76 std::vector<std::pair<Grindstone::AssetType, Grindstone::Uuid>> requestedThumbnails;
81 std::vector<uint16_t> freeIndices;
89 uint16_t asset[
static_cast<size_t>(AssetType::Count)];
92 uint32_t thumbnailFreeCount = 0;
93 uint32_t thumbnailCapacity = 0;
94 uint32_t thumbnailPixelSize = 0;
95 uint32_t atlasPixelWidth = 0;
96 uint32_t atlasPixelHeight = 0;
97 uint32_t thumbnailsPerAtlasRow = 0;