aboutsummaryrefslogtreecommitdiff
path: root/include/cru/win/graph/direct/font.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/cru/win/graph/direct/font.hpp')
-rw-r--r--include/cru/win/graph/direct/font.hpp35
1 files changed, 20 insertions, 15 deletions
diff --git a/include/cru/win/graph/direct/font.hpp b/include/cru/win/graph/direct/font.hpp
index 44fa7edd..d3376503 100644
--- a/include/cru/win/graph/direct/font.hpp
+++ b/include/cru/win/graph/direct/font.hpp
@@ -1,28 +1,33 @@
#pragma once
-#include "../win_pre_config.hpp"
+#include "com_resource.hpp"
+#include "direct_factory.hpp"
+#include "platform_id.hpp"
#include "cru/platform/graph/font.hpp"
#include <string_view>
-namespace cru::win::graph {
-struct IWinNativeFactory;
+namespace cru::platform::graph::win::direct {
-class WinFontDescriptor : public Object,
- public virtual platform::graph::IFontDescriptor {
+class DWriteFont : public Font, public IComResource<IDWriteTextFormat> {
public:
- explicit WinFontDescriptor(IWinNativeFactory* factory,
- const std::wstring_view& font_family,
- float font_size);
- WinFontDescriptor(const WinFontDescriptor& other) = delete;
- WinFontDescriptor(WinFontDescriptor&& other) = delete;
- WinFontDescriptor& operator=(const WinFontDescriptor& other) = delete;
- WinFontDescriptor& operator=(WinFontDescriptor&& other) = delete;
- ~WinFontDescriptor() override = default;
+ DWriteFont(IDirectFactory* factory, const std::wstring_view& font_family,
+ float font_size);
- IDWriteTextFormat* GetDWriteTextFormat() const { return text_format_.Get(); }
+ DWriteFont(const DWriteFont& other) = delete;
+ DWriteFont& operator=(const DWriteFont& other) = delete;
+
+ DWriteFont(DWriteFont&& other) = delete;
+ DWriteFont& operator=(DWriteFont&& other) = delete;
+
+ ~DWriteFont() override = default;
+
+ CRU_PLATFORMID_IMPLEMENT_DIRECT
+
+ public:
+ IDWriteTextFormat* GetComInterface() const override { return text_format_.Get(); }
private:
Microsoft::WRL::ComPtr<IDWriteTextFormat> text_format_;
};
-} // namespace cru::win::graph
+} // namespace cru::platform::graph::win::direct