@@ -41,8 +41,8 @@ SkMatrix processTransform(std::optional<SkMatrix> &matrix,
4141}
4242
4343struct SaveLayerProps {
44- std::optional<SkCanvas::SaveLayerFlags> saveLayerFlags;
4544 std::optional<sk_sp<SkImageFilter>> backdropFilter;
45+ std::optional<SkCanvas::SaveLayerFlags> saveLayerFlags;
4646}
4747
4848class SaveLayerCmd : public Command {
@@ -53,10 +53,10 @@ class SaveLayerCmd : public Command {
5353 SaveLayerCmd (jsi::Runtime &runtime, const jsi::Object &object,
5454 Variables &variables)
5555 : Command(CommandType::SaveLayer) {
56- convertProperty (runtime, object, " saveLayerFlags" , props.saveLayerFlags ,
57- variables);
5856 convertProperty (runtime, object, " backdropFilter" , props.backdropFilter ,
5957 variables);
58+ convertProperty (runtime, object, " saveLayerFlags" , props.saveLayerFlags ,
59+ variables);
6060 }
6161
6262 void saveLayer (DrawingCtx *ctx) {
@@ -92,6 +92,8 @@ class SaveCTMCmd : public Command {
9292 convertProperty (runtime, object, " clip" , props.clip , variables);
9393 convertProperty (runtime, object, " invertClip" , props.invertClip , variables);
9494 convertProperty (runtime, object, " layer" , props.layer , variables);
95+ convertProperty (runtime, object, " backdropFilter" , props.backdropFilter ,
96+ variables);
9597 convertProperty (runtime, object, " saveLayerFlags" , props.saveLayerFlags ,
9698 variables);
9799 }
@@ -100,6 +102,7 @@ class SaveCTMCmd : public Command {
100102 auto clip = props.clip ;
101103 auto invertClip = props.invertClip ;
102104 auto layer = props.layer ;
105+ auto backdropFilter = props.backdropFilter ;
103106 auto saveLayerFlags = props.saveLayerFlags ;
104107 auto hasTransform = props.matrix .has_value () || props.transform .has_value ();
105108 auto hasClip = clip.has_value ();
@@ -112,9 +115,9 @@ class SaveCTMCmd : public Command {
112115 if (layer.has_value ()) {
113116 SkCanvas::SaveLayerRec layerRec;
114117 layerRec.fPaint = std::get_if<SkPaint>(layer.value ());
115- if (saveLayerFlags. has_value ()) {
116- layerRec.fSaveLayerFlags = saveLayerFlags.value ( );
117- }
118+ layerRec. fBackdropFilter = backdropFilter. value_or ( nullptr );
119+ layerRec.fSaveLayerFlags = saveLayerFlags.value_or ( 0 );
120+
118121 ctx->canvas ->saveLayer (layerRec);
119122 } else {
120123 ctx->canvas ->save ();
0 commit comments