861 {
862 if (caseP.has_mutating_save_layer()) {
863 return false;
864 }
865 if (
env.ref_clip_bounds() !=
renderer.setup_clip_bounds() ||
866 caseP.has_diff_clip()) {
867 return false;
868 }
870 return false;
871 }
873 return true;
874 }
877 ref_attr.isAntiAlias() != attr.isAntiAlias()) {
879
880
881 } else {
882 return false;
883 }
884 }
886 ref_attr.getColor() != attr.getColor()) {
887 return false;
888 }
890 ref_attr.getBlendMode() != attr.getBlendMode()) {
891 return false;
892 }
894 (ref_attr.isInvertColors() != attr.isInvertColors() ||
895 NotEquals(ref_attr.getColorFilter(), attr.getColorFilter()))) {
896 return false;
897 }
899 NotEquals(ref_attr.getMaskFilter(), attr.getMaskFilter())) {
900 return false;
901 }
903 ref_attr.getImageFilter() != attr.getImageFilter()) {
904 return false;
905 }
907 NotEquals(ref_attr.getColorSource(), attr.getColorSource())) {
908 return false;
909 }
910
911 bool is_stroked = flags_.
is_stroked(attr.getDrawStyle());
912 if (flags_.
is_stroked(ref_attr.getDrawStyle()) != is_stroked) {
913 return false;
914 }
915 if (!is_stroked) {
916 return true;
917 }
918 if (ref_attr.getStrokeWidth() != attr.getStrokeWidth()) {
919 return false;
920 }
921 DisplayListSpecialGeometryFlags geo_flags =
923 if (geo_flags.may_have_end_caps() &&
924 getCap(ref_attr, geo_flags) !=
getCap(attr, geo_flags)) {
925 return false;
926 }
927 if (geo_flags.may_have_joins()) {
928 if (ref_attr.getStrokeJoin() != attr.getStrokeJoin()) {
929 return false;
930 }
932 SkScalar ref_miter = ref_attr.getStrokeMiter();
933 SkScalar test_miter = attr.getStrokeMiter();
934
935 if (geo_flags.may_have_acute_joins() ||
936 ref_miter < 1.4 || test_miter < 1.4) {
937 if (ref_miter != test_miter) {
938 return false;
939 }
940 }
941 }
942 }
943 return true;
944 }
constexpr bool applies_color() const
constexpr bool is_stroked(DlDrawStyle style=DlDrawStyle::kStroke) const
constexpr bool applies_color_filter() const
constexpr bool ignores_paint() const
constexpr bool applies_image_filter() const
constexpr bool applies_shader() const
constexpr bool applies_anti_alias() const
constexpr bool applies_mask_filter() const
constexpr bool applies_blend() const
The primitive honors the DlBlendMode.
constexpr bool is_flood() const
DlStrokeCap getCap(const DlPaint &attr, DisplayListSpecialGeometryFlags geo_flags) const
bool NotEquals(const T *a, const T *b)