#pragma once #include "Resource.hpp" #include "Brush.hpp" #include "Font.hpp" #include "Geometry.hpp" #include "TextLayout.hpp" #include #include namespace cru::platform::graph { // Entry point of the graph module. struct IGraphFactory : virtual INativeResource { virtual std::unique_ptr CreateSolidColorBrush() = 0; virtual std::unique_ptr CreateGeometryBuilder() = 0; virtual std::unique_ptr CreateFont(const std::string_view& font_family, float font_size) = 0; virtual std::unique_ptr CreateTextLayout( std::shared_ptr font, std::string text) = 0; }; } // namespace cru::platform::graph