hdr-canvas 0.0.3 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/hdr-canvas.cjs +5 -0
- package/dist/hdr-canvas.cjs.map +1 -1
- package/dist/hdr-canvas.d.ts +1 -0
- package/dist/hdr-canvas.js +5 -0
- package/dist/hdr-canvas.js.map +1 -1
- package/dist/hdr-canvas.min.js +1 -1
- package/dist/hdr-canvas.min.js.map +1 -1
- package/package.json +3 -3
- package/src/Uint16Image.ts +7 -1
- package/three/HDRWebGPURenderer.js +1 -1
- package/three/WebGPU.js +60 -0
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "hdr-canvas",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.5",
|
4
4
|
"description": "HDR capable HTML canvas",
|
5
5
|
"main": "dist/hdr-canvas.js",
|
6
6
|
"files": [
|
@@ -46,8 +46,8 @@
|
|
46
46
|
"@types/eslint__js": "^8.42.3",
|
47
47
|
"eslint": "^9.6.0",
|
48
48
|
"prettier": "^3.3.2",
|
49
|
-
"rimraf": "^
|
50
|
-
"rollup": "^4.18.
|
49
|
+
"rimraf": "^6.0.0",
|
50
|
+
"rollup": "^4.18.1",
|
51
51
|
"rollup-plugin-dts": "^6.1.1",
|
52
52
|
"three": "^0.166.1",
|
53
53
|
"tslib": "^2.6.3",
|
package/src/Uint16Image.ts
CHANGED
@@ -67,7 +67,7 @@ export class Uint16Image {
|
|
67
67
|
this.data[pos + 3] = px[3];
|
68
68
|
}
|
69
69
|
|
70
|
-
// Only use this for
|
70
|
+
// Only use this for alpha, since it doesn't to color space conversions
|
71
71
|
static scaleUint8ToUint16(val: number): number {
|
72
72
|
return (val << 8) | val;
|
73
73
|
}
|
@@ -181,4 +181,10 @@ export class Uint16Image {
|
|
181
181
|
}
|
182
182
|
this.colorSpace = Uint16Image.DEFAULT_COLORSPACE;
|
183
183
|
}
|
184
|
+
|
185
|
+
clone(): Uint16Image {
|
186
|
+
const i = new Uint16Image(this.width, this.height, this.colorSpace);
|
187
|
+
i.data = this.data.slice();
|
188
|
+
return i;
|
189
|
+
}
|
184
190
|
}
|
package/three/WebGPU.js
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
if ( self.GPUShaderStage === undefined ) {
|
2
|
+
|
3
|
+
self.GPUShaderStage = { VERTEX: 1, FRAGMENT: 2, COMPUTE: 4 };
|
4
|
+
|
5
|
+
}
|
6
|
+
|
7
|
+
// statics
|
8
|
+
|
9
|
+
let isAvailable = navigator.gpu !== undefined;
|
10
|
+
|
11
|
+
|
12
|
+
if ( typeof window !== 'undefined' && isAvailable ) {
|
13
|
+
|
14
|
+
//isAvailable = await navigator.gpu.requestAdapter();
|
15
|
+
isAvailable = navigator.gpu.requestAdapter().then((isAvailable) => {
|
16
|
+
return isAvailable;
|
17
|
+
});
|
18
|
+
|
19
|
+
}
|
20
|
+
|
21
|
+
class WebGPU {
|
22
|
+
|
23
|
+
static isAvailable() {
|
24
|
+
|
25
|
+
return Boolean( isAvailable );
|
26
|
+
|
27
|
+
}
|
28
|
+
|
29
|
+
static getStaticAdapter() {
|
30
|
+
|
31
|
+
return isAvailable;
|
32
|
+
|
33
|
+
}
|
34
|
+
|
35
|
+
static getErrorMessage() {
|
36
|
+
|
37
|
+
const message = 'Your browser does not support <a href="https://gpuweb.github.io/gpuweb/" style="color:blue">WebGPU</a> yet';
|
38
|
+
|
39
|
+
const element = document.createElement( 'div' );
|
40
|
+
element.id = 'webgpumessage';
|
41
|
+
element.style.fontFamily = 'monospace';
|
42
|
+
element.style.fontSize = '13px';
|
43
|
+
element.style.fontWeight = 'normal';
|
44
|
+
element.style.textAlign = 'center';
|
45
|
+
element.style.background = '#fff';
|
46
|
+
element.style.color = '#000';
|
47
|
+
element.style.padding = '1.5em';
|
48
|
+
element.style.maxWidth = '400px';
|
49
|
+
element.style.margin = '5em auto 0';
|
50
|
+
|
51
|
+
element.innerHTML = message;
|
52
|
+
|
53
|
+
return element;
|
54
|
+
|
55
|
+
}
|
56
|
+
|
57
|
+
}
|
58
|
+
|
59
|
+
|
60
|
+
export default WebGPU;
|