diff options
author | crupest <crupest@outlook.com> | 2021-08-22 22:19:59 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2021-08-22 22:19:59 +0800 |
commit | 100c2ae5cd7b815dc9accca0fa9ceaca2f5d1020 (patch) | |
tree | 35af05c94af8ff616e83f199cef971811ff1ecf8 /include/cru/osx | |
parent | 7fa6f61b1d7b253f749be73a4bfeee9a77cd2e88 (diff) | |
download | cru-100c2ae5cd7b815dc9accca0fa9ceaca2f5d1020.tar.gz cru-100c2ae5cd7b815dc9accca0fa9ceaca2f5d1020.tar.bz2 cru-100c2ae5cd7b815dc9accca0fa9ceaca2f5d1020.zip |
...
Diffstat (limited to 'include/cru/osx')
-rw-r--r-- | include/cru/osx/graphics/quartz/Brush.hpp | 7 | ||||
-rw-r--r-- | include/cru/osx/graphics/quartz/Factory.hpp | 19 |
2 files changed, 26 insertions, 0 deletions
diff --git a/include/cru/osx/graphics/quartz/Brush.hpp b/include/cru/osx/graphics/quartz/Brush.hpp index fa0ef18c..1b5fd7e4 100644 --- a/include/cru/osx/graphics/quartz/Brush.hpp +++ b/include/cru/osx/graphics/quartz/Brush.hpp @@ -6,6 +6,8 @@ #include <CoreGraphics/CoreGraphics.h> +#include <functional> + namespace cru::platform::graphics::osx::quartz { class QuartzBrush : public OsxQuartzResource, public virtual IBrush { public: @@ -14,6 +16,9 @@ class QuartzBrush : public OsxQuartzResource, public virtual IBrush { CRU_DELETE_COPY(QuartzBrush) CRU_DELETE_MOVE(QuartzBrush) ~QuartzBrush() override = default; + + public: + virtual void Select(CGContextRef context) = 0; }; class QuartzSolidColorBrush : public QuartzBrush, @@ -31,6 +36,8 @@ class QuartzSolidColorBrush : public QuartzBrush, CGColorRef GetCGColorRef() const { return cg_color_; } + void Select(CGContextRef context) override; + private: Color color_; CGColorRef cg_color_; diff --git a/include/cru/osx/graphics/quartz/Factory.hpp b/include/cru/osx/graphics/quartz/Factory.hpp index 6f70f09b..5346d039 100644 --- a/include/cru/osx/graphics/quartz/Factory.hpp +++ b/include/cru/osx/graphics/quartz/Factory.hpp @@ -1 +1,20 @@ #pragma once +#include "Resource.hpp" +#include "cru/common/Base.hpp" +#include "cru/platform/graphics/Factory.hpp" + +namespace cru::platform::graphics::osx::quartz { +class QuartzGraphicsFactory : public OsxQuartzResource, + public virtual IGraphFactory { + public: + QuartzGraphicsFactory() : OsxQuartzResource(this) {} + + CRU_DELETE_COPY(QuartzGraphicsFactory) + CRU_DELETE_MOVE(QuartzGraphicsFactory) + + ~QuartzGraphicsFactory() override = default; + + public: + std::unique_ptr<ISolidColorBrush> CreateSolidColorBrush() override; +}; +} // namespace cru::platform::graphics::osx::quartz |