From f3a8fd608a9776ef0a5f547da918a32cf6074060 Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 23 May 2020 23:50:00 +0800 Subject: ... --- src/win/graph/direct/painter.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/win/graph/direct') 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 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; -- cgit v1.2.3