#pragma once #include "Nuake/Core/Core.h" #include "Nuake/Rendering/Textures/Texture.h" #include "Nuake/Rendering/Buffers/Framebuffer.h" class ThumbnailManager { private: std::unordered_map> m_Thumbnails; Ref m_Framebuffer; Ref m_ShadedFramebuffer; const Nuake::Vector2 m_ThumbnailSize = { 128, 128 }; const uint32_t MAX_THUMBNAIL_PER_FRAME = 1; uint32_t m_ThumbnailGeneratedThisFrame = 0; public: ThumbnailManager(); ~ThumbnailManager() = default; static ThumbnailManager& Get(); bool IsThumbnailLoaded(const std::string& path) const; Ref GetThumbnail(const std::string& path); void MarkThumbnailAsDirty(const std::string& path); Ref GenerateThumbnail(const std::string& path, Ref texture); void OnEndFrame(); };