aboutsummaryrefslogtreecommitdiff
path: root/include/cru/platform/graph_factory.hpp
blob: 312dc0eaf388e6074b296b9e3be123b6aeb4e1f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#pragma once
#include "cru/common/base.hpp"

#include "cru/common/ui_base.hpp"

#include <string>
#include <string_view>

namespace cru::platform {
struct SolidColorBrush;
struct GeometryBuilder;
struct FontDescriptor;
struct TextLayout;

struct GraphFactory : virtual Interface {
  virtual SolidColorBrush* CreateSolidColorBrush(const ui::Color& color) = 0;
  virtual GeometryBuilder* CreateGeometryBuilder() = 0;
  virtual FontDescriptor* CreateFontDescriptor(const std::wstring_view& font_family) = 0;
  virtual TextLayout* CreateTextLayout(std::shared_ptr<FontDescriptor> font, std::wstring text) = 0;
};
}  // namespace cru::platform