#pragma once #include #include #include "Core/Core.h" #include "Core/Singleton.h" class ImageBuffer : public Singleton { public: enum class IBType { Background, }; public: explicit ImageBuffer() noexcept = default; ~ImageBuffer() = default; ImageBuffer(const ImageBuffer&) = delete; ImageBuffer& operator=(const ImageBuffer&) = delete; void PushImage(IBType type, std::vector data, uint32 width, uint32 height, uint32 comp); private: void PushBackgroundImage(std::vector data, uint32 width, uint32 height, uint32 comp); private: struct Image { std::vector data; uint32 width; uint32 height; uint32 comp; }; CriticalSection cs_; std::queue background_; };