@deck.gl/extensions 9.0.40 → 9.1.0-beta.3
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/brushing/brushing-extension.d.ts +1 -0
- package/dist/brushing/brushing-extension.d.ts.map +1 -1
- package/dist/brushing/brushing-extension.js +16 -19
- package/dist/brushing/brushing-extension.js.map +1 -0
- package/dist/brushing/shader-module.d.ts +8 -2
- package/dist/brushing/shader-module.d.ts.map +1 -1
- package/dist/brushing/shader-module.js +75 -50
- package/dist/brushing/shader-module.js.map +1 -0
- package/dist/clip/clip-extension.d.ts +5 -2
- package/dist/clip/clip-extension.d.ts.map +1 -1
- package/dist/clip/clip-extension.js +37 -42
- package/dist/clip/clip-extension.js.map +1 -0
- package/dist/collision-filter/collision-filter-effect.d.ts +4 -4
- package/dist/collision-filter/collision-filter-effect.d.ts.map +1 -1
- package/dist/collision-filter/collision-filter-effect.js +28 -13
- package/dist/collision-filter/collision-filter-effect.js.map +1 -0
- package/dist/collision-filter/collision-filter-extension.d.ts +1 -1
- package/dist/collision-filter/collision-filter-extension.d.ts.map +1 -1
- package/dist/collision-filter/collision-filter-extension.js +6 -6
- package/dist/collision-filter/collision-filter-extension.js.map +1 -0
- package/dist/collision-filter/collision-filter-pass.d.ts +9 -5
- package/dist/collision-filter/collision-filter-pass.d.ts.map +1 -1
- package/dist/collision-filter/collision-filter-pass.js +15 -4
- package/dist/collision-filter/collision-filter-pass.js.map +1 -0
- package/dist/collision-filter/shader-module.d.ts +3 -2
- package/dist/collision-filter/shader-module.d.ts.map +1 -1
- package/dist/collision-filter/shader-module.js +75 -52
- package/dist/collision-filter/shader-module.js.map +1 -0
- package/dist/data-filter/aggregator.d.ts +4 -10
- package/dist/data-filter/aggregator.d.ts.map +1 -1
- package/dist/data-filter/aggregator.js +15 -8
- package/dist/data-filter/aggregator.js.map +1 -0
- package/dist/data-filter/data-filter-extension.d.ts.map +1 -1
- package/dist/data-filter/data-filter-extension.js +49 -39
- package/dist/data-filter/data-filter-extension.js.map +1 -0
- package/dist/data-filter/shader-module.d.ts +12 -5
- package/dist/data-filter/shader-module.d.ts.map +1 -1
- package/dist/data-filter/shader-module.js +190 -131
- package/dist/data-filter/shader-module.js.map +1 -0
- package/dist/dist.dev.js +2720 -2037
- package/dist/fill-style/fill-style-extension.d.ts.map +1 -1
- package/dist/fill-style/fill-style-extension.js +12 -4
- package/dist/fill-style/fill-style-extension.js.map +1 -0
- package/dist/fill-style/shader-module.d.ts +64 -6
- package/dist/fill-style/shader-module.d.ts.map +1 -1
- package/dist/fill-style/shader-module.js +74 -51
- package/dist/fill-style/shader-module.js.map +1 -0
- package/dist/fp64/fp64-extension.d.ts +1 -0
- package/dist/fp64/fp64-extension.d.ts.map +1 -1
- package/dist/fp64/fp64-extension.js +8 -19
- package/dist/fp64/fp64-extension.js.map +1 -0
- package/dist/fp64/project64.d.ts +2 -2
- package/dist/fp64/project64.d.ts.map +1 -1
- package/dist/fp64/project64.glsl.d.ts +1 -1
- package/dist/fp64/project64.glsl.d.ts.map +1 -1
- package/dist/fp64/project64.glsl.js +19 -21
- package/dist/fp64/project64.glsl.js.map +1 -0
- package/dist/fp64/project64.js +25 -24
- package/dist/fp64/project64.js.map +1 -0
- package/dist/index.cjs +1034 -528
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/mask/mask-effect.d.ts +5 -3
- package/dist/mask/mask-effect.d.ts.map +1 -1
- package/dist/mask/mask-effect.js +13 -5
- package/dist/mask/mask-effect.js.map +1 -0
- package/dist/mask/mask-extension.d.ts +1 -1
- package/dist/mask/mask-extension.d.ts.map +1 -1
- package/dist/mask/mask-extension.js +14 -8
- package/dist/mask/mask-extension.js.map +1 -0
- package/dist/mask/mask-pass.d.ts +2 -43
- package/dist/mask/mask-pass.d.ts.map +1 -1
- package/dist/mask/mask-pass.js +5 -1
- package/dist/mask/mask-pass.js.map +1 -0
- package/dist/mask/shader-module.d.ts +60 -3
- package/dist/mask/shader-module.d.ts.map +1 -1
- package/dist/mask/shader-module.js +74 -46
- package/dist/mask/shader-module.js.map +1 -0
- package/dist/path-style/path-style-extension.d.ts.map +1 -1
- package/dist/path-style/path-style-extension.js +21 -24
- package/dist/path-style/path-style-extension.js.map +1 -0
- package/dist/path-style/shaders.glsl.d.ts.map +1 -1
- package/dist/path-style/shaders.glsl.js +12 -7
- package/dist/path-style/shaders.glsl.js.map +1 -0
- package/dist/terrain/height-map-builder.d.ts.map +1 -1
- package/dist/terrain/height-map-builder.js +4 -0
- package/dist/terrain/height-map-builder.js.map +1 -0
- package/dist/terrain/shader-module.d.ts +60 -6
- package/dist/terrain/shader-module.d.ts.map +1 -1
- package/dist/terrain/shader-module.js +70 -61
- package/dist/terrain/shader-module.js.map +1 -0
- package/dist/terrain/terrain-cover.d.ts.map +1 -1
- package/dist/terrain/terrain-cover.js +4 -0
- package/dist/terrain/terrain-cover.js.map +1 -0
- package/dist/terrain/terrain-effect.d.ts +4 -2
- package/dist/terrain/terrain-effect.d.ts.map +1 -1
- package/dist/terrain/terrain-effect.js +32 -18
- package/dist/terrain/terrain-effect.js.map +1 -0
- package/dist/terrain/terrain-extension.d.ts.map +1 -1
- package/dist/terrain/terrain-extension.js +4 -0
- package/dist/terrain/terrain-extension.js.map +1 -0
- package/dist/terrain/terrain-pass.d.ts +6 -41
- package/dist/terrain/terrain-pass.d.ts.map +1 -1
- package/dist/terrain/terrain-pass.js +12 -1
- package/dist/terrain/terrain-pass.js.map +1 -0
- package/dist/terrain/terrain-picking-pass.d.ts +7 -1
- package/dist/terrain/terrain-picking-pass.d.ts.map +1 -1
- package/dist/terrain/terrain-picking-pass.js +12 -1
- package/dist/terrain/terrain-picking-pass.js.map +1 -0
- package/dist/terrain/utils.d.ts.map +1 -1
- package/dist/terrain/utils.js +4 -0
- package/dist/terrain/utils.js.map +1 -0
- package/dist/utils/debug.d.ts +2 -2
- package/dist/utils/debug.d.ts.map +1 -1
- package/dist/utils/debug.js +4 -1
- package/dist/utils/debug.js.map +1 -0
- package/dist/utils/projection-utils.d.ts.map +1 -1
- package/dist/utils/projection-utils.js +4 -0
- package/dist/utils/projection-utils.js.map +1 -0
- package/dist.min.js +1102 -817
- package/package.json +8 -8
- package/src/brushing/brushing-extension.ts +17 -20
- package/src/brushing/shader-module.ts +58 -47
- package/src/clip/clip-extension.ts +38 -40
- package/src/collision-filter/collision-filter-effect.ts +31 -20
- package/src/collision-filter/collision-filter-extension.ts +6 -7
- package/src/collision-filter/collision-filter-pass.ts +17 -6
- package/src/collision-filter/shader-module.ts +40 -22
- package/src/data-filter/aggregator.ts +23 -11
- package/src/data-filter/data-filter-extension.ts +76 -49
- package/src/data-filter/shader-module.ts +150 -90
- package/src/fill-style/fill-style-extension.ts +13 -5
- package/src/fill-style/shader-module.ts +84 -52
- package/src/fp64/fp64-extension.ts +8 -19
- package/src/fp64/project64.glsl.ts +18 -21
- package/src/fp64/project64.ts +27 -28
- package/src/index.ts +5 -0
- package/src/mask/mask-effect.ts +17 -7
- package/src/mask/mask-extension.ts +16 -9
- package/src/mask/mask-pass.ts +17 -3
- package/src/mask/shader-module.ts +63 -27
- package/src/path-style/path-style-extension.ts +27 -28
- package/src/path-style/shaders.glsl.ts +13 -7
- package/src/terrain/height-map-builder.ts +4 -0
- package/src/terrain/shader-module.ts +62 -44
- package/src/terrain/terrain-cover.ts +4 -0
- package/src/terrain/terrain-effect.ts +36 -19
- package/src/terrain/terrain-extension.ts +4 -0
- package/src/terrain/terrain-pass.ts +19 -3
- package/src/terrain/terrain-picking-pass.ts +15 -2
- package/src/terrain/utils.ts +4 -0
- package/src/utils/debug.ts +4 -0
- package/src/utils/projection-utils.ts +4 -0
- package/dist/utils/syntax-tags.d.ts +0 -6
- package/dist/utils/syntax-tags.d.ts.map +0 -1
- package/dist/utils/syntax-tags.js +0 -5
- package/src/utils/syntax-tags.ts +0 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fill-style-extension.d.ts","sourceRoot":"","sources":["../../src/fill-style/fill-style-extension.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fill-style-extension.d.ts","sourceRoot":"","sources":["../../src/fill-style/fill-style-extension.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAI7C,OAAO,KAAK,EACV,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAkBvB,MAAM,MAAM,uBAAuB,CAAC,KAAK,GAAG,GAAG,IAAI;IACjD;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IAC1C,wFAAwF;IACxF,kBAAkB,CAAC,EACf,MAAM,GACN,MAAM,CACJ,MAAM,EACN;QACE,gDAAgD;QAChD,CAAC,EAAE,MAAM,CAAC;QACV,+CAA+C;QAC/C,CAAC,EAAE,MAAM,CAAC;QACV,2BAA2B;QAC3B,KAAK,EAAE,MAAM,CAAC;QACd,4BAA4B;QAC5B,MAAM,EAAE,MAAM,CAAC;KAChB,CACF,CAAC;IACN;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4CAA4C;IAC5C,cAAc,CAAC,EAAE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjD;;OAEG;IACH,mBAAmB,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9C;;;OAGG;IACH,oBAAoB,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,gHAAgH;AAChH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,cAAc,CAAC,yBAAyB,CAAC;IACvF,MAAM,CAAC,YAAY,6CAAgB;IACnC,MAAM,CAAC,aAAa,SAAwB;gBAEhC,EAAC,OAAe,EAAC,GAAE,OAAO,CAAC,yBAAyB,CAAM;IAItE,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,uBAAuB,CAAC,GAAG,OAAO;IAIzD,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,uBAAuB,CAAC,EAAE,SAAS,EAAE,IAAI,GAAG,GAAG;IAUtE,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI;IAqC5F,WAAW,CACT,IAAI,EAAE,KAAK,CAAC,uBAAuB,CAAC,EACpC,EAAC,KAAK,EAAE,QAAQ,EAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,EACnE,SAAS,EAAE,IAAI;IAWjB,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI;IAevE,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,uBAAuB,CAAC;IAKlD,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,MAAM;CAKnE"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { LayerExtension } from '@deck.gl/core';
|
|
2
5
|
import { patternShaders } from "./shader-module.js";
|
|
3
6
|
const defaultProps = {
|
|
@@ -76,10 +79,14 @@ class FillStyleExtension extends LayerExtension {
|
|
|
76
79
|
if (!extension.isEnabled(this)) {
|
|
77
80
|
return;
|
|
78
81
|
}
|
|
79
|
-
const { fillPatternAtlas } = this.props;
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
const { fillPatternAtlas, fillPatternEnabled, fillPatternMask } = this.props;
|
|
83
|
+
const fillProps = {
|
|
84
|
+
project: params.shaderModuleProps.project,
|
|
85
|
+
fillPatternEnabled,
|
|
86
|
+
fillPatternMask,
|
|
87
|
+
fillPatternTexture: (fillPatternAtlas || this.state.emptyTexture)
|
|
88
|
+
};
|
|
89
|
+
this.setShaderModuleProps({ fill: fillProps });
|
|
83
90
|
}
|
|
84
91
|
finalizeState() {
|
|
85
92
|
const emptyTexture = this.state.emptyTexture;
|
|
@@ -94,3 +101,4 @@ class FillStyleExtension extends LayerExtension {
|
|
|
94
101
|
FillStyleExtension.defaultProps = defaultProps;
|
|
95
102
|
FillStyleExtension.extensionName = 'FillStyleExtension';
|
|
96
103
|
export default FillStyleExtension;
|
|
104
|
+
//# sourceMappingURL=fill-style-extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fill-style-extension.js","sourceRoot":"","sources":["../../src/fill-style/fill-style-extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,71 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { Viewport } from '@deck.gl/core';
|
|
1
|
+
import type { ProjectProps } from '@deck.gl/core';
|
|
3
2
|
import type { Texture } from '@luma.gl/core';
|
|
4
|
-
type
|
|
5
|
-
|
|
3
|
+
export type FillStyleModuleProps = {
|
|
4
|
+
project: ProjectProps;
|
|
6
5
|
fillPatternEnabled?: boolean;
|
|
7
6
|
fillPatternMask?: boolean;
|
|
8
|
-
} | {
|
|
9
7
|
fillPatternTexture: Texture;
|
|
10
8
|
};
|
|
11
|
-
|
|
9
|
+
type FillStyleModuleUniforms = {
|
|
10
|
+
patternTextureSize?: [number, number];
|
|
11
|
+
patternEnabled?: boolean;
|
|
12
|
+
patternMask?: boolean;
|
|
13
|
+
uvCoordinateOrigin?: [number, number];
|
|
14
|
+
uvCoordinateOrigin64Low?: [number, number];
|
|
15
|
+
};
|
|
16
|
+
type FillStyleModuleBindings = {
|
|
17
|
+
fill_patternTexture?: Texture;
|
|
18
|
+
};
|
|
19
|
+
declare function getPatternUniforms(opts?: FillStyleModuleProps | {}): FillStyleModuleBindings & FillStyleModuleUniforms;
|
|
20
|
+
export declare const patternShaders: {
|
|
21
|
+
readonly name: "fill";
|
|
22
|
+
readonly vs: "\nuniform fillUniforms {\n vec2 patternTextureSize;\n bool patternEnabled;\n bool patternMask;\n vec2 uvCoordinateOrigin;\n vec2 uvCoordinateOrigin64Low;\n} fill;\n\n\nin vec4 fillPatternFrames;\nin float fillPatternScales;\nin vec2 fillPatternOffsets;\n\nout vec2 fill_uv;\nout vec4 fill_patternBounds;\nout vec4 fill_patternPlacement;\n\n";
|
|
23
|
+
readonly fs: "\nuniform fillUniforms {\n vec2 patternTextureSize;\n bool patternEnabled;\n bool patternMask;\n vec2 uvCoordinateOrigin;\n vec2 uvCoordinateOrigin64Low;\n} fill;\n\n\nuniform sampler2D fill_patternTexture;\n\nin vec4 fill_patternBounds;\nin vec4 fill_patternPlacement;\nin vec2 fill_uv;\n\nconst float FILL_UV_SCALE = 512.0 / 40000000.0;\n\n";
|
|
24
|
+
readonly inject: {
|
|
25
|
+
'vs:DECKGL_FILTER_GL_POSITION': string;
|
|
26
|
+
'vs:DECKGL_FILTER_COLOR': string;
|
|
27
|
+
'fs:DECKGL_FILTER_COLOR': string;
|
|
28
|
+
};
|
|
29
|
+
readonly dependencies: [{
|
|
30
|
+
readonly name: "project";
|
|
31
|
+
readonly dependencies: [{
|
|
32
|
+
name: string;
|
|
33
|
+
vs: string;
|
|
34
|
+
}, {
|
|
35
|
+
readonly name: "geometry";
|
|
36
|
+
readonly vs: "\n#define SMOOTH_EDGE_RADIUS 0.5\n\nstruct VertexGeometry {\n vec4 position;\n vec3 worldPosition;\n vec3 worldPositionAlt;\n vec3 normal;\n vec2 uv;\n vec3 pickingColor;\n} geometry = VertexGeometry(\n vec4(0.0, 0.0, 1.0, 0.0),\n vec3(0.0),\n vec3(0.0),\n vec3(0.0),\n vec2(0.0),\n vec3(0.0)\n);\n";
|
|
37
|
+
readonly fs: "\n#define SMOOTH_EDGE_RADIUS 0.5\n\nstruct FragmentGeometry {\n vec2 uv;\n} geometry;\n\nfloat smoothedge(float edge, float x) {\n return smoothstep(edge - SMOOTH_EDGE_RADIUS, edge + SMOOTH_EDGE_RADIUS, x);\n}\n";
|
|
38
|
+
}];
|
|
39
|
+
readonly vs: string;
|
|
40
|
+
readonly getUniforms: (opts?: ProjectProps | {}) => {};
|
|
41
|
+
readonly uniformTypes: {
|
|
42
|
+
readonly wrapLongitude: "f32";
|
|
43
|
+
readonly coordinateSystem: "i32";
|
|
44
|
+
readonly commonUnitsPerMeter: "vec3<f32>";
|
|
45
|
+
readonly projectionMode: "i32";
|
|
46
|
+
readonly scale: "f32";
|
|
47
|
+
readonly commonUnitsPerWorldUnit: "vec3<f32>";
|
|
48
|
+
readonly commonUnitsPerWorldUnit2: "vec3<f32>";
|
|
49
|
+
readonly center: "vec4<f32>";
|
|
50
|
+
readonly modelMatrix: "mat4x4<f32>";
|
|
51
|
+
readonly viewProjectionMatrix: "mat4x4<f32>";
|
|
52
|
+
readonly viewportSize: "vec2<f32>";
|
|
53
|
+
readonly devicePixelRatio: "f32";
|
|
54
|
+
readonly focalDistance: "f32";
|
|
55
|
+
readonly cameraPosition: "vec3<f32>";
|
|
56
|
+
readonly coordinateOrigin: "vec3<f32>";
|
|
57
|
+
readonly commonOrigin: "vec3<f32>";
|
|
58
|
+
readonly pseudoMeters: "f32";
|
|
59
|
+
};
|
|
60
|
+
}];
|
|
61
|
+
readonly getUniforms: typeof getPatternUniforms;
|
|
62
|
+
readonly uniformTypes: {
|
|
63
|
+
readonly patternTextureSize: "vec2<f32>";
|
|
64
|
+
readonly patternEnabled: "i32";
|
|
65
|
+
readonly patternMask: "i32";
|
|
66
|
+
readonly uvCoordinateOrigin: "vec2<f32>";
|
|
67
|
+
readonly uvCoordinateOrigin64Low: "vec2<f32>";
|
|
68
|
+
};
|
|
69
|
+
};
|
|
12
70
|
export {};
|
|
13
71
|
//# sourceMappingURL=shader-module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shader-module.d.ts","sourceRoot":"","sources":["../../src/fill-style/shader-module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shader-module.d.ts","sourceRoot":"","sources":["../../src/fill-style/shader-module.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,YAAY,EAAkB,MAAM,eAAe,CAAC;AAEjE,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AA2E3C,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,YAAY,CAAC;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAGF,iBAAS,kBAAkB,CACzB,IAAI,CAAC,EAAE,oBAAoB,GAAG,EAAE,GAC/B,uBAAuB,GAAG,uBAAuB,CA0BnD;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkB1B,CAAC"}
|
|
@@ -1,88 +1,111 @@
|
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { project, fp64LowPart } from '@deck.gl/core';
|
|
2
|
-
|
|
5
|
+
const uniformBlock = /* glsl */ `\
|
|
6
|
+
uniform fillUniforms {
|
|
7
|
+
vec2 patternTextureSize;
|
|
8
|
+
bool patternEnabled;
|
|
9
|
+
bool patternMask;
|
|
10
|
+
vec2 uvCoordinateOrigin;
|
|
11
|
+
vec2 uvCoordinateOrigin64Low;
|
|
12
|
+
} fill;
|
|
13
|
+
`;
|
|
3
14
|
/*
|
|
4
15
|
* fill pattern shader module
|
|
5
16
|
*/
|
|
6
|
-
const patternVs = `
|
|
17
|
+
const patternVs = /* glsl */ `
|
|
7
18
|
in vec4 fillPatternFrames;
|
|
8
19
|
in float fillPatternScales;
|
|
9
20
|
in vec2 fillPatternOffsets;
|
|
10
|
-
|
|
11
|
-
uniform vec2 fill_patternTextureSize;
|
|
21
|
+
|
|
12
22
|
out vec2 fill_uv;
|
|
13
23
|
out vec4 fill_patternBounds;
|
|
14
24
|
out vec4 fill_patternPlacement;
|
|
15
25
|
`;
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
26
|
+
const vs = `
|
|
27
|
+
${uniformBlock}
|
|
28
|
+
${patternVs}
|
|
29
|
+
`;
|
|
30
|
+
const patternFs = /* glsl */ `
|
|
19
31
|
uniform sampler2D fill_patternTexture;
|
|
20
|
-
|
|
21
|
-
uniform vec2 fill_uvCoordinateOrigin64Low;
|
|
32
|
+
|
|
22
33
|
in vec4 fill_patternBounds;
|
|
23
34
|
in vec4 fill_patternPlacement;
|
|
24
35
|
in vec2 fill_uv;
|
|
36
|
+
|
|
25
37
|
const float FILL_UV_SCALE = 512.0 / 40000000.0;
|
|
26
38
|
`;
|
|
39
|
+
const fs = `
|
|
40
|
+
${uniformBlock}
|
|
41
|
+
${patternFs}
|
|
42
|
+
`;
|
|
27
43
|
const inject = {
|
|
28
|
-
'vs:DECKGL_FILTER_GL_POSITION': `
|
|
29
|
-
fill_uv = geometry.position.xy;
|
|
30
|
-
`,
|
|
31
|
-
'vs:DECKGL_FILTER_COLOR': `
|
|
32
|
-
if (
|
|
33
|
-
fill_patternBounds = fillPatternFrames / vec4(
|
|
34
|
-
fill_patternPlacement.xy = fillPatternOffsets;
|
|
35
|
-
fill_patternPlacement.zw = fillPatternScales * fillPatternFrames.zw;
|
|
36
|
-
}
|
|
37
|
-
`,
|
|
38
|
-
'fs:DECKGL_FILTER_COLOR': `
|
|
39
|
-
if (
|
|
40
|
-
vec2 scale = FILL_UV_SCALE * fill_patternPlacement.zw;
|
|
41
|
-
vec2 patternUV = mod(mod(
|
|
42
|
-
patternUV = mod(fill_patternPlacement.xy + patternUV, 1.0);
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
color.
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
44
|
+
'vs:DECKGL_FILTER_GL_POSITION': /* glsl */ `
|
|
45
|
+
fill_uv = geometry.position.xy;
|
|
46
|
+
`,
|
|
47
|
+
'vs:DECKGL_FILTER_COLOR': /* glsl */ `
|
|
48
|
+
if (fill.patternEnabled) {
|
|
49
|
+
fill_patternBounds = fillPatternFrames / vec4(fill.patternTextureSize, fill.patternTextureSize);
|
|
50
|
+
fill_patternPlacement.xy = fillPatternOffsets;
|
|
51
|
+
fill_patternPlacement.zw = fillPatternScales * fillPatternFrames.zw;
|
|
52
|
+
}
|
|
53
|
+
`,
|
|
54
|
+
'fs:DECKGL_FILTER_COLOR': /* glsl */ `
|
|
55
|
+
if (fill.patternEnabled) {
|
|
56
|
+
vec2 scale = FILL_UV_SCALE * fill_patternPlacement.zw;
|
|
57
|
+
vec2 patternUV = mod(mod(fill.uvCoordinateOrigin, scale) + fill.uvCoordinateOrigin64Low + fill_uv, scale) / scale;
|
|
58
|
+
patternUV = mod(fill_patternPlacement.xy + patternUV, 1.0);
|
|
59
|
+
|
|
60
|
+
vec2 texCoords = fill_patternBounds.xy + fill_patternBounds.zw * patternUV;
|
|
61
|
+
|
|
62
|
+
vec4 patternColor = texture(fill_patternTexture, texCoords);
|
|
63
|
+
color.a *= patternColor.a;
|
|
64
|
+
if (!fill.patternMask) {
|
|
65
|
+
color.rgb = patternColor.rgb;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
`
|
|
51
69
|
};
|
|
52
70
|
/* eslint-disable camelcase */
|
|
53
|
-
function getPatternUniforms(opts
|
|
71
|
+
function getPatternUniforms(opts) {
|
|
54
72
|
if (!opts) {
|
|
55
73
|
return {};
|
|
56
74
|
}
|
|
75
|
+
const uniforms = {};
|
|
57
76
|
if ('fillPatternTexture' in opts) {
|
|
58
77
|
const { fillPatternTexture } = opts;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
fill_patternTextureSize: [fillPatternTexture.width, fillPatternTexture.height]
|
|
62
|
-
};
|
|
78
|
+
uniforms.fill_patternTexture = fillPatternTexture;
|
|
79
|
+
uniforms.patternTextureSize = [fillPatternTexture.width, fillPatternTexture.height];
|
|
63
80
|
}
|
|
64
|
-
if ('
|
|
81
|
+
if ('project' in opts) {
|
|
65
82
|
const { fillPatternMask = true, fillPatternEnabled = true } = opts;
|
|
66
|
-
const
|
|
83
|
+
const projectUniforms = project.getUniforms(opts.project);
|
|
84
|
+
const { commonOrigin: coordinateOriginCommon } = projectUniforms;
|
|
67
85
|
const coordinateOriginCommon64Low = [
|
|
68
86
|
fp64LowPart(coordinateOriginCommon[0]),
|
|
69
87
|
fp64LowPart(coordinateOriginCommon[1])
|
|
70
88
|
];
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
fill_patternEnabled: fillPatternEnabled
|
|
76
|
-
};
|
|
89
|
+
uniforms.uvCoordinateOrigin = coordinateOriginCommon.slice(0, 2);
|
|
90
|
+
uniforms.uvCoordinateOrigin64Low = coordinateOriginCommon64Low;
|
|
91
|
+
uniforms.patternMask = fillPatternMask;
|
|
92
|
+
uniforms.patternEnabled = fillPatternEnabled;
|
|
77
93
|
}
|
|
78
|
-
return
|
|
94
|
+
return uniforms;
|
|
79
95
|
}
|
|
80
96
|
export const patternShaders = {
|
|
81
|
-
name: 'fill
|
|
82
|
-
vs
|
|
83
|
-
fs
|
|
97
|
+
name: 'fill',
|
|
98
|
+
vs,
|
|
99
|
+
fs,
|
|
84
100
|
inject,
|
|
85
101
|
dependencies: [project],
|
|
86
|
-
|
|
87
|
-
|
|
102
|
+
getUniforms: getPatternUniforms,
|
|
103
|
+
uniformTypes: {
|
|
104
|
+
patternTextureSize: 'vec2<f32>',
|
|
105
|
+
patternEnabled: 'i32',
|
|
106
|
+
patternMask: 'i32',
|
|
107
|
+
uvCoordinateOrigin: 'vec2<f32>',
|
|
108
|
+
uvCoordinateOrigin64Low: 'vec2<f32>'
|
|
109
|
+
}
|
|
88
110
|
};
|
|
111
|
+
//# sourceMappingURL=shader-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shader-module.js","sourceRoot":"","sources":["../../src/fill-style/shader-module.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,OAAO,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAKnD,MAAM,YAAY,GAAG,UAAU,CAAC;;;;;;;;CAQ/B,CAAC;AAEF;;GAEG;AACH,MAAM,SAAS,GAAG,UAAU,CAAC;;;;;;;;CAQ5B,CAAC;AAEF,MAAM,EAAE,GAAG;EACT,YAAY;EACZ,SAAS;CACV,CAAC;AAEF,MAAM,SAAS,GAAG,UAAU,CAAC;;;;;;;;CAQ5B,CAAC;AAEF,MAAM,EAAE,GAAG;EACT,YAAY;EACZ,SAAS;CACV,CAAC;AAEF,MAAM,MAAM,GAAG;IACb,8BAA8B,EAAE,UAAU,CAAC;;GAE1C;IAED,wBAAwB,EAAE,UAAU,CAAC;;;;;;GAMpC;IAED,wBAAwB,EAAE,UAAU,CAAC;;;;;;;;;;;;;;GAcpC;CACF,CAAC;AAqBF,8BAA8B;AAC9B,SAAS,kBAAkB,CACzB,IAAgC;IAEhC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,QAAQ,GAAsD,EAAE,CAAC;IACvE,IAAI,oBAAoB,IAAI,IAAI,EAAE,CAAC;QACjC,MAAM,EAAC,kBAAkB,EAAC,GAAG,IAAI,CAAC;QAClC,QAAQ,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;QAClD,QAAQ,CAAC,kBAAkB,GAAG,CAAC,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACtB,MAAM,EAAC,eAAe,GAAG,IAAI,EAAE,kBAAkB,GAAG,IAAI,EAAC,GAAG,IAAI,CAAC;QACjE,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAoB,CAAC;QAC7E,MAAM,EAAC,YAAY,EAAE,sBAAsB,EAAC,GAAG,eAAe,CAAC;QAE/D,MAAM,2BAA2B,GAAqB;YACpD,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;YACtC,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;SACvC,CAAC;QAEF,QAAQ,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAqB,CAAC;QACrF,QAAQ,CAAC,uBAAuB,GAAG,2BAA2B,CAAC;QAC/D,QAAQ,CAAC,WAAW,GAAG,eAAe,CAAC;QACvC,QAAQ,CAAC,cAAc,GAAG,kBAAkB,CAAC;IAC/C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,MAAM;IACZ,EAAE;IACF,EAAE;IACF,MAAM;IACN,YAAY,EAAE,CAAC,OAAO,CAAC;IACvB,WAAW,EAAE,kBAAkB;IAC/B,YAAY,EAAE;QACZ,kBAAkB,EAAE,WAAW;QAC/B,cAAc,EAAE,KAAK;QACrB,WAAW,EAAE,KAAK;QAClB,kBAAkB,EAAE,WAAW;QAC/B,uBAAuB,EAAE,WAAW;KACrC;CAKF,CAAC"}
|
|
@@ -4,5 +4,6 @@ import type { Layer } from '@deck.gl/core';
|
|
|
4
4
|
export default class Fp64Extension extends LayerExtension {
|
|
5
5
|
static extensionName: string;
|
|
6
6
|
getShaders(this: Layer): any;
|
|
7
|
+
draw(this: Layer, params: any, extension: this): void;
|
|
7
8
|
}
|
|
8
9
|
//# sourceMappingURL=fp64-extension.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fp64-extension.d.ts","sourceRoot":"","sources":["../../src/fp64/fp64-extension.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fp64-extension.d.ts","sourceRoot":"","sources":["../../src/fp64/fp64-extension.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,cAAc,EAAoB,MAAM,eAAe,CAAC;AAGhE,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,eAAe,CAAC;AAEzC,yEAAyE;AACzE,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,cAAc;IACvD,MAAM,CAAC,aAAa,SAAmB;IAEvC,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,GAAG;IAc5B,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI;CAItD"}
|
|
@@ -1,22 +1,6 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
|
8
|
-
// furnished to do so, subject to the following conditions:
|
|
9
|
-
//
|
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
|
11
|
-
// all copies or substantial portions of the Software.
|
|
12
|
-
//
|
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
-
// THE SOFTWARE.
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
20
4
|
import { LayerExtension, COORDINATE_SYSTEM } from '@deck.gl/core';
|
|
21
5
|
import project64 from "./project64.js";
|
|
22
6
|
/** @deprecated Adds the legacy 64-bit precision to geospatial layers. */
|
|
@@ -31,6 +15,11 @@ class Fp64Extension extends LayerExtension {
|
|
|
31
15
|
modules: [project64]
|
|
32
16
|
};
|
|
33
17
|
}
|
|
18
|
+
draw(params, extension) {
|
|
19
|
+
const { viewport } = params.context;
|
|
20
|
+
this.setShaderModuleProps({ project64: { viewport } });
|
|
21
|
+
}
|
|
34
22
|
}
|
|
35
23
|
Fp64Extension.extensionName = 'Fp64Extension';
|
|
36
24
|
export default Fp64Extension;
|
|
25
|
+
//# sourceMappingURL=fp64-extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fp64-extension.js","sourceRoot":"","sources":["../../src/fp64/fp64-extension.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,cAAc,EAAE,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAChE,OAAO,SAAS,uBAAoB;AAIpC,yEAAyE;AACzE,MAAqB,aAAc,SAAQ,cAAc;IAGvD,UAAU;QACR,MAAM,EAAC,gBAAgB,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QACtC,IACE,gBAAgB,KAAK,iBAAiB,CAAC,MAAM;YAC7C,gBAAgB,KAAK,iBAAiB,CAAC,OAAO,EAC9C,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,SAAS,CAAC;SACrB,CAAC;IACJ,CAAC;IAED,IAAI,CAAc,MAAW,EAAE,SAAe;QAC5C,MAAM,EAAC,QAAQ,EAAC,GAAG,MAAM,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,oBAAoB,CAAC,EAAC,SAAS,EAAE,EAAC,QAAQ,EAAC,EAAC,CAAC,CAAC;IACrD,CAAC;;AAnBM,2BAAa,GAAG,eAAe,CAAC;eADpB,aAAa"}
|
package/dist/fp64/project64.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { ShaderModule } from '@luma.gl/shadertools';
|
|
2
2
|
import type { Viewport } from '@deck.gl/core';
|
|
3
|
-
type
|
|
3
|
+
type Project64ModuleProps = {
|
|
4
4
|
viewport: Viewport;
|
|
5
5
|
};
|
|
6
|
-
declare const _default: ShaderModule<
|
|
6
|
+
declare const _default: ShaderModule<Project64ModuleProps>;
|
|
7
7
|
export default _default;
|
|
8
8
|
//# sourceMappingURL=project64.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project64.d.ts","sourceRoot":"","sources":["../../src/fp64/project64.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"project64.d.ts","sourceRoot":"","sources":["../../src/fp64/project64.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAIvD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAG5C,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;wBAaG,YAAY,CAAC,oBAAoB,CAAC;AAXvC,wBAWwC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
declare const _default: "\nconst vec2 WORLD_SCALE_FP64 = vec2(81.4873275756836, 0.0000032873668232014097);\n\nuniform vec2
|
|
1
|
+
declare const _default: "\nconst vec2 WORLD_SCALE_FP64 = vec2(81.4873275756836, 0.0000032873668232014097);\n\nuniform project64Uniforms {\n vec2 scale;\n mat4 viewProjectionMatrix;\n mat4 viewProjectionMatrix64Low;\n} project64;\n\n// longitude: lnglat_fp64.xy; latitude: lnglat_fp64.zw\nvoid mercatorProject_fp64(vec4 lnglat_fp64, out vec2 out_val[2]) {\n\n#if defined(NVIDIA_FP64_WORKAROUND)\n out_val[0] = sum_fp64(radians_fp64(lnglat_fp64.xy), PI_FP64 * ONE);\n#else\n out_val[0] = sum_fp64(radians_fp64(lnglat_fp64.xy), PI_FP64);\n#endif\n out_val[1] = sum_fp64(PI_FP64,\n log_fp64(tan_fp64(sum_fp64(PI_4_FP64, radians_fp64(lnglat_fp64.zw) / 2.0))));\n return;\n}\n\nvoid project_position_fp64(vec4 position_fp64, out vec2 out_val[2]) {\n vec2 pos_fp64[2];\n mercatorProject_fp64(position_fp64, pos_fp64);\n out_val[0] = mul_fp64(pos_fp64[0], WORLD_SCALE_FP64);\n out_val[1] = mul_fp64(pos_fp64[1], WORLD_SCALE_FP64);\n\n return;\n}\n\nvoid project_position_fp64(vec2 position, vec2 position64xyLow, out vec2 out_val[2]) {\n vec4 position64xy = vec4(\n position.x, position64xyLow.x,\n position.y, position64xyLow.y);\n\n project_position_fp64(position64xy, out_val);\n}\n\nvec4 project_common_position_to_clipspace_fp64(vec2 vertex_pos_modelspace[4]) {\n vec2 vertex_pos_clipspace[4];\n vec2 viewProjectionMatrixFP64[16];\n for (int i = 0; i < 4; i++) {\n for (int j = 0; j < 4; j++) {\n viewProjectionMatrixFP64[4 * i + j] = vec2(\n project64.viewProjectionMatrix[j][i],\n project64.viewProjectionMatrix64Low[j][i]\n );\n } \n }\n mat4_vec4_mul_fp64(viewProjectionMatrixFP64, vertex_pos_modelspace,\n vertex_pos_clipspace);\n return vec4(\n vertex_pos_clipspace[0].x,\n vertex_pos_clipspace[1].x,\n vertex_pos_clipspace[2].x,\n vertex_pos_clipspace[3].x\n );\n}\n\nvec4 project_position_to_clipspace(\n vec3 position, vec3 position64xyLow, vec3 offset, out vec4 commonPosition\n) {\n // This is the local offset to the instance position\n vec2 offset64[4];\n vec4_fp64(vec4(offset, 0.0), offset64);\n\n float z = project_size(position.z);\n\n // Apply web mercator projection (depends on coordinate system imn use)\n vec2 projectedPosition64xy[2];\n project_position_fp64(position.xy, position64xyLow.xy, projectedPosition64xy);\n\n vec2 commonPosition64[4];\n commonPosition64[0] = sum_fp64(offset64[0], projectedPosition64xy[0]);\n commonPosition64[1] = sum_fp64(offset64[1], projectedPosition64xy[1]);\n commonPosition64[2] = sum_fp64(offset64[2], vec2(z, 0.0));\n commonPosition64[3] = vec2(1.0, 0.0);\n\n commonPosition = vec4(projectedPosition64xy[0].x, projectedPosition64xy[1].x, z, 1.0);\n\n return project_common_position_to_clipspace_fp64(commonPosition64);\n}\n\nvec4 project_position_to_clipspace(\n vec3 position, vec3 position64xyLow, vec3 offset\n) {\n vec4 commonPosition;\n return project_position_to_clipspace(\n position, position64xyLow, offset, commonPosition\n );\n}\n";
|
|
2
2
|
export default _default;
|
|
3
3
|
//# sourceMappingURL=project64.glsl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project64.glsl.d.ts","sourceRoot":"","sources":["../../src/fp64/project64.glsl.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"project64.glsl.d.ts","sourceRoot":"","sources":["../../src/fp64/project64.glsl.ts"],"names":[],"mappings":";AAIA,wBA6FE"}
|
|
@@ -1,25 +1,13 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
|
8
|
-
// furnished to do so, subject to the following conditions:
|
|
9
|
-
//
|
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
|
11
|
-
// all copies or substantial portions of the Software.
|
|
12
|
-
//
|
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
-
// THE SOFTWARE.
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
20
4
|
export default `\
|
|
21
5
|
const vec2 WORLD_SCALE_FP64 = vec2(81.4873275756836, 0.0000032873668232014097);
|
|
22
|
-
uniform
|
|
6
|
+
uniform project64Uniforms {
|
|
7
|
+
vec2 scale;
|
|
8
|
+
mat4 viewProjectionMatrix;
|
|
9
|
+
mat4 viewProjectionMatrix64Low;
|
|
10
|
+
} project64;
|
|
23
11
|
void mercatorProject_fp64(vec4 lnglat_fp64, out vec2 out_val[2]) {
|
|
24
12
|
#if defined(NVIDIA_FP64_WORKAROUND)
|
|
25
13
|
out_val[0] = sum_fp64(radians_fp64(lnglat_fp64.xy), PI_FP64 * ONE);
|
|
@@ -45,7 +33,16 @@ project_position_fp64(position64xy, out_val);
|
|
|
45
33
|
}
|
|
46
34
|
vec4 project_common_position_to_clipspace_fp64(vec2 vertex_pos_modelspace[4]) {
|
|
47
35
|
vec2 vertex_pos_clipspace[4];
|
|
48
|
-
|
|
36
|
+
vec2 viewProjectionMatrixFP64[16];
|
|
37
|
+
for (int i = 0; i < 4; i++) {
|
|
38
|
+
for (int j = 0; j < 4; j++) {
|
|
39
|
+
viewProjectionMatrixFP64[4 * i + j] = vec2(
|
|
40
|
+
project64.viewProjectionMatrix[j][i],
|
|
41
|
+
project64.viewProjectionMatrix64Low[j][i]
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
mat4_vec4_mul_fp64(viewProjectionMatrixFP64, vertex_pos_modelspace,
|
|
49
46
|
vertex_pos_clipspace);
|
|
50
47
|
return vec4(
|
|
51
48
|
vertex_pos_clipspace[0].x,
|
|
@@ -79,3 +76,4 @@ position, position64xyLow, offset, commonPosition
|
|
|
79
76
|
);
|
|
80
77
|
}
|
|
81
78
|
`;
|
|
79
|
+
//# sourceMappingURL=project64.glsl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project64.glsl.js","sourceRoot":"","sources":["../../src/fp64/project64.glsl.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6FE"}
|
package/dist/fp64/project64.js
CHANGED
|
@@ -1,22 +1,6 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
|
8
|
-
// furnished to do so, subject to the following conditions:
|
|
9
|
-
//
|
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
|
11
|
-
// all copies or substantial portions of the Software.
|
|
12
|
-
//
|
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
-
// THE SOFTWARE.
|
|
1
|
+
// deck.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
20
4
|
/* eslint-disable camelcase */
|
|
21
5
|
import { fp64 } from '@luma.gl/shadertools';
|
|
22
6
|
const { fp64ify, fp64ifyMatrix4 } = fp64;
|
|
@@ -26,7 +10,13 @@ export default {
|
|
|
26
10
|
name: 'project64',
|
|
27
11
|
dependencies: [project, fp64],
|
|
28
12
|
vs: project64Shader,
|
|
29
|
-
getUniforms
|
|
13
|
+
getUniforms,
|
|
14
|
+
uniformTypes: {
|
|
15
|
+
scale: 'vec2<f32>',
|
|
16
|
+
// Cannot pass as vec2[16], so instead split into 2 mat4x4
|
|
17
|
+
viewProjectionMatrix: 'mat4x4<f32>',
|
|
18
|
+
viewProjectionMatrix64Low: 'mat4x4<f32>'
|
|
19
|
+
}
|
|
30
20
|
};
|
|
31
21
|
// TODO - this module should calculate the 64 bit uniforms
|
|
32
22
|
// It is currently done by project to minimize duplicated work
|
|
@@ -41,10 +31,21 @@ function getUniforms(opts) {
|
|
|
41
31
|
}
|
|
42
32
|
function calculateUniforms({ viewProjectionMatrix, scale }) {
|
|
43
33
|
const glViewProjectionMatrixFP64 = fp64ifyMatrix4(viewProjectionMatrix);
|
|
44
|
-
const
|
|
34
|
+
const viewProjectionMatrix64High = new Float32Array(16);
|
|
35
|
+
const viewProjectionMatrix64Low = new Float32Array(16);
|
|
36
|
+
for (let i = 0; i < 4; i++) {
|
|
37
|
+
for (let j = 0; j < 4; j++) {
|
|
38
|
+
// Match order used in project.viewProjectionMatrix
|
|
39
|
+
const from = 4 * i + j;
|
|
40
|
+
const to = 4 * j + i;
|
|
41
|
+
viewProjectionMatrix64High[to] = glViewProjectionMatrixFP64[2 * from];
|
|
42
|
+
viewProjectionMatrix64Low[to] = glViewProjectionMatrixFP64[2 * from + 1];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
45
|
return {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
scale: fp64ify(scale),
|
|
47
|
+
viewProjectionMatrix: [...viewProjectionMatrix64High],
|
|
48
|
+
viewProjectionMatrix64Low: [...viewProjectionMatrix64Low]
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
|
+
//# sourceMappingURL=project64.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project64.js","sourceRoot":"","sources":["../../src/fp64/project64.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,8BAA8B;AAC9B,OAAO,EAAC,IAAI,EAAC,MAAM,sBAAsB,CAAC;AAE1C,MAAM,EAAC,OAAO,EAAE,cAAc,EAAC,GAAG,IAAI,CAAC;AACvC,OAAO,EAAC,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAC,MAAM,eAAe,CAAC;AAG3D,OAAO,eAAe,4BAAyB;AAM/C,eAAe;IACb,IAAI,EAAE,WAAW;IACjB,YAAY,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;IAC7B,EAAE,EAAE,eAAe;IACnB,WAAW;IACX,YAAY,EAAE;QACZ,KAAK,EAAE,WAAW;QAClB,0DAA0D;QAC1D,oBAAoB,EAAE,aAAa;QACnC,yBAAyB,EAAE,aAAa;KACzC;CACoC,CAAC;AAExC,0DAA0D;AAC1D,8DAA8D;AAE9D,MAAM,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEvD,SAAS,WAAW,CAAC,IAAgC;IACnD,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QAC/B,MAAM,EAAC,oBAAoB,EAAE,KAAK,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QACpD,2EAA2E;QAC3E,OAAO,mBAAmB,CAAC,EAAC,oBAAoB,EAAE,KAAK,EAAC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,iBAAiB,CAAC,EACzB,oBAAoB,EACpB,KAAK,EAIN;IACC,MAAM,0BAA0B,GAAG,cAAc,CAAC,oBAAoB,CAAC,CAAC;IACxE,MAAM,0BAA0B,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;IACxD,MAAM,yBAAyB,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;IACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,mDAAmD;YACnD,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACrB,0BAA0B,CAAC,EAAE,CAAC,GAAG,0BAA0B,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACtE,yBAAyB,CAAC,EAAE,CAAC,GAAG,0BAA0B,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;QACrB,oBAAoB,EAAE,CAAC,GAAG,0BAA0B,CAAC;QACrD,yBAAyB,EAAE,CAAC,GAAG,yBAAyB,CAAC;KAC1D,CAAC;AACJ,CAAC"}
|