@@ -43,17 +43,16 @@ void FillLayerTweaker::execute(LayerGroupBase& layerGroup, const PaintParameters
43
43
const auto debugGroup = parameters.encoder ->createDebugGroup (label.c_str ());
44
44
#endif
45
45
46
- // Only run each update function once
47
- bool fillUniformBufferUpdated = false ;
48
- bool fillOutlineUniformBufferUpdated = false ;
49
- bool fillPatternUniformBufferUpdated = false ;
50
- bool fillOutlinePatternUniformBufferUpdated = false ;
51
-
52
- const auto UpdateFillUniformBuffers = [&]() {
53
- if (fillUniformBufferUpdated) return ;
46
+ if (propertiesUpdated) {
54
47
fillUniformBufferUpdated = true ;
48
+ fillOutlineUniformBufferUpdated = true ;
49
+ fillPatternUniformBufferUpdated = true ;
50
+ fillOutlinePatternUniformBufferUpdated = true ;
51
+ propertiesUpdated = false ;
52
+ }
55
53
56
- if (!fillPropsUniformBuffer || propertiesUpdated) {
54
+ const auto UpdateFillUniformBuffers = [&]() {
55
+ if (!fillPropsUniformBuffer || fillUniformBufferUpdated) {
57
56
const FillEvaluatedPropsUBO paramsUBO = {
58
57
/* .color = */ evaluated.get <FillColor>().constantOr (FillColor::defaultValue ()),
59
58
/* .opacity = */ evaluated.get <FillOpacity>().constantOr (FillOpacity::defaultValue ()),
@@ -62,14 +61,12 @@ void FillLayerTweaker::execute(LayerGroupBase& layerGroup, const PaintParameters
62
61
0 ,
63
62
};
64
63
context.emplaceOrUpdateUniformBuffer (fillPropsUniformBuffer, ¶msUBO);
64
+ fillUniformBufferUpdated = false ;
65
65
}
66
66
};
67
67
68
68
const auto UpdateFillOutlineUniformBuffers = [&]() {
69
- if (fillOutlineUniformBufferUpdated) return ;
70
- fillOutlineUniformBufferUpdated = true ;
71
-
72
- if (!fillOutlinePropsUniformBuffer || propertiesUpdated) {
69
+ if (!fillOutlinePropsUniformBuffer || fillOutlineUniformBufferUpdated) {
73
70
const FillOutlineEvaluatedPropsUBO paramsUBO = {
74
71
/* .outline_color = */ evaluated.get <FillOutlineColor>().constantOr (FillOutlineColor::defaultValue ()),
75
72
/* .opacity = */ evaluated.get <FillOpacity>().constantOr (FillOpacity::defaultValue ()),
@@ -78,36 +75,33 @@ void FillLayerTweaker::execute(LayerGroupBase& layerGroup, const PaintParameters
78
75
0 ,
79
76
};
80
77
context.emplaceOrUpdateUniformBuffer (fillOutlinePropsUniformBuffer, ¶msUBO);
78
+ fillOutlineUniformBufferUpdated = false ;
81
79
}
82
80
};
83
81
84
82
const auto UpdateFillPatternUniformBuffers = [&]() {
85
- if (fillPatternUniformBufferUpdated) return ;
86
- fillPatternUniformBufferUpdated = true ;
87
-
88
- if (!fillPatternPropsUniformBuffer || propertiesUpdated) {
83
+ if (!fillPatternPropsUniformBuffer || fillPatternUniformBufferUpdated) {
89
84
const FillPatternEvaluatedPropsUBO paramsUBO = {
90
85
/* .opacity = */ evaluated.get <FillOpacity>().constantOr (FillOpacity::defaultValue ()),
91
86
/* .fade = */ crossfade.t ,
92
87
0 ,
93
88
0 ,
94
89
};
95
90
context.emplaceOrUpdateUniformBuffer (fillPatternPropsUniformBuffer, ¶msUBO);
91
+ fillPatternUniformBufferUpdated = false ;
96
92
}
97
93
};
98
94
99
95
const auto UpdateFillOutlinePatternUniformBuffers = [&]() {
100
- if (fillOutlinePatternUniformBufferUpdated) return ;
101
- fillOutlinePatternUniformBufferUpdated = true ;
102
-
103
- if (!fillOutlinePatternPropsUniformBuffer || propertiesUpdated) {
96
+ if (!fillOutlinePatternPropsUniformBuffer || fillOutlinePatternUniformBufferUpdated) {
104
97
const FillOutlinePatternEvaluatedPropsUBO paramsUBO = {
105
98
/* .opacity = */ evaluated.get <FillOpacity>().constantOr (FillOpacity::defaultValue ()),
106
99
/* .fade = */ crossfade.t ,
107
100
0 ,
108
101
0 ,
109
102
};
110
103
context.emplaceOrUpdateUniformBuffer (fillOutlinePatternPropsUniformBuffer, ¶msUBO);
104
+ fillOutlinePatternUniformBufferUpdated = false ;
111
105
}
112
106
};
113
107
@@ -214,8 +208,6 @@ void FillLayerTweaker::execute(LayerGroupBase& layerGroup, const PaintParameters
214
208
}
215
209
}
216
210
});
217
-
218
- propertiesUpdated = false ;
219
211
}
220
212
221
213
} // namespace mbgl
0 commit comments