aboutsummaryrefslogtreecommitdiff
path: root/include/cru/platform/win/graph_manager.hpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2019-04-01 15:28:07 +0800
committercrupest <crupest@outlook.com>2019-04-01 15:28:07 +0800
commit3e89aa733587043645f5fda72596e4ff3cd21d2a (patch)
tree7daadddf1073f537bb580a0cdf77208cf26e6271 /include/cru/platform/win/graph_manager.hpp
parent8ca0873597eb05a2f120d3ea107660abcff4533c (diff)
downloadcru-3e89aa733587043645f5fda72596e4ff3cd21d2a.tar.gz
cru-3e89aa733587043645f5fda72596e4ff3cd21d2a.tar.bz2
cru-3e89aa733587043645f5fda72596e4ff3cd21d2a.zip
...
Diffstat (limited to 'include/cru/platform/win/graph_manager.hpp')
-rw-r--r--include/cru/platform/win/graph_manager.hpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/include/cru/platform/win/graph_manager.hpp b/include/cru/platform/win/graph_manager.hpp
new file mode 100644
index 00000000..f2e29c22
--- /dev/null
+++ b/include/cru/platform/win/graph_manager.hpp
@@ -0,0 +1,44 @@
+#pragma once
+#include "win_pre_config.hpp"
+
+#include "../basic_types.hpp"
+#include "cru/common/base.hpp"
+
+namespace cru::platform::win {
+class WindowRenderTarget;
+
+class GraphManager final : public Object {
+ public:
+ GraphManager();
+ GraphManager(const GraphManager& other) = delete;
+ GraphManager(GraphManager&& other) = delete;
+ GraphManager& operator=(const GraphManager& other) = delete;
+ GraphManager& operator=(GraphManager&& other) = delete;
+ ~GraphManager() override = default;
+
+ public:
+ ID2D1Factory1* GetD2D1Factory() const { return d2d1_factory_.Get(); }
+
+ ID2D1DeviceContext* GetD2D1DeviceContext() const {
+ return d2d1_device_context_.Get();
+ }
+
+ ID3D11Device* GetD3D11Device() const { return d3d11_device_.Get(); }
+
+ IDXGIFactory2* GetDxgiFactory() const { return dxgi_factory_.Get(); }
+
+ IDWriteFactory* GetDWriteFactory() const { return dwrite_factory_.Get(); }
+
+ IDWriteFontCollection* GetSystemFontCollection() const {
+ return dwrite_system_font_collection_.Get();
+ }
+
+ private:
+ Microsoft::WRL::ComPtr<ID3D11Device> d3d11_device_;
+ Microsoft::WRL::ComPtr<ID2D1Factory1> d2d1_factory_;
+ Microsoft::WRL::ComPtr<ID2D1DeviceContext> d2d1_device_context_;
+ Microsoft::WRL::ComPtr<IDXGIFactory2> dxgi_factory_;
+ Microsoft::WRL::ComPtr<IDWriteFactory> dwrite_factory_;
+ Microsoft::WRL::ComPtr<IDWriteFontCollection> dwrite_system_font_collection_;
+};
+} // namespace cru::platform::win