#pragma once #include "Base.h" #include namespace cru::platform::graphics::direct2d { class CRU_WIN_GRAPHICS_DIRECT_API WinImageFactory : public DirectGraphicsResource, public virtual IImageFactory { public: explicit WinImageFactory(DirectGraphicsFactory* graphics_factory); ~WinImageFactory() override; std::unique_ptr DecodeFromStream(io::Stream* stream) override; void EncodeToStream(IImage* image, io::Stream* stream, ImageFormat format, float quality) override; std::unique_ptr CreateBitmap(int width, int height) override; private: Microsoft::WRL::ComPtr wic_imaging_factory_; }; } // namespace cru::platform::graphics::direct2d