aboutsummaryrefslogtreecommitdiff
path: root/src/win/graph
diff options
context:
space:
mode:
Diffstat (limited to 'src/win/graph')
-rw-r--r--src/win/graph/direct/painter.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/win/graph/direct/painter.cpp b/src/win/graph/direct/painter.cpp
index c5150ad4..df0075e0 100644
--- a/src/win/graph/direct/painter.cpp
+++ b/src/win/graph/direct/painter.cpp
@@ -71,6 +71,23 @@ void D2DPainter::DrawText(const Point& offset, ITextLayout* text_layout,
b->GetD2DBrushInterface());
}
+void D2DPainter::PushLayer(const Rect& bounds) {
+ CheckValidation();
+
+ Microsoft::WRL::ComPtr<ID2D1Layer> layer;
+ ThrowIfFailed(render_target_->CreateLayer(&layer));
+
+ render_target_->PushLayer(D2D1::LayerParameters(Convert(bounds)),
+ layer.Get());
+
+ layers_.push_back(std::move(layer));
+}
+
+void D2DPainter::PopLayer() {
+ render_target_->PopLayer();
+ layers_.pop_back();
+}
+
void D2DPainter::EndDraw() {
if (is_drawing_) {
is_drawing_ = false;