Skip to content

Commit d1a060c

Browse files
committed
Deck.gl update
- squashed the commits into one
1 parent 9506f0e commit d1a060c

File tree

124 files changed

+3371
-1114
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

124 files changed

+3371
-1114
lines changed

python/package-lock.json

Lines changed: 104 additions & 109 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

python/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
"validate": "npm run typecheck && npm run lint"
2929
},
3030
"dependencies": {
31-
"@deck.gl/core": "^9.0.36",
32-
"@deck.gl/react": "^9.0.36",
31+
"@deck.gl/core": "^9.1.0",
32+
"@deck.gl/react": "^9.1.0",
3333
"@emerson-eps/color-tables": "^0.4.85",
3434
"@equinor/eds-core-react": "0.33.0",
3535
"@equinor/eds-icons": "^0.19.1",

typescript/package-lock.json

Lines changed: 2008 additions & 271 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

typescript/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,5 +135,8 @@
135135
},
136136
"workspaces": [
137137
"packages/*"
138-
]
138+
],
139+
"dependencies": {
140+
"@deck.gl-community/editable-layers": "^9.1.0-beta.4"
141+
}
139142
}

typescript/packages/subsurface-viewer/package.json

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,16 @@
3333
"author": "Equinor <[email protected]>",
3434
"license": "MPL-2.0",
3535
"dependencies": {
36-
"@deck.gl-community/editable-layers": "9.0.3",
37-
"@deck.gl/aggregation-layers": "9.0.40",
38-
"@deck.gl/core": "9.0.40",
39-
"@deck.gl/extensions": "9.0.40",
40-
"@deck.gl/geo-layers": "9.0.40",
41-
"@deck.gl/json": "9.0.40",
42-
"@deck.gl/layers": "9.0.40",
43-
"@deck.gl/mesh-layers": "9.0.40",
44-
"@deck.gl/react": "9.0.40",
45-
"@emerson-eps/color-tables": "^0.4.92",
36+
"@deck.gl-community/editable-layers": "^9.1.0-beta.4",
37+
"@deck.gl/aggregation-layers": "^9.1.0",
38+
"@deck.gl/core": "^9.1.0",
39+
"@deck.gl/extensions": "^9.1.0",
40+
"@deck.gl/geo-layers": "^9.1.0",
41+
"@deck.gl/json": "^9.1.0",
42+
"@deck.gl/layers": "^9.1.0",
43+
"@deck.gl/mesh-layers": "^9.1.0",
44+
"@deck.gl/react": "^9.1.0",
45+
"@emerson-eps/color-tables": "^0.4.85",
4646
"@equinor/eds-core-react": "^0.36.0",
4747
"@equinor/eds-icons": "^0.21.0",
4848
"@turf/simplify": "^7.1.0",
@@ -53,6 +53,7 @@
5353
"d3": "^7.8.2",
5454
"d3-color": "^3.1.0",
5555
"d3-format": "^3.1.0",
56+
"deck.gl": "^9.1.8",
5657
"gl-matrix": "^3.4.3",
5758
"lodash": "^4.17.21",
5859
"math.gl": "^4.0.1",

typescript/packages/subsurface-viewer/src/components/Map.tsx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -668,19 +668,26 @@ const Map: React.FC<MapProps> = ({
668668
layers.push(dummy_layer);
669669
}
670670

671-
const m = getModelMatrixScale(zScale);
672-
673671
return layers.map((item) => {
674672
if (item?.constructor.name === NorthArrow3DLayer.name) {
675673
return item;
676674
}
677675

676+
let m: Matrix4;
677+
if ((item as Layer).props.modelMatrix) {
678+
m = (item as Layer).props.modelMatrix as Matrix4;
679+
m[10] *= zScale;
680+
} else {
681+
m = getModelMatrixScale(zScale);
682+
}
683+
678684
return (item as Layer).clone({
679685
// Inject "dispatchBoundingBox" function into layer for it to report back its respective bounding box.
680686
// eslint-disable-next-line
681687
// @ts-ignore
682688
reportBoundingBox: dispatchBoundingBox,
683-
// Set "modelLayer" matrix to reflect correct z scaling.
689+
690+
// Modify "modelMatrix" to reflect correct z scaling.
684691
modelMatrix: m,
685692
});
686693
});

typescript/packages/subsurface-viewer/src/extensions/side-projection-extension.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { LayerExtension } from "@deck.gl/core";
33
import type { ShaderModule } from "@luma.gl/shadertools";
44
import type { Layer } from "@deck.gl/core";
55
import { project32, project } from "@deck.gl/core";
6-
import { glsl } from "@luma.gl/shadertools";
76

87
const defaultProps = {
98
sideViewIds: [],
@@ -13,7 +12,7 @@ type SideProjectionExtensionProps = {
1312
sideViewIds?: string[];
1413
};
1514

16-
const shaderFunction = glsl`
15+
const shaderFunction = /*glsl*/ `
1716
uniform float side_view;
1817
1918
vec3 transform(vec3 clip_position) {
@@ -37,10 +36,10 @@ const shaderModuleVs: ShaderModule = {
3736
};
3837

3938
const injectionVs = {
40-
"vs:#decl": glsl`
39+
"vs:#decl": /*glsl*/ `
4140
vec3 new_position;
4241
`,
43-
"vs:DECKGL_FILTER_GL_POSITION": glsl`
42+
"vs:DECKGL_FILTER_GL_POSITION": /*glsl*/ `
4443
new_position = transform(position.xyz);
4544
position.xyz = new_position;
4645
`,

typescript/packages/subsurface-viewer/src/layers/axes/axes-fragment.glsl.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const fragmentShader = `#version 300 es
2-
#define SHADER_NAME graph-layer-fragment-shader
2+
#define SHADER_NAME axes-fragment-shader
33
44
precision highp float;
55

typescript/packages/subsurface-viewer/src/layers/axes/grid-vertex.glsl.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const gridVertex = `#version 300 es
2-
#define SHADER_NAME graph-layer-axis-vertex-shader
2+
#define SHADER_NAME axes-grid-vertex-shader
33
44
precision highp float;
55

typescript/packages/subsurface-viewer/src/layers/axes2d/axes2DLayer.ts

Lines changed: 90 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type {
22
Color,
3-
LayerContext,
3+
LayerProps,
44
UpdateParameters,
55
Viewport,
66
} from "@deck.gl/core";
@@ -14,7 +14,10 @@ import { load } from "@loaders.gl/core";
1414
import { ImageLoader } from "@loaders.gl/images";
1515
import type { UniformValue } from "@luma.gl/core";
1616
import { Geometry, Model } from "@luma.gl/engine";
17+
import type { ShaderModule } from "@luma.gl/shadertools";
18+
1719
import { vec4 } from "gl-matrix";
20+
1821
import type { ExtendedLayerProps, Position3D } from "../utils/layerTools";
1922
import fontAtlasPng from "./font-atlas.png";
2023
import labelFragmentShader from "./label-fragment.glsl";
@@ -153,7 +156,7 @@ export default class Axes2DLayer extends Layer<Axes2DLayerProps> {
153156
oldProps,
154157
context,
155158
changeFlags,
156-
}: UpdateParameters<this>): boolean {
159+
}: UpdateParameters<Layer<Axes2DLayerProps>>): boolean {
157160
return (
158161
super.shouldUpdateState({
159162
props,
@@ -514,13 +517,8 @@ export default class Axes2DLayer extends Layer<Axes2DLayerProps> {
514517
return labels;
515518
}
516519

517-
draw({
518-
context,
519-
}: {
520-
moduleParameters: unknown;
521-
uniforms: unknown;
522-
context: LayerContext;
523-
}): void {
520+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
521+
draw(opts: any): void {
524522
const is_orthographic =
525523
this.context.viewport.constructor === OrthographicViewport;
526524
if (
@@ -539,14 +537,14 @@ export default class Axes2DLayer extends Layer<Axes2DLayerProps> {
539537
}
540538

541539
// background
542-
models[n - 1].draw(context.renderPass);
540+
models[n - 1].draw(opts.context.renderPass);
543541

544542
// lines
545-
models[n - 2].draw(context.renderPass);
543+
models[n - 2].draw(opts.context.renderPass);
546544

547545
// labels
548546
for (let i = 0; i < n - 2; i++) {
549-
models[i].draw(context.renderPass);
547+
models[i].draw(opts.context.renderPass);
550548
}
551549

552550
return;
@@ -681,7 +679,6 @@ export default class Axes2DLayer extends Layer<Axes2DLayerProps> {
681679
id: `${this.props.id}-lines`,
682680
vs: lineVertexShader,
683681
fs: lineFragmentShader,
684-
uniforms: { uColor: lineColor, uClipZ: -1 },
685682
geometry: new Geometry({
686683
topology: "line-list",
687684
attributes: {
@@ -690,9 +687,15 @@ export default class Axes2DLayer extends Layer<Axes2DLayerProps> {
690687
vertexCount: tick_and_axes_lines.length / 3,
691688
}),
692689

693-
modules: [project32],
690+
modules: [project32, linesUniforms],
694691
isInstanced: false,
695692
});
693+
lineModel.shaderInputs.setProps({
694+
lines: {
695+
uColor: lineColor,
696+
uClipZ: -1,
697+
},
698+
});
696699

697700
//-- Background model --
698701
// Color on axes background.
@@ -709,7 +712,7 @@ export default class Axes2DLayer extends Layer<Axes2DLayerProps> {
709712
id: `${this.props.id}-background`,
710713
vs: lineVertexShader,
711714
fs: lineFragmentShader,
712-
uniforms: { uColor: bColor, uClipZ: -0.9 },
715+
//uniforms: { uColor: bColor, uClipZ: -0.9 },
713716
geometry: new Geometry({
714717
topology: "triangle-list",
715718
attributes: {
@@ -718,9 +721,15 @@ export default class Axes2DLayer extends Layer<Axes2DLayerProps> {
718721
vertexCount: background_lines.length / 3,
719722
}),
720723

721-
modules: [project32],
724+
modules: [project32, linesUniforms],
722725
isInstanced: false,
723726
});
727+
backgroundModel.shaderInputs.setProps({
728+
lines: {
729+
uColor: bColor,
730+
uClipZ: -0.9,
731+
},
732+
});
724733

725734
//-- Labels model--
726735
const labelModels: Model[] = [];
@@ -836,10 +845,10 @@ export default class Axes2DLayer extends Layer<Axes2DLayerProps> {
836845
id: `${this.props.id}-${label}`,
837846
vs: labelVertexShader,
838847
fs: labelFragmentShader,
839-
uniforms: {
840-
uAxisColor: lineColor,
841-
uBackGroundColor: bColor,
842-
},
848+
// uniforms: {
849+
// uAxisColor: lineColor,
850+
// uBackGroundColor: bColor,
851+
// },
843852
bindings: {
844853
// @ts-ignore
845854
fontTexture,
@@ -856,14 +865,24 @@ export default class Axes2DLayer extends Layer<Axes2DLayerProps> {
856865
vertexCount: positions.length / 3,
857866
}),
858867
bufferLayout: this.getAttributeManager()!.getBufferLayouts(),
859-
modules: [project32],
868+
modules: [project32, axesUniforms],
860869
isInstanced: false,
861870
});
871+
model.shaderInputs.setProps({
872+
axes: {
873+
uAxisColor: lineColor,
874+
uBackGroundColor: bColor,
875+
},
876+
});
862877

863878
labelModels.push(model);
864879
}
865880

866-
return { labelModels: labelModels, lineModel: lineModel, backgroundModel: backgroundModel };
881+
return {
882+
labelModels: labelModels,
883+
lineModel: lineModel,
884+
backgroundModel: backgroundModel,
885+
};
867886
}
868887
}
869888

@@ -955,3 +974,52 @@ function GetPixelsScale(labelFontSizePt: number): number {
955974
const px = Math.max(0, (8 / 9) * labelFontSizePt);
956975
return px;
957976
}
977+
978+
const linesUniformsBlock = /*glsl*/ `\
979+
uniform linesUniforms {
980+
vec4 uColor;
981+
float uClipZ;
982+
} lines;
983+
`;
984+
985+
type LinesUniformsType = {
986+
uColor: [number, number, number, number];
987+
uClipZ: number;
988+
};
989+
990+
// NOTE: this must exactly the same name than in the uniform block
991+
const linesUniforms = {
992+
name: "lines",
993+
vs: linesUniformsBlock,
994+
fs: linesUniformsBlock,
995+
uniformTypes: {
996+
uColor: "vec4<f32>",
997+
uClipZ: "f32",
998+
},
999+
} as const satisfies ShaderModule<LayerProps, LinesUniformsType>;
1000+
1001+
1002+
1003+
const axesUniformsBlock = /*glsl*/ `\
1004+
uniform axesUniforms {
1005+
vec4 uAxisColor;
1006+
vec4 uBackGroundColor;
1007+
} axes;
1008+
`;
1009+
1010+
type AxesUniformsType = {
1011+
uAxisColor: [number, number, number, number],
1012+
uBackGroundColor: [number, number, number, number],
1013+
};
1014+
1015+
// NOTE: this must exactly the same name than in the uniform block
1016+
const axesUniforms = {
1017+
name: "axes",
1018+
vs: axesUniformsBlock,
1019+
fs: axesUniformsBlock,
1020+
uniformTypes: {
1021+
uAxisColor: "vec4<f32>",
1022+
uBackGroundColor: "vec4<f32>",
1023+
},
1024+
} as const satisfies ShaderModule<LayerProps, AxesUniformsType>;
1025+

typescript/packages/subsurface-viewer/src/layers/axes2d/label-fragment.glsl.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
export default `\
22
#version 300 es
3-
#define SHADER_NAME axes2d-layer-fragment-shader
3+
#define SHADER_NAME axes2d-label-fragment-shader
44
55
precision highp float;
66
77
out vec4 fragColor;
88
99
uniform sampler2D fontTexture;
1010
11-
uniform vec4 uAxisColor;
12-
uniform vec4 uBackGroundColor;
11+
// uniform vec4 uAxisColor;
12+
// uniform vec4 uBackGroundColor;
1313
1414
in vec2 _vTexCoord;
1515
@@ -19,13 +19,13 @@ void main(void) {
1919
float x = 1.0 - (color.r + color.g + color.b) / 3.0; // intensity of text color
2020
x = smoothstep(0.0, 0.2, x);
2121
22-
float text_r = uAxisColor.r;
23-
float text_g = uAxisColor.g;
24-
float text_b = uAxisColor.b;
22+
float text_r = axes.uAxisColor.r;
23+
float text_g = axes.uAxisColor.g;
24+
float text_b = axes.uAxisColor.b;
2525
26-
float bg_r = uBackGroundColor.r;
27-
float bg_g = uBackGroundColor.g;
28-
float bg_b = uBackGroundColor.b;
26+
float bg_r = axes.uBackGroundColor.r;
27+
float bg_g = axes.uBackGroundColor.g;
28+
float bg_b = axes.uBackGroundColor.b;
2929
3030
float r = x * text_r + (1.0 - x) * bg_r;
3131
float g = x * text_g + (1.0 - x) * bg_g;

typescript/packages/subsurface-viewer/src/layers/axes2d/label-vertex.glsl.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
export default `\
22
#version 300 es
3-
#define SHADER_NAME axes2d-layer-vertex-shader
3+
#define SHADER_NAME axes2d-label-vertex-shader
44
55
precision highp float;
66

0 commit comments

Comments
 (0)