@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.
Files changed (244) hide show
  1. package/README.md +44 -290
  2. package/dist/gpu-output.d.ts +81 -0
  3. package/dist/gpu-output.d.ts.map +1 -0
  4. package/dist/gpu-output.js +53 -0
  5. package/dist/gpu-output.js.map +1 -0
  6. package/dist/index.d.ts +26 -770
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +30 -6226
  9. package/dist/index.js.map +1 -1
  10. package/dist/index.part-001.d.ts +95 -0
  11. package/dist/index.part-001.d.ts.map +1 -0
  12. package/dist/index.part-001.js +273 -0
  13. package/dist/index.part-001.js.map +1 -0
  14. package/dist/index.part-002.d.ts +69 -0
  15. package/dist/index.part-002.d.ts.map +1 -0
  16. package/dist/index.part-002.js +211 -0
  17. package/dist/index.part-002.js.map +1 -0
  18. package/dist/index.part-003.d.ts +105 -0
  19. package/dist/index.part-003.d.ts.map +1 -0
  20. package/dist/index.part-003.js +270 -0
  21. package/dist/index.part-003.js.map +1 -0
  22. package/dist/index.part-004.d.ts +78 -0
  23. package/dist/index.part-004.d.ts.map +1 -0
  24. package/dist/index.part-004.js +390 -0
  25. package/dist/index.part-004.js.map +1 -0
  26. package/dist/index.part-005.d.ts +75 -0
  27. package/dist/index.part-005.d.ts.map +1 -0
  28. package/dist/index.part-005.js +236 -0
  29. package/dist/index.part-005.js.map +1 -0
  30. package/dist/index.part-006.d.ts +105 -0
  31. package/dist/index.part-006.d.ts.map +1 -0
  32. package/dist/index.part-006.js +262 -0
  33. package/dist/index.part-006.js.map +1 -0
  34. package/dist/index.part-007.d.ts +112 -0
  35. package/dist/index.part-007.d.ts.map +1 -0
  36. package/dist/index.part-007.js +358 -0
  37. package/dist/index.part-007.js.map +1 -0
  38. package/dist/index.part-008.d.ts +238 -0
  39. package/dist/index.part-008.d.ts.map +1 -0
  40. package/dist/index.part-008.js +454 -0
  41. package/dist/index.part-008.js.map +1 -0
  42. package/dist/index.part-009.d.ts +46 -0
  43. package/dist/index.part-009.d.ts.map +1 -0
  44. package/dist/index.part-009.js +379 -0
  45. package/dist/index.part-009.js.map +1 -0
  46. package/dist/index.part-010.d.ts +23 -0
  47. package/dist/index.part-010.d.ts.map +1 -0
  48. package/dist/index.part-010.js +245 -0
  49. package/dist/index.part-010.js.map +1 -0
  50. package/dist/index.part-011.d.ts +21 -0
  51. package/dist/index.part-011.d.ts.map +1 -0
  52. package/dist/index.part-011.js +361 -0
  53. package/dist/index.part-011.js.map +1 -0
  54. package/dist/index.part-012.d.ts +115 -0
  55. package/dist/index.part-012.d.ts.map +1 -0
  56. package/dist/index.part-012.js +298 -0
  57. package/dist/index.part-012.js.map +1 -0
  58. package/dist/index.part-013.d.ts +37 -0
  59. package/dist/index.part-013.d.ts.map +1 -0
  60. package/dist/index.part-013.js +341 -0
  61. package/dist/index.part-013.js.map +1 -0
  62. package/dist/index.part-014.d.ts +43 -0
  63. package/dist/index.part-014.d.ts.map +1 -0
  64. package/dist/index.part-014.js +441 -0
  65. package/dist/index.part-014.js.map +1 -0
  66. package/dist/index.part-015.d.ts +45 -0
  67. package/dist/index.part-015.d.ts.map +1 -0
  68. package/dist/index.part-015.js +432 -0
  69. package/dist/index.part-015.js.map +1 -0
  70. package/dist/index.part-016.d.ts +55 -0
  71. package/dist/index.part-016.d.ts.map +1 -0
  72. package/dist/index.part-016.js +382 -0
  73. package/dist/index.part-016.js.map +1 -0
  74. package/dist/index.part-017.d.ts +55 -0
  75. package/dist/index.part-017.d.ts.map +1 -0
  76. package/dist/index.part-017.js +436 -0
  77. package/dist/index.part-017.js.map +1 -0
  78. package/dist/index.part-018.d.ts +34 -0
  79. package/dist/index.part-018.d.ts.map +1 -0
  80. package/dist/index.part-018.js +365 -0
  81. package/dist/index.part-018.js.map +1 -0
  82. package/dist/index.part-019.d.ts +29 -0
  83. package/dist/index.part-019.d.ts.map +1 -0
  84. package/dist/index.part-019.js +261 -0
  85. package/dist/index.part-019.js.map +1 -0
  86. package/dist/index.part-020.d.ts +37 -0
  87. package/dist/index.part-020.d.ts.map +1 -0
  88. package/dist/index.part-020.js +388 -0
  89. package/dist/index.part-020.js.map +1 -0
  90. package/dist/index.part-021.d.ts +10 -0
  91. package/dist/index.part-021.d.ts.map +1 -0
  92. package/dist/index.part-021.js +142 -0
  93. package/dist/index.part-021.js.map +1 -0
  94. package/dist/loaders.d.ts +27 -91
  95. package/dist/loaders.d.ts.map +1 -1
  96. package/dist/loaders.js +22 -855
  97. package/dist/loaders.js.map +1 -1
  98. package/dist/loaders.part-001.d.ts +163 -0
  99. package/dist/loaders.part-001.d.ts.map +1 -0
  100. package/dist/loaders.part-001.js +277 -0
  101. package/dist/loaders.part-001.js.map +1 -0
  102. package/dist/loaders.part-002.d.ts +33 -0
  103. package/dist/loaders.part-002.d.ts.map +1 -0
  104. package/dist/loaders.part-002.js +511 -0
  105. package/dist/loaders.part-002.js.map +1 -0
  106. package/dist/loaders.part-003.d.ts +23 -0
  107. package/dist/loaders.part-003.d.ts.map +1 -0
  108. package/dist/loaders.part-003.js +138 -0
  109. package/dist/loaders.part-003.js.map +1 -0
  110. package/dist/materials.d.ts +33 -49
  111. package/dist/materials.d.ts.map +1 -1
  112. package/dist/materials.js +39 -4339
  113. package/dist/materials.js.map +1 -1
  114. package/dist/materials.part-001.d.ts +153 -0
  115. package/dist/materials.part-001.d.ts.map +1 -0
  116. package/dist/materials.part-001.js +347 -0
  117. package/dist/materials.part-001.js.map +1 -0
  118. package/dist/materials.part-002.d.ts +46 -0
  119. package/dist/materials.part-002.d.ts.map +1 -0
  120. package/dist/materials.part-002.js +299 -0
  121. package/dist/materials.part-002.js.map +1 -0
  122. package/dist/materials.part-003.d.ts +14 -0
  123. package/dist/materials.part-003.d.ts.map +1 -0
  124. package/dist/materials.part-003.js +438 -0
  125. package/dist/materials.part-003.js.map +1 -0
  126. package/dist/materials.part-004.d.ts +30 -0
  127. package/dist/materials.part-004.d.ts.map +1 -0
  128. package/dist/materials.part-004.js +464 -0
  129. package/dist/materials.part-004.js.map +1 -0
  130. package/dist/materials.part-005.d.ts +38 -0
  131. package/dist/materials.part-005.d.ts.map +1 -0
  132. package/dist/materials.part-005.js +366 -0
  133. package/dist/materials.part-005.js.map +1 -0
  134. package/dist/materials.part-006.d.ts +18 -0
  135. package/dist/materials.part-006.d.ts.map +1 -0
  136. package/dist/materials.part-006.js +391 -0
  137. package/dist/materials.part-006.js.map +1 -0
  138. package/dist/materials.part-007.d.ts +24 -0
  139. package/dist/materials.part-007.d.ts.map +1 -0
  140. package/dist/materials.part-007.js +467 -0
  141. package/dist/materials.part-007.js.map +1 -0
  142. package/dist/materials.part-008.d.ts +95 -0
  143. package/dist/materials.part-008.d.ts.map +1 -0
  144. package/dist/materials.part-008.js +404 -0
  145. package/dist/materials.part-008.js.map +1 -0
  146. package/dist/materials.part-009.d.ts +89 -0
  147. package/dist/materials.part-009.d.ts.map +1 -0
  148. package/dist/materials.part-009.js +412 -0
  149. package/dist/materials.part-009.js.map +1 -0
  150. package/dist/materials.part-010.d.ts +46 -0
  151. package/dist/materials.part-010.d.ts.map +1 -0
  152. package/dist/materials.part-010.js +375 -0
  153. package/dist/materials.part-010.js.map +1 -0
  154. package/dist/materials.part-011.d.ts +25 -0
  155. package/dist/materials.part-011.d.ts.map +1 -0
  156. package/dist/materials.part-011.js +435 -0
  157. package/dist/materials.part-011.js.map +1 -0
  158. package/dist/materials.part-012.d.ts +15 -0
  159. package/dist/materials.part-012.d.ts.map +1 -0
  160. package/dist/materials.part-012.js +229 -0
  161. package/dist/materials.part-012.js.map +1 -0
  162. package/dist/scene.d.ts +19 -279
  163. package/dist/scene.d.ts.map +1 -1
  164. package/dist/scene.js +21 -3931
  165. package/dist/scene.js.map +1 -1
  166. package/dist/scene.part-001.d.ts +375 -0
  167. package/dist/scene.part-001.d.ts.map +1 -0
  168. package/dist/scene.part-001.js +20 -0
  169. package/dist/scene.part-001.js.map +1 -0
  170. package/dist/scene.part-002.d.ts +28 -0
  171. package/dist/scene.part-002.d.ts.map +1 -0
  172. package/dist/scene.part-002.js +311 -0
  173. package/dist/scene.part-002.js.map +1 -0
  174. package/dist/scene.part-003.d.ts +26 -0
  175. package/dist/scene.part-003.d.ts.map +1 -0
  176. package/dist/scene.part-003.js +384 -0
  177. package/dist/scene.part-003.js.map +1 -0
  178. package/dist/scene.part-004.d.ts +24 -0
  179. package/dist/scene.part-004.d.ts.map +1 -0
  180. package/dist/scene.part-004.js +287 -0
  181. package/dist/scene.part-004.js.map +1 -0
  182. package/dist/scene.part-005.d.ts +37 -0
  183. package/dist/scene.part-005.d.ts.map +1 -0
  184. package/dist/scene.part-005.js +350 -0
  185. package/dist/scene.part-005.js.map +1 -0
  186. package/dist/scene.part-006.d.ts +25 -0
  187. package/dist/scene.part-006.d.ts.map +1 -0
  188. package/dist/scene.part-006.js +362 -0
  189. package/dist/scene.part-006.js.map +1 -0
  190. package/dist/scene.part-007.d.ts +36 -0
  191. package/dist/scene.part-007.d.ts.map +1 -0
  192. package/dist/scene.part-007.js +417 -0
  193. package/dist/scene.part-007.js.map +1 -0
  194. package/dist/scene.part-008.d.ts +78 -0
  195. package/dist/scene.part-008.d.ts.map +1 -0
  196. package/dist/scene.part-008.js +416 -0
  197. package/dist/scene.part-008.js.map +1 -0
  198. package/dist/scene.part-009.d.ts +25 -0
  199. package/dist/scene.part-009.d.ts.map +1 -0
  200. package/dist/scene.part-009.js +330 -0
  201. package/dist/scene.part-009.js.map +1 -0
  202. package/dist/scene.part-010.d.ts +32 -0
  203. package/dist/scene.part-010.d.ts.map +1 -0
  204. package/dist/scene.part-010.js +336 -0
  205. package/dist/scene.part-010.js.map +1 -0
  206. package/dist/scene.part-011.d.ts +100 -0
  207. package/dist/scene.part-011.d.ts.map +1 -0
  208. package/dist/scene.part-011.js +262 -0
  209. package/dist/scene.part-011.js.map +1 -0
  210. package/dist/scene.part-012.d.ts +48 -0
  211. package/dist/scene.part-012.d.ts.map +1 -0
  212. package/dist/scene.part-012.js +357 -0
  213. package/dist/scene.part-012.js.map +1 -0
  214. package/dist/scene.part-013.d.ts +51 -0
  215. package/dist/scene.part-013.d.ts.map +1 -0
  216. package/dist/scene.part-013.js +368 -0
  217. package/dist/scene.part-013.js.map +1 -0
  218. package/dist/scene.part-014.d.ts +16 -0
  219. package/dist/scene.part-014.d.ts.map +1 -0
  220. package/dist/scene.part-014.js +112 -0
  221. package/dist/scene.part-014.js.map +1 -0
  222. package/dist/types.d.ts +53 -1564
  223. package/dist/types.d.ts.map +1 -1
  224. package/dist/types.js +4 -1
  225. package/dist/types.js.map +1 -1
  226. package/dist/types.part-001.d.ts +386 -0
  227. package/dist/types.part-001.d.ts.map +1 -0
  228. package/dist/types.part-001.js +4 -0
  229. package/dist/types.part-001.js.map +1 -0
  230. package/dist/types.part-002.d.ts +407 -0
  231. package/dist/types.part-002.d.ts.map +1 -0
  232. package/dist/types.part-002.js +3 -0
  233. package/dist/types.part-002.js.map +1 -0
  234. package/dist/types.part-003.d.ts +427 -0
  235. package/dist/types.part-003.d.ts.map +1 -0
  236. package/dist/types.part-003.js +3 -0
  237. package/dist/types.part-003.js.map +1 -0
  238. package/dist/types.part-004.d.ts +351 -0
  239. package/dist/types.part-004.d.ts.map +1 -0
  240. package/dist/types.part-004.js +3 -0
  241. package/dist/types.part-004.js.map +1 -0
  242. package/native.d.ts +40 -0
  243. package/native.js +53 -52
  244. package/package.json +16 -8
@@ -0,0 +1,388 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderTargetReadbackSource = renderTargetReadbackSource;
4
+ exports.renderTargetReadbackImage = renderTargetReadbackImage;
5
+ exports.renderTargetTextureFaceImage = renderTargetTextureFaceImage;
6
+ exports.renderTargetReadbackChannelCount = renderTargetReadbackChannelCount;
7
+ exports.copyRenderTargetReadbackPixels = copyRenderTargetReadbackPixels;
8
+ exports.readbackRect = readbackRect;
9
+ exports.assertRenderTargetReadbackBuffer = assertRenderTargetReadbackBuffer;
10
+ exports.createRenderTargetReadbackBuffer = createRenderTargetReadbackBuffer;
11
+ exports.writeRenderTargetTexture = writeRenderTargetTexture;
12
+ exports.colorTextureData = colorTextureData;
13
+ exports.normalizedByteToSignedInteger = normalizedByteToSignedInteger;
14
+ exports.normalizedByteToUnsignedInteger = normalizedByteToUnsignedInteger;
15
+ exports.packedUnsignedShort4444ColorTextureData = packedUnsignedShort4444ColorTextureData;
16
+ exports.packedUnsignedShort5551ColorTextureData = packedUnsignedShort5551ColorTextureData;
17
+ exports.packedUnsignedInt5999ColorTextureData = packedUnsignedInt5999ColorTextureData;
18
+ exports.packedUnsignedInt101111ColorTextureData = packedUnsignedInt101111ColorTextureData;
19
+ exports.packRgb9E5 = packRgb9E5;
20
+ exports.packR11G11B10F = packR11G11B10F;
21
+ exports.packUnsignedFloat = packUnsignedFloat;
22
+ exports.colorTextureChannelCount = colorTextureChannelCount;
23
+ exports.colorTextureBytes = colorTextureBytes;
24
+ exports.alphaColorTextureBytes = alphaColorTextureBytes;
25
+ exports.narrowedColorTextureBytes = narrowedColorTextureBytes;
26
+ exports.luminanceAlphaColorTextureBytes = luminanceAlphaColorTextureBytes;
27
+ const index_part_012_1 = require("./index.part-012");
28
+ const index_part_013_1 = require("./index.part-013");
29
+ const index_part_016_1 = require("./index.part-016");
30
+ const index_part_017_1 = require("./index.part-017");
31
+ const index_part_019_1 = require("./index.part-019");
32
+ const index_part_021_1 = require("./index.part-021");
33
+ function renderTargetReadbackSource(target, activeCubeFaceIndex, textureIndex, label, activeMipmapLevel = 0) {
34
+ (0, index_part_016_1.assertRenderTargetLike)(target, `${label} target`);
35
+ (0, index_part_017_1.validateUnsupportedRenderTargetOptions)(target);
36
+ if (!Number.isInteger(textureIndex) || textureIndex < 0) {
37
+ throw new TypeError(`${label} textureIndex must be a non-negative integer.`);
38
+ }
39
+ if (activeCubeFaceIndex !== undefined) {
40
+ (0, index_part_013_1.assertActiveCubeFace)(activeCubeFaceIndex, `${label} activeCubeFaceIndex`);
41
+ }
42
+ const texture = (0, index_part_019_1.renderTargetColorTextures)(target)[textureIndex];
43
+ const image = renderTargetReadbackImage(target, texture, activeCubeFaceIndex, textureIndex, activeMipmapLevel);
44
+ if (!image?.data) {
45
+ throw new Error(`${label} target has no readable color data. Render into the target before reading pixels.`);
46
+ }
47
+ const rawWidth = image.width ?? target.width;
48
+ const rawHeight = image.height ?? target.height;
49
+ if (typeof rawWidth !== 'number' ||
50
+ !Number.isInteger(rawWidth) ||
51
+ rawWidth <= 0 ||
52
+ typeof rawHeight !== 'number' ||
53
+ !Number.isInteger(rawHeight) ||
54
+ rawHeight <= 0) {
55
+ throw new Error(`${label} target readable color data is missing valid width and height.`);
56
+ }
57
+ const width = rawWidth;
58
+ const height = rawHeight;
59
+ const channels = renderTargetReadbackChannelCount(image.data, width, height, label);
60
+ return { data: image.data, width, height, channels };
61
+ }
62
+ function renderTargetReadbackImage(target, texture, activeCubeFaceIndex, textureIndex, activeMipmapLevel = 0) {
63
+ if (activeCubeFaceIndex !== undefined) {
64
+ return renderTargetTextureFaceImage(texture, activeCubeFaceIndex, activeMipmapLevel);
65
+ }
66
+ if (texture) {
67
+ const image = Array.isArray(texture.image) ? texture.image[0] : texture.image;
68
+ if (image?.data)
69
+ return image;
70
+ const sourceData = texture.source?.data;
71
+ const sourceImage = Array.isArray(sourceData) ? sourceData[0] : sourceData;
72
+ if (sourceImage?.data)
73
+ return sourceImage;
74
+ }
75
+ if (textureIndex === 0) {
76
+ if (target.image?.data)
77
+ return target.image;
78
+ if (target.data)
79
+ return {
80
+ data: target.data,
81
+ width: target.width,
82
+ height: target.height,
83
+ };
84
+ }
85
+ return undefined;
86
+ }
87
+ function renderTargetTextureFaceImage(texture, activeCubeFaceIndex, activeMipmapLevel = 0) {
88
+ if (!texture)
89
+ return undefined;
90
+ if (activeMipmapLevel > 0) {
91
+ const mipmapImage = texture.mipmaps?.[activeMipmapLevel]?.image;
92
+ if (Array.isArray(mipmapImage) && mipmapImage[activeCubeFaceIndex]?.data) {
93
+ return mipmapImage[activeCubeFaceIndex];
94
+ }
95
+ return undefined;
96
+ }
97
+ if (Array.isArray(texture.image) && texture.image[activeCubeFaceIndex]?.data) {
98
+ return texture.image[activeCubeFaceIndex];
99
+ }
100
+ const sourceData = texture.source?.data;
101
+ if (Array.isArray(sourceData) && sourceData[activeCubeFaceIndex]?.data) {
102
+ return sourceData[activeCubeFaceIndex];
103
+ }
104
+ return undefined;
105
+ }
106
+ function renderTargetReadbackChannelCount(data, width, height, label) {
107
+ const pixelCount = width * height;
108
+ if (data.length === 0 || data.length % pixelCount !== 0) {
109
+ throw new Error(`${label} target readable color data length does not match its width and height.`);
110
+ }
111
+ return data.length / pixelCount;
112
+ }
113
+ function copyRenderTargetReadbackPixels(readback, x, y, width, height, buffer, label) {
114
+ const rect = readbackRect(x, y, width, height, label);
115
+ if (rect.x + rect.width > readback.width || rect.y + rect.height > readback.height) {
116
+ throw new Error(`${label} requested read bounds are out of range.`);
117
+ }
118
+ assertRenderTargetReadbackBuffer(buffer, rect.width * rect.height * readback.channels, label);
119
+ for (let row = 0; row < rect.height; row += 1) {
120
+ const sourceStart = ((rect.y + row) * readback.width + rect.x) * readback.channels;
121
+ const sourceEnd = sourceStart + rect.width * readback.channels;
122
+ const targetStart = row * rect.width * readback.channels;
123
+ buffer.set(readback.data.subarray(sourceStart, sourceEnd), targetStart);
124
+ }
125
+ }
126
+ function readbackRect(x, y, width, height, label) {
127
+ const values = [x, y, width, height];
128
+ if (!values.every((value) => typeof value === 'number' && Number.isFinite(value))) {
129
+ throw new TypeError(`${label} x, y, width, and height must be finite numbers.`);
130
+ }
131
+ if (!values.every((value) => Number.isInteger(value))) {
132
+ throw new TypeError(`${label} x, y, width, and height must be integers.`);
133
+ }
134
+ if (x < 0 || y < 0) {
135
+ throw new TypeError(`${label} x and y must be greater than or equal to 0.`);
136
+ }
137
+ if (width <= 0 || height <= 0) {
138
+ throw new TypeError(`${label} width and height must be greater than 0.`);
139
+ }
140
+ return { x: x, y: y, width: width, height: height };
141
+ }
142
+ function assertRenderTargetReadbackBuffer(buffer, minimumLength, label) {
143
+ const candidate = buffer;
144
+ if (!candidate || typeof candidate.length !== 'number' || typeof candidate.set !== 'function') {
145
+ throw new TypeError(`${label} buffer must be a mutable typed array or Buffer.`);
146
+ }
147
+ if (candidate.length < minimumLength) {
148
+ throw new Error(`${label} buffer length is too small for the requested read.`);
149
+ }
150
+ }
151
+ function createRenderTargetReadbackBuffer(source, length) {
152
+ if (Buffer.isBuffer(source))
153
+ return Buffer.alloc(length);
154
+ const TypedArrayConstructor = source.constructor;
155
+ return new TypedArrayConstructor(length);
156
+ }
157
+ function writeRenderTargetTexture(texture, data, width, height) {
158
+ const imageWasArray = Array.isArray(texture.image);
159
+ const textureImage = Array.isArray(texture.image)
160
+ ? texture.image[0] ?? (texture.image[0] = {})
161
+ : texture.image ?? (texture.image = {});
162
+ textureImage.data = data;
163
+ textureImage.width = width;
164
+ textureImage.height = height;
165
+ const source = texture.source ?? (texture.source = {});
166
+ source.data ?? (source.data = imageWasArray ? texture.image : textureImage);
167
+ const sourceData = Array.isArray(source.data)
168
+ ? source.data[0] ?? (source.data[0] = {})
169
+ : source.data;
170
+ sourceData.data = data;
171
+ sourceData.width = width;
172
+ sourceData.height = height;
173
+ texture.needsUpdate = true;
174
+ }
175
+ function colorTextureData(texture, rgba) {
176
+ const channels = colorTextureChannelCount(texture.format);
177
+ const values = colorTextureBytes(rgba, texture.format, channels);
178
+ if (texture.type === index_part_012_1.FloatType) {
179
+ const color = new Float32Array(values.length);
180
+ for (let i = 0; i < values.length; i += 1) {
181
+ color[i] = values[i] / 255;
182
+ }
183
+ return color;
184
+ }
185
+ if (texture.type === index_part_012_1.ByteType) {
186
+ const color = new Int8Array(values.length);
187
+ for (let i = 0; i < values.length; i += 1) {
188
+ color[i] = normalizedByteToSignedInteger(values[i], 0x7f);
189
+ }
190
+ return color;
191
+ }
192
+ if (texture.type === index_part_012_1.ShortType) {
193
+ const color = new Int16Array(values.length);
194
+ for (let i = 0; i < values.length; i += 1) {
195
+ color[i] = normalizedByteToSignedInteger(values[i], 0x7fff);
196
+ }
197
+ return color;
198
+ }
199
+ if (texture.type === index_part_012_1.UnsignedShortType) {
200
+ const color = new Uint16Array(values.length);
201
+ for (let i = 0; i < values.length; i += 1) {
202
+ color[i] = Math.round((values[i] / 255) * 0xffff);
203
+ }
204
+ return color;
205
+ }
206
+ if (texture.type === index_part_012_1.IntType) {
207
+ const color = new Int32Array(values.length);
208
+ for (let i = 0; i < values.length; i += 1) {
209
+ color[i] = normalizedByteToSignedInteger(values[i], 0x7fffffff);
210
+ }
211
+ return color;
212
+ }
213
+ if (texture.type === index_part_012_1.UnsignedIntType) {
214
+ const color = new Uint32Array(values.length);
215
+ for (let i = 0; i < values.length; i += 1) {
216
+ color[i] = Math.round((values[i] / 255) * 0xffffffff);
217
+ }
218
+ return color;
219
+ }
220
+ if (texture.type === index_part_012_1.HalfFloatType) {
221
+ const color = new Uint16Array(values.length);
222
+ for (let i = 0; i < values.length; i += 1) {
223
+ color[i] = (0, index_part_021_1.normalizedFloatToHalf)(values[i] / 255);
224
+ }
225
+ return color;
226
+ }
227
+ if (texture.type === index_part_012_1.UnsignedShort4444Type) {
228
+ return packedUnsignedShort4444ColorTextureData(values, channels);
229
+ }
230
+ if (texture.type === index_part_012_1.UnsignedShort5551Type) {
231
+ return packedUnsignedShort5551ColorTextureData(values, channels);
232
+ }
233
+ if (texture.type === index_part_012_1.UnsignedInt5999Type) {
234
+ return packedUnsignedInt5999ColorTextureData(values, channels);
235
+ }
236
+ if (texture.type === index_part_012_1.UnsignedInt101111Type) {
237
+ return packedUnsignedInt101111ColorTextureData(values, channels);
238
+ }
239
+ return values;
240
+ }
241
+ function normalizedByteToSignedInteger(value, max) {
242
+ return Math.round((value / 255) * max);
243
+ }
244
+ function normalizedByteToUnsignedInteger(value, max) {
245
+ return Math.round((value / 255) * max);
246
+ }
247
+ function packedUnsignedShort4444ColorTextureData(values, channels) {
248
+ const out = new Uint16Array(values.length / channels);
249
+ for (let src = 0, pixel = 0; src < values.length; src += channels, pixel += 1) {
250
+ const r = normalizedByteToUnsignedInteger(values[src], 0xf);
251
+ const g = normalizedByteToUnsignedInteger(channels > 1 ? values[src + 1] : 0, 0xf);
252
+ const b = normalizedByteToUnsignedInteger(channels > 2 ? values[src + 2] : 0, 0xf);
253
+ const a = normalizedByteToUnsignedInteger(channels > 3 ? values[src + 3] : 255, 0xf);
254
+ out[pixel] = (r << 12) | (g << 8) | (b << 4) | a;
255
+ }
256
+ return out;
257
+ }
258
+ function packedUnsignedShort5551ColorTextureData(values, channels) {
259
+ const out = new Uint16Array(values.length / channels);
260
+ for (let src = 0, pixel = 0; src < values.length; src += channels, pixel += 1) {
261
+ const r = normalizedByteToUnsignedInteger(values[src], 0x1f);
262
+ const g = normalizedByteToUnsignedInteger(channels > 1 ? values[src + 1] : 0, 0x1f);
263
+ const b = normalizedByteToUnsignedInteger(channels > 2 ? values[src + 2] : 0, 0x1f);
264
+ const a = (channels > 3 ? values[src + 3] : 255) >= 128 ? 1 : 0;
265
+ out[pixel] = (r << 11) | (g << 6) | (b << 1) | a;
266
+ }
267
+ return out;
268
+ }
269
+ function packedUnsignedInt5999ColorTextureData(values, channels) {
270
+ const out = new Uint32Array(values.length / channels);
271
+ for (let src = 0, pixel = 0; src < values.length; src += channels, pixel += 1) {
272
+ const r = values[src] / 255;
273
+ const g = channels > 1 ? values[src + 1] / 255 : 0;
274
+ const b = channels > 2 ? values[src + 2] / 255 : 0;
275
+ out[pixel] = packRgb9E5(r, g, b);
276
+ }
277
+ return out;
278
+ }
279
+ function packedUnsignedInt101111ColorTextureData(values, channels) {
280
+ const out = new Uint32Array(values.length / channels);
281
+ for (let src = 0, pixel = 0; src < values.length; src += channels, pixel += 1) {
282
+ const r = values[src] / 255;
283
+ const g = channels > 1 ? values[src + 1] / 255 : 0;
284
+ const b = channels > 2 ? values[src + 2] / 255 : 0;
285
+ out[pixel] = packR11G11B10F(r, g, b);
286
+ }
287
+ return out;
288
+ }
289
+ function packRgb9E5(r, g, b) {
290
+ const maxChannel = Math.max(r, g, b);
291
+ if (maxChannel <= 0)
292
+ return 0;
293
+ let exponent = Math.max(0, Math.min(31, Math.floor(Math.log2(maxChannel)) + 16));
294
+ let scale = 2 ** (24 - exponent);
295
+ let rm = Math.round(r * scale);
296
+ let gm = Math.round(g * scale);
297
+ let bm = Math.round(b * scale);
298
+ if (rm > 0x1ff || gm > 0x1ff || bm > 0x1ff) {
299
+ exponent = Math.min(31, exponent + 1);
300
+ scale = 2 ** (24 - exponent);
301
+ rm = Math.round(r * scale);
302
+ gm = Math.round(g * scale);
303
+ bm = Math.round(b * scale);
304
+ }
305
+ return ((exponent << 27) |
306
+ ((Math.min(0x1ff, bm) & 0x1ff) << 18) |
307
+ ((Math.min(0x1ff, gm) & 0x1ff) << 9) |
308
+ (Math.min(0x1ff, rm) & 0x1ff)) >>> 0;
309
+ }
310
+ function packR11G11B10F(r, g, b) {
311
+ return ((packUnsignedFloat(b, 5) << 22) |
312
+ (packUnsignedFloat(g, 6) << 11) |
313
+ packUnsignedFloat(r, 6)) >>> 0;
314
+ }
315
+ function packUnsignedFloat(value, mantissaBits) {
316
+ const clamped = Math.max(0, value);
317
+ if (clamped <= 0)
318
+ return 0;
319
+ const mantissaScale = 2 ** mantissaBits;
320
+ const minNormal = 2 ** -14;
321
+ if (clamped < minNormal) {
322
+ return Math.min((1 << mantissaBits) - 1, Math.round((clamped / minNormal) * mantissaScale));
323
+ }
324
+ let exponent = Math.max(0, Math.min(31, Math.floor(Math.log2(clamped)) + 15));
325
+ let mantissa = Math.round(((clamped / (2 ** (exponent - 15))) - 1) * mantissaScale);
326
+ if (mantissa >= mantissaScale) {
327
+ exponent = Math.min(31, exponent + 1);
328
+ mantissa = 0;
329
+ }
330
+ if (exponent >= 31)
331
+ return 0x1f << mantissaBits;
332
+ return (exponent << mantissaBits) | (mantissa & ((1 << mantissaBits) - 1));
333
+ }
334
+ function colorTextureChannelCount(format) {
335
+ switch (format) {
336
+ case index_part_012_1.AlphaFormat:
337
+ case index_part_012_1.LuminanceFormat:
338
+ case index_part_012_1.RedFormat:
339
+ case index_part_012_1.RedIntegerFormat:
340
+ return 1;
341
+ case index_part_012_1.LuminanceAlphaFormat:
342
+ case index_part_012_1.RGFormat:
343
+ case index_part_012_1.RGIntegerFormat:
344
+ return 2;
345
+ case index_part_012_1.RGBFormat:
346
+ case index_part_012_1.RGBIntegerFormat:
347
+ return 3;
348
+ default:
349
+ return 4;
350
+ }
351
+ }
352
+ function colorTextureBytes(rgba, format, channels) {
353
+ if (format === index_part_012_1.AlphaFormat)
354
+ return alphaColorTextureBytes(rgba);
355
+ if (format === index_part_012_1.LuminanceAlphaFormat)
356
+ return luminanceAlphaColorTextureBytes(rgba);
357
+ return channels === 4 ? rgba : narrowedColorTextureBytes(rgba, channels);
358
+ }
359
+ function alphaColorTextureBytes(rgba) {
360
+ const pixels = rgba.length / 4;
361
+ const out = new Uint8Array(pixels);
362
+ for (let i = 0, p = 0; i < rgba.length; i += 4, p += 1) {
363
+ out[p] = rgba[i + 3];
364
+ }
365
+ return out;
366
+ }
367
+ function narrowedColorTextureBytes(rgba, channels) {
368
+ const pixels = rgba.length / 4;
369
+ const out = new Uint8Array(pixels * channels);
370
+ for (let i = 0, p = 0; i < rgba.length; i += 4, p += channels) {
371
+ out[p] = rgba[i];
372
+ if (channels > 1)
373
+ out[p + 1] = rgba[i + 1];
374
+ if (channels > 2)
375
+ out[p + 2] = rgba[i + 2];
376
+ }
377
+ return out;
378
+ }
379
+ function luminanceAlphaColorTextureBytes(rgba) {
380
+ const pixels = rgba.length / 4;
381
+ const out = new Uint8Array(pixels * 2);
382
+ for (let i = 0, p = 0; i < rgba.length; i += 4, p += 2) {
383
+ out[p] = rgba[i];
384
+ out[p + 1] = rgba[i + 3];
385
+ }
386
+ return out;
387
+ }
388
+ //# sourceMappingURL=index.part-020.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.part-020.js","sourceRoot":"","sources":["../api/index.part-020.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ThreeSceneRootLike, ThreeCameraLike, ThreeCubeCameraLike, ThreeRenderCameraLike, RenderTargetTextureLike, RenderTargetImageLike } from './types';
2
+ export declare function depthTextureData(texture: RenderTargetTextureLike, rgbaDepth: Buffer): NonNullable<RenderTargetImageLike['data']>;
3
+ export declare function normalizedFloatToHalf(value: number): number;
4
+ export declare function cloneTargetData(data: NonNullable<RenderTargetImageLike['data']>): NonNullable<RenderTargetImageLike['data']>;
5
+ export declare function validateThreeSceneRoot(scene: unknown): asserts scene is ThreeSceneRootLike;
6
+ export declare function validateTopLevelRenderCamera(camera: unknown): asserts camera is ThreeRenderCameraLike;
7
+ export declare function isArrayCamera(camera: unknown): camera is ThreeCameraLike;
8
+ export declare function isCubeCamera(camera: unknown): camera is ThreeCubeCameraLike;
9
+ export declare function validateThreeCamera(camera: unknown, label?: string): asserts camera is ThreeCameraLike;
10
+ //# sourceMappingURL=index.part-021.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.part-021.d.ts","sourceRoot":"","sources":["../api/index.part-021.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EAGrB,uBAAuB,EACvB,qBAAqB,EAsBtB,MAAM,SAAS,CAAA;AAUhB,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CA4ChI;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiB3D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,GAAG,WAAW,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAU5H;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,kBAAkB,CAK1F;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,qBAAqB,CASrG;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,eAAe,CAGxE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,mBAAmB,CAG3E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,SAA0B,GAAG,OAAO,CAAC,MAAM,IAAI,eAAe,CAyBvH"}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.depthTextureData = depthTextureData;
4
+ exports.normalizedFloatToHalf = normalizedFloatToHalf;
5
+ exports.cloneTargetData = cloneTargetData;
6
+ exports.validateThreeSceneRoot = validateThreeSceneRoot;
7
+ exports.validateTopLevelRenderCamera = validateTopLevelRenderCamera;
8
+ exports.isArrayCamera = isArrayCamera;
9
+ exports.isCubeCamera = isCubeCamera;
10
+ exports.validateThreeCamera = validateThreeCamera;
11
+ const math_1 = require("./math");
12
+ const index_part_012_1 = require("./index.part-012");
13
+ function depthTextureData(texture, rgbaDepth) {
14
+ if (texture.type === index_part_012_1.UnsignedByteType) {
15
+ const depth = new Uint8Array(rgbaDepth.length / 4);
16
+ for (let i = 0, p = 0; i < rgbaDepth.length; i += 4, p += 1) {
17
+ depth[p] = rgbaDepth[i];
18
+ }
19
+ return depth;
20
+ }
21
+ if (texture.type === index_part_012_1.UnsignedShortType) {
22
+ const depth = new Uint16Array(rgbaDepth.length / 4);
23
+ for (let i = 0, p = 0; i < rgbaDepth.length; i += 4, p += 1) {
24
+ depth[p] = Math.round((rgbaDepth[i] / 255) * 0xffff);
25
+ }
26
+ return depth;
27
+ }
28
+ if (texture.type === index_part_012_1.UnsignedIntType) {
29
+ const depth = new Uint32Array(rgbaDepth.length / 4);
30
+ for (let i = 0, p = 0; i < rgbaDepth.length; i += 4, p += 1) {
31
+ depth[p] = Math.round((rgbaDepth[i] / 255) * 0xffffffff);
32
+ }
33
+ return depth;
34
+ }
35
+ if (texture.type === index_part_012_1.UnsignedInt248Type) {
36
+ const depth = new Uint32Array(rgbaDepth.length / 4);
37
+ for (let i = 0, p = 0; i < rgbaDepth.length; i += 4, p += 1) {
38
+ depth[p] = Math.round((rgbaDepth[i] / 255) * 0xffffff) * 0x100;
39
+ }
40
+ return depth;
41
+ }
42
+ if (texture.type === index_part_012_1.FloatType) {
43
+ const depth = new Float32Array(rgbaDepth.length / 4);
44
+ for (let i = 0, p = 0; i < rgbaDepth.length; i += 4, p += 1) {
45
+ depth[p] = rgbaDepth[i] / 255;
46
+ }
47
+ return depth;
48
+ }
49
+ if (texture.type === index_part_012_1.HalfFloatType) {
50
+ const depth = new Uint16Array(rgbaDepth.length / 4);
51
+ for (let i = 0, p = 0; i < rgbaDepth.length; i += 4, p += 1) {
52
+ depth[p] = normalizedFloatToHalf(rgbaDepth[i] / 255);
53
+ }
54
+ return depth;
55
+ }
56
+ return rgbaDepth;
57
+ }
58
+ function normalizedFloatToHalf(value) {
59
+ const clamped = Math.min(1, Math.max(0, value));
60
+ if (clamped === 0)
61
+ return 0;
62
+ if (clamped === 1)
63
+ return 0x3c00;
64
+ const exponent = Math.floor(Math.log2(clamped));
65
+ if (exponent < -14) {
66
+ return Math.round(clamped * 0x1000000);
67
+ }
68
+ let mantissa = Math.round((clamped / (2 ** exponent) - 1) * 0x400);
69
+ let biasedExponent = exponent + 15;
70
+ if (mantissa === 0x400) {
71
+ mantissa = 0;
72
+ biasedExponent += 1;
73
+ }
74
+ return (biasedExponent << 10) | mantissa;
75
+ }
76
+ function cloneTargetData(data) {
77
+ if (Buffer.isBuffer(data))
78
+ return Buffer.from(data);
79
+ if (data instanceof Float32Array)
80
+ return new Float32Array(data);
81
+ if (data instanceof Int32Array)
82
+ return new Int32Array(data);
83
+ if (data instanceof Uint32Array)
84
+ return new Uint32Array(data);
85
+ if (data instanceof Int16Array)
86
+ return new Int16Array(data);
87
+ if (data instanceof Uint16Array)
88
+ return new Uint16Array(data);
89
+ if (data instanceof Int8Array)
90
+ return new Int8Array(data);
91
+ if (data instanceof Uint8ClampedArray)
92
+ return new Uint8ClampedArray(data);
93
+ return new Uint8Array(data);
94
+ }
95
+ function validateThreeSceneRoot(scene) {
96
+ const root = scene;
97
+ if (!root || (root.isScene !== true && root.isObject3D !== true)) {
98
+ throw new TypeError('render(scene, camera) expects scene to be a THREE.Scene or THREE.Object3D root');
99
+ }
100
+ }
101
+ function validateTopLevelRenderCamera(camera) {
102
+ const cameraLike = camera;
103
+ if (!cameraLike || typeof cameraLike !== 'object' || Array.isArray(cameraLike)) {
104
+ throw new TypeError('render(scene, camera) expects camera to be a THREE.Camera, THREE.ArrayCamera, or THREE.CubeCamera');
105
+ }
106
+ if (isCubeCamera(cameraLike))
107
+ return;
108
+ if (cameraLike.isCamera !== true) {
109
+ throw new TypeError('render(scene, camera) expects camera to be a THREE.Camera, THREE.ArrayCamera, or THREE.CubeCamera');
110
+ }
111
+ }
112
+ function isArrayCamera(camera) {
113
+ const cameraLike = camera;
114
+ return cameraLike?.isArrayCamera === true || Array.isArray(cameraLike?.cameras);
115
+ }
116
+ function isCubeCamera(camera) {
117
+ const cameraLike = camera;
118
+ return cameraLike?.isCubeCamera === true || cameraLike?.type === 'CubeCamera';
119
+ }
120
+ function validateThreeCamera(camera, label = 'render(scene, camera)') {
121
+ const defaultLabel = label === 'render(scene, camera)';
122
+ const cameraLike = camera;
123
+ if (cameraLike?.isCubeCamera === true || cameraLike?.type === 'CubeCamera') {
124
+ throw new Error(defaultLabel
125
+ ? 'THREE.CubeCamera cannot be used where a regular THREE.Camera is required. Pass the CubeCamera as the top-level camera with a cube render target.'
126
+ : `${label} cannot be a THREE.CubeCamera. Pass the CubeCamera as the top-level camera with a cube render target.`);
127
+ }
128
+ if (!camera || typeof camera !== 'object' || Array.isArray(camera) || cameraLike.isCamera !== true) {
129
+ throw new TypeError(defaultLabel ? 'render(scene, camera) expects camera to be a THREE.Camera' : `${label} must be a THREE.Camera.`);
130
+ }
131
+ if (cameraLike.isArrayCamera === true || Array.isArray(cameraLike.cameras)) {
132
+ throw new Error(defaultLabel
133
+ ? 'THREE.ArrayCamera cannot be used where a regular THREE.Camera is required. Pass the ArrayCamera as the top-level camera.'
134
+ : `${label} cannot be a THREE.ArrayCamera. Pass the ArrayCamera as the top-level camera.`);
135
+ }
136
+ if (!cameraLike.projectionMatrix || !cameraLike.matrixWorldInverse) {
137
+ throw new TypeError(defaultLabel ? 'THREE.Camera must have projectionMatrix and matrixWorldInverse' : `${label} must have projectionMatrix and matrixWorldInverse.`);
138
+ }
139
+ (0, math_1.matrixElements)(cameraLike.projectionMatrix, defaultLabel ? 'camera.projectionMatrix' : `${label}.projectionMatrix`);
140
+ (0, math_1.matrixElements)(cameraLike.matrixWorldInverse, defaultLabel ? 'camera.matrixWorldInverse' : `${label}.matrixWorldInverse`);
141
+ }
142
+ //# sourceMappingURL=index.part-021.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.part-021.js","sourceRoot":"","sources":["../api/index.part-021.ts"],"names":[],"mappings":"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"}