1 /*
2  * Copyright (c) 2022-2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef RENDER_SERVICE_CLIENT_CORE_MODIFIER_RS_PROPERTY_MODIFIER_H
17 #define RENDER_SERVICE_CLIENT_CORE_MODIFIER_RS_PROPERTY_MODIFIER_H
18 
19 #include "modifier/rs_modifier.h"
20 
21 namespace OHOS {
22 namespace Rosen {
23 class RSC_EXPORT RSBoundsModifier : public RSGeometryModifier {
24 public:
25     explicit RSBoundsModifier(const std::shared_ptr<RSPropertyBase>& property);
26     virtual ~RSBoundsModifier() = default;
27 protected:
28     RSModifierType GetModifierType() const override;
29     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
30     void Apply(const std::shared_ptr<RSObjAbsGeometry>& geometry) override;
31 };
32 
33 class RSC_EXPORT RSBoundsSizeModifier : public RSGeometryModifier {
34 public:
35     explicit RSBoundsSizeModifier(const std::shared_ptr<RSPropertyBase>& property);
36     virtual ~RSBoundsSizeModifier() = default;
37 protected:
38     RSModifierType GetModifierType() const override;
39     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
40     void Apply(const std::shared_ptr<RSObjAbsGeometry>& geometry) override;
41 };
42 
43 class RSC_EXPORT RSBoundsPositionModifier : public RSGeometryModifier {
44 public:
45     explicit RSBoundsPositionModifier(const std::shared_ptr<RSPropertyBase>& property);
46     virtual ~RSBoundsPositionModifier() = default;
47 protected:
48     RSModifierType GetModifierType() const override;
49     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
50     void Apply(const std::shared_ptr<RSObjAbsGeometry>& geometry) override;
51 };
52 
53 class RSC_EXPORT RSFrameModifier : public RSGeometryModifier {
54 public:
55     explicit RSFrameModifier(const std::shared_ptr<RSPropertyBase>& property);
56     virtual ~RSFrameModifier() = default;
57 protected:
58     RSModifierType GetModifierType() const override;
59     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
60 };
61 
62 class RSC_EXPORT RSPositionZModifier : public RSGeometryModifier {
63 public:
64     explicit RSPositionZModifier(const std::shared_ptr<RSPropertyBase>& property);
65     virtual ~RSPositionZModifier() = default;
66 protected:
67     RSModifierType GetModifierType() const override;
68     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
69 };
70 
71 class RSC_EXPORT RSPositionZApplicableCamera3DModifier : public RSGeometryModifier {
72 public:
73     explicit RSPositionZApplicableCamera3DModifier(const std::shared_ptr<RSPropertyBase>& property);
74     virtual ~RSPositionZApplicableCamera3DModifier() = default;
75 protected:
76     RSModifierType GetModifierType() const override;
77     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
78 };
79 
80 class RSC_EXPORT RSSandBoxModifier : public RSGeometryModifier {
81 public:
82     explicit RSSandBoxModifier(const std::shared_ptr<RSPropertyBase>& property);
83     virtual ~RSSandBoxModifier() = default;
84 protected:
85     RSModifierType GetModifierType() const override;
86     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
87 };
88 
89 class RSC_EXPORT RSPivotModifier : public RSGeometryModifier {
90 public:
91     explicit RSPivotModifier(const std::shared_ptr<RSPropertyBase>& property);
92     virtual ~RSPivotModifier() = default;
93 protected:
94     RSModifierType GetModifierType() const override;
95     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
96     void Apply(const std::shared_ptr<RSObjAbsGeometry>& geometry) override;
97 };
98 
99 class RSC_EXPORT RSPivotZModifier : public RSGeometryModifier {
100 public:
101     explicit RSPivotZModifier(const std::shared_ptr<RSPropertyBase>& property);
102     virtual ~RSPivotZModifier() = default;
103 protected:
104     RSModifierType GetModifierType() const override;
105     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
106     void Apply(const std::shared_ptr<RSObjAbsGeometry>& geometry) override;
107 };
108 
109 class RSC_EXPORT RSQuaternionModifier : public RSGeometryModifier {
110 public:
111     explicit RSQuaternionModifier(const std::shared_ptr<RSPropertyBase>& property);
112     virtual ~RSQuaternionModifier() = default;
113 protected:
114     RSModifierType GetModifierType() const override;
115     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
116     void Apply(const std::shared_ptr<RSObjAbsGeometry>& geometry) override;
117 };
118 
119 class RSC_EXPORT RSRotationModifier : public RSGeometryModifier {
120 public:
121     explicit RSRotationModifier(const std::shared_ptr<RSPropertyBase>& property);
122     virtual ~RSRotationModifier() = default;
123 protected:
124     RSModifierType GetModifierType() const override;
125     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
126     void Apply(const std::shared_ptr<RSObjAbsGeometry>& geometry) override;
127 };
128 
129 class RSC_EXPORT RSRotationXModifier : public RSGeometryModifier {
130 public:
131     explicit RSRotationXModifier(const std::shared_ptr<RSPropertyBase>& property);
132     virtual ~RSRotationXModifier() = default;
133 protected:
134     RSModifierType GetModifierType() const override;
135     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
136     void Apply(const std::shared_ptr<RSObjAbsGeometry>& geometry) override;
137 };
138 
139 class RSC_EXPORT RSRotationYModifier : public RSGeometryModifier {
140 public:
141     explicit RSRotationYModifier(const std::shared_ptr<RSPropertyBase>& property);
142     virtual ~RSRotationYModifier() = default;
143 protected:
144     RSModifierType GetModifierType() const override;
145     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
146     void Apply(const std::shared_ptr<RSObjAbsGeometry>& geometry) override;
147 };
148 
149 class RSC_EXPORT RSCameraDistanceModifier : public RSGeometryModifier {
150 public:
151     explicit RSCameraDistanceModifier(const std::shared_ptr<RSPropertyBase>& property);
152     virtual ~RSCameraDistanceModifier() = default;
153 protected:
154     RSModifierType GetModifierType() const override;
155     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
156     void Apply(const std::shared_ptr<RSObjAbsGeometry>& geometry) override;
157 };
158 
159 class RSC_EXPORT RSScaleModifier : public RSGeometryModifier {
160 public:
161     explicit RSScaleModifier(const std::shared_ptr<RSPropertyBase>& property);
162     virtual ~RSScaleModifier() = default;
163 protected:
164     RSModifierType GetModifierType() const override;
165     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
166     void Apply(const std::shared_ptr<RSObjAbsGeometry>& geometry) override;
167 };
168 
169 class RSC_EXPORT RSSkewModifier : public RSGeometryModifier {
170 public:
171     explicit RSSkewModifier(const std::shared_ptr<RSPropertyBase>& property);
172     virtual ~RSSkewModifier() = default;
173 protected:
174     RSModifierType GetModifierType() const override;
175     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
176     void Apply(const std::shared_ptr<RSObjAbsGeometry>& geometry) override;
177 };
178 
179 class RSC_EXPORT RSPerspModifier : public RSGeometryModifier {
180 public:
181     explicit RSPerspModifier(const std::shared_ptr<RSPropertyBase>& property);
182     virtual ~RSPerspModifier() = default;
183 protected:
184     RSModifierType GetModifierType() const override;
185     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
186     void Apply(const std::shared_ptr<RSObjAbsGeometry>& geometry) override;
187 };
188 
189 class RSC_EXPORT RSTranslateModifier : public RSGeometryModifier {
190 public:
191     explicit RSTranslateModifier(const std::shared_ptr<RSPropertyBase>& property);
192     virtual ~RSTranslateModifier() = default;
193 protected:
194     RSModifierType GetModifierType() const override;
195     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
196     void Apply(const std::shared_ptr<RSObjAbsGeometry>& geometry) override;
197 };
198 
199 class RSC_EXPORT RSTranslateZModifier : public RSGeometryModifier {
200 public:
201     explicit RSTranslateZModifier(const std::shared_ptr<RSPropertyBase>& property);
202     virtual ~RSTranslateZModifier() = default;
203 protected:
204     RSModifierType GetModifierType() const override;
205     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
206     void Apply(const std::shared_ptr<RSObjAbsGeometry>& geometry) override;
207 };
208 
209 class RSC_EXPORT RSCornerRadiusModifier : public RSAppearanceModifier {
210 public:
211     explicit RSCornerRadiusModifier(const std::shared_ptr<RSPropertyBase>& property);
212     virtual ~RSCornerRadiusModifier() = default;
213 protected:
214     RSModifierType GetModifierType() const override;
215     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
216 };
217 
218 class RSC_EXPORT RSAlphaModifier : public RSAppearanceModifier {
219 public:
220     explicit RSAlphaModifier(const std::shared_ptr<RSPropertyBase>& property);
221     virtual ~RSAlphaModifier() = default;
222 protected:
223     RSModifierType GetModifierType() const override;
224     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
225 };
226 
227 class RSC_EXPORT RSAlphaOffscreenModifier : public RSAppearanceModifier {
228 public:
229     explicit RSAlphaOffscreenModifier(const std::shared_ptr<RSPropertyBase>& property);
230     virtual ~RSAlphaOffscreenModifier() = default;
231 protected:
232     RSModifierType GetModifierType() const override;
233     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
234 };
235 
236 class RS_EXPORT RSEnvForegroundColorModifier : public RSForegroundModifier {
237 public:
238     explicit RSEnvForegroundColorModifier(const std::shared_ptr<RSPropertyBase>& property);
239     virtual ~RSEnvForegroundColorModifier() = default;
240 
241 protected:
242     RSModifierType GetModifierType() const override;
243     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
244 };
245 
246 class RS_EXPORT RSEnvForegroundColorStrategyModifier : public RSForegroundModifier {
247 public:
248     explicit RSEnvForegroundColorStrategyModifier(const std::shared_ptr<RSPropertyBase>& property);
249     virtual ~RSEnvForegroundColorStrategyModifier() = default;
250 
251 protected:
252     RSModifierType GetModifierType() const override;
253     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
254 };
255 
256 class RSC_EXPORT RSForegroundColorModifier : public RSForegroundModifier {
257 public:
258     explicit RSForegroundColorModifier(const std::shared_ptr<RSPropertyBase>& property);
259     virtual ~RSForegroundColorModifier() = default;
260 protected:
261     RSModifierType GetModifierType() const override;
262     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
263 };
264 
265 class RSC_EXPORT RSUseShadowBatchingModifier : public RSBackgroundModifier {
266 public:
267     explicit RSUseShadowBatchingModifier(const std::shared_ptr<RSPropertyBase>& property);
268     virtual ~RSUseShadowBatchingModifier() = default;
269 protected:
270     RSModifierType GetModifierType() const override;
271     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
272 };
273 
274 class RSC_EXPORT RSBackgroundColorModifier : public RSBackgroundModifier {
275 public:
276     explicit RSBackgroundColorModifier(const std::shared_ptr<RSPropertyBase>& property);
277     virtual ~RSBackgroundColorModifier() = default;
278 protected:
279     RSModifierType GetModifierType() const override;
280     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
281 };
282 
283 class RSC_EXPORT RSBackgroundShaderModifier : public RSBackgroundModifier {
284 public:
285     explicit RSBackgroundShaderModifier(const std::shared_ptr<RSPropertyBase>& property);
286     virtual ~RSBackgroundShaderModifier() = default;
287 protected:
288     RSModifierType GetModifierType() const override;
289     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
290 };
291 
292 class RSC_EXPORT RSBgImageModifier : public RSBackgroundModifier {
293 public:
294     explicit RSBgImageModifier(const std::shared_ptr<RSPropertyBase>& property);
295     virtual ~RSBgImageModifier() = default;
296 protected:
297     RSModifierType GetModifierType() const override;
298     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
299 };
300 
301 class RSC_EXPORT RSBgImageInnerRectModifier : public RSBackgroundModifier {
302 public:
303     explicit RSBgImageInnerRectModifier(const std::shared_ptr<RSPropertyBase>& property);
304     virtual ~RSBgImageInnerRectModifier() = default;
305 protected:
306     RSModifierType GetModifierType() const override;
307     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
308 };
309 
310 class RSC_EXPORT RSBgImageWidthModifier : public RSBackgroundModifier {
311 public:
312     explicit RSBgImageWidthModifier(const std::shared_ptr<RSPropertyBase>& property);
313     virtual ~RSBgImageWidthModifier() = default;
314 protected:
315     RSModifierType GetModifierType() const override;
316     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
317 };
318 
319 class RSC_EXPORT RSBgImageHeightModifier : public RSBackgroundModifier {
320 public:
321     explicit RSBgImageHeightModifier(const std::shared_ptr<RSPropertyBase>& property);
322     virtual ~RSBgImageHeightModifier() = default;
323 protected:
324     RSModifierType GetModifierType() const override;
325     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
326 };
327 
328 class RSC_EXPORT RSBgImagePositionXModifier : public RSBackgroundModifier {
329 public:
330     explicit RSBgImagePositionXModifier(const std::shared_ptr<RSPropertyBase>& property);
331     virtual ~RSBgImagePositionXModifier() = default;
332 protected:
333     RSModifierType GetModifierType() const override;
334     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
335 };
336 
337 class RSC_EXPORT RSBgImagePositionYModifier : public RSBackgroundModifier {
338 public:
339     explicit RSBgImagePositionYModifier(const std::shared_ptr<RSPropertyBase>& property);
340     virtual ~RSBgImagePositionYModifier() = default;
341 protected:
342     RSModifierType GetModifierType() const override;
343     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
344 };
345 
346 class RSC_EXPORT RSBorderColorModifier : public RSForegroundModifier {
347 public:
348     explicit RSBorderColorModifier(const std::shared_ptr<RSPropertyBase>& property);
349     virtual ~RSBorderColorModifier() = default;
350 protected:
351     RSModifierType GetModifierType() const override;
352     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
353 };
354 
355 class RSC_EXPORT RSBorderWidthModifier : public RSForegroundModifier {
356 public:
357     explicit RSBorderWidthModifier(const std::shared_ptr<RSPropertyBase>& property);
358     virtual ~RSBorderWidthModifier() = default;
359 protected:
360     RSModifierType GetModifierType() const override;
361     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
362 };
363 
364 class RSC_EXPORT RSBorderStyleModifier : public RSForegroundModifier {
365 public:
366     explicit RSBorderStyleModifier(const std::shared_ptr<RSPropertyBase>& property);
367     virtual ~RSBorderStyleModifier() = default;
368 protected:
369     RSModifierType GetModifierType() const override;
370     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
371 };
372 
373 class RSC_EXPORT RSBorderDashWidthModifier : public RSForegroundModifier {
374 public:
375     explicit RSBorderDashWidthModifier(const std::shared_ptr<RSPropertyBase>& property);
376     virtual ~RSBorderDashWidthModifier() = default;
377 protected:
378     RSModifierType GetModifierType() const override;
379     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
380 };
381 
382 class RSC_EXPORT RSBorderDashGapModifier : public RSForegroundModifier {
383 public:
384     explicit RSBorderDashGapModifier(const std::shared_ptr<RSPropertyBase>& property);
385     virtual ~RSBorderDashGapModifier() = default;
386 protected:
387     RSModifierType GetModifierType() const override;
388     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
389 };
390 
391 class RSC_EXPORT RSOutlineColorModifier : public RSForegroundModifier {
392 public:
393     explicit RSOutlineColorModifier(const std::shared_ptr<RSPropertyBase>& property);
394     virtual ~RSOutlineColorModifier() = default;
395 protected:
396     RSModifierType GetModifierType() const override;
397     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
398 };
399 
400 class RSC_EXPORT RSOutlineWidthModifier : public RSForegroundModifier {
401 public:
402     explicit RSOutlineWidthModifier(const std::shared_ptr<RSPropertyBase>& property);
403     virtual ~RSOutlineWidthModifier() = default;
404 protected:
405     RSModifierType GetModifierType() const override;
406     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
407 };
408 
409 class RSC_EXPORT RSOutlineDashWidthModifier : public RSForegroundModifier {
410 public:
411     explicit RSOutlineDashWidthModifier(const std::shared_ptr<RSPropertyBase>& property);
412     virtual ~RSOutlineDashWidthModifier() = default;
413 protected:
414     RSModifierType GetModifierType() const override;
415     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
416 };
417 
418 class RSC_EXPORT RSOutlineDashGapModifier : public RSForegroundModifier {
419 public:
420     explicit RSOutlineDashGapModifier(const std::shared_ptr<RSPropertyBase>& property);
421     virtual ~RSOutlineDashGapModifier() = default;
422 protected:
423     RSModifierType GetModifierType() const override;
424     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
425 };
426 
427 class RSC_EXPORT RSOutlineStyleModifier : public RSForegroundModifier {
428 public:
429     explicit RSOutlineStyleModifier(const std::shared_ptr<RSPropertyBase>& property);
430     virtual ~RSOutlineStyleModifier() = default;
431 protected:
432     RSModifierType GetModifierType() const override;
433     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
434 };
435 
436 class RSC_EXPORT RSOutlineRadiusModifier : public RSForegroundModifier {
437 public:
438     explicit RSOutlineRadiusModifier(const std::shared_ptr<RSPropertyBase>& property);
439     virtual ~RSOutlineRadiusModifier() = default;
440 protected:
441     RSModifierType GetModifierType() const override;
442     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
443 };
444 
445 class RSC_EXPORT RSForegroundEffectRadiusModifier : public RSForegroundModifier {
446 public:
447     explicit RSForegroundEffectRadiusModifier(const std::shared_ptr<RSPropertyBase>& property);
448     virtual ~RSForegroundEffectRadiusModifier() = default;
449 protected:
450     RSModifierType GetModifierType() const override;
451     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
452 };
453 
454 class RSC_EXPORT RSFilterModifier : public RSForegroundModifier {
455 public:
456     explicit RSFilterModifier(const std::shared_ptr<RSPropertyBase>& property);
457     virtual ~RSFilterModifier() = default;
458 protected:
459     RSModifierType GetModifierType() const override;
460     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
461 };
462 
463 class RSC_EXPORT RSBackgroundBlurRadiusModifier : public RSBackgroundModifier {
464 public:
465     explicit RSBackgroundBlurRadiusModifier(const std::shared_ptr<RSPropertyBase>& property);
466     virtual ~RSBackgroundBlurRadiusModifier() = default;
467 protected:
468     RSModifierType GetModifierType() const override;
469     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
470 };
471 
472 class RSC_EXPORT RSBackgroundBlurSaturationModifier : public RSBackgroundModifier {
473 public:
474     explicit RSBackgroundBlurSaturationModifier(const std::shared_ptr<RSPropertyBase>& property);
475     virtual ~RSBackgroundBlurSaturationModifier() = default;
476 protected:
477     RSModifierType GetModifierType() const override;
478     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
479 };
480 
481 class RSC_EXPORT RSBackgroundBlurBrightnessModifier : public RSBackgroundModifier {
482 public:
483     explicit RSBackgroundBlurBrightnessModifier(const std::shared_ptr<RSPropertyBase>& property);
484     virtual ~RSBackgroundBlurBrightnessModifier() = default;
485 protected:
486     RSModifierType GetModifierType() const override;
487     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
488 };
489 
490 class RSC_EXPORT RSBackgroundBlurMaskColorModifier : public RSBackgroundModifier {
491 public:
492     explicit RSBackgroundBlurMaskColorModifier(const std::shared_ptr<RSPropertyBase>& property);
493     virtual ~RSBackgroundBlurMaskColorModifier() = default;
494 protected:
495     RSModifierType GetModifierType() const override;
496     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
497 };
498 
499 class RSC_EXPORT RSBackgroundBlurColorModeModifier : public RSBackgroundModifier {
500 public:
501     explicit RSBackgroundBlurColorModeModifier(const std::shared_ptr<RSPropertyBase>& property);
502     virtual ~RSBackgroundBlurColorModeModifier() = default;
503 protected:
504     RSModifierType GetModifierType() const override;
505     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
506 };
507 
508 class RSC_EXPORT RSBackgroundBlurRadiusXModifier : public RSBackgroundModifier {
509 public:
510     explicit RSBackgroundBlurRadiusXModifier(const std::shared_ptr<RSPropertyBase>& property);
511     virtual ~RSBackgroundBlurRadiusXModifier() = default;
512 protected:
513     RSModifierType GetModifierType() const override;
514     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
515 };
516 
517 class RSC_EXPORT RSBackgroundBlurRadiusYModifier : public RSBackgroundModifier {
518 public:
519     explicit RSBackgroundBlurRadiusYModifier(const std::shared_ptr<RSPropertyBase>& property);
520     virtual ~RSBackgroundBlurRadiusYModifier() = default;
521 protected:
522     RSModifierType GetModifierType() const override;
523     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
524 };
525 
526 class RSC_EXPORT RSForegroundBlurRadiusModifier : public RSForegroundModifier {
527 public:
528     explicit RSForegroundBlurRadiusModifier(const std::shared_ptr<RSPropertyBase>& property);
529     virtual ~RSForegroundBlurRadiusModifier() = default;
530 protected:
531     RSModifierType GetModifierType() const override;
532     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
533 };
534 
535 class RSC_EXPORT RSForegroundBlurSaturationModifier : public RSForegroundModifier {
536 public:
537     explicit RSForegroundBlurSaturationModifier(const std::shared_ptr<RSPropertyBase>& property);
538     virtual ~RSForegroundBlurSaturationModifier() = default;
539 protected:
540     RSModifierType GetModifierType() const override;
541     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
542 };
543 
544 class RSC_EXPORT RSForegroundBlurBrightnessModifier : public RSForegroundModifier {
545 public:
546     explicit RSForegroundBlurBrightnessModifier(const std::shared_ptr<RSPropertyBase>& property);
547     virtual ~RSForegroundBlurBrightnessModifier() = default;
548 protected:
549     RSModifierType GetModifierType() const override;
550     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
551 };
552 
553 class RSC_EXPORT RSForegroundBlurMaskColorModifier : public RSForegroundModifier {
554 public:
555     explicit RSForegroundBlurMaskColorModifier(const std::shared_ptr<RSPropertyBase>& property);
556     virtual ~RSForegroundBlurMaskColorModifier() = default;
557 protected:
558     RSModifierType GetModifierType() const override;
559     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
560 };
561 
562 class RSC_EXPORT RSForegroundBlurColorModeModifier : public RSForegroundModifier {
563  public:
564     explicit RSForegroundBlurColorModeModifier(const std::shared_ptr<RSPropertyBase>& property);
565     virtual ~RSForegroundBlurColorModeModifier() = default;
566 protected:
567     RSModifierType GetModifierType() const override;
568     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
569 };
570 
571 class RSC_EXPORT RSForegroundBlurRadiusXModifier : public RSForegroundModifier {
572 public:
573     explicit RSForegroundBlurRadiusXModifier(const std::shared_ptr<RSPropertyBase>& property);
574     virtual ~RSForegroundBlurRadiusXModifier() = default;
575 protected:
576     RSModifierType GetModifierType() const override;
577     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
578 };
579 
580 class RSC_EXPORT RSForegroundBlurRadiusYModifier : public RSForegroundModifier {
581 public:
582     explicit RSForegroundBlurRadiusYModifier(const std::shared_ptr<RSPropertyBase>& property);
583     virtual ~RSForegroundBlurRadiusYModifier() = default;
584 protected:
585     RSModifierType GetModifierType() const override;
586     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
587 };
588 
589 class RSC_EXPORT RSLightUpEffectModifier : public RSForegroundModifier {
590 public:
591     explicit RSLightUpEffectModifier(const std::shared_ptr<RSPropertyBase>& property);
592     virtual ~RSLightUpEffectModifier() = default;
593 protected:
594     RSModifierType GetModifierType() const override;
595     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
596 };
597 
598 class RSC_EXPORT RSDynamicLightUpRateModifier : public RSForegroundModifier {
599 public:
600     explicit RSDynamicLightUpRateModifier(const std::shared_ptr<RSPropertyBase>& property);
601     virtual ~RSDynamicLightUpRateModifier() = default;
602 protected:
603     RSModifierType GetModifierType() const override;
604     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
605 };
606 
607 class RSC_EXPORT RSDynamicLightUpDegreeModifier : public RSForegroundModifier {
608 public:
609     explicit RSDynamicLightUpDegreeModifier(const std::shared_ptr<RSPropertyBase>& property);
610     virtual ~RSDynamicLightUpDegreeModifier() = default;
611 protected:
612     RSModifierType GetModifierType() const override;
613     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
614 };
615 
616 class RSC_EXPORT RSWaterRippleParamsModifier : public RSBackgroundModifier {
617 public:
618     explicit RSWaterRippleParamsModifier(const std::shared_ptr<RSPropertyBase>& property);
619     virtual ~RSWaterRippleParamsModifier() = default;
620 protected:
621     RSModifierType GetModifierType() const override;
622     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
623 };
624 
625 class RSC_EXPORT RSWaterRippleProgressModifier : public RSBackgroundModifier {
626 public:
627     explicit RSWaterRippleProgressModifier(const std::shared_ptr<RSPropertyBase>& property);
628     virtual ~RSWaterRippleProgressModifier() = default;
629 protected:
630     RSModifierType GetModifierType() const override;
631     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
632 };
633 
634 class RSC_EXPORT RSFlyOutParamsModifier : public RSForegroundModifier {
635 public:
636     explicit RSFlyOutParamsModifier(const std::shared_ptr<RSPropertyBase>& property);
637     virtual ~RSFlyOutParamsModifier() = default;
638 protected:
639     RSModifierType GetModifierType() const override;
640     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
641 };
642 
643 class RSC_EXPORT RSFlyOutDegreeModifier : public RSForegroundModifier {
644 public:
645     explicit RSFlyOutDegreeModifier(const std::shared_ptr<RSPropertyBase>& property);
646     virtual ~RSFlyOutDegreeModifier() = default;
647 protected:
648     RSModifierType GetModifierType() const override;
649     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
650 };
651 
652 class RSC_EXPORT RSDistortionKModifier : public RSForegroundModifier {
653 public:
654     explicit RSDistortionKModifier(const std::shared_ptr<RSPropertyBase>& property);
655     virtual ~RSDistortionKModifier() = default;
656 protected:
657     RSModifierType GetModifierType() const override;
658     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
659 };
660 
661 class RSC_EXPORT RSFgBrightnessRatesModifier : public RSForegroundModifier {
662 public:
663     explicit RSFgBrightnessRatesModifier(const std::shared_ptr<RSPropertyBase>& property);
664     virtual ~RSFgBrightnessRatesModifier() = default;
665 protected:
666     RSModifierType GetModifierType() const override;
667     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
668 };
669 
670 class RSC_EXPORT RSFgBrightnessSaturationModifier : public RSForegroundModifier {
671 public:
672     explicit RSFgBrightnessSaturationModifier(const std::shared_ptr<RSPropertyBase>& property);
673     virtual ~RSFgBrightnessSaturationModifier() = default;
674 protected:
675     RSModifierType GetModifierType() const override;
676     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
677 };
678 
679 class RSC_EXPORT RSFgBrightnessPosCoeffModifier : public RSForegroundModifier {
680 public:
681     explicit RSFgBrightnessPosCoeffModifier(const std::shared_ptr<RSPropertyBase>& property);
682     virtual ~RSFgBrightnessPosCoeffModifier() = default;
683 protected:
684     RSModifierType GetModifierType() const override;
685     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
686 };
687 
688 class RSC_EXPORT RSFgBrightnessNegCoeffModifier : public RSForegroundModifier {
689 public:
690     explicit RSFgBrightnessNegCoeffModifier(const std::shared_ptr<RSPropertyBase>& property);
691     virtual ~RSFgBrightnessNegCoeffModifier() = default;
692 protected:
693     RSModifierType GetModifierType() const override;
694     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
695 };
696 
697 class RSC_EXPORT RSFgBrightnessFractModifier : public RSForegroundModifier {
698 public:
699     explicit RSFgBrightnessFractModifier(const std::shared_ptr<RSPropertyBase>& property);
700     virtual ~RSFgBrightnessFractModifier() = default;
701 protected:
702     RSModifierType GetModifierType() const override;
703     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
704 };
705 
706 class RSC_EXPORT RSBgBrightnessRatesModifier : public RSBackgroundModifier {
707 public:
708     explicit RSBgBrightnessRatesModifier(const std::shared_ptr<RSPropertyBase>& property);
709     virtual ~RSBgBrightnessRatesModifier() = default;
710 protected:
711     RSModifierType GetModifierType() const override;
712     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
713 };
714 
715 class RSC_EXPORT RSBgBrightnessSaturationModifier : public RSBackgroundModifier {
716 public:
717     explicit RSBgBrightnessSaturationModifier(const std::shared_ptr<RSPropertyBase>& property);
718     virtual ~RSBgBrightnessSaturationModifier() = default;
719 protected:
720     RSModifierType GetModifierType() const override;
721     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
722 };
723 
724 class RSC_EXPORT RSBgBrightnessPosCoeffModifier : public RSBackgroundModifier {
725 public:
726     explicit RSBgBrightnessPosCoeffModifier(const std::shared_ptr<RSPropertyBase>& property);
727     virtual ~RSBgBrightnessPosCoeffModifier() = default;
728 protected:
729     RSModifierType GetModifierType() const override;
730     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
731 };
732 
733 class RSC_EXPORT RSBgBrightnessNegCoeffModifier : public RSBackgroundModifier {
734 public:
735     explicit RSBgBrightnessNegCoeffModifier(const std::shared_ptr<RSPropertyBase>& property);
736     virtual ~RSBgBrightnessNegCoeffModifier() = default;
737 protected:
738     RSModifierType GetModifierType() const override;
739     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
740 };
741 
742 class RSC_EXPORT RSBgBrightnessFractModifier : public RSBackgroundModifier {
743 public:
744     explicit RSBgBrightnessFractModifier(const std::shared_ptr<RSPropertyBase>& property);
745     virtual ~RSBgBrightnessFractModifier() = default;
746 protected:
747     RSModifierType GetModifierType() const override;
748     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
749 };
750 
751 class RSC_EXPORT RSDynamicDimDegreeModifier : public RSForegroundModifier {
752 public:
753     explicit RSDynamicDimDegreeModifier(const std::shared_ptr<RSPropertyBase>& property);
754     virtual ~RSDynamicDimDegreeModifier() = default;
755 protected:
756     RSModifierType GetModifierType() const override;
757     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
758 };
759 
760 class RSC_EXPORT RSEmitterUpdaterModifier : public RSForegroundModifier {
761 public:
762     explicit RSEmitterUpdaterModifier(const std::shared_ptr<RSPropertyBase>& property);
763     virtual ~RSEmitterUpdaterModifier() = default;
764 protected:
765     RSModifierType GetModifierType() const override;
766     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
767 };
768 
769 class RSC_EXPORT RSParticleNoiseFieldsModifier : public RSForegroundModifier {
770 public:
771     explicit RSParticleNoiseFieldsModifier(const std::shared_ptr<RSPropertyBase>& property);
772     virtual ~RSParticleNoiseFieldsModifier() = default;
773 protected:
774     RSModifierType GetModifierType() const override;
775     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
776 };
777 
778 class RSC_EXPORT RSLinearGradientBlurParaModifier : public RSForegroundModifier {
779 public:
780     explicit RSLinearGradientBlurParaModifier(const std::shared_ptr<RSPropertyBase>& property);
781     virtual ~RSLinearGradientBlurParaModifier() = default;
782 protected:
783     RSModifierType GetModifierType() const override;
784     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
785 };
786 
787 class RSC_EXPORT RSMotionBlurParaModifier : public RSForegroundModifier {
788 public:
789     explicit RSMotionBlurParaModifier(const std::shared_ptr<RSPropertyBase>& property);
790     virtual ~RSMotionBlurParaModifier() = default;
791 protected:
792     RSModifierType GetModifierType() const override;
793     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
794 };
795 
796 class RSC_EXPORT RSMagnifierParamsModifier : public RSForegroundModifier {
797 public:
798     explicit RSMagnifierParamsModifier(const std::shared_ptr<RSPropertyBase>& property);
799     virtual ~RSMagnifierParamsModifier() = default;
800 protected:
801     RSModifierType GetModifierType() const override;
802     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
803 };
804 
805 class RSC_EXPORT RSBackgroundFilterModifier : public RSBackgroundModifier {
806 public:
807     explicit RSBackgroundFilterModifier(const std::shared_ptr<RSPropertyBase>& property);
808     virtual ~RSBackgroundFilterModifier() = default;
809 protected:
810     RSModifierType GetModifierType() const override;
811     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
812 };
813 
814 class RSC_EXPORT RSFrameGravityModifier : public RSAppearanceModifier {
815 public:
816     explicit RSFrameGravityModifier(const std::shared_ptr<RSPropertyBase>& property);
817     virtual ~RSFrameGravityModifier() = default;
818 protected:
819     RSModifierType GetModifierType() const override;
820     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
821 };
822 
823 class RSC_EXPORT RSClipRRectModifier : public RSAppearanceModifier {
824 public:
825     explicit RSClipRRectModifier(const std::shared_ptr<RSPropertyBase>& property);
826     virtual ~RSClipRRectModifier() = default;
827 protected:
828     RSModifierType GetModifierType() const override;
829     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
830 };
831 
832 class RSC_EXPORT RSClipBoundsModifier : public RSAppearanceModifier {
833 public:
834     explicit RSClipBoundsModifier(const std::shared_ptr<RSPropertyBase>& property);
835     virtual ~RSClipBoundsModifier() = default;
836 protected:
837     RSModifierType GetModifierType() const override;
838     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
839 };
840 
841 class RSC_EXPORT RSClipToBoundsModifier : public RSAppearanceModifier {
842 public:
843     explicit RSClipToBoundsModifier(const std::shared_ptr<RSPropertyBase>& property);
844     virtual ~RSClipToBoundsModifier() = default;
845 protected:
846     RSModifierType GetModifierType() const override;
847     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
848 };
849 
850 class RSC_EXPORT RSClipToFrameModifier : public RSAppearanceModifier {
851 public:
852     explicit RSClipToFrameModifier(const std::shared_ptr<RSPropertyBase>& property);
853     virtual ~RSClipToFrameModifier() = default;
854 protected:
855     RSModifierType GetModifierType() const override;
856     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
857 };
858 
859 class RS_EXPORT RSCustomClipToFrameModifier : public RSForegroundModifier {
860 public:
861     explicit RSCustomClipToFrameModifier(const std::shared_ptr<RSPropertyBase>& property);
862     virtual ~RSCustomClipToFrameModifier() = default;
863 
864 protected:
865     RSModifierType GetModifierType() const override;
866     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
867 };
868 
869 class RSC_EXPORT RSVisibleModifier : public RSAppearanceModifier {
870 public:
871     explicit RSVisibleModifier(const std::shared_ptr<RSPropertyBase>& property);
872     virtual ~RSVisibleModifier() = default;
873 protected:
874     RSModifierType GetModifierType() const override;
875     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
876 };
877 
878 class RSC_EXPORT RSSpherizeModifier : public RSAppearanceModifier {
879 public:
880     explicit RSSpherizeModifier(const std::shared_ptr<RSPropertyBase>& property);
881     virtual ~RSSpherizeModifier() = default;
882 protected:
883     RSModifierType GetModifierType() const override;
884     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
885 };
886 
887 class RSC_EXPORT RSAttractionFractionModifier : public RSAppearanceModifier {
888 public:
889     explicit RSAttractionFractionModifier(const std::shared_ptr<RSPropertyBase>& property);
890     virtual ~RSAttractionFractionModifier() = default;
891 protected:
892     RSModifierType GetModifierType() const override;
893     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
894 };
895 
896 class RSC_EXPORT RSAttractionDstPointModifier : public RSAppearanceModifier {
897 public:
898     explicit RSAttractionDstPointModifier(const std::shared_ptr<RSPropertyBase>& property);
899     virtual ~RSAttractionDstPointModifier() = default;
900 protected:
901     RSModifierType GetModifierType() const override;
902     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
903 };
904 
905 class RSC_EXPORT RSShadowColorModifier : public RSBackgroundModifier {
906 public:
907     explicit RSShadowColorModifier(const std::shared_ptr<RSPropertyBase>& property);
908     virtual ~RSShadowColorModifier() = default;
909 protected:
910     RSModifierType GetModifierType() const override;
911     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
912 };
913 
914 class RSC_EXPORT RSShadowOffsetXModifier : public RSBackgroundModifier {
915 public:
916     explicit RSShadowOffsetXModifier(const std::shared_ptr<RSPropertyBase>& property);
917     virtual ~RSShadowOffsetXModifier() = default;
918 protected:
919     RSModifierType GetModifierType() const override;
920     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
921 };
922 
923 class RSC_EXPORT RSShadowOffsetYModifier : public RSBackgroundModifier {
924 public:
925     explicit RSShadowOffsetYModifier(const std::shared_ptr<RSPropertyBase>& property);
926     virtual ~RSShadowOffsetYModifier() = default;
927 protected:
928     RSModifierType GetModifierType() const override;
929     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
930 };
931 
932 class RSC_EXPORT RSShadowAlphaModifier : public RSBackgroundModifier {
933 public:
934     explicit RSShadowAlphaModifier(const std::shared_ptr<RSPropertyBase>& property);
935     virtual ~RSShadowAlphaModifier() = default;
936 protected:
937     RSModifierType GetModifierType() const override;
938     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
939 };
940 
941 class RSC_EXPORT RSShadowElevationModifier : public RSBackgroundModifier {
942 public:
943     explicit RSShadowElevationModifier(const std::shared_ptr<RSPropertyBase>& property);
944     virtual ~RSShadowElevationModifier() = default;
945 protected:
946     RSModifierType GetModifierType() const override;
947     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
948 };
949 
950 class RSC_EXPORT RSShadowRadiusModifier : public RSBackgroundModifier {
951 public:
952     explicit RSShadowRadiusModifier(const std::shared_ptr<RSPropertyBase>& property);
953     virtual ~RSShadowRadiusModifier() = default;
954 protected:
955     RSModifierType GetModifierType() const override;
956     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
957 };
958 
959 class RSC_EXPORT RSShadowPathModifier : public RSBackgroundModifier {
960 public:
961     explicit RSShadowPathModifier(const std::shared_ptr<RSPropertyBase>& property);
962     virtual ~RSShadowPathModifier() = default;
963 protected:
964     RSModifierType GetModifierType() const override;
965     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
966 };
967 
968 class RSC_EXPORT RSShadowMaskModifier : public RSBackgroundModifier {
969 public:
970     explicit RSShadowMaskModifier(const std::shared_ptr<RSPropertyBase>& property);
971     virtual ~RSShadowMaskModifier() = default;
972 protected:
973     RSModifierType GetModifierType() const override;
974     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
975 };
976 
977 class RSC_EXPORT RSShadowIsFilledModifier : public RSBackgroundModifier {
978 public:
979     explicit RSShadowIsFilledModifier(const std::shared_ptr<RSPropertyBase>& property);
980     virtual ~RSShadowIsFilledModifier() = default;
981 protected:
982     RSModifierType GetModifierType() const override;
983     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
984 };
985 
986 class RSC_EXPORT RSGreyCoefModifier : public RSBackgroundModifier {
987 public:
988     explicit RSGreyCoefModifier(const std::shared_ptr<RSPropertyBase>& property);
989     virtual ~RSGreyCoefModifier() = default;
990 protected:
991     RSModifierType GetModifierType() const override;
992     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
993 };
994 
995 class RSC_EXPORT RSMaskModifier : public RSForegroundModifier {
996 public:
997     explicit RSMaskModifier(const std::shared_ptr<RSPropertyBase>& property);
998     virtual ~RSMaskModifier() = default;
999 protected:
1000     RSModifierType GetModifierType() const override;
1001     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1002 };
1003 
1004 class RSC_EXPORT RSPixelStretchModifier : public RSGeometryModifier {
1005 public:
1006     explicit RSPixelStretchModifier(const std::shared_ptr<RSPropertyBase>& property);
1007     virtual ~RSPixelStretchModifier() = default;
1008 protected:
1009     RSModifierType GetModifierType() const override;
1010     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1011 };
1012 
1013 class RSC_EXPORT RSPixelStretchPercentModifier : public RSGeometryModifier {
1014 public:
1015     explicit RSPixelStretchPercentModifier(const std::shared_ptr<RSPropertyBase>& property);
1016     virtual ~RSPixelStretchPercentModifier() = default;
1017 protected:
1018     RSModifierType GetModifierType() const override;
1019     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1020 };
1021 
1022 class RSC_EXPORT RSPixelStretchTileModeModifier : public RSGeometryModifier {
1023 public:
1024     explicit RSPixelStretchTileModeModifier(const std::shared_ptr<RSPropertyBase>& property);
1025     virtual ~RSPixelStretchTileModeModifier() = default;
1026 protected:
1027     RSModifierType GetModifierType() const override;
1028     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1029 };
1030 
1031 class RSC_EXPORT RSGrayScaleModifier : public RSForegroundModifier {
1032 public:
1033     explicit RSGrayScaleModifier(const std::shared_ptr<RSPropertyBase>& property);
1034     virtual ~RSGrayScaleModifier() = default;
1035 protected:
1036     RSModifierType GetModifierType() const override;
1037     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1038 };
1039 
1040 class RSC_EXPORT RSLightIntensityModifier : public RSForegroundModifier {
1041 public:
1042     explicit RSLightIntensityModifier(const std::shared_ptr<RSPropertyBase>& property);
1043     virtual ~RSLightIntensityModifier() = default;
1044 protected:
1045     RSModifierType GetModifierType() const override;
1046     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1047 };
1048 
1049 class RSC_EXPORT RSLightColorModifier : public RSForegroundModifier {
1050 public:
1051     explicit RSLightColorModifier(const std::shared_ptr<RSPropertyBase>& property);
1052     virtual ~RSLightColorModifier() = default;
1053 protected:
1054     RSModifierType GetModifierType() const override;
1055     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1056 };
1057 
1058 class RSC_EXPORT RSIlluminatedTypeModifier : public RSForegroundModifier {
1059 public:
1060     explicit RSIlluminatedTypeModifier(const std::shared_ptr<RSPropertyBase>& property);
1061     virtual ~RSIlluminatedTypeModifier() = default;
1062 protected:
1063     RSModifierType GetModifierType() const override;
1064     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1065 };
1066 
1067 class RSC_EXPORT RSLightPositionModifier : public RSForegroundModifier {
1068 public:
1069     explicit RSLightPositionModifier(const std::shared_ptr<RSPropertyBase>& property);
1070     virtual ~RSLightPositionModifier() = default;
1071 protected:
1072     RSModifierType GetModifierType() const override;
1073     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1074 };
1075 
1076 class RSC_EXPORT RSIlluminatedBorderWidthModifier : public RSForegroundModifier {
1077 public:
1078     explicit RSIlluminatedBorderWidthModifier(const std::shared_ptr<RSPropertyBase>& property);
1079     virtual ~RSIlluminatedBorderWidthModifier() = default;
1080 protected:
1081     RSModifierType GetModifierType() const override;
1082     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1083 };
1084 
1085 class RSC_EXPORT RSBloomModifier : public RSForegroundModifier {
1086 public:
1087     explicit RSBloomModifier(const std::shared_ptr<RSPropertyBase>& property);
1088     virtual ~RSBloomModifier() = default;
1089 protected:
1090     RSModifierType GetModifierType() const override;
1091     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1092 };
1093 
1094 class RSC_EXPORT RSBrightnessModifier : public RSForegroundModifier {
1095 public:
1096     explicit RSBrightnessModifier(const std::shared_ptr<RSPropertyBase>& property);
1097     virtual ~RSBrightnessModifier() = default;
1098 protected:
1099     RSModifierType GetModifierType() const override;
1100     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1101 };
1102 
1103 class RSC_EXPORT RSContrastModifier : public RSForegroundModifier {
1104 public:
1105     explicit RSContrastModifier(const std::shared_ptr<RSPropertyBase>& property);
1106     virtual ~RSContrastModifier() = default;
1107 protected:
1108     RSModifierType GetModifierType() const override;
1109     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1110 };
1111 
1112 class RSC_EXPORT RSSaturateModifier : public RSForegroundModifier {
1113 public:
1114     explicit RSSaturateModifier(const std::shared_ptr<RSPropertyBase>& property);
1115     virtual ~RSSaturateModifier() = default;
1116 protected:
1117     RSModifierType GetModifierType() const override;
1118     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1119 };
1120 
1121 class RSC_EXPORT RSSepiaModifier : public RSForegroundModifier {
1122 public:
1123     explicit RSSepiaModifier(const std::shared_ptr<RSPropertyBase>& property);
1124     virtual ~RSSepiaModifier() = default;
1125 protected:
1126     RSModifierType GetModifierType() const override;
1127     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1128 };
1129 
1130 class RSC_EXPORT RSInvertModifier : public RSForegroundModifier {
1131 public:
1132     explicit RSInvertModifier(const std::shared_ptr<RSPropertyBase>& property);
1133     virtual ~RSInvertModifier() = default;
1134 protected:
1135     RSModifierType GetModifierType() const override;
1136     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1137 };
1138 
1139 class RSC_EXPORT RSAiInvertModifier : public RSForegroundModifier {
1140 public:
1141     explicit RSAiInvertModifier(const std::shared_ptr<RSPropertyBase>& property);
1142     virtual ~RSAiInvertModifier() = default;
1143 protected:
1144     RSModifierType GetModifierType() const override;
1145     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1146 };
1147 
1148 class RSC_EXPORT RSSystemBarEffectModifier : public RSBackgroundModifier {
1149 public:
1150     explicit RSSystemBarEffectModifier(const std::shared_ptr<RSPropertyBase>& property);
1151     virtual ~RSSystemBarEffectModifier() = default;
1152 protected:
1153     RSModifierType GetModifierType() const override;
1154     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1155 };
1156 
1157 class RSC_EXPORT RSHueRotateModifier : public RSForegroundModifier {
1158 public:
1159     explicit RSHueRotateModifier(const std::shared_ptr<RSPropertyBase>& property);
1160     virtual ~RSHueRotateModifier() = default;
1161 protected:
1162     RSModifierType GetModifierType() const override;
1163     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1164 };
1165 
1166 class RSC_EXPORT RSColorBlendModifier : public RSForegroundModifier {
1167 public:
1168     explicit RSColorBlendModifier(const std::shared_ptr<RSPropertyBase>& property);
1169     virtual ~RSColorBlendModifier() = default;
1170 protected:
1171     RSModifierType GetModifierType() const override;
1172     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1173 };
1174 
1175 class RSC_EXPORT RSUseEffectModifier : public RSBackgroundModifier {
1176 public:
1177     explicit RSUseEffectModifier(const std::shared_ptr<RSPropertyBase>& property);
1178     virtual ~RSUseEffectModifier() = default;
1179 protected:
1180     RSModifierType GetModifierType() const override;
1181     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1182 };
1183 
1184 class RSC_EXPORT RSUseEffectTypeModifier : public RSBackgroundModifier {
1185 public:
1186     explicit RSUseEffectTypeModifier(const std::shared_ptr<RSPropertyBase>& property);
1187     virtual ~RSUseEffectTypeModifier() = default;
1188 protected:
1189     RSModifierType GetModifierType() const override;
1190     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1191 };
1192 
1193 class RSC_EXPORT RSBehindWindowFilterRadiusModifier : public RSBackgroundModifier {
1194 public:
1195     explicit RSBehindWindowFilterRadiusModifier(const std::shared_ptr<RSPropertyBase>& property);
1196     virtual ~RSBehindWindowFilterRadiusModifier() = default;
1197 protected:
1198     RSModifierType GetModifierType() const override;
1199     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1200 };
1201 
1202 class RSC_EXPORT RSBehindWindowFilterSaturationModifier : public RSBackgroundModifier {
1203 public:
1204     explicit RSBehindWindowFilterSaturationModifier(const std::shared_ptr<RSPropertyBase>& property);
1205     virtual ~RSBehindWindowFilterSaturationModifier() = default;
1206 protected:
1207     RSModifierType GetModifierType() const override;
1208     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1209 };
1210 
1211 class RSC_EXPORT RSBehindWindowFilterBrightnessModifier : public RSBackgroundModifier {
1212 public:
1213     explicit RSBehindWindowFilterBrightnessModifier(const std::shared_ptr<RSPropertyBase>& property);
1214     virtual ~RSBehindWindowFilterBrightnessModifier() = default;
1215 protected:
1216     RSModifierType GetModifierType() const override;
1217     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1218 };
1219 
1220 class RSC_EXPORT RSBehindWindowFilterMaskColorModifier : public RSBackgroundModifier {
1221 public:
1222     explicit RSBehindWindowFilterMaskColorModifier(const std::shared_ptr<RSPropertyBase>& property);
1223     virtual ~RSBehindWindowFilterMaskColorModifier() = default;
1224 protected:
1225     RSModifierType GetModifierType() const override;
1226     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1227 };
1228 
1229 class RSC_EXPORT RSColorBlendModeModifier : public RSBackgroundModifier {
1230 public:
1231     explicit RSColorBlendModeModifier(const std::shared_ptr<RSPropertyBase>& property);
1232     virtual ~RSColorBlendModeModifier() = default;
1233 protected:
1234     RSModifierType GetModifierType() const override;
1235     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1236 };
1237 
1238 class RSC_EXPORT RSColorBlendApplyTypeModifier : public RSBackgroundModifier {
1239 public:
1240     explicit RSColorBlendApplyTypeModifier(const std::shared_ptr<RSPropertyBase>& property);
1241     virtual ~RSColorBlendApplyTypeModifier() = default;
1242 protected:
1243     RSModifierType GetModifierType() const override;
1244     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1245 };
1246 
1247 class RSC_EXPORT RSShadowColorStrategyModifier : public RSBackgroundModifier {
1248 public:
1249     explicit RSShadowColorStrategyModifier(const std::shared_ptr<RSPropertyBase>& property);
1250     virtual ~RSShadowColorStrategyModifier() = default;
1251 protected:
1252     RSModifierType GetModifierType() const override;
1253     std::shared_ptr<RSRenderModifier> CreateRenderModifier() const override;
1254 };
1255 } // namespace Rosen
1256 } // namespace OHOS
1257 
1258 #endif // RENDER_SERVICE_CLIENT_CORE_MODIFIER_RS_PROPERTY_MODIFIER_H
1259