Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit cdd3bf2

Browse files
authored
make DisplayListFlags constexpr throughout (#38649)
1 parent 87bdde8 commit cdd3bf2

File tree

2 files changed

+225
-224
lines changed

2 files changed

+225
-224
lines changed

display_list/display_list_flags.cc

Lines changed: 1 addition & 161 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
#include "flutter/display_list/display_list_flags.h"
66
#include "flutter/display_list/display_list_path_effect.h"
7+
78
namespace flutter {
89

910
const DisplayListSpecialGeometryFlags DisplayListAttributeFlags::WithPathEffect(
@@ -27,165 +28,4 @@ const DisplayListSpecialGeometryFlags DisplayListAttributeFlags::WithPathEffect(
2728
return special_flags_;
2829
}
2930

30-
// clang-format off
31-
// Flags common to all primitives that apply colors
32-
#define PAINT_FLAGS (kUsesDither_ | \
33-
kUsesColor_ | \
34-
kUsesAlpha_ | \
35-
kUsesBlend_ | \
36-
kUsesShader_ | \
37-
kUsesColorFilter_ | \
38-
kUsesImageFilter_)
39-
40-
// Flags common to all primitives that stroke or fill
41-
#define STROKE_OR_FILL_FLAGS (kIsDrawnGeometry_ | \
42-
kUsesAntiAlias_ | \
43-
kUsesMaskFilter_ | \
44-
kUsesPathEffect_)
45-
46-
// Flags common to primitives that stroke geometry
47-
#define STROKE_FLAGS (kIsStrokedGeometry_ | \
48-
kUsesAntiAlias_ | \
49-
kUsesMaskFilter_ | \
50-
kUsesPathEffect_)
51-
52-
// Flags common to primitives that render an image with paint attributes
53-
#define IMAGE_FLAGS_BASE (kIsNonGeometric_ | \
54-
kUsesAlpha_ | \
55-
kUsesDither_ | \
56-
kUsesBlend_ | \
57-
kUsesColorFilter_ | \
58-
kUsesImageFilter_)
59-
// clang-format on
60-
61-
const DisplayListAttributeFlags DisplayListOpFlags::kSaveLayerFlags =
62-
DisplayListAttributeFlags(kIgnoresPaint_);
63-
64-
const DisplayListAttributeFlags DisplayListOpFlags::kSaveLayerWithPaintFlags =
65-
DisplayListAttributeFlags(kIsNonGeometric_ | //
66-
kUsesAlpha_ | //
67-
kUsesBlend_ | //
68-
kUsesColorFilter_ | //
69-
kUsesImageFilter_);
70-
71-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawColorFlags =
72-
DisplayListAttributeFlags(kFloodsSurface_ | kIgnoresPaint_);
73-
74-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawPaintFlags =
75-
DisplayListAttributeFlags(PAINT_FLAGS | kFloodsSurface_);
76-
77-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawHVLineFlags =
78-
DisplayListAttributeFlags(PAINT_FLAGS | STROKE_FLAGS | kMayHaveCaps_);
79-
80-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawLineFlags =
81-
kDrawHVLineFlags.with(kMayHaveDiagonalCaps_);
82-
83-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawRectFlags =
84-
DisplayListAttributeFlags(PAINT_FLAGS | STROKE_OR_FILL_FLAGS |
85-
kMayHaveJoins_);
86-
87-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawOvalFlags =
88-
DisplayListAttributeFlags(PAINT_FLAGS | STROKE_OR_FILL_FLAGS);
89-
90-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawCircleFlags =
91-
DisplayListAttributeFlags(PAINT_FLAGS | STROKE_OR_FILL_FLAGS);
92-
93-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawRRectFlags =
94-
DisplayListAttributeFlags(PAINT_FLAGS | STROKE_OR_FILL_FLAGS);
95-
96-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawDRRectFlags =
97-
DisplayListAttributeFlags(PAINT_FLAGS | STROKE_OR_FILL_FLAGS);
98-
99-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawPathFlags =
100-
DisplayListAttributeFlags(PAINT_FLAGS | STROKE_OR_FILL_FLAGS |
101-
kMayHaveCaps_ | kMayHaveDiagonalCaps_ |
102-
kMayHaveJoins_ | kMayHaveAcuteJoins_);
103-
104-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawArcNoCenterFlags =
105-
DisplayListAttributeFlags(PAINT_FLAGS | STROKE_OR_FILL_FLAGS |
106-
kMayHaveCaps_ | kMayHaveDiagonalCaps_);
107-
108-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawArcWithCenterFlags =
109-
DisplayListAttributeFlags(PAINT_FLAGS | STROKE_OR_FILL_FLAGS |
110-
kMayHaveJoins_ | kMayHaveAcuteJoins_);
111-
112-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawPointsAsPointsFlags =
113-
DisplayListAttributeFlags(PAINT_FLAGS | STROKE_FLAGS | //
114-
kMayHaveCaps_ | kButtCapIsSquare_);
115-
116-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawPointsAsLinesFlags =
117-
DisplayListAttributeFlags(PAINT_FLAGS | STROKE_FLAGS | //
118-
kMayHaveCaps_ | kMayHaveDiagonalCaps_);
119-
120-
// Polygon mode just draws (count-1) separate lines, no joins
121-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawPointsAsPolygonFlags =
122-
DisplayListAttributeFlags(PAINT_FLAGS | STROKE_FLAGS | //
123-
kMayHaveCaps_ | kMayHaveDiagonalCaps_);
124-
125-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawVerticesFlags =
126-
DisplayListAttributeFlags(kIsNonGeometric_ | //
127-
kUsesDither_ | //
128-
kUsesAlpha_ | //
129-
kUsesShader_ | //
130-
kUsesBlend_ | //
131-
kUsesColorFilter_ | //
132-
kUsesImageFilter_);
133-
134-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawImageFlags =
135-
DisplayListAttributeFlags(kIgnoresPaint_);
136-
137-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawImageWithPaintFlags =
138-
DisplayListAttributeFlags(IMAGE_FLAGS_BASE | //
139-
kUsesAntiAlias_ | kUsesMaskFilter_);
140-
141-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawImageRectFlags =
142-
DisplayListAttributeFlags(kIgnoresPaint_);
143-
144-
const DisplayListAttributeFlags
145-
DisplayListOpFlags::kDrawImageRectWithPaintFlags =
146-
DisplayListAttributeFlags(IMAGE_FLAGS_BASE | //
147-
kUsesAntiAlias_ | kUsesMaskFilter_);
148-
149-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawImageNineFlags =
150-
DisplayListAttributeFlags(kIgnoresPaint_);
151-
152-
const DisplayListAttributeFlags
153-
DisplayListOpFlags::kDrawImageNineWithPaintFlags =
154-
DisplayListAttributeFlags(IMAGE_FLAGS_BASE);
155-
156-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawImageLatticeFlags =
157-
DisplayListAttributeFlags(kIgnoresPaint_);
158-
159-
const DisplayListAttributeFlags
160-
DisplayListOpFlags::kDrawImageLatticeWithPaintFlags =
161-
DisplayListAttributeFlags(IMAGE_FLAGS_BASE);
162-
163-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawAtlasFlags =
164-
DisplayListAttributeFlags(kIgnoresPaint_);
165-
166-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawAtlasWithPaintFlags =
167-
DisplayListAttributeFlags(IMAGE_FLAGS_BASE);
168-
169-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawPictureFlags =
170-
DisplayListAttributeFlags(kIgnoresPaint_);
171-
172-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawPictureWithPaintFlags =
173-
kSaveLayerWithPaintFlags;
174-
175-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawDisplayListFlags =
176-
DisplayListAttributeFlags(kIgnoresPaint_);
177-
178-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawTextBlobFlags =
179-
DisplayListAttributeFlags(PAINT_FLAGS | STROKE_OR_FILL_FLAGS |
180-
kMayHaveJoins_)
181-
.without(kUsesAntiAlias_);
182-
183-
const DisplayListAttributeFlags DisplayListOpFlags::kDrawShadowFlags =
184-
DisplayListAttributeFlags(kIgnoresPaint_);
185-
186-
#undef PAINT_FLAGS
187-
#undef STROKE_OR_FILL_FLAGS
188-
#undef STROKE_FLAGS
189-
#undef IMAGE_FLAGS_BASE
190-
19131
} // namespace flutter

0 commit comments

Comments
 (0)