diff options
Diffstat (limited to 'include/cru/win/graph/direct/font.hpp')
-rw-r--r-- | include/cru/win/graph/direct/font.hpp | 35 |
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 |