@luxonis/depthai-viewer-common 3.9.7 → 4.0.0
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/THIRD_PARTY_NOTICES.md +36 -304
- package/benchmark-cli.mjs +166 -11
- package/benchmark-lib.sh +40 -5
- package/benchmark-root.sh +79 -13
- package/benchmark.sh +112 -5
- package/dist/components/Streams.d.ts +6 -0
- package/dist/components/Streams.d.ts.map +1 -1
- package/dist/components/Streams.js +12 -4
- package/dist/components/Streams.js.map +1 -1
- package/dist/hooks/benchmark-automation.d.ts.map +1 -1
- package/dist/hooks/benchmark-automation.js +288 -63
- package/dist/hooks/benchmark-automation.js.map +1 -1
- package/dist/index.css +7 -0
- package/dist/utils/vite-dev-fix.d.ts.map +1 -1
- package/dist/utils/vite-dev-fix.js +0 -15
- package/dist/utils/vite-dev-fix.js.map +1 -1
- package/dist/visualizer/components/Panel.d.ts.map +1 -1
- package/dist/visualizer/components/Panel.js +6 -3
- package/dist/visualizer/components/Panel.js.map +1 -1
- package/dist/visualizer/components/shared-interval.d.ts +1 -1
- package/dist/visualizer/components/shared-interval.d.ts.map +1 -1
- package/dist/visualizer/components/shared-interval.js +6 -2
- package/dist/visualizer/components/shared-interval.js.map +1 -1
- package/dist/visualizer/connection/communicator.d.ts +1 -0
- package/dist/visualizer/connection/communicator.d.ts.map +1 -1
- package/dist/visualizer/connection/communicator.js.map +1 -1
- package/dist/visualizer/connection/connection.d.ts.map +1 -1
- package/dist/visualizer/connection/connection.js +8 -7
- package/dist/visualizer/connection/connection.js.map +1 -1
- package/dist/visualizer/connection/foxglove-connection.d.ts +4 -2
- package/dist/visualizer/connection/foxglove-connection.d.ts.map +1 -1
- package/dist/visualizer/connection/foxglove-connection.js +88 -40
- package/dist/visualizer/connection/foxglove-connection.js.map +1 -1
- package/dist/visualizer/context/MessagePipelineProvider.d.ts +1 -1
- package/dist/visualizer/context/MessagePipelineProvider.d.ts.map +1 -1
- package/dist/visualizer/context/MessagePipelineProvider.js +24 -6
- package/dist/visualizer/context/MessagePipelineProvider.js.map +1 -1
- package/dist/visualizer/context/VisualizerContext.d.ts.map +1 -1
- package/dist/visualizer/context/VisualizerContext.js +1 -32
- package/dist/visualizer/context/VisualizerContext.js.map +1 -1
- package/dist/visualizer/index.d.ts +1 -0
- package/dist/visualizer/index.d.ts.map +1 -1
- package/dist/visualizer/index.js +1 -0
- package/dist/visualizer/index.js.map +1 -1
- package/dist/visualizer/messaging/browser-decoder-fixtures.d.ts.map +1 -1
- package/dist/visualizer/messaging/browser-decoder-fixtures.js +187 -24
- package/dist/visualizer/messaging/browser-decoder-fixtures.js.map +1 -1
- package/dist/visualizer/messaging/decode-core.d.ts +9 -1
- package/dist/visualizer/messaging/decode-core.d.ts.map +1 -1
- package/dist/visualizer/messaging/decode-core.js +26 -16
- package/dist/visualizer/messaging/decode-core.js.map +1 -1
- package/dist/visualizer/messaging/decoder-fixtures.d.ts.map +1 -1
- package/dist/visualizer/messaging/decoder-fixtures.js +128 -1
- package/dist/visualizer/messaging/decoder-fixtures.js.map +1 -1
- package/dist/visualizer/messaging/decoder-harness.d.ts +2 -1
- package/dist/visualizer/messaging/decoder-harness.d.ts.map +1 -1
- package/dist/visualizer/messaging/decoder-harness.js.map +1 -1
- package/dist/visualizer/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.d.ts +6 -1
- package/dist/visualizer/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.d.ts.map +1 -1
- package/dist/visualizer/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.js +5 -1
- package/dist/visualizer/messaging/deserialization/pointcloud/pointcloudFromDepth.worker.js.map +1 -1
- package/dist/visualizer/messaging/deserialization/pointcloud/poitcloudPoolManager.d.ts +10 -14
- package/dist/visualizer/messaging/deserialization/pointcloud/poitcloudPoolManager.d.ts.map +1 -1
- package/dist/visualizer/messaging/deserialization/pointcloud/poitcloudPoolManager.js +56 -288
- package/dist/visualizer/messaging/deserialization/pointcloud/poitcloudPoolManager.js.map +1 -1
- package/dist/visualizer/messaging/deserialization/pointcloud/utils.d.ts.map +1 -1
- package/dist/visualizer/messaging/deserialization/pointcloud/utils.js +2 -7
- package/dist/visualizer/messaging/deserialization/pointcloud/utils.js.map +1 -1
- package/dist/visualizer/messaging/deserialization/video/depth.d.ts +2 -1
- package/dist/visualizer/messaging/deserialization/video/depth.d.ts.map +1 -1
- package/dist/visualizer/messaging/deserialization/video/depth.js +9 -65
- package/dist/visualizer/messaging/deserialization/video/depth.js.map +1 -1
- package/dist/visualizer/messaging/deserialization/video/h264.d.ts +3 -3
- package/dist/visualizer/messaging/deserialization/video/h264.d.ts.map +1 -1
- package/dist/visualizer/messaging/deserialization/video/h264.js +80 -25
- package/dist/visualizer/messaging/deserialization/video/h264.js.map +1 -1
- package/dist/visualizer/messaging/deserialization/video/h265.d.ts +1 -1
- package/dist/visualizer/messaging/deserialization/video/h265.d.ts.map +1 -1
- package/dist/visualizer/messaging/deserialization/video/h265.js +62 -22
- package/dist/visualizer/messaging/deserialization/video/h265.js.map +1 -1
- package/dist/visualizer/messaging/deserialization/video/mjpeg.d.ts +1 -0
- package/dist/visualizer/messaging/deserialization/video/mjpeg.d.ts.map +1 -1
- package/dist/visualizer/messaging/deserialization/video/mjpeg.js +14 -2
- package/dist/visualizer/messaging/deserialization/video/mjpeg.js.map +1 -1
- package/dist/visualizer/messaging/deserialization/video/rgbd-to-pointcloud.d.ts +3 -1
- package/dist/visualizer/messaging/deserialization/video/rgbd-to-pointcloud.d.ts.map +1 -1
- package/dist/visualizer/messaging/deserialization/video/rgbd-to-pointcloud.js +152 -250
- package/dist/visualizer/messaging/deserialization/video/rgbd-to-pointcloud.js.map +1 -1
- package/dist/visualizer/messaging/deserialization.worker.d.ts +5 -3
- package/dist/visualizer/messaging/deserialization.worker.d.ts.map +1 -1
- package/dist/visualizer/messaging/deserialization.worker.js +16 -2
- package/dist/visualizer/messaging/deserialization.worker.js.map +1 -1
- package/dist/visualizer/messaging/message-event.d.ts +3 -0
- package/dist/visualizer/messaging/message-event.d.ts.map +1 -1
- package/dist/visualizer/messaging/message-event.js +18 -4
- package/dist/visualizer/messaging/message-event.js.map +1 -1
- package/dist/visualizer/messaging/message-handler.d.ts +3 -1
- package/dist/visualizer/messaging/message-handler.d.ts.map +1 -1
- package/dist/visualizer/messaging/message-handler.js +120 -49
- package/dist/visualizer/messaging/message-handler.js.map +1 -1
- package/dist/visualizer/output.css +7 -0
- package/dist/visualizer/panels/PointCloudPanel.d.ts.map +1 -1
- package/dist/visualizer/panels/PointCloudPanel.js +2 -0
- package/dist/visualizer/panels/PointCloudPanel.js.map +1 -1
- package/dist/visualizer/panels/image/ImageCanvasRenderer.d.ts.map +1 -1
- package/dist/visualizer/panels/image/ImageCanvasRenderer.js +246 -69
- package/dist/visualizer/panels/image/ImageCanvasRenderer.js.map +1 -1
- package/dist/visualizer/panels/image/annotation-overlay.d.ts.map +1 -1
- package/dist/visualizer/panels/image/annotation-overlay.js +16 -2
- package/dist/visualizer/panels/image/annotation-overlay.js.map +1 -1
- package/dist/visualizer/panels/image/raw-image-decoder.d.ts.map +1 -1
- package/dist/visualizer/panels/image/raw-image-decoder.js +1 -0
- package/dist/visualizer/panels/image/raw-image-decoder.js.map +1 -1
- package/dist/visualizer/panels/image/webgl-image-renderer.d.ts +11 -2
- package/dist/visualizer/panels/image/webgl-image-renderer.d.ts.map +1 -1
- package/dist/visualizer/panels/image/webgl-image-renderer.js +236 -41
- package/dist/visualizer/panels/image/webgl-image-renderer.js.map +1 -1
- package/dist/visualizer/panels/image/webgl-segmentation-mask-renderer.d.ts +16 -0
- package/dist/visualizer/panels/image/webgl-segmentation-mask-renderer.d.ts.map +1 -0
- package/dist/visualizer/panels/image/webgl-segmentation-mask-renderer.js +184 -0
- package/dist/visualizer/panels/image/webgl-segmentation-mask-renderer.js.map +1 -0
- package/dist/visualizer/panels/image/worker-image-decoder.d.ts.map +1 -1
- package/dist/visualizer/panels/image/worker-image-decoder.js +8 -3
- package/dist/visualizer/panels/image/worker-image-decoder.js.map +1 -1
- package/dist/visualizer/panels/pointcloud/PointCloudCanvasRenderer.d.ts.map +1 -1
- package/dist/visualizer/panels/pointcloud/PointCloudCanvasRenderer.js +256 -73
- package/dist/visualizer/panels/pointcloud/PointCloudCanvasRenderer.js.map +1 -1
- package/dist/visualizer/panels/pointcloud/point-cloud-materials.d.ts +5 -0
- package/dist/visualizer/panels/pointcloud/point-cloud-materials.d.ts.map +1 -0
- package/dist/visualizer/panels/pointcloud/point-cloud-materials.js +123 -0
- package/dist/visualizer/panels/pointcloud/point-cloud-materials.js.map +1 -0
- package/dist/visualizer/protobuf.generated/NNData.d.ts +92 -0
- package/dist/visualizer/protobuf.generated/NNData.d.ts.map +1 -0
- package/dist/visualizer/protobuf.generated/NNData.js +620 -0
- package/dist/visualizer/protobuf.generated/NNData.js.map +1 -0
- package/dist/visualizer/utils/benchmark-metrics.d.ts +27 -0
- package/dist/visualizer/utils/benchmark-metrics.d.ts.map +1 -0
- package/dist/visualizer/utils/benchmark-metrics.js +139 -0
- package/dist/visualizer/utils/benchmark-metrics.js.map +1 -0
- package/dist/visualizer/utils/comlink-wrap.d.ts.map +1 -1
- package/dist/visualizer/utils/comlink-wrap.js +5 -0
- package/dist/visualizer/utils/comlink-wrap.js.map +1 -1
- package/dist/visualizer/utils/poitcloud-sync.d.ts.map +1 -1
- package/dist/visualizer/utils/poitcloud-sync.js +5 -2
- package/dist/visualizer/utils/poitcloud-sync.js.map +1 -1
- package/package.json +3 -4
- package/dist/visualizer/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.d.ts +0 -2
- package/dist/visualizer/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.d.ts.map +0 -1
- package/dist/visualizer/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.js +0 -45
- package/dist/visualizer/messaging/deserialization/pointcloud/i420ToRgbaToPoitcloud.worker.js.map +0 -1
- package/dist/visualizer/messaging/deserialization/video/depth-coloring.worker.d.ts +0 -5
- package/dist/visualizer/messaging/deserialization/video/depth-coloring.worker.d.ts.map +0 -1
- package/dist/visualizer/messaging/deserialization/video/depth-coloring.worker.js +0 -124
- package/dist/visualizer/messaging/deserialization/video/depth-coloring.worker.js.map +0 -1
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
// License, v2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/
|
|
4
4
|
import { readCanvasColorRgb } from "../../utils/use-theme-mode.js";
|
|
5
|
+
export function resolvePackedByteTextureLayout(byteLength, maxTextureSize) {
|
|
6
|
+
if (byteLength <= 0 || maxTextureSize <= 0) {
|
|
7
|
+
return undefined;
|
|
8
|
+
}
|
|
9
|
+
const completeWordCount = Math.floor(byteLength / 4);
|
|
10
|
+
const tailByteCount = byteLength % 4;
|
|
11
|
+
const wordCount = completeWordCount + (tailByteCount > 0 ? 1 : 0);
|
|
12
|
+
const width = Math.min(wordCount, maxTextureSize);
|
|
13
|
+
const height = Math.ceil(wordCount / width);
|
|
14
|
+
if (height > maxTextureSize) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
return { width, height, completeWordCount, tailByteCount };
|
|
18
|
+
}
|
|
5
19
|
const POSITION_DATA = new Float32Array([-1, 1, 1, 1, -1, -1, 1, -1]);
|
|
6
20
|
const TEXTURE_COORD_DATA = new Float32Array([0, 0, 1, 0, 0, 1, 1, 1]);
|
|
7
21
|
const PACKED_MODE_RGB = 0;
|
|
@@ -9,6 +23,7 @@ const PACKED_MODE_BGR = 1;
|
|
|
9
23
|
const PACKED_MODE_RGBA = 2;
|
|
10
24
|
const PACKED_MODE_BGRA = 3;
|
|
11
25
|
const PACKED_MODE_MONO = 4;
|
|
26
|
+
const PACKED_MODE_MONO16 = 5;
|
|
12
27
|
const YUV422_MODE_UYVY = 0;
|
|
13
28
|
const YUV422_MODE_YUYV = 1;
|
|
14
29
|
const VERTEX_SHADER_SOURCE = `
|
|
@@ -22,32 +37,109 @@ void main() {
|
|
|
22
37
|
}
|
|
23
38
|
`;
|
|
24
39
|
const PACKED_FRAGMENT_SHADER_SOURCE = `
|
|
25
|
-
precision
|
|
40
|
+
precision highp float;
|
|
26
41
|
|
|
27
42
|
varying vec2 v_texCoord;
|
|
28
43
|
uniform sampler2D u_texture;
|
|
29
|
-
uniform vec2
|
|
44
|
+
uniform vec2 u_storageSize;
|
|
45
|
+
uniform vec2 u_sourceSize;
|
|
46
|
+
uniform float u_sourceStrideBytes;
|
|
47
|
+
uniform float u_bytesPerPixel;
|
|
30
48
|
uniform float u_mode;
|
|
49
|
+
uniform float u_maxValue;
|
|
50
|
+
|
|
51
|
+
vec4 readWord(float wordIndex) {
|
|
52
|
+
float wordX = mod(wordIndex, u_storageSize.x);
|
|
53
|
+
float wordY = floor(wordIndex / u_storageSize.x);
|
|
54
|
+
return floor(texture2D(u_texture, (vec2(wordX, wordY) + 0.5) / u_storageSize) * 255.0 + 0.5);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
float readSourceByte(float rowWordIndex, float localByteOffset) {
|
|
58
|
+
float wordIndex = rowWordIndex + floor(localByteOffset / 4.0);
|
|
59
|
+
float channelIndex = mod(localByteOffset, 4.0);
|
|
60
|
+
vec4 word = readWord(wordIndex);
|
|
61
|
+
if (channelIndex < 0.5) {
|
|
62
|
+
return word.r;
|
|
63
|
+
}
|
|
64
|
+
if (channelIndex < 1.5) {
|
|
65
|
+
return word.g;
|
|
66
|
+
}
|
|
67
|
+
if (channelIndex < 2.5) {
|
|
68
|
+
return word.b;
|
|
69
|
+
}
|
|
70
|
+
return word.a;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
vec3 jetColor(float value) {
|
|
74
|
+
if (value < 0.125) {
|
|
75
|
+
return vec3(0.0, 0.0, 0.5 + 4.0 * value);
|
|
76
|
+
}
|
|
77
|
+
if (value < 0.375) {
|
|
78
|
+
return vec3(0.0, (value - 0.125) * 4.0, 1.0);
|
|
79
|
+
}
|
|
80
|
+
if (value < 0.625) {
|
|
81
|
+
return vec3((value - 0.375) * 4.0, 1.0, 1.0 - (value - 0.375) * 4.0);
|
|
82
|
+
}
|
|
83
|
+
if (value < 0.875) {
|
|
84
|
+
return vec3(1.0, 1.0 - (value - 0.625) * 4.0, 0.0);
|
|
85
|
+
}
|
|
86
|
+
return vec3(1.0 - (value - 0.875) * 4.0, 0.0, 0.0);
|
|
87
|
+
}
|
|
31
88
|
|
|
32
89
|
void main() {
|
|
33
|
-
|
|
90
|
+
vec2 sourcePixel = min(floor(v_texCoord * u_sourceSize), u_sourceSize - 1.0);
|
|
91
|
+
float strideWords = floor(u_sourceStrideBytes / 4.0);
|
|
92
|
+
float strideRemainder = mod(u_sourceStrideBytes, 4.0);
|
|
93
|
+
float rowRemainderBytes = mod(sourcePixel.y * strideRemainder, 4.0);
|
|
94
|
+
float rowWordIndex = sourcePixel.y * strideWords + floor(sourcePixel.y * strideRemainder / 4.0);
|
|
95
|
+
float pixelByteOffset = rowRemainderBytes + sourcePixel.x * u_bytesPerPixel;
|
|
96
|
+
float first = readSourceByte(rowWordIndex, pixelByteOffset);
|
|
34
97
|
if (u_mode < 0.5) {
|
|
35
|
-
gl_FragColor = vec4(
|
|
98
|
+
gl_FragColor = vec4(
|
|
99
|
+
first,
|
|
100
|
+
readSourceByte(rowWordIndex, pixelByteOffset + 1.0),
|
|
101
|
+
readSourceByte(rowWordIndex, pixelByteOffset + 2.0),
|
|
102
|
+
255.0
|
|
103
|
+
) / 255.0;
|
|
36
104
|
return;
|
|
37
105
|
}
|
|
38
106
|
if (u_mode < 1.5) {
|
|
39
|
-
gl_FragColor = vec4(
|
|
107
|
+
gl_FragColor = vec4(
|
|
108
|
+
readSourceByte(rowWordIndex, pixelByteOffset + 2.0),
|
|
109
|
+
readSourceByte(rowWordIndex, pixelByteOffset + 1.0),
|
|
110
|
+
first,
|
|
111
|
+
255.0
|
|
112
|
+
) / 255.0;
|
|
40
113
|
return;
|
|
41
114
|
}
|
|
42
115
|
if (u_mode < 2.5) {
|
|
43
|
-
gl_FragColor =
|
|
116
|
+
gl_FragColor = vec4(
|
|
117
|
+
first,
|
|
118
|
+
readSourceByte(rowWordIndex, pixelByteOffset + 1.0),
|
|
119
|
+
readSourceByte(rowWordIndex, pixelByteOffset + 2.0),
|
|
120
|
+
readSourceByte(rowWordIndex, pixelByteOffset + 3.0)
|
|
121
|
+
) / 255.0;
|
|
44
122
|
return;
|
|
45
123
|
}
|
|
46
124
|
if (u_mode < 3.5) {
|
|
47
|
-
gl_FragColor = vec4(
|
|
125
|
+
gl_FragColor = vec4(
|
|
126
|
+
readSourceByte(rowWordIndex, pixelByteOffset + 2.0),
|
|
127
|
+
readSourceByte(rowWordIndex, pixelByteOffset + 1.0),
|
|
128
|
+
first,
|
|
129
|
+
readSourceByte(rowWordIndex, pixelByteOffset + 3.0)
|
|
130
|
+
) / 255.0;
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (u_mode < 4.5) {
|
|
134
|
+
gl_FragColor = vec4(vec3(first / 255.0), 1.0);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
float rawDepth = first + readSourceByte(rowWordIndex, pixelByteOffset + 1.0) * 256.0;
|
|
138
|
+
if (rawDepth < 0.5) {
|
|
139
|
+
gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
|
|
48
140
|
return;
|
|
49
141
|
}
|
|
50
|
-
gl_FragColor = vec4(
|
|
142
|
+
gl_FragColor = vec4(jetColor(clamp(rawDepth / max(u_maxValue, 1.0), 0.0, 1.0)), 1.0);
|
|
51
143
|
}
|
|
52
144
|
`;
|
|
53
145
|
const YUV420_FRAGMENT_SHADER_SOURCE = `
|
|
@@ -172,6 +264,9 @@ export function resolveWebGlImageRenderPlan(image) {
|
|
|
172
264
|
case "mono8":
|
|
173
265
|
case "8UC1":
|
|
174
266
|
return resolvePackedPlan(image, "mono", 1, "luminance");
|
|
267
|
+
case "mono16":
|
|
268
|
+
case "16UC1":
|
|
269
|
+
return resolvePackedPlan(image, "mono16", 2, "luminance-alpha");
|
|
175
270
|
default:
|
|
176
271
|
return undefined;
|
|
177
272
|
}
|
|
@@ -188,6 +283,8 @@ export class WebGlImageRenderer {
|
|
|
188
283
|
#primaryTexture;
|
|
189
284
|
#secondaryTexture;
|
|
190
285
|
#tertiaryTexture;
|
|
286
|
+
#maxTextureSize = 0;
|
|
287
|
+
#tailWord = new Uint8Array(4);
|
|
191
288
|
constructor(canvas) {
|
|
192
289
|
this.#canvas = canvas;
|
|
193
290
|
const gl = canvas.getContext("webgl", {
|
|
@@ -202,6 +299,7 @@ export class WebGlImageRenderer {
|
|
|
202
299
|
return;
|
|
203
300
|
}
|
|
204
301
|
this.#gl = gl;
|
|
302
|
+
this.#maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);
|
|
205
303
|
gl.disable(gl.DEPTH_TEST);
|
|
206
304
|
gl.disable(gl.BLEND);
|
|
207
305
|
gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);
|
|
@@ -212,7 +310,28 @@ export class WebGlImageRenderer {
|
|
|
212
310
|
return this.#gl != undefined;
|
|
213
311
|
}
|
|
214
312
|
canRender(image) {
|
|
215
|
-
|
|
313
|
+
const gl = this.#gl;
|
|
314
|
+
const plan = resolveWebGlImageRenderPlan(image);
|
|
315
|
+
if (!gl || !plan || !this.#positionBuffer || !this.#texCoordBuffer) {
|
|
316
|
+
return false;
|
|
317
|
+
}
|
|
318
|
+
switch (plan.kind) {
|
|
319
|
+
case "packed":
|
|
320
|
+
return (resolvePackedByteTextureLayout(image.data.byteLength, this.#maxTextureSize) !=
|
|
321
|
+
undefined && this.#ensurePackedProgram(gl) != undefined);
|
|
322
|
+
case "nv12":
|
|
323
|
+
return (plan.yStride <= this.#maxTextureSize &&
|
|
324
|
+
image.height <= this.#maxTextureSize &&
|
|
325
|
+
this.#ensureNv12Program(gl) != undefined);
|
|
326
|
+
case "yuv422":
|
|
327
|
+
return (plan.textureWidth <= this.#maxTextureSize &&
|
|
328
|
+
plan.textureHeight <= this.#maxTextureSize &&
|
|
329
|
+
this.#ensureYuv422Program(gl) != undefined);
|
|
330
|
+
case "i420":
|
|
331
|
+
return (plan.yStride <= this.#maxTextureSize &&
|
|
332
|
+
image.height <= this.#maxTextureSize &&
|
|
333
|
+
this.#ensureYuvProgram(gl) != undefined);
|
|
334
|
+
}
|
|
216
335
|
}
|
|
217
336
|
clear(width, height) {
|
|
218
337
|
const gl = this.#gl;
|
|
@@ -243,17 +362,13 @@ export class WebGlImageRenderer {
|
|
|
243
362
|
gl.viewport(viewportX, viewportY, viewportWidth, viewportHeight);
|
|
244
363
|
switch (plan.kind) {
|
|
245
364
|
case "packed":
|
|
246
|
-
this.#drawPackedImage(gl, image, plan);
|
|
247
|
-
return true;
|
|
365
|
+
return this.#drawPackedImage(gl, image, plan);
|
|
248
366
|
case "nv12":
|
|
249
|
-
this.#drawNv12Image(gl, image, plan);
|
|
250
|
-
return true;
|
|
367
|
+
return this.#drawNv12Image(gl, image, plan);
|
|
251
368
|
case "yuv422":
|
|
252
|
-
this.#drawYuv422Image(gl, image, plan);
|
|
253
|
-
return true;
|
|
369
|
+
return this.#drawYuv422Image(gl, image, plan);
|
|
254
370
|
case "i420":
|
|
255
|
-
this.#drawI420Image(gl, image, plan);
|
|
256
|
-
return true;
|
|
371
|
+
return this.#drawI420Image(gl, image, plan);
|
|
257
372
|
}
|
|
258
373
|
}
|
|
259
374
|
destroy() {
|
|
@@ -285,33 +400,54 @@ export class WebGlImageRenderer {
|
|
|
285
400
|
this.#texCoordBuffer = undefined;
|
|
286
401
|
this.#gl = undefined;
|
|
287
402
|
}
|
|
403
|
+
releaseFrameResources() {
|
|
404
|
+
const gl = this.#gl;
|
|
405
|
+
if (!gl) {
|
|
406
|
+
return;
|
|
407
|
+
}
|
|
408
|
+
deleteTexture(gl, this.#primaryTexture);
|
|
409
|
+
deleteTexture(gl, this.#secondaryTexture);
|
|
410
|
+
deleteTexture(gl, this.#tertiaryTexture);
|
|
411
|
+
this.#primaryTexture = undefined;
|
|
412
|
+
this.#secondaryTexture = undefined;
|
|
413
|
+
this.#tertiaryTexture = undefined;
|
|
414
|
+
}
|
|
288
415
|
#drawPackedImage(gl, image, plan) {
|
|
289
416
|
const program = this.#ensurePackedProgram(gl);
|
|
290
417
|
if (!program) {
|
|
291
|
-
return;
|
|
418
|
+
return false;
|
|
292
419
|
}
|
|
293
420
|
if (!this.#bindProgram(gl, program.program, program.positionLocation, program.texCoordLocation)) {
|
|
294
|
-
return;
|
|
421
|
+
return false;
|
|
422
|
+
}
|
|
423
|
+
const layout = resolvePackedByteTextureLayout(image.data.byteLength, this.#maxTextureSize);
|
|
424
|
+
if (!layout) {
|
|
425
|
+
return false;
|
|
295
426
|
}
|
|
296
|
-
this.#primaryTexture =
|
|
427
|
+
this.#primaryTexture = uploadPackedByteTexture(gl, this.#primaryTexture, layout, image.data, this.#tailWord);
|
|
297
428
|
gl.activeTexture(gl.TEXTURE0);
|
|
298
429
|
gl.bindTexture(gl.TEXTURE_2D, this.#primaryTexture.texture);
|
|
299
430
|
gl.uniform1i(program.textureLocation, 0);
|
|
300
|
-
gl.uniform2f(program.
|
|
431
|
+
gl.uniform2f(program.storageSizeLocation, layout.width, layout.height);
|
|
432
|
+
gl.uniform2f(program.sourceSizeLocation, image.width, image.height);
|
|
433
|
+
gl.uniform1f(program.sourceStrideBytesLocation, image.step);
|
|
434
|
+
gl.uniform1f(program.bytesPerPixelLocation, plan.bytesPerPixel);
|
|
301
435
|
gl.uniform1f(program.modeLocation, packedModeToNumber(plan.mode));
|
|
436
|
+
gl.uniform1f(program.maxValueLocation, image.mono16MaxValue ?? 65_535);
|
|
302
437
|
gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
|
|
438
|
+
return true;
|
|
303
439
|
}
|
|
304
440
|
#drawNv12Image(gl, image, plan) {
|
|
305
441
|
const program = this.#ensureNv12Program(gl);
|
|
306
442
|
if (!program) {
|
|
307
|
-
return;
|
|
443
|
+
return false;
|
|
308
444
|
}
|
|
309
445
|
const uvHeight = image.height >> 1;
|
|
310
446
|
const uvTextureWidth = plan.yStride >> 1;
|
|
311
447
|
const uvByteLength = plan.yStride * uvHeight;
|
|
312
448
|
const yPlaneByteLength = plan.yStride * image.height;
|
|
313
449
|
if (!this.#bindProgram(gl, program.program, program.positionLocation, program.texCoordLocation)) {
|
|
314
|
-
return;
|
|
450
|
+
return false;
|
|
315
451
|
}
|
|
316
452
|
this.#primaryTexture = uploadTexture(gl, this.#primaryTexture, plan.yStride, image.height, gl.LUMINANCE, image.data.subarray(0, yPlaneByteLength));
|
|
317
453
|
this.#secondaryTexture = uploadTexture(gl, this.#secondaryTexture, uvTextureWidth, uvHeight, gl.LUMINANCE_ALPHA, image.data.subarray(plan.uvOffset, plan.uvOffset + uvByteLength));
|
|
@@ -324,14 +460,15 @@ export class WebGlImageRenderer {
|
|
|
324
460
|
gl.uniform1i(program.uvTextureLocation, 1);
|
|
325
461
|
gl.uniform2f(program.uvScaleLocation, image.width / plan.yStride, 1);
|
|
326
462
|
gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
|
|
463
|
+
return true;
|
|
327
464
|
}
|
|
328
465
|
#drawYuv422Image(gl, image, plan) {
|
|
329
466
|
const program = this.#ensureYuv422Program(gl);
|
|
330
467
|
if (!program) {
|
|
331
|
-
return;
|
|
468
|
+
return false;
|
|
332
469
|
}
|
|
333
470
|
if (!this.#bindProgram(gl, program.program, program.positionLocation, program.texCoordLocation)) {
|
|
334
|
-
return;
|
|
471
|
+
return false;
|
|
335
472
|
}
|
|
336
473
|
this.#primaryTexture = uploadTexture(gl, this.#primaryTexture, plan.textureWidth, plan.textureHeight, gl.RGBA, image.data);
|
|
337
474
|
gl.activeTexture(gl.TEXTURE0);
|
|
@@ -341,17 +478,18 @@ export class WebGlImageRenderer {
|
|
|
341
478
|
gl.uniform1f(program.visibleWidthLocation, image.width);
|
|
342
479
|
gl.uniform1f(program.modeLocation, yuv422ModeToNumber(plan.mode));
|
|
343
480
|
gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
|
|
481
|
+
return true;
|
|
344
482
|
}
|
|
345
483
|
#drawI420Image(gl, image, plan) {
|
|
346
484
|
const program = this.#ensureYuvProgram(gl);
|
|
347
485
|
if (!program) {
|
|
348
|
-
return;
|
|
486
|
+
return false;
|
|
349
487
|
}
|
|
350
488
|
const uvHeight = image.height >> 1;
|
|
351
489
|
const yPlaneByteLength = plan.yStride * image.height;
|
|
352
490
|
const uvPlaneByteLength = plan.uvStride * uvHeight;
|
|
353
491
|
if (!this.#bindProgram(gl, program.program, program.positionLocation, program.texCoordLocation)) {
|
|
354
|
-
return;
|
|
492
|
+
return false;
|
|
355
493
|
}
|
|
356
494
|
this.#primaryTexture = uploadTexture(gl, this.#primaryTexture, plan.yStride, image.height, gl.LUMINANCE, image.data.subarray(0, yPlaneByteLength));
|
|
357
495
|
this.#secondaryTexture = uploadTexture(gl, this.#secondaryTexture, plan.uvStride, uvHeight, gl.LUMINANCE, image.data.subarray(plan.uOffset, plan.uOffset + uvPlaneByteLength));
|
|
@@ -370,6 +508,7 @@ export class WebGlImageRenderer {
|
|
|
370
508
|
gl.uniform1i(program.vTextureLocation, 2);
|
|
371
509
|
gl.uniform2f(program.vScaleLocation, chromaScaleX, 1);
|
|
372
510
|
gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
|
|
511
|
+
return true;
|
|
373
512
|
}
|
|
374
513
|
#bindProgram(gl, program, positionLocation, texCoordLocation) {
|
|
375
514
|
if (!this.#positionBuffer || !this.#texCoordBuffer) {
|
|
@@ -395,13 +534,21 @@ export class WebGlImageRenderer {
|
|
|
395
534
|
const positionLocation = gl.getAttribLocation(program, "a_position");
|
|
396
535
|
const texCoordLocation = gl.getAttribLocation(program, "a_texCoord");
|
|
397
536
|
const textureLocation = gl.getUniformLocation(program, "u_texture");
|
|
398
|
-
const
|
|
537
|
+
const storageSizeLocation = gl.getUniformLocation(program, "u_storageSize");
|
|
538
|
+
const sourceSizeLocation = gl.getUniformLocation(program, "u_sourceSize");
|
|
539
|
+
const sourceStrideBytesLocation = gl.getUniformLocation(program, "u_sourceStrideBytes");
|
|
540
|
+
const bytesPerPixelLocation = gl.getUniformLocation(program, "u_bytesPerPixel");
|
|
399
541
|
const modeLocation = gl.getUniformLocation(program, "u_mode");
|
|
542
|
+
const maxValueLocation = gl.getUniformLocation(program, "u_maxValue");
|
|
400
543
|
if (positionLocation < 0 ||
|
|
401
544
|
texCoordLocation < 0 ||
|
|
402
545
|
!textureLocation ||
|
|
403
|
-
!
|
|
404
|
-
!
|
|
546
|
+
!storageSizeLocation ||
|
|
547
|
+
!sourceSizeLocation ||
|
|
548
|
+
!sourceStrideBytesLocation ||
|
|
549
|
+
!bytesPerPixelLocation ||
|
|
550
|
+
!modeLocation ||
|
|
551
|
+
!maxValueLocation) {
|
|
405
552
|
gl.deleteProgram(program);
|
|
406
553
|
return undefined;
|
|
407
554
|
}
|
|
@@ -410,8 +557,12 @@ export class WebGlImageRenderer {
|
|
|
410
557
|
positionLocation,
|
|
411
558
|
texCoordLocation,
|
|
412
559
|
textureLocation,
|
|
413
|
-
|
|
560
|
+
storageSizeLocation,
|
|
561
|
+
sourceSizeLocation,
|
|
562
|
+
sourceStrideBytesLocation,
|
|
563
|
+
bytesPerPixelLocation,
|
|
414
564
|
modeLocation,
|
|
565
|
+
maxValueLocation,
|
|
415
566
|
};
|
|
416
567
|
return this.#packedProgram;
|
|
417
568
|
}
|
|
@@ -540,6 +691,7 @@ function resolvePackedPlan(image, mode, bytesPerPixel, glFormat) {
|
|
|
540
691
|
return {
|
|
541
692
|
kind: "packed",
|
|
542
693
|
mode,
|
|
694
|
+
bytesPerPixel,
|
|
543
695
|
textureWidth,
|
|
544
696
|
textureHeight: image.height,
|
|
545
697
|
textureScaleX: image.width / textureWidth,
|
|
@@ -610,6 +762,8 @@ function packedModeToNumber(mode) {
|
|
|
610
762
|
return PACKED_MODE_BGRA;
|
|
611
763
|
case "mono":
|
|
612
764
|
return PACKED_MODE_MONO;
|
|
765
|
+
case "mono16":
|
|
766
|
+
return PACKED_MODE_MONO16;
|
|
613
767
|
}
|
|
614
768
|
}
|
|
615
769
|
function yuv422ModeToNumber(mode) {
|
|
@@ -620,16 +774,6 @@ function yuv422ModeToNumber(mode) {
|
|
|
620
774
|
return YUV422_MODE_YUYV;
|
|
621
775
|
}
|
|
622
776
|
}
|
|
623
|
-
function resolveGlFormat(gl, format) {
|
|
624
|
-
switch (format) {
|
|
625
|
-
case "rgb":
|
|
626
|
-
return gl.RGB;
|
|
627
|
-
case "rgba":
|
|
628
|
-
return gl.RGBA;
|
|
629
|
-
case "luminance":
|
|
630
|
-
return gl.LUMINANCE;
|
|
631
|
-
}
|
|
632
|
-
}
|
|
633
777
|
function createStaticBuffer(gl, data) {
|
|
634
778
|
const buffer = gl.createBuffer();
|
|
635
779
|
if (!buffer) {
|
|
@@ -674,6 +818,57 @@ function uploadTexture(gl, resource, width, height, format, data) {
|
|
|
674
818
|
gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height, format, gl.UNSIGNED_BYTE, data);
|
|
675
819
|
return textureResource;
|
|
676
820
|
}
|
|
821
|
+
function uploadPackedByteTexture(gl, resource, layout, data, tailWord) {
|
|
822
|
+
let textureResource = resource;
|
|
823
|
+
if (!textureResource) {
|
|
824
|
+
const texture = gl.createTexture();
|
|
825
|
+
if (!texture) {
|
|
826
|
+
throw new Error("Unable to create packed image texture.");
|
|
827
|
+
}
|
|
828
|
+
textureResource = {
|
|
829
|
+
texture,
|
|
830
|
+
width: 0,
|
|
831
|
+
height: 0,
|
|
832
|
+
internalFormat: gl.RGBA,
|
|
833
|
+
format: gl.RGBA,
|
|
834
|
+
};
|
|
835
|
+
}
|
|
836
|
+
gl.activeTexture(gl.TEXTURE0);
|
|
837
|
+
gl.bindTexture(gl.TEXTURE_2D, textureResource.texture);
|
|
838
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
|
|
839
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
|
|
840
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
|
|
841
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
|
|
842
|
+
gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);
|
|
843
|
+
if (textureResource.width !== layout.width ||
|
|
844
|
+
textureResource.height !== layout.height ||
|
|
845
|
+
textureResource.format !== gl.RGBA ||
|
|
846
|
+
textureResource.internalFormat !== gl.RGBA) {
|
|
847
|
+
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, layout.width, layout.height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);
|
|
848
|
+
textureResource.width = layout.width;
|
|
849
|
+
textureResource.height = layout.height;
|
|
850
|
+
textureResource.internalFormat = gl.RGBA;
|
|
851
|
+
textureResource.format = gl.RGBA;
|
|
852
|
+
}
|
|
853
|
+
const fullRowCount = Math.floor(layout.completeWordCount / layout.width);
|
|
854
|
+
const fullRowByteLength = fullRowCount * layout.width * 4;
|
|
855
|
+
if (fullRowCount > 0) {
|
|
856
|
+
gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, layout.width, fullRowCount, gl.RGBA, gl.UNSIGNED_BYTE, data.subarray(0, fullRowByteLength));
|
|
857
|
+
}
|
|
858
|
+
const remainingWordCount = layout.completeWordCount - fullRowCount * layout.width;
|
|
859
|
+
if (remainingWordCount > 0) {
|
|
860
|
+
const remainingByteLength = remainingWordCount * 4;
|
|
861
|
+
gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, fullRowCount, remainingWordCount, 1, gl.RGBA, gl.UNSIGNED_BYTE, data.subarray(fullRowByteLength, fullRowByteLength + remainingByteLength));
|
|
862
|
+
}
|
|
863
|
+
if (layout.tailByteCount > 0) {
|
|
864
|
+
tailWord.fill(0);
|
|
865
|
+
tailWord.set(data.subarray(layout.completeWordCount * 4));
|
|
866
|
+
const tailX = remainingWordCount;
|
|
867
|
+
const tailY = fullRowCount;
|
|
868
|
+
gl.texSubImage2D(gl.TEXTURE_2D, 0, tailX, tailY, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, tailWord);
|
|
869
|
+
}
|
|
870
|
+
return textureResource;
|
|
871
|
+
}
|
|
677
872
|
function createProgram(gl, vertexShaderSource, fragmentShaderSource) {
|
|
678
873
|
const vertexShader = createShader(gl, gl.VERTEX_SHADER, vertexShaderSource);
|
|
679
874
|
const fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentShaderSource);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-image-renderer.js","sourceRoot":"","sources":["../../../../src/visualizer/panels/image/webgl-image-renderer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"webgl-image-renderer.js","sourceRoot":"","sources":["../../../../src/visualizer/panels/image/webgl-image-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { VisualizerSegmentationMask } from "../../messaging/message-event.js";
|
|
2
|
+
type DrawRect = {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
};
|
|
8
|
+
export declare class WebGlSegmentationMaskRenderer {
|
|
9
|
+
#private;
|
|
10
|
+
static create(canvas: HTMLCanvasElement): WebGlSegmentationMaskRenderer | undefined;
|
|
11
|
+
private constructor();
|
|
12
|
+
draw(masks: readonly VisualizerSegmentationMask[], canvasWidth: number, canvasHeight: number, rect: DrawRect): void;
|
|
13
|
+
destroy(): void;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=webgl-segmentation-mask-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgl-segmentation-mask-renderer.d.ts","sourceRoot":"","sources":["../../../../src/visualizer/panels/image/webgl-segmentation-mask-renderer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAGnF,KAAK,QAAQ,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAuFxE,qBAAa,6BAA6B;;WAQ1B,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,6BAA6B,GAAG,SAAS;IAmB1F,OAAO;IAsCA,IAAI,CACT,KAAK,EAAE,SAAS,0BAA0B,EAAE,EAC5C,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,QAAQ,GACb,IAAI;IAiEA,OAAO,IAAI,IAAI;CAUvB"}
|