diff --git a/src/CanvasComponents/BrushStrokeCanvasComponent.cpp b/src/CanvasComponents/BrushStrokeCanvasComponent.cpp index cfbddd8..4ede464 100644 --- a/src/CanvasComponents/BrushStrokeCanvasComponent.cpp +++ b/src/CanvasComponents/BrushStrokeCanvasComponent.cpp @@ -43,7 +43,6 @@ void BrushStrokeCanvasComponent::draw(SkCanvas* canvas, const DrawData& drawData canvas->drawPath(*brushPath, paint); else canvas->drawPath(*brushPathLOD[mipmapLevel - 1], paint); - canvas->restore(); } void BrushStrokeCanvasComponent::set_data_from(const CanvasComponent& other) { diff --git a/src/CanvasComponents/CanvasComponentContainer.cpp b/src/CanvasComponents/CanvasComponentContainer.cpp index 5809cf3..2ca5479 100644 --- a/src/CanvasComponents/CanvasComponentContainer.cpp +++ b/src/CanvasComponents/CanvasComponentContainer.cpp @@ -56,10 +56,12 @@ void CanvasComponentContainer::load_file(cereal::PortableBinaryInputArchive& a, } void CanvasComponentContainer::draw(SkCanvas* canvas, const DrawData& drawData) const { - canvas->save(); - canvas_do_transform(canvas, calculate_draw_transform(drawData)); - get_comp().draw(canvas, drawData); - canvas->restore(); + if(should_draw(drawData)) { + canvas->save(); + canvas_do_transform(canvas, calculate_draw_transform(drawData)); + get_comp().draw(canvas, drawData); + canvas->restore(); + } } void CanvasComponentContainer::set_owner_obj_info(const ObjInfoSharedPtr& ownerObjInfo) {