ol 10.0.1-dev.1723471742506 → 10.0.1-dev.1723624515788
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/dist/ol.js +1 -1
- package/dist/ol.js.map +1 -1
- package/expr/gpu.d.ts.map +1 -1
- package/expr/gpu.js +3 -9
- package/package.json +2 -1
- package/util.js +1 -1
- package/webgl/ShaderBuilder.d.ts +5 -1
- package/webgl/ShaderBuilder.d.ts.map +1 -1
- package/webgl/ShaderBuilder.js +13 -9
- package/webgl/styleparser.js +9 -9
package/expr/gpu.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gpu.d.ts","sourceRoot":"","sources":["gpu.js"],"names":[],"mappings":"AA8BA;;;;GAIG;AACH,gCAHW,MAAM,GACL,MAAM,CAKjB;AAED;;;;GAIG;AACH,mCAHW,KAAK,CAAC,MAAM,CAAC,GACZ,MAAM,CASjB;AAED;;;;;;GAMG;AACH,mCALW,MAAM,GAAC,OAAO,aAAa,EAAE,KAAK,GAGjC,MAAM,
|
|
1
|
+
{"version":3,"file":"gpu.d.ts","sourceRoot":"","sources":["gpu.js"],"names":[],"mappings":"AA8BA;;;;GAIG;AACH,gCAHW,MAAM,GACL,MAAM,CAKjB;AAED;;;;GAIG;AACH,mCAHW,KAAK,CAAC,MAAM,CAAC,GACZ,MAAM,CASjB;AAED;;;;;;GAMG;AACH,mCALW,MAAM,GAAC,OAAO,aAAa,EAAE,KAAK,GAGjC,MAAM,CAMjB;AAED;;;;GAIG;AACH,iCAHW,MAAM,GAAC,OAAO,YAAY,EAAE,IAAI,GAC/B,MAAM,CAKjB;AAMD;;;;GAIG;AACH,kDAHW,MAAM,GACL,MAAM,CAOjB;AAED;;;;;;GAMG;AACH,qCAHW,MAAM,GACL,MAAM,CAIjB;AAED;;;;GAIG;AACH,qDAHW,MAAM,GACL,MAAM,CAIjB;AAED;;GAEG;AACH;;;GAGG;AACH;;;GAGG;AAEH;;;;;GAKG;AAEH;;;;;GAKG;AAEH;;;;;;;;;GASG;AAEH;;GAEG;AACH,yCAFY,kBAAkB,CAW7B;AAMD;;GAEG;AAEH;;;GAGG;AAEH;;;;;;GAMG;AACH,yCANW,OAAO,iBAAiB,EAAE,iBAAiB,QAC3C,MAAM,kBACN,OAAO,iBAAiB,EAAE,cAAc,sBACxC,kBAAkB,GACjB,kBAAkB,CAU7B;AA1BD,wDAAyD;6BApD5C,OAAO,iBAAiB,EAAE,cAAc;yBAIxC,OAAO,iBAAiB,EAAE,UAAU;gCAIpC,OAAO,iBAAiB,EAAE,iBAAiB;;;;;UAK1C,MAAM;;;;UACN,MAAM;;;;wBACG,OAAO,eAAe,EAAE,WAAW,KAAG,GAAC;;;;;;UAKhD,MAAM;;;;UACN,MAAM;;;;gCACY,GAAC;;;;;;;;;;gBAMnB;YAAO,MAAM,GAAE,0BAA0B;KAAC;;;;eAC1C;YAAO,MAAM,GAAE,0BAA0B;KAAC;;;;eAC1C;YAAO,MAAM,GAAE,MAAM;KAAC;;;;;;;;;;;;WAGtB,OAAO,mBAAmB,EAAE,UAAU;;iCAsBvC,MAAM;;;;uBAIN,CAAS,IAAkB,EAAlB,kBAAkB,EAAE,IAAc,EAAd,cAAc,EAAE,IAAM,EAAN,MAAM,KAAG,MAAM;2BA1K9C,4BAA4B;+BAahD,iBAAiB"}
|
package/expr/gpu.js
CHANGED
|
@@ -62,13 +62,7 @@ export function arrayToGlsl(array) {
|
|
|
62
62
|
export function colorToGlsl(color) {
|
|
63
63
|
const array = asArray(color);
|
|
64
64
|
const alpha = array.length > 3 ? array[3] : 1;
|
|
65
|
-
|
|
66
|
-
return arrayToGlsl([
|
|
67
|
-
(array[0] / 255) * alpha,
|
|
68
|
-
(array[1] / 255) * alpha,
|
|
69
|
-
(array[2] / 255) * alpha,
|
|
70
|
-
alpha,
|
|
71
|
-
]);
|
|
65
|
+
return arrayToGlsl([array[0] / 255, array[1] / 255, array[2] / 255, alpha]);
|
|
72
66
|
}
|
|
73
67
|
|
|
74
68
|
/**
|
|
@@ -371,14 +365,14 @@ ${tests.join('\n')}
|
|
|
371
365
|
}
|
|
372
366
|
if (compiledArgs.length === 2) {
|
|
373
367
|
//grayscale with alpha
|
|
374
|
-
return `
|
|
368
|
+
return `vec4(vec3(${compiledArgs[0]} / 255.0), ${compiledArgs[1]})`;
|
|
375
369
|
}
|
|
376
370
|
const rgb = compiledArgs.slice(0, 3).map((color) => `${color} / 255.0`);
|
|
377
371
|
if (compiledArgs.length === 3) {
|
|
378
372
|
return `vec4(${rgb.join(', ')}, 1.0)`;
|
|
379
373
|
}
|
|
380
374
|
const alpha = compiledArgs[3];
|
|
381
|
-
return `
|
|
375
|
+
return `vec4(${rgb.join(', ')}, ${alpha})`;
|
|
382
376
|
}),
|
|
383
377
|
[Ops.Band]: createCompiler(([band, xOffset, yOffset], context) => {
|
|
384
378
|
if (!(GET_BAND_VALUE_FUNC in context.functions)) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ol",
|
|
3
|
-
"version": "10.0.1-dev.
|
|
3
|
+
"version": "10.0.1-dev.1723624515788",
|
|
4
4
|
"description": "OpenLayers mapping library",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"map",
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"url": "https://opencollective.com/openlayers"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
+
"@types/rbush": "^3.0.3",
|
|
25
26
|
"color-rgba": "^3.0.0",
|
|
26
27
|
"color-space": "^2.0.1",
|
|
27
28
|
"earcut": "^3.0.0",
|
package/util.js
CHANGED
package/webgl/ShaderBuilder.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const COMMON_HEADER: "#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_screenToWorldMatrix;\nuniform vec2 u_viewportSizePx;\nuniform float u_pixelRatio;\nuniform float u_globalAlpha;\nuniform float u_time;\nuniform float u_zoom;\nuniform float u_resolution;\nuniform float u_rotation;\nuniform vec4 u_renderExtent;\nuniform vec2 u_patternOrigin;\nuniform float u_depth;\nuniform mediump int u_hitDetection;\n\nconst float PI = 3.141592653589793238;\nconst float TWO_PI = 2.0 * PI;\n
|
|
1
|
+
export const COMMON_HEADER: "#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nuniform mat4 u_projectionMatrix;\nuniform mat4 u_screenToWorldMatrix;\nuniform vec2 u_viewportSizePx;\nuniform float u_pixelRatio;\nuniform float u_globalAlpha;\nuniform float u_time;\nuniform float u_zoom;\nuniform float u_resolution;\nuniform float u_rotation;\nuniform vec4 u_renderExtent;\nuniform vec2 u_patternOrigin;\nuniform float u_depth;\nuniform mediump int u_hitDetection;\n\nconst float PI = 3.141592653589793238;\nconst float TWO_PI = 2.0 * PI;\n";
|
|
2
2
|
/**
|
|
3
3
|
* @typedef {Object} VaryingDescription
|
|
4
4
|
* @property {string} name Varying name, as will be declared in the header.
|
|
@@ -19,6 +19,10 @@ export const COMMON_HEADER: "#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp
|
|
|
19
19
|
* .setSymbolSizeExpression('...')
|
|
20
20
|
* .getSymbolFragmentShader();
|
|
21
21
|
* ```
|
|
22
|
+
*
|
|
23
|
+
* A note on [alpha premultiplication](https://en.wikipedia.org/wiki/Alpha_compositing#Straight_versus_premultiplied):
|
|
24
|
+
* The ShaderBuilder class expects all colors to **not having been alpha-premultiplied!** This is because alpha
|
|
25
|
+
* premultiplication is done at the end of each fragment shader.
|
|
22
26
|
*/
|
|
23
27
|
export class ShaderBuilder {
|
|
24
28
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShaderBuilder.d.ts","sourceRoot":"","sources":["ShaderBuilder.js"],"names":[],"mappings":"AAQA
|
|
1
|
+
{"version":3,"file":"ShaderBuilder.d.ts","sourceRoot":"","sources":["ShaderBuilder.js"],"names":[],"mappings":"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"}
|
package/webgl/ShaderBuilder.js
CHANGED
|
@@ -27,12 +27,6 @@ uniform mediump int u_hitDetection;
|
|
|
27
27
|
|
|
28
28
|
const float PI = 3.141592653589793238;
|
|
29
29
|
const float TWO_PI = 2.0 * PI;
|
|
30
|
-
|
|
31
|
-
// this used to produce an alpha-premultiplied color from a texture
|
|
32
|
-
vec4 samplePremultiplied(sampler2D sampler, vec2 texCoord) {
|
|
33
|
-
vec4 color = texture2D(sampler, texCoord);
|
|
34
|
-
return vec4(color.rgb * color.a, color.a);
|
|
35
|
-
}
|
|
36
30
|
`;
|
|
37
31
|
|
|
38
32
|
const DEFAULT_STYLE = createDefaultStyle();
|
|
@@ -58,6 +52,10 @@ const DEFAULT_STYLE = createDefaultStyle();
|
|
|
58
52
|
* .setSymbolSizeExpression('...')
|
|
59
53
|
* .getSymbolFragmentShader();
|
|
60
54
|
* ```
|
|
55
|
+
*
|
|
56
|
+
* A note on [alpha premultiplication](https://en.wikipedia.org/wiki/Alpha_compositing#Straight_versus_premultiplied):
|
|
57
|
+
* The ShaderBuilder class expects all colors to **not having been alpha-premultiplied!** This is because alpha
|
|
58
|
+
* premultiplication is done at the end of each fragment shader.
|
|
61
59
|
*/
|
|
62
60
|
export class ShaderBuilder {
|
|
63
61
|
constructor() {
|
|
@@ -580,6 +578,7 @@ void main(void) {
|
|
|
580
578
|
float s = sin(v_angle);
|
|
581
579
|
coordsPx = vec2(c * coordsPx.x - s * coordsPx.y, s * coordsPx.x + c * coordsPx.y);
|
|
582
580
|
gl_FragColor = ${this.symbolColorExpression_};
|
|
581
|
+
gl_FragColor.rgb *= gl_FragColor.a;
|
|
583
582
|
if (u_hitDetection > 0) {
|
|
584
583
|
if (gl_FragColor.a < 0.05) { discard; };
|
|
585
584
|
gl_FragColor = v_prop_hitColor;
|
|
@@ -843,7 +842,7 @@ void main(void) {
|
|
|
843
842
|
float currentLengthPx = max(0., min(dot(segmentTangent, startToPoint), segmentLength)) + v_distanceOffsetPx;
|
|
844
843
|
float currentRadiusPx = abs(dot(segmentNormal, startToPoint));
|
|
845
844
|
float currentRadiusRatio = dot(segmentNormal, startToPoint) * 2. / v_width;
|
|
846
|
-
vec4 color = ${this.strokeColorExpression_}
|
|
845
|
+
vec4 color = ${this.strokeColorExpression_};
|
|
847
846
|
float capType = ${this.strokeCapExpression_};
|
|
848
847
|
float joinType = ${this.strokeJoinExpression_};
|
|
849
848
|
float segmentStartDistance = computeSegmentPointDistance(currentPoint, v_segmentStart, v_segmentEnd, v_width, v_angleStart, capType, joinType);
|
|
@@ -853,7 +852,10 @@ void main(void) {
|
|
|
853
852
|
max(segmentStartDistance, segmentEndDistance)
|
|
854
853
|
);
|
|
855
854
|
distance = max(distance, ${this.strokeDistanceFieldExpression_});
|
|
856
|
-
|
|
855
|
+
color.a *= smoothstep(0.5, -0.5, distance);
|
|
856
|
+
gl_FragColor = color;
|
|
857
|
+
gl_FragColor.a *= u_globalAlpha;
|
|
858
|
+
gl_FragColor.rgb *= gl_FragColor.a;
|
|
857
859
|
if (u_hitDetection > 0) {
|
|
858
860
|
if (gl_FragColor.a < 0.1) { discard; };
|
|
859
861
|
gl_FragColor = v_prop_hitColor;
|
|
@@ -951,7 +953,9 @@ void main(void) {
|
|
|
951
953
|
}
|
|
952
954
|
#endif
|
|
953
955
|
if (${this.discardExpression_}) { discard; }
|
|
954
|
-
gl_FragColor = ${this.fillColorExpression_}
|
|
956
|
+
gl_FragColor = ${this.fillColorExpression_};
|
|
957
|
+
gl_FragColor.a *= u_globalAlpha;
|
|
958
|
+
gl_FragColor.rgb *= gl_FragColor.a;
|
|
955
959
|
if (u_hitDetection > 0) {
|
|
956
960
|
if (gl_FragColor.a < 0.1) { discard; };
|
|
957
961
|
gl_FragColor = v_prop_hitColor;
|
package/webgl/styleparser.js
CHANGED
|
@@ -53,11 +53,11 @@ export function packColor(color) {
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
const UNPACK_COLOR_FN = `vec4 unpackColor(vec2 packedColor) {
|
|
56
|
-
return
|
|
56
|
+
return vec4(
|
|
57
57
|
fract(floor(packedColor[0] / 256.0) / 256.0),
|
|
58
58
|
fract(packedColor[0] / 256.0),
|
|
59
59
|
fract(floor(packedColor[1] / 256.0) / 256.0),
|
|
60
|
-
1.0
|
|
60
|
+
fract(packedColor[1] / 256.0)
|
|
61
61
|
);
|
|
62
62
|
}`;
|
|
63
63
|
|
|
@@ -182,9 +182,9 @@ function getColorFromDistanceField(
|
|
|
182
182
|
color = `mix(${strokeColor}, ${color}, ${strokeFillRatio})`;
|
|
183
183
|
}
|
|
184
184
|
const shapeOpacity = `(1.0 - smoothstep(-0.63, 0.58, ${distanceField}))`;
|
|
185
|
-
let result = `${color} * ${shapeOpacity}`;
|
|
185
|
+
let result = `${color} * vec4(1.0, 1.0, 1.0, ${shapeOpacity})`;
|
|
186
186
|
if (opacity !== null) {
|
|
187
|
-
result = `${result} * ${opacity}`;
|
|
187
|
+
result = `${result} * vec4(1.0, 1.0, 1.0, ${opacity})`;
|
|
188
188
|
}
|
|
189
189
|
return result;
|
|
190
190
|
}
|
|
@@ -511,11 +511,11 @@ function parseIconProperties(
|
|
|
511
511
|
|
|
512
512
|
// OPACITY
|
|
513
513
|
if ('icon-opacity' in style) {
|
|
514
|
-
color = `${color} * ${expressionToGlsl(
|
|
514
|
+
color = `${color} * vec4(1.0, 1.0, 1.0, ${expressionToGlsl(
|
|
515
515
|
fragContext,
|
|
516
516
|
style['icon-opacity'],
|
|
517
517
|
NumberType,
|
|
518
|
-
)}`;
|
|
518
|
+
)})`;
|
|
519
519
|
}
|
|
520
520
|
|
|
521
521
|
// IMAGE & SIZE
|
|
@@ -529,7 +529,7 @@ function parseIconProperties(
|
|
|
529
529
|
);
|
|
530
530
|
builder
|
|
531
531
|
.setSymbolColorExpression(
|
|
532
|
-
`${color} *
|
|
532
|
+
`${color} * texture2D(u_texture${textureId}, v_texCoord)`,
|
|
533
533
|
)
|
|
534
534
|
.setSymbolSizeExpression(sizeExpression);
|
|
535
535
|
|
|
@@ -673,7 +673,7 @@ function parseStrokeProperties(
|
|
|
673
673
|
uCoordPx = clamp(uCoordPx, 0.5, sampleSize.x - 0.5);
|
|
674
674
|
float vCoordPx = (-currentRadiusRatio * 0.5 + 0.5) * sampleSize.y;
|
|
675
675
|
vec2 texCoord = (vec2(uCoordPx, vCoordPx) + textureOffset) / textureSize;
|
|
676
|
-
return
|
|
676
|
+
return texture2D(texture, texCoord);
|
|
677
677
|
}`;
|
|
678
678
|
const textureName = `u_texture${textureId}`;
|
|
679
679
|
let tintExpression = '1.';
|
|
@@ -832,7 +832,7 @@ function parseFillProperties(
|
|
|
832
832
|
// also make sure that we're not sampling too close to the borders to avoid interpolation with outside pixels
|
|
833
833
|
samplePos = clamp(samplePos, vec2(0.5), sampleSize - vec2(0.5));
|
|
834
834
|
samplePos.y = sampleSize.y - samplePos.y; // invert y axis so that images appear upright
|
|
835
|
-
return
|
|
835
|
+
return texture2D(texture, (samplePos + textureOffset) / textureSize);
|
|
836
836
|
}`;
|
|
837
837
|
const textureName = `u_texture${textureId}`;
|
|
838
838
|
let tintExpression = '1.';
|