diff options
Diffstat (limited to 'CruUI/graph')
-rw-r--r-- | CruUI/graph/graph.cpp | 8 | ||||
-rw-r--r-- | CruUI/graph/graph.h | 11 |
2 files changed, 19 insertions, 0 deletions
diff --git a/CruUI/graph/graph.cpp b/CruUI/graph/graph.cpp index 00d5137d..94c7029e 100644 --- a/CruUI/graph/graph.cpp +++ b/CruUI/graph/graph.cpp @@ -213,5 +213,13 @@ namespace cru { d2d1_factory_->ReloadSystemMetrics() ); } + + ComPtr<ID2D1SolidColorBrush> CreateSolidBrush(const D2D1_COLOR_F& color) + { + const auto device_context = graph::GraphManager::GetInstance()->GetD2D1DeviceContext(); + ComPtr<ID2D1SolidColorBrush> solid_color_brush; + device_context->CreateSolidColorBrush(color, &solid_color_brush); + return solid_color_brush; + } } } diff --git a/CruUI/graph/graph.h b/CruUI/graph/graph.h index 990b51b3..fd062787 100644 --- a/CruUI/graph/graph.h +++ b/CruUI/graph/graph.h @@ -164,5 +164,16 @@ namespace cru { return graph_manager_->GetD2D1DeviceContext(); } + + Microsoft::WRL::ComPtr<ID2D1SolidColorBrush> CreateSolidBrush(const D2D1_COLOR_F& color); + + inline void WithTransform(ID2D1DeviceContext* device_context, const D2D1_MATRIX_3X2_F matrix, Action<ID2D1DeviceContext*>&& action) + { + D2D1_MATRIX_3X2_F old_transform; + device_context->GetTransform(&old_transform); + device_context->SetTransform(old_transform * matrix); + action(device_context); + device_context->SetTransform(old_transform); + } } } |