Skip to content

Commit da35de4

Browse files
authored
Merge pull request #1409 from OpenGeoscience/speed-up-webgl-polygons
perf: Minor improvements in webgl polygon creation
2 parents 36f5efe + 803e5a0 commit da35de4

File tree

1 file changed

+16
-14
lines changed

1 file changed

+16
-14
lines changed

src/webgl/polygonFeature.js

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ var webgl_polygonFeature = function (arg) {
8080
fillFunc, fillVal,
8181
uniformFunc, uniformVal, uniform,
8282
indices,
83-
items = [],
83+
items = [], itemsk, itemsktri,
8484
target_gcs = m_this.gcs(),
8585
map_gcs = m_this.layer().map().gcs(),
8686
numPts = 0,
@@ -185,11 +185,13 @@ var webgl_polygonFeature = function (arg) {
185185
color = fillColorVal;
186186
fill = fillVal;
187187
for (k = 0; k < items.length; k += 1) {
188-
n = items[k].triangles.length;
189-
vertices = items[k].vertices;
190-
item = items[k].item;
191-
itemIndex = items[k].itemIndex;
192-
original = items[k].original;
188+
itemsk = items[k];
189+
itemsktri = itemsk.triangles;
190+
n = itemsktri.length;
191+
vertices = itemsk.vertices;
192+
item = itemsk.item;
193+
itemIndex = itemsk.itemIndex;
194+
original = itemsk.original;
193195
uniform = uniformVal === undefined ? uniformFunc(item, itemIndex) : uniformVal;
194196
opacity = fillOpacityVal;
195197
if (uniform) {
@@ -206,9 +208,9 @@ var webgl_polygonFeature = function (arg) {
206208
if (!fill) {
207209
opacity = 0;
208210
}
209-
if (uniform && onlyStyle && items[k].uniform && items[k].color &&
210-
color.r === items[k].color.r && color.g === items[k].color.g &&
211-
color.b === items[k].color.b && opacity === items[k].opacity) {
211+
if (uniform && onlyStyle && itemsk.uniform && itemsk.color &&
212+
color.r === itemsk.color.r && color.g === itemsk.color.g &&
213+
color.b === itemsk.color.b && opacity === itemsk.opacity) {
212214
d += n;
213215
d3 += n * 3;
214216
continue;
@@ -220,7 +222,7 @@ var webgl_polygonFeature = function (arg) {
220222
fillColor[d3 + 2] = color.b;
221223
fillOpacity[d] = opacity;
222224
} else {
223-
j = items[k].triangles[i] * 3;
225+
j = itemsktri[i] * 3;
224226
if (!onlyStyle) {
225227
posBuf[d3] = vertices[j] - m_origin[0];
226228
posBuf[d3 + 1] = vertices[j + 1] - m_origin[1];
@@ -239,10 +241,10 @@ var webgl_polygonFeature = function (arg) {
239241
fillOpacity[d] = opacity;
240242
}
241243
}
242-
if (uniform || items[k].uniform) {
243-
items[k].uniform = uniform;
244-
items[k].color = color;
245-
items[k].opacity = opacity;
244+
if (uniform || itemsk.uniform) {
245+
itemsk.uniform = uniform;
246+
itemsk.color = color;
247+
itemsk.opacity = opacity;
246248
}
247249
}
248250
if (!onlyStyle) {

0 commit comments

Comments
 (0)