@headless-three/renderer 0.1.9 → 0.2.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/README.md +44 -290
- package/dist/gpu-output.d.ts +81 -0
- package/dist/gpu-output.d.ts.map +1 -0
- package/dist/gpu-output.js +53 -0
- package/dist/gpu-output.js.map +1 -0
- package/dist/index.d.ts +26 -770
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -6226
- package/dist/index.js.map +1 -1
- package/dist/index.part-001.d.ts +95 -0
- package/dist/index.part-001.d.ts.map +1 -0
- package/dist/index.part-001.js +273 -0
- package/dist/index.part-001.js.map +1 -0
- package/dist/index.part-002.d.ts +69 -0
- package/dist/index.part-002.d.ts.map +1 -0
- package/dist/index.part-002.js +211 -0
- package/dist/index.part-002.js.map +1 -0
- package/dist/index.part-003.d.ts +105 -0
- package/dist/index.part-003.d.ts.map +1 -0
- package/dist/index.part-003.js +270 -0
- package/dist/index.part-003.js.map +1 -0
- package/dist/index.part-004.d.ts +78 -0
- package/dist/index.part-004.d.ts.map +1 -0
- package/dist/index.part-004.js +390 -0
- package/dist/index.part-004.js.map +1 -0
- package/dist/index.part-005.d.ts +75 -0
- package/dist/index.part-005.d.ts.map +1 -0
- package/dist/index.part-005.js +236 -0
- package/dist/index.part-005.js.map +1 -0
- package/dist/index.part-006.d.ts +105 -0
- package/dist/index.part-006.d.ts.map +1 -0
- package/dist/index.part-006.js +262 -0
- package/dist/index.part-006.js.map +1 -0
- package/dist/index.part-007.d.ts +112 -0
- package/dist/index.part-007.d.ts.map +1 -0
- package/dist/index.part-007.js +358 -0
- package/dist/index.part-007.js.map +1 -0
- package/dist/index.part-008.d.ts +238 -0
- package/dist/index.part-008.d.ts.map +1 -0
- package/dist/index.part-008.js +454 -0
- package/dist/index.part-008.js.map +1 -0
- package/dist/index.part-009.d.ts +46 -0
- package/dist/index.part-009.d.ts.map +1 -0
- package/dist/index.part-009.js +379 -0
- package/dist/index.part-009.js.map +1 -0
- package/dist/index.part-010.d.ts +23 -0
- package/dist/index.part-010.d.ts.map +1 -0
- package/dist/index.part-010.js +245 -0
- package/dist/index.part-010.js.map +1 -0
- package/dist/index.part-011.d.ts +21 -0
- package/dist/index.part-011.d.ts.map +1 -0
- package/dist/index.part-011.js +361 -0
- package/dist/index.part-011.js.map +1 -0
- package/dist/index.part-012.d.ts +115 -0
- package/dist/index.part-012.d.ts.map +1 -0
- package/dist/index.part-012.js +298 -0
- package/dist/index.part-012.js.map +1 -0
- package/dist/index.part-013.d.ts +37 -0
- package/dist/index.part-013.d.ts.map +1 -0
- package/dist/index.part-013.js +341 -0
- package/dist/index.part-013.js.map +1 -0
- package/dist/index.part-014.d.ts +43 -0
- package/dist/index.part-014.d.ts.map +1 -0
- package/dist/index.part-014.js +441 -0
- package/dist/index.part-014.js.map +1 -0
- package/dist/index.part-015.d.ts +45 -0
- package/dist/index.part-015.d.ts.map +1 -0
- package/dist/index.part-015.js +432 -0
- package/dist/index.part-015.js.map +1 -0
- package/dist/index.part-016.d.ts +55 -0
- package/dist/index.part-016.d.ts.map +1 -0
- package/dist/index.part-016.js +382 -0
- package/dist/index.part-016.js.map +1 -0
- package/dist/index.part-017.d.ts +55 -0
- package/dist/index.part-017.d.ts.map +1 -0
- package/dist/index.part-017.js +436 -0
- package/dist/index.part-017.js.map +1 -0
- package/dist/index.part-018.d.ts +34 -0
- package/dist/index.part-018.d.ts.map +1 -0
- package/dist/index.part-018.js +365 -0
- package/dist/index.part-018.js.map +1 -0
- package/dist/index.part-019.d.ts +29 -0
- package/dist/index.part-019.d.ts.map +1 -0
- package/dist/index.part-019.js +261 -0
- package/dist/index.part-019.js.map +1 -0
- package/dist/index.part-020.d.ts +37 -0
- package/dist/index.part-020.d.ts.map +1 -0
- package/dist/index.part-020.js +388 -0
- package/dist/index.part-020.js.map +1 -0
- package/dist/index.part-021.d.ts +10 -0
- package/dist/index.part-021.d.ts.map +1 -0
- package/dist/index.part-021.js +142 -0
- package/dist/index.part-021.js.map +1 -0
- package/dist/loaders.d.ts +27 -91
- package/dist/loaders.d.ts.map +1 -1
- package/dist/loaders.js +22 -855
- package/dist/loaders.js.map +1 -1
- package/dist/loaders.part-001.d.ts +163 -0
- package/dist/loaders.part-001.d.ts.map +1 -0
- package/dist/loaders.part-001.js +277 -0
- package/dist/loaders.part-001.js.map +1 -0
- package/dist/loaders.part-002.d.ts +33 -0
- package/dist/loaders.part-002.d.ts.map +1 -0
- package/dist/loaders.part-002.js +511 -0
- package/dist/loaders.part-002.js.map +1 -0
- package/dist/loaders.part-003.d.ts +23 -0
- package/dist/loaders.part-003.d.ts.map +1 -0
- package/dist/loaders.part-003.js +138 -0
- package/dist/loaders.part-003.js.map +1 -0
- package/dist/materials.d.ts +33 -49
- package/dist/materials.d.ts.map +1 -1
- package/dist/materials.js +39 -4339
- package/dist/materials.js.map +1 -1
- package/dist/materials.part-001.d.ts +153 -0
- package/dist/materials.part-001.d.ts.map +1 -0
- package/dist/materials.part-001.js +347 -0
- package/dist/materials.part-001.js.map +1 -0
- package/dist/materials.part-002.d.ts +46 -0
- package/dist/materials.part-002.d.ts.map +1 -0
- package/dist/materials.part-002.js +299 -0
- package/dist/materials.part-002.js.map +1 -0
- package/dist/materials.part-003.d.ts +14 -0
- package/dist/materials.part-003.d.ts.map +1 -0
- package/dist/materials.part-003.js +438 -0
- package/dist/materials.part-003.js.map +1 -0
- package/dist/materials.part-004.d.ts +30 -0
- package/dist/materials.part-004.d.ts.map +1 -0
- package/dist/materials.part-004.js +464 -0
- package/dist/materials.part-004.js.map +1 -0
- package/dist/materials.part-005.d.ts +38 -0
- package/dist/materials.part-005.d.ts.map +1 -0
- package/dist/materials.part-005.js +366 -0
- package/dist/materials.part-005.js.map +1 -0
- package/dist/materials.part-006.d.ts +18 -0
- package/dist/materials.part-006.d.ts.map +1 -0
- package/dist/materials.part-006.js +391 -0
- package/dist/materials.part-006.js.map +1 -0
- package/dist/materials.part-007.d.ts +24 -0
- package/dist/materials.part-007.d.ts.map +1 -0
- package/dist/materials.part-007.js +467 -0
- package/dist/materials.part-007.js.map +1 -0
- package/dist/materials.part-008.d.ts +95 -0
- package/dist/materials.part-008.d.ts.map +1 -0
- package/dist/materials.part-008.js +404 -0
- package/dist/materials.part-008.js.map +1 -0
- package/dist/materials.part-009.d.ts +89 -0
- package/dist/materials.part-009.d.ts.map +1 -0
- package/dist/materials.part-009.js +412 -0
- package/dist/materials.part-009.js.map +1 -0
- package/dist/materials.part-010.d.ts +46 -0
- package/dist/materials.part-010.d.ts.map +1 -0
- package/dist/materials.part-010.js +375 -0
- package/dist/materials.part-010.js.map +1 -0
- package/dist/materials.part-011.d.ts +25 -0
- package/dist/materials.part-011.d.ts.map +1 -0
- package/dist/materials.part-011.js +435 -0
- package/dist/materials.part-011.js.map +1 -0
- package/dist/materials.part-012.d.ts +15 -0
- package/dist/materials.part-012.d.ts.map +1 -0
- package/dist/materials.part-012.js +229 -0
- package/dist/materials.part-012.js.map +1 -0
- package/dist/scene.d.ts +19 -279
- package/dist/scene.d.ts.map +1 -1
- package/dist/scene.js +21 -3931
- package/dist/scene.js.map +1 -1
- package/dist/scene.part-001.d.ts +375 -0
- package/dist/scene.part-001.d.ts.map +1 -0
- package/dist/scene.part-001.js +20 -0
- package/dist/scene.part-001.js.map +1 -0
- package/dist/scene.part-002.d.ts +28 -0
- package/dist/scene.part-002.d.ts.map +1 -0
- package/dist/scene.part-002.js +311 -0
- package/dist/scene.part-002.js.map +1 -0
- package/dist/scene.part-003.d.ts +26 -0
- package/dist/scene.part-003.d.ts.map +1 -0
- package/dist/scene.part-003.js +384 -0
- package/dist/scene.part-003.js.map +1 -0
- package/dist/scene.part-004.d.ts +24 -0
- package/dist/scene.part-004.d.ts.map +1 -0
- package/dist/scene.part-004.js +287 -0
- package/dist/scene.part-004.js.map +1 -0
- package/dist/scene.part-005.d.ts +37 -0
- package/dist/scene.part-005.d.ts.map +1 -0
- package/dist/scene.part-005.js +350 -0
- package/dist/scene.part-005.js.map +1 -0
- package/dist/scene.part-006.d.ts +25 -0
- package/dist/scene.part-006.d.ts.map +1 -0
- package/dist/scene.part-006.js +362 -0
- package/dist/scene.part-006.js.map +1 -0
- package/dist/scene.part-007.d.ts +36 -0
- package/dist/scene.part-007.d.ts.map +1 -0
- package/dist/scene.part-007.js +417 -0
- package/dist/scene.part-007.js.map +1 -0
- package/dist/scene.part-008.d.ts +78 -0
- package/dist/scene.part-008.d.ts.map +1 -0
- package/dist/scene.part-008.js +416 -0
- package/dist/scene.part-008.js.map +1 -0
- package/dist/scene.part-009.d.ts +25 -0
- package/dist/scene.part-009.d.ts.map +1 -0
- package/dist/scene.part-009.js +330 -0
- package/dist/scene.part-009.js.map +1 -0
- package/dist/scene.part-010.d.ts +32 -0
- package/dist/scene.part-010.d.ts.map +1 -0
- package/dist/scene.part-010.js +336 -0
- package/dist/scene.part-010.js.map +1 -0
- package/dist/scene.part-011.d.ts +100 -0
- package/dist/scene.part-011.d.ts.map +1 -0
- package/dist/scene.part-011.js +262 -0
- package/dist/scene.part-011.js.map +1 -0
- package/dist/scene.part-012.d.ts +48 -0
- package/dist/scene.part-012.d.ts.map +1 -0
- package/dist/scene.part-012.js +357 -0
- package/dist/scene.part-012.js.map +1 -0
- package/dist/scene.part-013.d.ts +51 -0
- package/dist/scene.part-013.d.ts.map +1 -0
- package/dist/scene.part-013.js +368 -0
- package/dist/scene.part-013.js.map +1 -0
- package/dist/scene.part-014.d.ts +16 -0
- package/dist/scene.part-014.d.ts.map +1 -0
- package/dist/scene.part-014.js +112 -0
- package/dist/scene.part-014.js.map +1 -0
- package/dist/types.d.ts +53 -1564
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -1
- package/dist/types.js.map +1 -1
- package/dist/types.part-001.d.ts +386 -0
- package/dist/types.part-001.d.ts.map +1 -0
- package/dist/types.part-001.js +4 -0
- package/dist/types.part-001.js.map +1 -0
- package/dist/types.part-002.d.ts +407 -0
- package/dist/types.part-002.d.ts.map +1 -0
- package/dist/types.part-002.js +3 -0
- package/dist/types.part-002.js.map +1 -0
- package/dist/types.part-003.d.ts +427 -0
- package/dist/types.part-003.d.ts.map +1 -0
- package/dist/types.part-003.js +3 -0
- package/dist/types.part-003.js.map +1 -0
- package/dist/types.part-004.d.ts +351 -0
- package/dist/types.part-004.d.ts.map +1 -0
- package/dist/types.part-004.js +3 -0
- package/dist/types.part-004.js.map +1 -0
- package/native.d.ts +40 -0
- package/native.js +53 -52
- package/package.json +16 -8
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assertRenderTargetLike = assertRenderTargetLike;
|
|
4
|
+
exports.assertThreeTextureLike = assertThreeTextureLike;
|
|
5
|
+
exports.hasThreeTextureMarker = hasThreeTextureMarker;
|
|
6
|
+
exports.isThreeTextureArgument = isThreeTextureArgument;
|
|
7
|
+
exports.assertCanvasTargetLike = assertCanvasTargetLike;
|
|
8
|
+
exports.assertRendererInspectorLike = assertRendererInspectorLike;
|
|
9
|
+
exports.assertTextureBindingSlot = assertTextureBindingSlot;
|
|
10
|
+
exports.unsupportedTextureBindingError = unsupportedTextureBindingError;
|
|
11
|
+
exports.unsupportedInternalRenderDispatchError = unsupportedInternalRenderDispatchError;
|
|
12
|
+
exports.unsupportedNodeOperationError = unsupportedNodeOperationError;
|
|
13
|
+
exports.unsupportedBackendOperationError = unsupportedBackendOperationError;
|
|
14
|
+
exports.assertComputeNodesLike = assertComputeNodesLike;
|
|
15
|
+
exports.assertComputeNodeLike = assertComputeNodeLike;
|
|
16
|
+
exports.assertComputeDispatchSize = assertComputeDispatchSize;
|
|
17
|
+
exports.assertPositiveInteger = assertPositiveInteger;
|
|
18
|
+
exports.assertStorageBufferAttributeLike = assertStorageBufferAttributeLike;
|
|
19
|
+
exports.assertTimestampQueryType = assertTimestampQueryType;
|
|
20
|
+
exports.assertTimestampUid = assertTimestampUid;
|
|
21
|
+
exports.unsupportedComputeError = unsupportedComputeError;
|
|
22
|
+
exports.assertExternalWebGlObjectLike = assertExternalWebGlObjectLike;
|
|
23
|
+
exports.assertOptionalExternalWebGlObjectLike = assertOptionalExternalWebGlObjectLike;
|
|
24
|
+
exports.rawTextureCopyImage = rawTextureCopyImage;
|
|
25
|
+
exports.textureCopyReadableImageError = textureCopyReadableImageError;
|
|
26
|
+
exports.isMutableTextureCopyData = isMutableTextureCopyData;
|
|
27
|
+
exports.assertTextureCopyLevel = assertTextureCopyLevel;
|
|
28
|
+
exports.textureCopySourceRegion = textureCopySourceRegion;
|
|
29
|
+
exports.textureCopyFramebufferSourceRegion = textureCopyFramebufferSourceRegion;
|
|
30
|
+
exports.textureCopyDestinationPosition = textureCopyDestinationPosition;
|
|
31
|
+
const materials_1 = require("./materials");
|
|
32
|
+
const index_part_001_1 = require("./index.part-001");
|
|
33
|
+
const index_part_017_1 = require("./index.part-017");
|
|
34
|
+
function assertRenderTargetLike(value, label) {
|
|
35
|
+
if (value == null || typeof value !== 'object' || Array.isArray(value)) {
|
|
36
|
+
throw new TypeError(`${label} must be a target-like object.`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function assertThreeTextureLike(value, label) {
|
|
40
|
+
if (value == null || typeof value !== 'object' || Array.isArray(value)) {
|
|
41
|
+
throw new TypeError(`${label} must be a texture-like object.`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function hasThreeTextureMarker(value) {
|
|
45
|
+
return (value !== null
|
|
46
|
+
&& typeof value === 'object'
|
|
47
|
+
&& !Array.isArray(value)
|
|
48
|
+
&& value.isTexture === true);
|
|
49
|
+
}
|
|
50
|
+
function isThreeTextureArgument(value) {
|
|
51
|
+
if (value === null || typeof value !== 'object' || Array.isArray(value))
|
|
52
|
+
return false;
|
|
53
|
+
const texture = value;
|
|
54
|
+
return (texture.isTexture === true
|
|
55
|
+
|| 'image' in texture
|
|
56
|
+
|| 'source' in texture
|
|
57
|
+
|| 'mipmaps' in texture
|
|
58
|
+
|| 'format' in texture
|
|
59
|
+
|| 'type' in texture
|
|
60
|
+
|| 'needsUpdate' in texture
|
|
61
|
+
|| 'colorSpace' in texture
|
|
62
|
+
|| texture.isFramebufferTexture === true
|
|
63
|
+
|| texture.isDepthTexture === true
|
|
64
|
+
|| texture.isVideoTexture === true
|
|
65
|
+
|| texture.isStorageTexture === true
|
|
66
|
+
|| texture.isCompressedTexture === true
|
|
67
|
+
|| texture.isDataArrayTexture === true
|
|
68
|
+
|| texture.isData3DTexture === true
|
|
69
|
+
|| texture.isArrayTexture === true
|
|
70
|
+
|| texture.is3DTexture === true);
|
|
71
|
+
}
|
|
72
|
+
function assertCanvasTargetLike(value, label) {
|
|
73
|
+
if (value == null || typeof value !== 'object' || Array.isArray(value)) {
|
|
74
|
+
throw new TypeError(`${label} must be a canvas-target-like object.`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function assertRendererInspectorLike(value, label) {
|
|
78
|
+
if (value == null || typeof value !== 'object' || Array.isArray(value)) {
|
|
79
|
+
throw new TypeError(`${label} must be an inspector-like object.`);
|
|
80
|
+
}
|
|
81
|
+
const inspector = value;
|
|
82
|
+
if (typeof inspector.setRenderer !== 'function') {
|
|
83
|
+
throw new TypeError(`${label}.setRenderer must be a function.`);
|
|
84
|
+
}
|
|
85
|
+
for (const method of index_part_001_1.RendererInspectorOptionalMethods) {
|
|
86
|
+
if (inspector[method] !== undefined && typeof inspector[method] !== 'function') {
|
|
87
|
+
throw new TypeError(`${label}.${method} must be a function when provided.`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function assertTextureBindingSlot(value, label) {
|
|
92
|
+
if (typeof value !== 'number' || !Number.isInteger(value) || value < 0) {
|
|
93
|
+
throw new TypeError(`${label} must be a non-negative integer.`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function unsupportedTextureBindingError(method) {
|
|
97
|
+
return new Error(`${method}() is not supported by @headless-three/renderer because it does not expose browser WebGL texture units or direct texture binding. Use material, background, environment, or render-target texture inputs instead.`);
|
|
98
|
+
}
|
|
99
|
+
function unsupportedInternalRenderDispatchError(method) {
|
|
100
|
+
return new Error(`${method}() is not supported by @headless-three/renderer because CommonRenderer internal render pipeline dispatch depends on backend render contexts, render lists, nodes, pipelines, and bindings that are outside the scene-oriented API. Render normal Three.js scene graphs with Renderer.render() or renderToTarget().`);
|
|
101
|
+
}
|
|
102
|
+
function unsupportedNodeOperationError(method, operation) {
|
|
103
|
+
return new Error(`${method}() is not supported by @headless-three/renderer because ${operation} requires Three.js shader-node graph translation and backend shader builder state that are outside the scene-oriented API. Use material.userData.headlessThreeRenderer.fragmentWgsl or material.customFragmentWgsl for the supported custom WGSL fragment path.`);
|
|
104
|
+
}
|
|
105
|
+
function unsupportedBackendOperationError(method, operation) {
|
|
106
|
+
return new Error(`${method}() is not supported by @headless-three/renderer because ${operation} would require backend WebGL/WebGPU resource state that is outside the scene-oriented API. Render normal Three.js scene graphs with Renderer.render() or renderToTarget().`);
|
|
107
|
+
}
|
|
108
|
+
function assertComputeNodesLike(value, label) {
|
|
109
|
+
if (Array.isArray(value)) {
|
|
110
|
+
if (value.length === 0) {
|
|
111
|
+
throw new TypeError(`${label} must contain at least one ComputeNode-like object.`);
|
|
112
|
+
}
|
|
113
|
+
for (const [index, node] of value.entries()) {
|
|
114
|
+
assertComputeNodeLike(node, `${label}[${index}]`);
|
|
115
|
+
}
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
assertComputeNodeLike(value, label);
|
|
119
|
+
}
|
|
120
|
+
function assertComputeNodeLike(value, label) {
|
|
121
|
+
if (value == null || typeof value !== 'object' || Array.isArray(value) || value.isComputeNode !== true) {
|
|
122
|
+
throw new TypeError(`${label} must be a ComputeNode-like object.`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
function assertComputeDispatchSize(value, label) {
|
|
126
|
+
if (value == null)
|
|
127
|
+
return;
|
|
128
|
+
if (typeof value === 'number') {
|
|
129
|
+
assertPositiveInteger(value, label);
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
if (Array.isArray(value)) {
|
|
133
|
+
if (value.length < 1 || value.length > 3) {
|
|
134
|
+
throw new TypeError(`${label} array must contain 1, 2, or 3 positive integer dimensions.`);
|
|
135
|
+
}
|
|
136
|
+
for (const [index, dimension] of value.entries()) {
|
|
137
|
+
assertPositiveInteger(dimension, `${label}[${index}]`);
|
|
138
|
+
}
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (typeof value === 'object' && value.isIndirectStorageBufferAttribute === true) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
throw new TypeError(`${label} must be a positive integer, [x, y, z] positive integer array, indirect storage buffer attribute, or null.`);
|
|
145
|
+
}
|
|
146
|
+
function assertPositiveInteger(value, label) {
|
|
147
|
+
if (typeof value !== 'number' || !Number.isFinite(value) || !Number.isInteger(value) || value <= 0) {
|
|
148
|
+
throw new TypeError(`${label} must be a positive integer.`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
function assertStorageBufferAttributeLike(value, label) {
|
|
152
|
+
if (value == null
|
|
153
|
+
|| typeof value !== 'object'
|
|
154
|
+
|| Array.isArray(value)
|
|
155
|
+
|| (value.isStorageBufferAttribute !== true
|
|
156
|
+
&& value.isStorageInstancedBufferAttribute !== true)) {
|
|
157
|
+
throw new TypeError(`${label} must be a storage buffer attribute-like object.`);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function assertTimestampQueryType(value, label) {
|
|
161
|
+
if (typeof value !== 'string') {
|
|
162
|
+
throw new TypeError(`${label} must be "render" or "compute".`);
|
|
163
|
+
}
|
|
164
|
+
if (!index_part_001_1.SupportedTimestampQueryTypes.has(value)) {
|
|
165
|
+
throw new TypeError(`${label} must be "render" or "compute"; received "${value}".`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
function assertTimestampUid(value, label) {
|
|
169
|
+
if (typeof value !== 'string' || value.length === 0) {
|
|
170
|
+
throw new TypeError(`${label} must be a non-empty string.`);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
function unsupportedComputeError(method) {
|
|
174
|
+
return new Error(`${method}() is not supported by @headless-three/renderer because it does not expose WebGPU compute pipelines, storage buffers, or GPU dispatch. Render normal Three.js scene graphs with Renderer.render() or renderToTarget().`);
|
|
175
|
+
}
|
|
176
|
+
function assertExternalWebGlObjectLike(value, label) {
|
|
177
|
+
if (value == null || typeof value !== 'object' || Array.isArray(value)) {
|
|
178
|
+
throw new TypeError(`${label} must be an external WebGL object-like handle.`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
function assertOptionalExternalWebGlObjectLike(value, label) {
|
|
182
|
+
if (value == null)
|
|
183
|
+
return;
|
|
184
|
+
assertExternalWebGlObjectLike(value, label);
|
|
185
|
+
}
|
|
186
|
+
function rawTextureCopyImage(texture, label, options = {}) {
|
|
187
|
+
if (texture.isFramebufferTexture === true) {
|
|
188
|
+
throw new Error(`${label} uses a FramebufferTexture, which is not supported by @headless-three/renderer texture copy yet. Use a readable raw DataTexture-style source or destination, or render into a target-like object and copy its readable color data.`);
|
|
189
|
+
}
|
|
190
|
+
if (texture.isDepthTexture === true) {
|
|
191
|
+
throw new Error(`${label} uses a DepthTexture, which is not supported by @headless-three/renderer texture copy yet. Use Renderer.readRenderTargetPixels() or target.depthTexture readback for depth data.`);
|
|
192
|
+
}
|
|
193
|
+
if (texture.isVideoTexture === true) {
|
|
194
|
+
throw new Error(`${label} uses a VideoTexture, which is not supported by @headless-three/renderer texture copy because live video frames are not directly readable in Node. Copy from a readable raw texture or canvas-like image instead.`);
|
|
195
|
+
}
|
|
196
|
+
if (texture.isStorageTexture === true) {
|
|
197
|
+
throw new Error(`${label} uses a StorageTexture, which is not supported by @headless-three/renderer texture copy because WebGPU storage texture backing data is not directly readable in Node. Copy from a readable raw texture or canvas-like image instead.`);
|
|
198
|
+
}
|
|
199
|
+
if (texture.isCompressedTexture === true ||
|
|
200
|
+
texture.isCompressedArrayTexture === true ||
|
|
201
|
+
texture.isCompressedCubeTexture === true) {
|
|
202
|
+
throw new Error(`${label} uses a compressed texture, which is not supported by @headless-three/renderer texture copy because compressed GPU payloads are not decoded in this path. Pre-decode the texture to readable raw data before copying.`);
|
|
203
|
+
}
|
|
204
|
+
if ((0, materials_1.isCompressedTextureFormat)(texture.format)) {
|
|
205
|
+
throw new Error(`${label} uses a compressed texture format, which is not supported by @headless-three/renderer texture copy because compressed GPU payloads are not decoded in this path. Pre-decode the texture to readable raw data before copying.`);
|
|
206
|
+
}
|
|
207
|
+
if (texture.isDataArrayTexture === true ||
|
|
208
|
+
texture.isData3DTexture === true ||
|
|
209
|
+
texture.isArrayTexture === true ||
|
|
210
|
+
texture.is3DTexture === true) {
|
|
211
|
+
throw new Error(`${label} uses an array or 3D texture, which is not supported by @headless-three/renderer texture copy yet. Use a readable 2D texture or copy layers separately.`);
|
|
212
|
+
}
|
|
213
|
+
const level = options.level ?? 0;
|
|
214
|
+
let image = texture.image ?? texture.source?.data;
|
|
215
|
+
if (level > 0) {
|
|
216
|
+
if (!Array.isArray(texture.mipmaps)) {
|
|
217
|
+
throw new TypeError(`${label}.mipmaps must be an array of image-like mip levels for level ${level}.`);
|
|
218
|
+
}
|
|
219
|
+
image = texture.mipmaps[level - 1];
|
|
220
|
+
if (!image) {
|
|
221
|
+
throw new TypeError(`${label}.mipmaps[${level - 1}] must provide a readable raw image object with data, width, and height.`);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
if (!image || Array.isArray(image) || Buffer.isBuffer(image) || image instanceof Uint8Array) {
|
|
225
|
+
throw new TypeError(textureCopyReadableImageError(label, options.allowCanvasRead === true));
|
|
226
|
+
}
|
|
227
|
+
if (typeof image !== 'object') {
|
|
228
|
+
throw new TypeError(textureCopyReadableImageError(label, options.allowCanvasRead === true));
|
|
229
|
+
}
|
|
230
|
+
const candidate = image;
|
|
231
|
+
if (candidate.data == null) {
|
|
232
|
+
if (options.allowCanvasRead === true) {
|
|
233
|
+
const canvasImage = (0, materials_1.canvasLikeImageToRgba)(image, label);
|
|
234
|
+
if (canvasImage) {
|
|
235
|
+
return { data: canvasImage.rgba, width: canvasImage.width, height: canvasImage.height, channels: 4 };
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
throw new TypeError(textureCopyReadableImageError(label, options.allowCanvasRead === true));
|
|
239
|
+
}
|
|
240
|
+
const width = (0, index_part_017_1.textureCopyPositiveInteger)(candidate.width, `${label}.width`);
|
|
241
|
+
const height = (0, index_part_017_1.textureCopyPositiveInteger)(candidate.height, `${label}.height`);
|
|
242
|
+
const data = candidate.data;
|
|
243
|
+
if (!isMutableTextureCopyData(data)) {
|
|
244
|
+
throw new TypeError(`${label}.data must be a mutable numeric array or typed array.`);
|
|
245
|
+
}
|
|
246
|
+
const pixels = width * height;
|
|
247
|
+
if (data.length === 0 || data.length % pixels !== 0) {
|
|
248
|
+
throw new RangeError(`${label}.data length must be a positive multiple of width * height.`);
|
|
249
|
+
}
|
|
250
|
+
const channels = data.length / pixels;
|
|
251
|
+
if (!Number.isInteger(channels) || channels < 1 || channels > 4) {
|
|
252
|
+
throw new RangeError(`${label}.data must use 1, 2, 3, or 4 channels per pixel.`);
|
|
253
|
+
}
|
|
254
|
+
return { data, width, height, channels };
|
|
255
|
+
}
|
|
256
|
+
function textureCopyReadableImageError(label, allowCanvasRead) {
|
|
257
|
+
if (allowCanvasRead) {
|
|
258
|
+
return `${label} must provide a readable image object with raw data, width, and height, or canvas-like pixel access, including OffscreenCanvas-backed image reads.`;
|
|
259
|
+
}
|
|
260
|
+
return `${label} must provide a readable raw image object with data, width, and height.`;
|
|
261
|
+
}
|
|
262
|
+
function isMutableTextureCopyData(value) {
|
|
263
|
+
return ((Array.isArray(value) || ArrayBuffer.isView(value)) &&
|
|
264
|
+
typeof value.length === 'number');
|
|
265
|
+
}
|
|
266
|
+
function assertTextureCopyLevel(value, label) {
|
|
267
|
+
const level = value == null ? 0 : value;
|
|
268
|
+
if (!Number.isInteger(level) || level < 0) {
|
|
269
|
+
throw new TypeError(`${label} must be a non-negative integer.`);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
function textureCopySourceRegion(value, sourceWidth, sourceHeight, label) {
|
|
273
|
+
if (value == null) {
|
|
274
|
+
return { x: 0, y: 0, width: sourceWidth, height: sourceHeight };
|
|
275
|
+
}
|
|
276
|
+
let region;
|
|
277
|
+
if (Array.isArray(value)) {
|
|
278
|
+
region = {
|
|
279
|
+
x: (0, index_part_017_1.textureCopyInteger)(value[0], `${label}.x`),
|
|
280
|
+
y: (0, index_part_017_1.textureCopyInteger)(value[1], `${label}.y`),
|
|
281
|
+
width: (0, index_part_017_1.textureCopyPositiveInteger)(value[2], `${label}.width`),
|
|
282
|
+
height: (0, index_part_017_1.textureCopyPositiveInteger)(value[3], `${label}.height`),
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
else if (typeof value === 'object') {
|
|
286
|
+
const candidate = value;
|
|
287
|
+
if (candidate.min && candidate.max) {
|
|
288
|
+
const x = (0, index_part_017_1.textureCopyInteger)(candidate.min.x, `${label}.min.x`);
|
|
289
|
+
const y = (0, index_part_017_1.textureCopyInteger)(candidate.min.y, `${label}.min.y`);
|
|
290
|
+
const maxX = (0, index_part_017_1.textureCopyInteger)(candidate.max.x, `${label}.max.x`);
|
|
291
|
+
const maxY = (0, index_part_017_1.textureCopyInteger)(candidate.max.y, `${label}.max.y`);
|
|
292
|
+
region = { x, y, width: maxX - x, height: maxY - y };
|
|
293
|
+
if (region.width <= 0 || region.height <= 0) {
|
|
294
|
+
throw new RangeError(`${label} box must have positive width and height.`);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
else {
|
|
298
|
+
region = {
|
|
299
|
+
x: (0, index_part_017_1.textureCopyInteger)(candidate.x, `${label}.x`),
|
|
300
|
+
y: (0, index_part_017_1.textureCopyInteger)(candidate.y, `${label}.y`),
|
|
301
|
+
width: (0, index_part_017_1.textureCopyPositiveInteger)(candidate.width, `${label}.width`),
|
|
302
|
+
height: (0, index_part_017_1.textureCopyPositiveInteger)(candidate.height, `${label}.height`),
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
throw new TypeError(`${label} must be a rectangle object, Box2-like object, array, or null.`);
|
|
308
|
+
}
|
|
309
|
+
if (region.x < 0 || region.y < 0 || region.x + region.width > sourceWidth || region.y + region.height > sourceHeight) {
|
|
310
|
+
throw new RangeError(`${label} must fit inside the source texture bounds.`);
|
|
311
|
+
}
|
|
312
|
+
return region;
|
|
313
|
+
}
|
|
314
|
+
function textureCopyFramebufferSourceRegion(value, defaultWidth, defaultHeight, sourceWidth, sourceHeight, label) {
|
|
315
|
+
let region;
|
|
316
|
+
if (value == null) {
|
|
317
|
+
region = { x: 0, y: 0, width: defaultWidth, height: defaultHeight };
|
|
318
|
+
}
|
|
319
|
+
else if (Array.isArray(value)) {
|
|
320
|
+
region = value.length >= 4
|
|
321
|
+
? {
|
|
322
|
+
x: (0, index_part_017_1.textureCopyFlooredInteger)(value[0], `${label}.x`),
|
|
323
|
+
y: (0, index_part_017_1.textureCopyFlooredInteger)(value[1], `${label}.y`),
|
|
324
|
+
width: (0, index_part_017_1.textureCopyPositiveFlooredInteger)(value[2], `${label}.width`),
|
|
325
|
+
height: (0, index_part_017_1.textureCopyPositiveFlooredInteger)(value[3], `${label}.height`),
|
|
326
|
+
}
|
|
327
|
+
: {
|
|
328
|
+
x: (0, index_part_017_1.textureCopyFlooredInteger)(value[0], `${label}.x`),
|
|
329
|
+
y: (0, index_part_017_1.textureCopyFlooredInteger)(value[1], `${label}.y`),
|
|
330
|
+
width: defaultWidth,
|
|
331
|
+
height: defaultHeight,
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
else if (typeof value === 'object') {
|
|
335
|
+
const candidate = value;
|
|
336
|
+
const x = (0, index_part_017_1.textureCopyFlooredInteger)(candidate.x, `${label}.x`);
|
|
337
|
+
const y = (0, index_part_017_1.textureCopyFlooredInteger)(candidate.y, `${label}.y`);
|
|
338
|
+
const isVector2 = candidate.isVector2 === true;
|
|
339
|
+
const isVector4 = candidate.isVector4 === true;
|
|
340
|
+
const width = isVector2 ? undefined : (isVector4 ? candidate.z : candidate.width ?? candidate.z);
|
|
341
|
+
const height = isVector2 ? undefined : (isVector4 ? candidate.w : candidate.height ?? candidate.w);
|
|
342
|
+
region = width === undefined && height === undefined
|
|
343
|
+
? { x, y, width: defaultWidth, height: defaultHeight }
|
|
344
|
+
: {
|
|
345
|
+
x,
|
|
346
|
+
y,
|
|
347
|
+
width: (0, index_part_017_1.textureCopyPositiveFlooredInteger)(width, `${label}.width`),
|
|
348
|
+
height: (0, index_part_017_1.textureCopyPositiveFlooredInteger)(height, `${label}.height`),
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
else {
|
|
352
|
+
throw new TypeError(`${label} must be a vector, rectangle object, array, or null.`);
|
|
353
|
+
}
|
|
354
|
+
if (region.x < 0 || region.y < 0) {
|
|
355
|
+
throw new RangeError(`${label} x and y must be non-negative.`);
|
|
356
|
+
}
|
|
357
|
+
if (region.x + region.width > sourceWidth || region.y + region.height > sourceHeight) {
|
|
358
|
+
throw new RangeError(`${label} must fit inside the active framebuffer bounds.`);
|
|
359
|
+
}
|
|
360
|
+
return region;
|
|
361
|
+
}
|
|
362
|
+
function textureCopyDestinationPosition(value, label) {
|
|
363
|
+
if (value == null)
|
|
364
|
+
return { x: 0, y: 0 };
|
|
365
|
+
if (Array.isArray(value)) {
|
|
366
|
+
const x = (0, index_part_017_1.textureCopyInteger)(value[0], `${label}.x`);
|
|
367
|
+
const y = (0, index_part_017_1.textureCopyInteger)(value[1], `${label}.y`);
|
|
368
|
+
if (x < 0 || y < 0)
|
|
369
|
+
throw new RangeError(`${label} must be non-negative.`);
|
|
370
|
+
return { x, y };
|
|
371
|
+
}
|
|
372
|
+
if (typeof value === 'object') {
|
|
373
|
+
const candidate = value;
|
|
374
|
+
const x = (0, index_part_017_1.textureCopyInteger)(candidate.x, `${label}.x`);
|
|
375
|
+
const y = (0, index_part_017_1.textureCopyInteger)(candidate.y, `${label}.y`);
|
|
376
|
+
if (x < 0 || y < 0)
|
|
377
|
+
throw new RangeError(`${label} must be non-negative.`);
|
|
378
|
+
return { x, y };
|
|
379
|
+
}
|
|
380
|
+
throw new TypeError(`${label} must be a vector object, array, or null.`);
|
|
381
|
+
}
|
|
382
|
+
//# sourceMappingURL=index.part-016.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.part-016.js","sourceRoot":"","sources":["../api/index.part-016.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { RenderOptions, RenderTargetLike, RenderTargetTextureLike, RenderTargetImageLike, RenderMode, RenderOutputColorSpace, RenderSortFunction } from './types';
|
|
2
|
+
import { RendererRenderListItem } from './index.part-006';
|
|
3
|
+
export declare function textureCopyInteger(value: unknown, label: string): number;
|
|
4
|
+
export declare function textureCopyFlooredInteger(value: unknown, label: string): number;
|
|
5
|
+
export declare function textureCopyPositiveInteger(value: unknown, label: string): number;
|
|
6
|
+
export declare function textureCopyPositiveFlooredInteger(value: unknown, label: string): number;
|
|
7
|
+
export declare function assertEulerOption(value: unknown, label: string): void;
|
|
8
|
+
export declare function validateSortControls(options: RenderOptions): void;
|
|
9
|
+
export declare function assertSortFunctionOrNull(value: unknown, label: string): asserts value is RenderSortFunction | null;
|
|
10
|
+
export declare function validateUnsupportedRenderTargetOptions(target: RenderTargetLike): void;
|
|
11
|
+
export declare function assertAuxiliaryRenderTargetAttachments(colorTextures: RenderTargetTextureLike[]): void;
|
|
12
|
+
export declare function renderTargetTextureRenderMode(texture: RenderTargetTextureLike, label: string): RenderMode | undefined;
|
|
13
|
+
export declare function renderTargetTextureRendererHints(texture: RenderTargetTextureLike, label: string): {
|
|
14
|
+
value: Record<string, unknown>;
|
|
15
|
+
label: string;
|
|
16
|
+
} | undefined;
|
|
17
|
+
export declare function assertPlainObject(value: unknown, label: string): asserts value is Record<string, unknown>;
|
|
18
|
+
export declare function targetColorTextureLabel(index: number): string;
|
|
19
|
+
export declare function assertSupportedSampleCount(value: unknown, label: string): void;
|
|
20
|
+
export declare function assertSupportedOutputFormat(value: unknown, label: string): void;
|
|
21
|
+
export declare function assertSupportedOutputColorSpace(value: unknown): void;
|
|
22
|
+
export declare function checkedOutputColorSpace(value: unknown, label: string): RenderOutputColorSpace;
|
|
23
|
+
export declare function assertRenderTargetTextureSlot(value: unknown, label: string): void;
|
|
24
|
+
export declare function assertRenderTargetTexturesSlot(value: unknown, label: string): void;
|
|
25
|
+
export declare function assertRenderTargetTextureLike(value: unknown, label: string): asserts value is RenderTargetTextureLike;
|
|
26
|
+
export declare function assertRenderTargetSource(value: unknown, label: string): void;
|
|
27
|
+
export declare function assertRenderTargetMipmaps(value: unknown, label: string): void;
|
|
28
|
+
export declare function assertRenderTargetImageSlot(value: unknown, label: string): void;
|
|
29
|
+
export declare function assertRenderTargetImageLike(value: unknown, label: string): asserts value is RenderTargetImageLike;
|
|
30
|
+
export declare function assertWebGlExtensionName(value: unknown, label: string): asserts value is string;
|
|
31
|
+
export declare function assertRendererProbeName(value: unknown, label: string): asserts value is string;
|
|
32
|
+
export declare function assertEventListener(type: unknown, listener: unknown, label: string): void;
|
|
33
|
+
export declare function assertDomElementAttributeName(value: unknown, label: string): asserts value is string;
|
|
34
|
+
export declare function domElementStylePropertyKey(value: unknown, label: string): string;
|
|
35
|
+
export declare function domElementStyleWritablePropertyKey(value: unknown, label: string): string;
|
|
36
|
+
export declare function assertXrInputIndex(value: unknown, label: string): asserts value is number;
|
|
37
|
+
export declare function assertWeakMapKey(value: unknown, label: string): asserts value is object;
|
|
38
|
+
export declare function assertWeakMapKeyArray(value: unknown, label: string): object[];
|
|
39
|
+
export declare function assertPropertyKey(value: unknown, label: string): asserts value is string;
|
|
40
|
+
export declare function assertNonEmptyString(value: unknown, label: string): asserts value is string;
|
|
41
|
+
export declare function assertFunction(value: unknown, label: string): asserts value is (...args: unknown[]) => unknown;
|
|
42
|
+
export declare function assertConstructorFunction(value: unknown, label: string): asserts value is new (...args: unknown[]) => Record<string, unknown>;
|
|
43
|
+
export declare function isNodeLike(value: unknown): boolean;
|
|
44
|
+
export declare function rendererNodeFrame(): Record<string, unknown>;
|
|
45
|
+
export declare function rendererSimpleHash(value: string): number;
|
|
46
|
+
export declare function assertFiniteInteger(value: unknown, label: string): asserts value is number;
|
|
47
|
+
export declare function rendererRenderListId(object: unknown): unknown;
|
|
48
|
+
export declare function rendererRenderListRenderOrder(object: unknown): unknown;
|
|
49
|
+
export declare function rendererRenderListMaterialVariant(object: unknown): number;
|
|
50
|
+
export declare function rendererRenderListOpaqueSort(a: RendererRenderListItem, b: RendererRenderListItem): number;
|
|
51
|
+
export declare function rendererRenderListTransparentSort(a: RendererRenderListItem, b: RendererRenderListItem): number;
|
|
52
|
+
export declare function rendererRenderListMaterialId(material: unknown): number;
|
|
53
|
+
export declare function rendererRenderListSortNumber(value: unknown): number;
|
|
54
|
+
export declare function rendererRenderListNeedsDoublePass(material: Record<string, unknown> | undefined): boolean;
|
|
55
|
+
//# sourceMappingURL=index.part-017.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.part-017.d.ts","sourceRoot":"","sources":["../api/index.part-017.ts"],"names":[],"mappings":"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"}
|