ol 6.9.1-dev.1637345324054 → 6.9.1-dev.1637381989067
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/webgl/TileTexture.js +39 -21
- package/util.js +1 -1
- package/webgl/TileTexture.d.ts.map +1 -1
- package/webgl/TileTexture.js +37 -16
- package/webgl/TileTexture.js.map +1 -1
package/package.json
CHANGED
package/src/webgl/TileTexture.js
CHANGED
|
@@ -41,6 +41,16 @@ function uploadDataTexture(helper, texture, data, size, bandCount) {
|
|
|
41
41
|
const gl = helper.getGL();
|
|
42
42
|
bindAndConfigure(gl, texture);
|
|
43
43
|
|
|
44
|
+
const bytesPerRow = data.byteLength / size[1];
|
|
45
|
+
let unpackAlignment = 1;
|
|
46
|
+
if (bytesPerRow % 8 === 0) {
|
|
47
|
+
unpackAlignment = 8;
|
|
48
|
+
} else if (bytesPerRow % 4 === 0) {
|
|
49
|
+
unpackAlignment = 4;
|
|
50
|
+
} else if (bytesPerRow % 2 === 0) {
|
|
51
|
+
unpackAlignment = 2;
|
|
52
|
+
}
|
|
53
|
+
|
|
44
54
|
let format;
|
|
45
55
|
switch (bandCount) {
|
|
46
56
|
case 1: {
|
|
@@ -73,6 +83,8 @@ function uploadDataTexture(helper, texture, data, size, bandCount) {
|
|
|
73
83
|
textureType = gl.UNSIGNED_BYTE;
|
|
74
84
|
}
|
|
75
85
|
|
|
86
|
+
const oldUnpackAlignment = gl.getParameter(gl.UNPACK_ALIGNMENT);
|
|
87
|
+
gl.pixelStorei(gl.UNPACK_ALIGNMENT, unpackAlignment);
|
|
76
88
|
gl.texImage2D(
|
|
77
89
|
gl.TEXTURE_2D,
|
|
78
90
|
0,
|
|
@@ -84,6 +96,7 @@ function uploadDataTexture(helper, texture, data, size, bandCount) {
|
|
|
84
96
|
textureType,
|
|
85
97
|
data
|
|
86
98
|
);
|
|
99
|
+
gl.pixelStorei(gl.UNPACK_ALIGNMENT, oldUnpackAlignment);
|
|
87
100
|
}
|
|
88
101
|
|
|
89
102
|
/**
|
|
@@ -168,10 +181,11 @@ class TileTexture extends EventTarget {
|
|
|
168
181
|
const data = tile.getData();
|
|
169
182
|
const isFloat = data instanceof Float32Array;
|
|
170
183
|
const pixelCount = this.size[0] * this.size[1];
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
184
|
+
const DataType = isFloat ? Float32Array : Uint8Array;
|
|
185
|
+
const bytesPerElement = DataType.BYTES_PER_ELEMENT;
|
|
186
|
+
const bytesPerRow = data.byteLength / this.size[1];
|
|
187
|
+
|
|
188
|
+
this.bandCount = Math.floor(bytesPerRow / bytesPerElement / this.size[0]);
|
|
175
189
|
const textureCount = Math.ceil(this.bandCount / 4);
|
|
176
190
|
|
|
177
191
|
if (textureCount === 1) {
|
|
@@ -181,8 +195,6 @@ class TileTexture extends EventTarget {
|
|
|
181
195
|
return;
|
|
182
196
|
}
|
|
183
197
|
|
|
184
|
-
const DataType = isFloat ? Float32Array : Uint8Array;
|
|
185
|
-
|
|
186
198
|
const textureDataArrays = new Array(textureCount);
|
|
187
199
|
for (let textureIndex = 0; textureIndex < textureCount; ++textureIndex) {
|
|
188
200
|
const texture = gl.createTexture();
|
|
@@ -193,25 +205,31 @@ class TileTexture extends EventTarget {
|
|
|
193
205
|
textureDataArrays[textureIndex] = new DataType(pixelCount * bandCount);
|
|
194
206
|
}
|
|
195
207
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
208
|
+
let dataIndex = 0;
|
|
209
|
+
let rowOffset = 0;
|
|
210
|
+
const colCount = this.size[0] * this.bandCount;
|
|
211
|
+
for (let rowIndex = 0; rowIndex < this.size[1]; ++rowIndex) {
|
|
212
|
+
for (let colIndex = 0; colIndex < colCount; ++colIndex) {
|
|
213
|
+
const dataValue = data[rowOffset + colIndex];
|
|
214
|
+
|
|
215
|
+
const pixelIndex = Math.floor(dataIndex / this.bandCount);
|
|
216
|
+
const bandIndex = colIndex % this.bandCount;
|
|
217
|
+
const textureIndex = Math.floor(bandIndex / 4);
|
|
218
|
+
const textureData = textureDataArrays[textureIndex];
|
|
219
|
+
const bandCount = textureData.length / pixelCount;
|
|
220
|
+
const textureBandIndex = bandIndex % 4;
|
|
221
|
+
textureData[pixelIndex * bandCount + textureBandIndex] = dataValue;
|
|
222
|
+
|
|
223
|
+
++dataIndex;
|
|
224
|
+
}
|
|
225
|
+
rowOffset += bytesPerRow / bytesPerElement;
|
|
207
226
|
}
|
|
208
227
|
|
|
209
228
|
for (let textureIndex = 0; textureIndex < textureCount; ++textureIndex) {
|
|
210
|
-
const bandCount =
|
|
211
|
-
textureIndex < textureCount - 1 ? 4 : this.bandCount % 4;
|
|
212
229
|
const texture = this.textures[textureIndex];
|
|
213
|
-
const
|
|
214
|
-
|
|
230
|
+
const textureData = textureDataArrays[textureIndex];
|
|
231
|
+
const bandCount = textureData.length / pixelCount;
|
|
232
|
+
uploadDataTexture(helper, texture, textureData, this.size, bandCount);
|
|
215
233
|
}
|
|
216
234
|
}
|
|
217
235
|
|
package/util.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TileTexture.d.ts","sourceRoot":"","sources":["../src/webgl/TileTexture.js"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"TileTexture.d.ts","sourceRoot":"","sources":["../src/webgl/TileTexture.js"],"names":[],"mappings":";;AAqGA;;GAEG;AAEH;IACE;;;;OAIG;IACH,qKAmCC;IAhCC;;OAEG;IACH,MAFU,QAAQ,CAET;IAET;;OAEG;IACH,UAFU,KAAK,CAAC,YAAY,CAAC,CAEX;IAiHpB,0BAMC;IApHC,eAAuD;IAEvD,kBAAoB;IAEpB,uCAAqB;IAerB,yBAAoB;IAItB;;OAEG;IACH,+EAcC;IAPG,4BAAkD;IAStD,oBAkEC;CAkBF"}
|
package/webgl/TileTexture.js
CHANGED
|
@@ -50,6 +50,17 @@ function uploadImageTexture(gl, texture, image) {
|
|
|
50
50
|
function uploadDataTexture(helper, texture, data, size, bandCount) {
|
|
51
51
|
var gl = helper.getGL();
|
|
52
52
|
bindAndConfigure(gl, texture);
|
|
53
|
+
var bytesPerRow = data.byteLength / size[1];
|
|
54
|
+
var unpackAlignment = 1;
|
|
55
|
+
if (bytesPerRow % 8 === 0) {
|
|
56
|
+
unpackAlignment = 8;
|
|
57
|
+
}
|
|
58
|
+
else if (bytesPerRow % 4 === 0) {
|
|
59
|
+
unpackAlignment = 4;
|
|
60
|
+
}
|
|
61
|
+
else if (bytesPerRow % 2 === 0) {
|
|
62
|
+
unpackAlignment = 2;
|
|
63
|
+
}
|
|
53
64
|
var format;
|
|
54
65
|
switch (bandCount) {
|
|
55
66
|
case 1: {
|
|
@@ -81,7 +92,10 @@ function uploadDataTexture(helper, texture, data, size, bandCount) {
|
|
|
81
92
|
else {
|
|
82
93
|
textureType = gl.UNSIGNED_BYTE;
|
|
83
94
|
}
|
|
95
|
+
var oldUnpackAlignment = gl.getParameter(gl.UNPACK_ALIGNMENT);
|
|
96
|
+
gl.pixelStorei(gl.UNPACK_ALIGNMENT, unpackAlignment);
|
|
84
97
|
gl.texImage2D(gl.TEXTURE_2D, 0, format, size[0], size[1], 0, format, textureType, data);
|
|
98
|
+
gl.pixelStorei(gl.UNPACK_ALIGNMENT, oldUnpackAlignment);
|
|
85
99
|
}
|
|
86
100
|
/**
|
|
87
101
|
* @typedef {import("../DataTile.js").default|ImageTile|ReprojTile} TileType
|
|
@@ -156,10 +170,10 @@ var TileTexture = /** @class */ (function (_super) {
|
|
|
156
170
|
var data = tile.getData();
|
|
157
171
|
var isFloat = data instanceof Float32Array;
|
|
158
172
|
var pixelCount = this.size[0] * this.size[1];
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
this.bandCount =
|
|
173
|
+
var DataType = isFloat ? Float32Array : Uint8Array;
|
|
174
|
+
var bytesPerElement = DataType.BYTES_PER_ELEMENT;
|
|
175
|
+
var bytesPerRow = data.byteLength / this.size[1];
|
|
176
|
+
this.bandCount = Math.floor(bytesPerRow / bytesPerElement / this.size[0]);
|
|
163
177
|
var textureCount = Math.ceil(this.bandCount / 4);
|
|
164
178
|
if (textureCount === 1) {
|
|
165
179
|
var texture = gl.createTexture();
|
|
@@ -167,7 +181,6 @@ var TileTexture = /** @class */ (function (_super) {
|
|
|
167
181
|
uploadDataTexture(helper, texture, data, this.size, this.bandCount);
|
|
168
182
|
return;
|
|
169
183
|
}
|
|
170
|
-
var DataType = isFloat ? Float32Array : Uint8Array;
|
|
171
184
|
var textureDataArrays = new Array(textureCount);
|
|
172
185
|
for (var textureIndex = 0; textureIndex < textureCount; ++textureIndex) {
|
|
173
186
|
var texture = gl.createTexture();
|
|
@@ -175,20 +188,28 @@ var TileTexture = /** @class */ (function (_super) {
|
|
|
175
188
|
var bandCount = textureIndex < textureCount - 1 ? 4 : this.bandCount % 4;
|
|
176
189
|
textureDataArrays[textureIndex] = new DataType(pixelCount * bandCount);
|
|
177
190
|
}
|
|
178
|
-
var
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
var
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
191
|
+
var dataIndex = 0;
|
|
192
|
+
var rowOffset = 0;
|
|
193
|
+
var colCount = this.size[0] * this.bandCount;
|
|
194
|
+
for (var rowIndex = 0; rowIndex < this.size[1]; ++rowIndex) {
|
|
195
|
+
for (var colIndex = 0; colIndex < colCount; ++colIndex) {
|
|
196
|
+
var dataValue = data[rowOffset + colIndex];
|
|
197
|
+
var pixelIndex = Math.floor(dataIndex / this.bandCount);
|
|
198
|
+
var bandIndex = colIndex % this.bandCount;
|
|
199
|
+
var textureIndex = Math.floor(bandIndex / 4);
|
|
200
|
+
var textureData = textureDataArrays[textureIndex];
|
|
201
|
+
var bandCount = textureData.length / pixelCount;
|
|
202
|
+
var textureBandIndex = bandIndex % 4;
|
|
203
|
+
textureData[pixelIndex * bandCount + textureBandIndex] = dataValue;
|
|
204
|
+
++dataIndex;
|
|
205
|
+
}
|
|
206
|
+
rowOffset += bytesPerRow / bytesPerElement;
|
|
186
207
|
}
|
|
187
208
|
for (var textureIndex = 0; textureIndex < textureCount; ++textureIndex) {
|
|
188
|
-
var bandCount = textureIndex < textureCount - 1 ? 4 : this.bandCount % 4;
|
|
189
209
|
var texture = this.textures[textureIndex];
|
|
190
|
-
var
|
|
191
|
-
|
|
210
|
+
var textureData = textureDataArrays[textureIndex];
|
|
211
|
+
var bandCount = textureData.length / pixelCount;
|
|
212
|
+
uploadDataTexture(helper, texture, textureData, this.size, bandCount);
|
|
192
213
|
}
|
|
193
214
|
};
|
|
194
215
|
TileTexture.prototype.handleTileChange_ = function () {
|
package/webgl/TileTexture.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TileTexture.js","sourceRoot":"","sources":["../src/webgl/TileTexture.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TileTexture.js","sourceRoot":"","sources":["../src/webgl/TileTexture.js"],"names":[],"mappings":"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"}
|