@carbonenginejs/runtime-resource 0.7.0 → 0.9.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 (59) hide show
  1. package/NOTICE +1 -1
  2. package/README.md +67 -537
  3. package/dist/formats/dds/core/bc6h.js +288 -0
  4. package/dist/formats/dds/core/bc6h.js.map +1 -0
  5. package/dist/formats/dds/core/bc7.js +251 -0
  6. package/dist/formats/dds/core/bc7.js.map +1 -0
  7. package/dist/formats/dds/core/helpers.js +6 -3
  8. package/dist/formats/dds/core/helpers.js.map +1 -1
  9. package/dist/formats/gr2/CjsGr2Format.js +46 -0
  10. package/dist/formats/gr2/CjsGr2Format.js.map +1 -0
  11. package/dist/formats/gr2/core/CjsFormatGr2.js +273 -0
  12. package/dist/formats/gr2/core/CjsFormatGr2.js.map +1 -0
  13. package/dist/formats/gr2/core/bitknit2.js +280 -0
  14. package/dist/formats/gr2/core/bitknit2.js.map +1 -0
  15. package/dist/formats/gr2/core/curves.js +1047 -0
  16. package/dist/formats/gr2/core/curves.js.map +1 -0
  17. package/dist/formats/gr2/core/gsf.js +72 -0
  18. package/dist/formats/gr2/core/gsf.js.map +1 -0
  19. package/dist/formats/gr2/core/helpers.js +332 -0
  20. package/dist/formats/gr2/core/helpers.js.map +1 -0
  21. package/dist/formats/gr2/core/json.js +622 -0
  22. package/dist/formats/gr2/core/json.js.map +1 -0
  23. package/dist/formats/gr2/core/oodle1.js +388 -0
  24. package/dist/formats/gr2/core/oodle1.js.map +1 -0
  25. package/dist/formats/gr2/core/reader.js +617 -0
  26. package/dist/formats/gr2/core/reader.js.map +1 -0
  27. package/dist/formats/gr2/core/tangents.js +48 -0
  28. package/dist/formats/gr2/core/tangents.js.map +1 -0
  29. package/dist/formats/gr2/core/targets.js +351 -0
  30. package/dist/formats/gr2/core/targets.js.map +1 -0
  31. package/dist/formats/gr2/index.js +3 -0
  32. package/dist/formats/gr2/index.js.map +1 -0
  33. package/dist/formats/index.js +7 -0
  34. package/dist/formats/index.js.map +1 -1
  35. package/dist/index.js +1 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/resources/Tr2TexturePipelineStepGenerateMips.js +22 -0
  38. package/dist/resources/Tr2TexturePipelineStepGenerateMips.js.map +1 -0
  39. package/dist/resources/TriGeometryRes.js +24 -1
  40. package/dist/resources/TriGeometryRes.js.map +1 -1
  41. package/docs/README.md +69 -0
  42. package/docs/architecture.md +86 -0
  43. package/docs/concepts/resource-lifecycle.md +217 -0
  44. package/docs/formats/README.md +104 -0
  45. package/{FORMAT-PROVENANCE.md → docs/formats/provenance.md} +34 -5
  46. package/docs/formats/stl.md +37 -0
  47. package/docs/formats/wwise.md +44 -0
  48. package/docs/reference/events.md +92 -0
  49. package/docs/reference/motherlode-cache.md +244 -0
  50. package/docs/reference/queues.md +102 -0
  51. package/docs/reference/reload.md +107 -0
  52. package/docs/reference/texture-arrays.md +113 -0
  53. package/docs/reference/texture-pipeline.md +53 -0
  54. package/docs/roadmap.md +104 -0
  55. package/format-notices/gr2/LICENSE +21 -0
  56. package/format-notices/gr2/NOTICE +60 -0
  57. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +93 -0
  58. package/package.json +51 -50
  59. package/resource-lifecycle.md +0 -679
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bc7.js","sources":["../../../../../src/formats/dds/core/bc7.js"],"sourcesContent":["// BC7 is defined as a little-endian 128-bit block format. The mode and\n// partition constants below are the fixed tables from the Khronos Data Format\n// Specification, section 20.1. The decoder itself is CarbonEngineJS code.\n\nconst MODE = Object.freeze([\n { subsets: 3, partitionBits: 4, rotationBits: 0, selectionBits: 0, colorBits: 4, alphaBits: 0, endpointPBits: 1, sharedPBits: 0, indexBits: 3, secondaryIndexBits: 0 },\n { subsets: 2, partitionBits: 6, rotationBits: 0, selectionBits: 0, colorBits: 6, alphaBits: 0, endpointPBits: 0, sharedPBits: 1, indexBits: 3, secondaryIndexBits: 0 },\n { subsets: 3, partitionBits: 6, rotationBits: 0, selectionBits: 0, colorBits: 5, alphaBits: 0, endpointPBits: 0, sharedPBits: 0, indexBits: 2, secondaryIndexBits: 0 },\n { subsets: 2, partitionBits: 6, rotationBits: 0, selectionBits: 0, colorBits: 7, alphaBits: 0, endpointPBits: 1, sharedPBits: 0, indexBits: 2, secondaryIndexBits: 0 },\n { subsets: 1, partitionBits: 0, rotationBits: 2, selectionBits: 1, colorBits: 5, alphaBits: 6, endpointPBits: 0, sharedPBits: 0, indexBits: 2, secondaryIndexBits: 3 },\n { subsets: 1, partitionBits: 0, rotationBits: 2, selectionBits: 0, colorBits: 7, alphaBits: 8, endpointPBits: 0, sharedPBits: 0, indexBits: 2, secondaryIndexBits: 2 },\n { subsets: 1, partitionBits: 0, rotationBits: 0, selectionBits: 0, colorBits: 7, alphaBits: 7, endpointPBits: 1, sharedPBits: 0, indexBits: 4, secondaryIndexBits: 0 },\n { subsets: 2, partitionBits: 6, rotationBits: 0, selectionBits: 0, colorBits: 5, alphaBits: 5, endpointPBits: 1, sharedPBits: 0, indexBits: 2, secondaryIndexBits: 0 }\n]);\n\nconst WEIGHTS = Object.freeze({\n 2: new Uint8Array([ 0, 21, 43, 64 ]),\n 3: new Uint8Array([ 0, 9, 18, 27, 37, 46, 55, 64 ]),\n 4: new Uint8Array([ 0, 4, 9, 13, 17, 21, 26, 30, 34, 38, 43, 47, 51, 55, 60, 64 ])\n});\n\n// One bit per texel, in y-major order.\nconst PARTITIONS_2 = new Uint16Array([\n 0xcccc, 0x8888, 0xeeee, 0xecc8, 0xc880, 0xfeec, 0xfec8, 0xec80,\n 0xc800, 0xffec, 0xfe80, 0xe800, 0xffe8, 0xff00, 0xfff0, 0xf000,\n 0xf710, 0x008e, 0x7100, 0x08ce, 0x008c, 0x7310, 0x3100, 0x8cce,\n 0x088c, 0x3110, 0x6666, 0x366c, 0x17e8, 0x0ff0, 0x718e, 0x399c,\n 0xaaaa, 0xf0f0, 0x5a5a, 0x33cc, 0x3c3c, 0x55aa, 0x9696, 0xa55a,\n 0x73ce, 0x13c8, 0x324c, 0x3bdc, 0x6996, 0xc33c, 0x9966, 0x0660,\n 0x0272, 0x04e4, 0x4e40, 0x2720, 0xc936, 0x936c, 0x39c6, 0x639c,\n 0x9336, 0x9cc6, 0x817e, 0xe718, 0xccf0, 0x0fcc, 0x7744, 0xee22\n]);\n\n// Two bits per texel, in y-major order.\nconst PARTITIONS_3 = new Uint32Array([\n 0xaa685050, 0x6a5a5040, 0x5a5a4200, 0x5450a0a8, 0xa5a50000, 0xa0a05050, 0x5555a0a0, 0x5a5a5050,\n 0xaa550000, 0xaa555500, 0xaaaa5500, 0x90909090, 0x94949494, 0xa4a4a4a4, 0xa9a59450, 0x2a0a4250,\n 0xa5945040, 0x0a425054, 0xa5a5a500, 0x55a0a0a0, 0xa8a85454, 0x6a6a4040, 0xa4a45000, 0x1a1a0500,\n 0x0050a4a4, 0xaaa59090, 0x14696914, 0x69691400, 0xa08585a0, 0xaa821414, 0x50a4a450, 0x6a5a0200,\n 0xa9a58000, 0x5090a0a8, 0xa8a09050, 0x24242424, 0x00aa5500, 0x24924924, 0x24499224, 0x50a50a50,\n 0x500aa550, 0xaaaa4444, 0x66660000, 0xa5a0a5a0, 0x50a050a0, 0x69286928, 0x44aaaa44, 0x66666600,\n 0xaa444444, 0x54a854a8, 0x95809580, 0x96969600, 0xa85454a8, 0x80959580, 0xaa141414, 0x96960000,\n 0xaaaa1414, 0xa05050a0, 0xa0a5a5a0, 0x96000000, 0x40804080, 0xa9a8a9a8, 0xaaaaaa44, 0x2a4a5254\n]);\n\nconst ANCHOR_2 = new Uint8Array([\n 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,\n 15, 2, 8, 2, 2, 8, 8, 15, 2, 8, 2, 2, 8, 8, 2, 2,\n 15, 15, 6, 8, 2, 8, 15, 15, 2, 8, 2, 2, 2, 15, 15, 6,\n 6, 2, 6, 8, 15, 15, 2, 2, 15, 15, 15, 15, 15, 2, 2, 15\n]);\n\nconst ANCHOR_3_SECOND = new Uint8Array([\n 3, 3, 15, 15, 8, 3, 15, 15, 8, 8, 6, 6, 6, 5, 3, 3,\n 3, 3, 8, 15, 3, 3, 6, 10, 5, 8, 8, 6, 8, 5, 15, 15,\n 8, 15, 3, 5, 6, 10, 8, 15, 15, 3, 15, 5, 15, 15, 15, 15,\n 3, 15, 5, 5, 5, 8, 5, 10, 5, 10, 8, 13, 15, 12, 3, 3\n]);\n\nconst ANCHOR_3_THIRD = new Uint8Array([\n 15, 8, 8, 3, 15, 15, 3, 8, 15, 15, 15, 15, 15, 15, 15, 8,\n 15, 8, 15, 3, 15, 8, 15, 8, 3, 15, 6, 10, 15, 15, 10, 8,\n 15, 3, 15, 10, 10, 8, 9, 10, 6, 15, 8, 15, 3, 6, 6, 8,\n 15, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 3, 15, 15, 8\n]);\n\nexport function decodeBc7(source, width, height, rowPitch = Math.ceil(width / 4) * 16)\n{\n const rgba = new Uint8Array(width * height * 4);\n const blockRows = Math.ceil(height / 4);\n const blockColumns = Math.ceil(width / 4);\n\n for (let blockY = 0; blockY < blockRows; blockY++)\n {\n for (let blockX = 0; blockX < blockColumns; blockX++)\n {\n const blockOffset = blockY * rowPitch + blockX * 16;\n const pixels = decodeBc7Block(source.subarray(blockOffset, blockOffset + 16));\n copyBlock(pixels, rgba, width, height, blockX, blockY);\n }\n }\n\n return rgba;\n}\n\nexport function decodeBc7Block(block)\n{\n if (block.byteLength < 16) throw new RangeError(\"BC7 block must contain 16 bytes\");\n if (block[0] === 0) return new Uint8Array(16 * 4);\n\n const reader = new BitReader(block);\n let mode = 0;\n while (mode < 8 && reader.read(1) === 0) mode++;\n if (mode === 8) return new Uint8Array(16 * 4);\n\n const info = MODE[mode];\n const partition = reader.read(info.partitionBits);\n const rotation = reader.read(info.rotationBits);\n const selection = reader.read(info.selectionBits);\n const endpointCount = info.subsets * 2;\n const endpoints = Array.from({ length: endpointCount }, () => [ 0, 0, 0, 255 ]);\n\n for (let channel = 0; channel < 3; channel++)\n {\n for (let endpoint = 0; endpoint < endpointCount; endpoint++)\n {\n endpoints[endpoint][channel] = reader.read(info.colorBits);\n }\n }\n\n if (info.alphaBits)\n {\n for (let endpoint = 0; endpoint < endpointCount; endpoint++)\n {\n endpoints[endpoint][3] = reader.read(info.alphaBits);\n }\n }\n\n const pBits = new Uint8Array(endpointCount);\n if (info.endpointPBits)\n {\n for (let endpoint = 0; endpoint < endpointCount; endpoint++) pBits[endpoint] = reader.read(1);\n }\n else if (info.sharedPBits)\n {\n for (let subset = 0; subset < info.subsets; subset++)\n {\n const pBit = reader.read(1);\n pBits[subset * 2] = pBit;\n pBits[subset * 2 + 1] = pBit;\n }\n }\n\n const colorPrecision = info.colorBits + (info.endpointPBits || info.sharedPBits ? 1 : 0);\n const alphaPrecision = info.alphaBits + (info.alphaBits && (info.endpointPBits || info.sharedPBits) ? 1 : 0);\n for (let endpoint = 0; endpoint < endpointCount; endpoint++)\n {\n for (let channel = 0; channel < 3; channel++)\n {\n const value = info.endpointPBits || info.sharedPBits\n ? (endpoints[endpoint][channel] << 1) | pBits[endpoint]\n : endpoints[endpoint][channel];\n endpoints[endpoint][channel] = expandEndpoint(value, colorPrecision);\n }\n\n if (info.alphaBits)\n {\n const value = info.endpointPBits || info.sharedPBits\n ? (endpoints[endpoint][3] << 1) | pBits[endpoint]\n : endpoints[endpoint][3];\n endpoints[endpoint][3] = expandEndpoint(value, alphaPrecision);\n }\n }\n\n const primary = readIndices(reader, info.indexBits, info.subsets, partition);\n const secondary = info.secondaryIndexBits\n ? readIndices(reader, info.secondaryIndexBits, info.subsets, partition)\n : primary;\n const colorUsesSecondary = info.selectionBits && selection === 1;\n const alphaUsesSecondary = info.secondaryIndexBits && (!info.selectionBits || selection === 0);\n const colorIndices = colorUsesSecondary ? secondary : primary;\n const alphaIndices = alphaUsesSecondary ? secondary : primary;\n const colorIndexBits = colorUsesSecondary ? info.secondaryIndexBits : info.indexBits;\n const alphaIndexBits = alphaUsesSecondary ? info.secondaryIndexBits : info.indexBits;\n const pixels = new Uint8Array(16 * 4);\n\n for (let pixel = 0; pixel < 16; pixel++)\n {\n const subset = getSubset(info.subsets, partition, pixel);\n const first = endpoints[subset * 2];\n const second = endpoints[subset * 2 + 1];\n const output = pixel * 4;\n\n for (let channel = 0; channel < 3; channel++)\n {\n pixels[output + channel] = interpolate(first[channel], second[channel], colorIndices[pixel], colorIndexBits);\n }\n pixels[output + 3] = interpolate(first[3], second[3], alphaIndices[pixel], alphaIndexBits);\n\n if (rotation)\n {\n const channel = rotation - 1;\n const value = pixels[output + channel];\n pixels[output + channel] = pixels[output + 3];\n pixels[output + 3] = value;\n }\n }\n\n return pixels;\n}\n\nfunction readIndices(reader, bitCount, subsets, partition)\n{\n const indices = new Uint8Array(16);\n for (let pixel = 0; pixel < 16; pixel++)\n {\n const subset = getSubset(subsets, partition, pixel);\n const isAnchor = pixel === getAnchor(subsets, partition, subset);\n indices[pixel] = reader.read(bitCount - (isAnchor ? 1 : 0));\n }\n return indices;\n}\n\nfunction getSubset(subsets, partition, pixel)\n{\n if (subsets === 1) return 0;\n if (subsets === 2) return (PARTITIONS_2[partition] >>> pixel) & 1;\n return (PARTITIONS_3[partition] >>> (pixel * 2)) & 3;\n}\n\nfunction getAnchor(subsets, partition, subset)\n{\n if (subset === 0) return 0;\n if (subsets === 2) return ANCHOR_2[partition];\n return subset === 1 ? ANCHOR_3_SECOND[partition] : ANCHOR_3_THIRD[partition];\n}\n\nfunction expandEndpoint(value, bitCount)\n{\n if (bitCount === 8) return value;\n return (value << (8 - bitCount)) | (value >>> (2 * bitCount - 8));\n}\n\nfunction interpolate(first, second, index, bitCount)\n{\n const weight = WEIGHTS[bitCount][index];\n return ((64 - weight) * first + weight * second + 32) >>> 6;\n}\n\nfunction copyBlock(block, output, width, height, blockX, blockY)\n{\n for (let y = 0; y < 4; y++)\n {\n const outputY = blockY * 4 + y;\n if (outputY >= height) continue;\n\n for (let x = 0; x < 4; x++)\n {\n const outputX = blockX * 4 + x;\n if (outputX >= width) continue;\n const sourceOffset = (y * 4 + x) * 4;\n output.set(block.subarray(sourceOffset, sourceOffset + 4), (outputY * width + outputX) * 4);\n }\n }\n}\n\nclass BitReader\n{\n constructor(bytes)\n {\n this.bytes = bytes;\n this.offset = 0;\n }\n\n read(bitCount)\n {\n let value = 0;\n for (let bit = 0; bit < bitCount; bit++)\n {\n if (this.offset >= 128) throw new RangeError(\"BC7 block bitstream exceeds 128 bits\");\n value |= ((this.bytes[this.offset >>> 3] >>> (this.offset & 7)) & 1) << bit;\n this.offset++;\n }\n return value;\n }\n}\n"],"names":["MODE","Object","freeze","subsets","partitionBits","rotationBits","selectionBits","colorBits","alphaBits","endpointPBits","sharedPBits","indexBits","secondaryIndexBits","WEIGHTS","Uint8Array","PARTITIONS_2","Uint16Array","PARTITIONS_3","Uint32Array","ANCHOR_2","ANCHOR_3_SECOND","ANCHOR_3_THIRD","decodeBc7","source","width","height","rowPitch","Math","ceil","rgba","blockRows","blockColumns","blockY","blockX","blockOffset","pixels","decodeBc7Block","subarray","copyBlock","block","byteLength","RangeError","reader","BitReader","mode","read","info","partition","rotation","selection","endpointCount","endpoints","Array","from","length","channel","endpoint","pBits","subset","pBit","colorPrecision","alphaPrecision","value","expandEndpoint","primary","readIndices","secondary","colorUsesSecondary","alphaUsesSecondary","colorIndices","alphaIndices","colorIndexBits","alphaIndexBits","pixel","getSubset","first","second","output","interpolate","bitCount","indices","isAnchor","getAnchor","index","weight","y","outputY","x","outputX","sourceOffset","set","constructor","bytes","offset","bit"],"mappings":"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"}
@@ -1,3 +1,6 @@
1
+ import { decodeBc6h } from './bc6h.js';
2
+ import { decodeBc7 } from './bc7.js';
3
+
1
4
  const OUTPUT_IMAGE = "image";
2
5
  const OUTPUT_TEXTURE = "texture";
3
6
  const OUTPUT_RGBA = "rgba";
@@ -408,7 +411,7 @@ function readDdsTexture(bytes, metadata) {
408
411
  };
409
412
  }
410
413
  function canDecodeDdsToRgba(metadata) {
411
- return ["rgba32float", "rgb32float", "rgba16float", "rg32float", "r32float", "r16float", "rgba8unorm", "rgba8unorm-srgb", "bgra8unorm", "bgra8unorm-srgb", "bgrx8unorm", "bgrx8unorm-srgb", "bgr8unorm", "rg8unorm", "r8unorm", "bc1-rgba-unorm", "bc1-rgba-unorm-srgb", "bc2-rgba-unorm", "bc2-rgba-unorm-srgb", "bc3-rgba-unorm", "bc3-rgba-unorm-srgb", "bc4-r-unorm", "bc4-r-snorm", "bc5-rg-unorm", "bc5-rg-snorm"].includes(metadata.pixelFormat);
414
+ return ["rgba32float", "rgb32float", "rgba16float", "rg32float", "r32float", "r16float", "rgba8unorm", "rgba8unorm-srgb", "bgra8unorm", "bgra8unorm-srgb", "bgrx8unorm", "bgrx8unorm-srgb", "bgr8unorm", "rg8unorm", "r8unorm", "bc1-rgba-unorm", "bc1-rgba-unorm-srgb", "bc2-rgba-unorm", "bc2-rgba-unorm-srgb", "bc3-rgba-unorm", "bc3-rgba-unorm-srgb", "bc4-r-unorm", "bc4-r-snorm", "bc5-rg-unorm", "bc5-rg-snorm", "bc6h-rgb-ufloat", "bc6h-rgb-float", "bc7-rgba-unorm", "bc7-rgba-unorm-srgb"].includes(metadata.pixelFormat);
412
415
  }
413
416
  function readDdsToRgba(bytes, metadata) {
414
417
  if (!canDecodeDdsToRgba(metadata)) {
@@ -419,7 +422,7 @@ function readDdsToRgba(bytes, metadata) {
419
422
  }
420
423
  const subresource = buildDdsSubresources(bytes, metadata)[0];
421
424
  const source = bytes.subarray(metadata.dataOffset + subresource.offset, metadata.dataOffset + subresource.offset + subresource.byteLength);
422
- const rgba = metadata.pixelFormat.startsWith("bc1-") ? decodeBc1(source, metadata.width, metadata.height, subresource.rowPitch) : metadata.pixelFormat.startsWith("bc2-") ? decodeBc2(source, metadata.width, metadata.height, subresource.rowPitch) : metadata.pixelFormat.startsWith("bc3-") ? decodeBc3(source, metadata.width, metadata.height, subresource.rowPitch) : metadata.pixelFormat.startsWith("bc4-") ? decodeBc4(source, metadata.width, metadata.height, subresource.rowPitch, metadata.pixelFormat.endsWith("-snorm")) : metadata.pixelFormat.startsWith("bc5-") ? decodeBc5(source, metadata.width, metadata.height, subresource.rowPitch, metadata.pixelFormat.endsWith("-snorm")) : isFloatPixelFormat(metadata.pixelFormat) ? decodeFloatUncompressed(source, metadata) : decodeUncompressed(source, metadata);
425
+ const rgba = metadata.pixelFormat.startsWith("bc1-") ? decodeBc1(source, metadata.width, metadata.height, subresource.rowPitch) : metadata.pixelFormat.startsWith("bc2-") ? decodeBc2(source, metadata.width, metadata.height, subresource.rowPitch) : metadata.pixelFormat.startsWith("bc3-") ? decodeBc3(source, metadata.width, metadata.height, subresource.rowPitch) : metadata.pixelFormat.startsWith("bc4-") ? decodeBc4(source, metadata.width, metadata.height, subresource.rowPitch, metadata.pixelFormat.endsWith("-snorm")) : metadata.pixelFormat.startsWith("bc5-") ? decodeBc5(source, metadata.width, metadata.height, subresource.rowPitch, metadata.pixelFormat.endsWith("-snorm")) : metadata.pixelFormat.startsWith("bc6h-") ? decodeBc6h(source, metadata.width, metadata.height, subresource.rowPitch, metadata.pixelFormat === "bc6h-rgb-float") : metadata.pixelFormat.startsWith("bc7-") ? decodeBc7(source, metadata.width, metadata.height, subresource.rowPitch) : isFloatPixelFormat(metadata.pixelFormat) ? decodeFloatUncompressed(source, metadata) : decodeUncompressed(source, metadata);
423
426
  const isFloat = isFloatPixelFormat(metadata.pixelFormat);
424
427
  return {
425
428
  payloadType: OUTPUT_RGBA,
@@ -615,7 +618,7 @@ function decodeFloatUncompressed(source, metadata) {
615
618
  return rgba;
616
619
  }
617
620
  function isFloatPixelFormat(pixelFormat) {
618
- return ["rgba32float", "rgb32float", "rgba16float", "rg32float", "r32float", "r16float"].includes(pixelFormat);
621
+ return typeof pixelFormat === "string" && (pixelFormat.startsWith("bc6h-") || ["rgba32float", "rgb32float", "rgba16float", "rg32float", "r32float", "r16float"].includes(pixelFormat));
619
622
  }
620
623
  function halfToFloat(value) {
621
624
  const sign = value & 0x8000 ? -1 : 1;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../../src/formats/dds/core/helpers.js"],"sourcesContent":["export const OUTPUT_IMAGE = \"image\";\nexport const OUTPUT_TEXTURE = \"texture\";\nexport const OUTPUT_RGBA = \"rgba\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"\",\n source: \"\"\n});\n\nconst DDS_HEADER_SIZE = 124;\nconst DDS_PIXELFORMAT_OFFSET = 76;\nconst DDS_FOURCC = 0x00000004;\nconst DDS_RGB = 0x00000040;\nconst DDS_ALPHAPIXELS = 0x00000001;\nconst DDSCAPS2_CUBEMAP = 0x00000200;\nconst DDSCAPS2_VOLUME = 0x00200000;\n\nconst DDS_CUBE_FACE_FLAGS = Object.freeze([\n [ \"positive-x\", 0x00000400 ],\n [ \"negative-x\", 0x00000800 ],\n [ \"positive-y\", 0x00001000 ],\n [ \"negative-y\", 0x00002000 ],\n [ \"positive-z\", 0x00004000 ],\n [ \"negative-z\", 0x00008000 ]\n]);\n\nconst FOURCC_PIXEL_FORMATS = Object.freeze({\n DXT1: \"bc1-rgba-unorm\",\n DXT3: \"bc2-rgba-unorm\",\n DXT5: \"bc3-rgba-unorm\",\n ATI1: \"bc4-r-unorm\",\n BC4U: \"bc4-r-unorm\",\n BC4S: \"bc4-r-snorm\",\n ATI2: \"bc5-rg-unorm\",\n BC5U: \"bc5-rg-unorm\",\n BC5S: \"bc5-rg-snorm\"\n});\n\nconst DXGI_PIXEL_FORMATS = Object.freeze({\n 2: \"rgba32float\",\n 6: \"rgb32float\",\n 10: \"rgba16float\",\n 16: \"rg32float\",\n 41: \"r32float\",\n 54: \"r16float\",\n 28: \"rgba8unorm\",\n 29: \"rgba8unorm-srgb\",\n 49: \"rg8unorm\",\n 61: \"r8unorm\",\n 71: \"bc1-rgba-unorm\",\n 72: \"bc1-rgba-unorm-srgb\",\n 74: \"bc2-rgba-unorm\",\n 75: \"bc2-rgba-unorm-srgb\",\n 77: \"bc3-rgba-unorm\",\n 78: \"bc3-rgba-unorm-srgb\",\n 80: \"bc4-r-unorm\",\n 81: \"bc4-r-snorm\",\n 83: \"bc5-rg-unorm\",\n 84: \"bc5-rg-snorm\",\n 87: \"bgra8unorm\",\n 88: \"bgrx8unorm\",\n 91: \"bgra8unorm-srgb\",\n 93: \"bgrx8unorm-srgb\",\n 95: \"bc6h-rgb-ufloat\",\n 96: \"bc6h-rgb-float\",\n 98: \"bc7-rgba-unorm\",\n 99: \"bc7-rgba-unorm-srgb\"\n});\n\nconst COMPRESSED_PIXEL_FORMATS = new Set([\n \"bc1-rgba-unorm\",\n \"bc1-rgba-unorm-srgb\",\n \"bc2-rgba-unorm\",\n \"bc2-rgba-unorm-srgb\",\n \"bc3-rgba-unorm\",\n \"bc3-rgba-unorm-srgb\",\n \"bc4-r-unorm\",\n \"bc4-r-snorm\",\n \"bc5-rg-unorm\",\n \"bc5-rg-snorm\",\n \"bc6h-rgb-ufloat\",\n \"bc6h-rgb-float\",\n \"bc7-rgba-unorm\",\n \"bc7-rgba-unorm-srgb\"\n]);\n\nconst DEBUG_OUTPUTS = Object.freeze({\n png: \"pngJson\",\n jpeg: \"jpegJson\",\n jpg: \"jpegJson\",\n tga: \"tgaJson\",\n dds: \"ddsJson\"\n});\n\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsImageFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = normalizeInputType(values.inputType);\n values.emit = normalizeEmit(values.emit, values.inputType, readerName);\n return values;\n}\n\nexport function normalizeInputType(inputType)\n{\n if (!inputType) return \"\";\n const value = String(inputType).replace(/^\\./u, \"\").toLowerCase();\n return value === \"jpg\" ? \"jpeg\" : value;\n}\n\nexport function normalizeEmit(emit, inputType, readerName)\n{\n if (emit === undefined || emit === null) return OUTPUT_RAW;\n if (emit === OUTPUT_JSON && inputType) return DEBUG_OUTPUTS[inputType] || OUTPUT_JSON;\n if ([ OUTPUT_IMAGE, OUTPUT_TEXTURE, OUTPUT_RGBA, OUTPUT_RAW, OUTPUT_JSON ].includes(emit)) return emit;\n if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);\n}\n\nexport function toBytes(input)\n{\n if (input instanceof Uint8Array) return input;\n if (input instanceof ArrayBuffer) return new Uint8Array(input);\n if (ArrayBuffer.isView(input)) return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n throw new TypeError(\"Image input must be Uint8Array, ArrayBuffer, or DataView\");\n}\n\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = toBytes(input);\n const detected = inspectBytes(bytes);\n const sourceFormat = expectedType || values.inputType || detected.sourceFormat;\n\n if (expectedType && detected.sourceFormat && detected.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsFormat${capitalize(expectedType)}: expected ${expectedType}, got ${detected.sourceFormat}`);\n }\n\n return {\n payloadType: sourceFormat === \"dds\" ? \"texture\" : \"image\",\n mediaTypes: sourceFormat === \"dds\" ? [ \"texture\", \"image\" ] : [ \"image\" ],\n sourceFormat,\n byteLength: bytes.byteLength,\n ...detected\n };\n}\n\nexport function isSupportedWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n const hasCompleteTextureData = metadata.isDataComplete !== false;\n const canEmitTexture = metadata.sourceFormat === \"dds\" && metadata.dataOffset > 0 && !!metadata.pixelFormat && hasCompleteTextureData;\n const canEmitRgba = canDecodeDdsToRgba(metadata) && hasCompleteTextureData;\n const textureUnsupportedReason = !metadata.pixelFormat\n ? \"DDS texture format is not recognized yet.\"\n : !hasCompleteTextureData\n ? `DDS texture data is truncated: expected ${metadata.expectedDataBytes} bytes, got ${metadata.dataBytes}.`\n : \"\";\n const variants = metadata.sourceFormat === \"dds\"\n ? [\n {\n kind: \"compressed\",\n payloadType: \"texture\",\n codec: metadata.pixelFormat || metadata.textureFormat || \"unknown\",\n supported: canEmitTexture && metadata.isCompressed,\n nativeOnly: !!metadata.nativeTextureOnly,\n reason: metadata.isCompressed ? textureUnsupportedReason : \"DDS is not block-compressed.\"\n },\n {\n kind: \"texture\",\n payloadType: \"texture\",\n codec: metadata.pixelFormat || metadata.textureFormat || \"unknown\",\n supported: canEmitTexture,\n reason: canEmitTexture ? \"\" : textureUnsupportedReason\n },\n {\n kind: \"rgba\",\n payloadType: \"rgba\",\n codec: canEmitRgba\n ? (isFloatPixelFormat(metadata.pixelFormat) ? \"rgba32float\" : \"rgba8unorm\")\n : \"rgba8unorm\",\n supported: canEmitRgba,\n reason: canEmitRgba\n ? \"\"\n : textureUnsupportedReason || (metadata.nativeTextureOnly\n ? `${metadata.pixelFormat} is available as a native compressed texture only; register a software decoder or alternate representation for RGBA fallback.`\n : \"DDS RGBA decode is not implemented for this pixel format.\")\n },\n { kind: \"raw\", payloadType: \"raw\", codec: \"dds\", supported: true }\n ]\n : [\n { kind: \"rgba\", codec: \"rgba8\", supported: false, reason: `${metadata.sourceFormat.toUpperCase()} RGBA decode is not implemented yet.` }\n ];\n const preferredVariant = variants.find(v => v.supported && v.kind !== \"raw\") || variants.find(v => v.supported);\n\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? (variants.some(v => v.supported && v.kind !== \"raw\") ? \"full\" : (variants.some(v => v.supported) ? \"partial\" : \"none\")) : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferred: preferredVariant?.codec || \"\",\n reason: metadata.sourceFormat ? \"Container/header recognized.\" : \"Unrecognized image format.\",\n metadata,\n variants,\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: expectedType || values.inputType || \"\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferred: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = toBytes(input);\n const metadata = inspectWithValues(bytes, values, expectedType);\n\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: metadata.sourceFormat,\n metadata,\n bytes\n };\n }\n\n if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat])\n {\n return metadata;\n }\n\n if (values.emit === OUTPUT_TEXTURE && metadata.sourceFormat === \"dds\")\n {\n return readDdsTexture(bytes, metadata);\n }\n\n if ((values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE) && metadata.sourceFormat === \"dds\")\n {\n return readDdsToRgba(bytes, metadata);\n }\n\n const error = new Error(`${metadata.sourceFormat}: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n error.sourceFormat = metadata.sourceFormat;\n error.emit = values.emit;\n throw error;\n}\n\nexport function toJsonValue(value)\n{\n if (value instanceof Uint8Array)\n {\n return { byteLength: value.byteLength };\n }\n if (Array.isArray(value)) return value.map(toJsonValue);\n if (value && typeof value === \"object\")\n {\n const output = {};\n for (const [ key, entry ] of Object.entries(value)) output[key] = toJsonValue(entry);\n return output;\n }\n return value;\n}\n\nexport function inspectBytes(bytes)\n{\n if (isPNG(bytes)) return inspectPNG(bytes);\n if (isJPEG(bytes)) return inspectJPEG(bytes);\n if (isDDS(bytes)) return inspectDDS(bytes);\n if (isTGA(bytes)) return inspectTGA(bytes);\n return { sourceFormat: \"\", width: 0, height: 0 };\n}\n\nexport function isPNG(bytes)\n{\n return bytes.byteLength >= 24 &&\n bytes[0] === 0x89 && bytes[1] === 0x50 && bytes[2] === 0x4e && bytes[3] === 0x47 &&\n bytes[4] === 0x0d && bytes[5] === 0x0a && bytes[6] === 0x1a && bytes[7] === 0x0a;\n}\n\nexport function isJPEG(bytes)\n{\n return bytes.byteLength >= 4 && bytes[0] === 0xff && bytes[1] === 0xd8;\n}\n\nexport function isDDS(bytes)\n{\n return bytes.byteLength >= DDS_HEADER_SIZE + 4 &&\n bytes[0] === 0x44 && bytes[1] === 0x44 && bytes[2] === 0x53 && bytes[3] === 0x20 &&\n readU32LE(bytes, 4) === DDS_HEADER_SIZE;\n}\n\nexport function isTGA(bytes)\n{\n if (bytes.byteLength < 18) return false;\n const imageType = bytes[2], width = readU16LE(bytes, 12), height = readU16LE(bytes, 14), bpp = bytes[16];\n return width > 0 && height > 0 && [ 1, 2, 3, 9, 10, 11 ].includes(imageType) && [ 8, 16, 24, 32 ].includes(bpp);\n}\n\nfunction inspectPNG(bytes)\n{\n const colorType = bytes[25], bitDepth = bytes[24];\n return {\n sourceFormat: \"png\",\n width: readU32BE(bytes, 16),\n height: readU32BE(bytes, 20),\n bitDepth,\n colorType,\n channels: pngChannels(colorType),\n pixelFormat: `png-${bitDepth}-${colorType}`,\n isCompressed: false\n };\n}\n\nfunction inspectJPEG(bytes)\n{\n let offset = 2;\n while (offset + 9 < bytes.byteLength)\n {\n if (bytes[offset] !== 0xff)\n {\n offset++;\n continue;\n }\n const marker = bytes[offset + 1], length = readU16BE(bytes, offset + 2);\n if ([ 0xc0, 0xc1, 0xc2, 0xc3 ].includes(marker))\n {\n return {\n sourceFormat: \"jpeg\",\n width: readU16BE(bytes, offset + 7),\n height: readU16BE(bytes, offset + 5),\n channels: bytes[offset + 9],\n marker,\n pixelFormat: \"jpeg-ycbcr\",\n isCompressed: true\n };\n }\n offset += Math.max(length + 2, 2);\n }\n return { sourceFormat: \"jpeg\", width: 0, height: 0, channels: 0, pixelFormat: \"jpeg\", isCompressed: true };\n}\n\nfunction inspectDDS(bytes)\n{\n const headerSize = readU32LE(bytes, 4);\n const pfOffset = DDS_PIXELFORMAT_OFFSET;\n const pfFlags = readU32LE(bytes, pfOffset + 4);\n const fourCcCode = readU32LE(bytes, pfOffset + 8);\n const fourCc = String.fromCharCode(bytes[84], bytes[85], bytes[86], bytes[87]).replace(/\\0+$/u, \"\");\n const rgbBitCount = readU32LE(bytes, pfOffset + 12);\n const rBitMask = readU32LE(bytes, pfOffset + 16);\n const gBitMask = readU32LE(bytes, pfOffset + 20);\n const bBitMask = readU32LE(bytes, pfOffset + 24);\n const aBitMask = readU32LE(bytes, pfOffset + 28);\n const caps2 = readU32LE(bytes, 112);\n const isCube = !!(caps2 & DDSCAPS2_CUBEMAP);\n const isVolume = !!(caps2 & DDSCAPS2_VOLUME);\n const cubeFaces = getDdsCubeFaces(caps2);\n const hasDx10 = fourCc === \"DX10\" && bytes.byteLength >= 148;\n const dxgiFormat = hasDx10 ? readU32LE(bytes, 128) : 0;\n const resourceDimension = hasDx10 ? readU32LE(bytes, 132) : 0;\n const arraySize = hasDx10 ? readU32LE(bytes, 140) : 1;\n const dataOffset = hasDx10 ? 148 : 128;\n const pixelFormat = getDdsPixelFormat({ pfFlags, fourCc, fourCcCode, rgbBitCount, rBitMask, gBitMask, bBitMask, aBitMask, dxgiFormat });\n const width = readU32LE(bytes, 16);\n const height = readU32LE(bytes, 12);\n const depth = readU32LE(bytes, 24);\n const mipCount = Math.max(readU32LE(bytes, 28), 1);\n const dataBytes = Math.max(bytes.byteLength - dataOffset, 0);\n const expectedDataBytes = pixelFormat ? getDdsExpectedDataBytes({\n pixelFormat,\n width,\n height,\n depth,\n mipCount,\n arraySize,\n isCube,\n isVolume\n }) : null;\n\n return {\n sourceFormat: \"dds\",\n headerSize,\n width,\n height,\n depth,\n mipCount,\n pitchOrLinearSize: readU32LE(bytes, 20),\n pfFlags,\n fourCc,\n fourCcCode,\n rgbBitCount,\n rBitMask,\n gBitMask,\n bBitMask,\n aBitMask,\n caps2,\n hasDx10,\n dxgiFormat,\n resourceDimension,\n arraySize,\n dataOffset,\n dataBytes,\n expectedDataBytes,\n isDataComplete: expectedDataBytes !== null && dataBytes >= expectedDataBytes,\n missingDataBytes: expectedDataBytes === null ? null : Math.max(expectedDataBytes - dataBytes, 0),\n extraDataBytes: expectedDataBytes === null ? null : Math.max(dataBytes - expectedDataBytes, 0),\n faces: isCube ? 6 : 1,\n cubeFaces,\n isCubeComplete: isCube && cubeFaces.length === 6,\n isCube,\n isVolume,\n dimension: isVolume ? \"3d\" : (isCube ? \"cube\" : \"2d\"),\n pixelFormat,\n textureFormat: pixelFormat || fourCc || \"dds-legacy\",\n isCompressed: COMPRESSED_PIXEL_FORMATS.has(pixelFormat),\n nativeTextureOnly: COMPRESSED_PIXEL_FORMATS.has(pixelFormat) && !canDecodeDdsToRgba({ pixelFormat }),\n hasAlpha: !!(pfFlags & DDS_ALPHAPIXELS) || /rgba|bgra/u.test(pixelFormat),\n hasMipMaps: readU32LE(bytes, 28) > 1\n };\n}\n\nfunction readDdsTexture(bytes, metadata)\n{\n if (!metadata.pixelFormat)\n {\n const error = new Error(\"dds: texture format is not recognized yet\");\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n }\n\n const subresources = buildDdsSubresources(bytes, metadata);\n return {\n payloadType: OUTPUT_TEXTURE,\n sourceFormat: \"dds\",\n width: metadata.width,\n height: metadata.height,\n depth: metadata.depth,\n faces: metadata.faces,\n cubeFaces: metadata.cubeFaces,\n isCubeComplete: metadata.isCubeComplete,\n dimension: metadata.dimension,\n mipCount: metadata.mipCount,\n arraySize: metadata.arraySize,\n pixelFormat: metadata.pixelFormat,\n isCompressed: metadata.isCompressed,\n dataBytes: metadata.dataBytes,\n expectedDataBytes: metadata.expectedDataBytes,\n isDataComplete: metadata.isDataComplete,\n missingDataBytes: metadata.missingDataBytes,\n extraDataBytes: metadata.extraDataBytes,\n subresources,\n metadata,\n data: bytes.subarray(metadata.dataOffset, metadata.dataOffset + subresources.reduce((sum, entry) => sum + entry.byteLength, 0))\n };\n}\n\nfunction canDecodeDdsToRgba(metadata)\n{\n return [\n \"rgba32float\",\n \"rgb32float\",\n \"rgba16float\",\n \"rg32float\",\n \"r32float\",\n \"r16float\",\n \"rgba8unorm\",\n \"rgba8unorm-srgb\",\n \"bgra8unorm\",\n \"bgra8unorm-srgb\",\n \"bgrx8unorm\",\n \"bgrx8unorm-srgb\",\n \"bgr8unorm\",\n \"rg8unorm\",\n \"r8unorm\",\n \"bc1-rgba-unorm\",\n \"bc1-rgba-unorm-srgb\",\n \"bc2-rgba-unorm\",\n \"bc2-rgba-unorm-srgb\",\n \"bc3-rgba-unorm\",\n \"bc3-rgba-unorm-srgb\",\n \"bc4-r-unorm\",\n \"bc4-r-snorm\",\n \"bc5-rg-unorm\",\n \"bc5-rg-snorm\"\n ].includes(metadata.pixelFormat);\n}\n\nfunction readDdsToRgba(bytes, metadata)\n{\n if (!canDecodeDdsToRgba(metadata))\n {\n const error = new Error(`dds: RGBA decode is not implemented for ${metadata.pixelFormat || \"unknown\"}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n }\n\n const subresource = buildDdsSubresources(bytes, metadata)[0];\n const source = bytes.subarray(metadata.dataOffset + subresource.offset, metadata.dataOffset + subresource.offset + subresource.byteLength);\n const rgba = metadata.pixelFormat.startsWith(\"bc1-\")\n ? decodeBc1(source, metadata.width, metadata.height, subresource.rowPitch)\n : metadata.pixelFormat.startsWith(\"bc2-\")\n ? decodeBc2(source, metadata.width, metadata.height, subresource.rowPitch)\n : metadata.pixelFormat.startsWith(\"bc3-\")\n ? decodeBc3(source, metadata.width, metadata.height, subresource.rowPitch)\n : metadata.pixelFormat.startsWith(\"bc4-\")\n ? decodeBc4(source, metadata.width, metadata.height, subresource.rowPitch, metadata.pixelFormat.endsWith(\"-snorm\"))\n : metadata.pixelFormat.startsWith(\"bc5-\")\n ? decodeBc5(source, metadata.width, metadata.height, subresource.rowPitch, metadata.pixelFormat.endsWith(\"-snorm\"))\n : isFloatPixelFormat(metadata.pixelFormat)\n ? decodeFloatUncompressed(source, metadata)\n : decodeUncompressed(source, metadata);\n\n const isFloat = isFloatPixelFormat(metadata.pixelFormat);\n\n return {\n payloadType: OUTPUT_RGBA,\n sourceFormat: \"dds\",\n width: metadata.width,\n height: metadata.height,\n pixelFormat: isFloat ? \"rgba32float\" : \"rgba8unorm\",\n strideBytes: metadata.width * (isFloat ? 16 : 4),\n origin: \"top-left\",\n colorSpace: isFloat ? \"linear\" : (metadata.pixelFormat.endsWith(\"-srgb\") ? \"srgb\" : \"unknown\"),\n alphaMode: metadata.hasAlpha ? \"straight\" : \"opaque\",\n metadata,\n data: rgba\n };\n}\n\nfunction buildDdsSubresources(bytes, metadata)\n{\n const subresources = [];\n let offset = 0;\n const layers = Math.max(metadata.arraySize, 1) * (metadata.isCube ? 6 : 1);\n\n for (let layer = 0; layer < layers; layer++)\n {\n const arrayIndex = metadata.isCube ? Math.floor(layer / 6) : layer;\n const face = metadata.isCube ? layer % 6 : 0;\n for (let mip = 0; mip < metadata.mipCount; mip++)\n {\n const width = Math.max(metadata.width >> mip, 1);\n const height = Math.max(metadata.height >> mip, 1);\n const depth = metadata.isVolume ? Math.max(metadata.depth >> mip, 1) : 1;\n const layout = getDdsLevelLayout(metadata.pixelFormat, width, height, depth);\n if (offset + layout.byteLength > bytes.byteLength - metadata.dataOffset)\n {\n const error = new Error(\"dds: texture data is truncated\");\n error.code = \"CJS_FORMAT_TRUNCATED\";\n error.sourceFormat = metadata.sourceFormat;\n error.expectedDataBytes = metadata.expectedDataBytes;\n error.dataBytes = metadata.dataBytes;\n error.missingDataBytes = metadata.missingDataBytes;\n throw error;\n }\n subresources.push({\n mip,\n layer,\n arrayIndex,\n face,\n offset,\n byteLength: layout.byteLength,\n rowPitch: layout.rowPitch,\n slicePitch: layout.slicePitch,\n width,\n height,\n depth\n });\n offset += layout.byteLength;\n }\n }\n\n return subresources;\n}\n\nfunction getDdsExpectedDataBytes(metadata)\n{\n let total = 0;\n const layers = Math.max(metadata.arraySize, 1) * (metadata.isCube ? 6 : 1);\n\n for (let layer = 0; layer < layers; layer++)\n {\n for (let mip = 0; mip < metadata.mipCount; mip++)\n {\n const width = Math.max(metadata.width >> mip, 1);\n const height = Math.max(metadata.height >> mip, 1);\n const depth = metadata.isVolume ? Math.max(metadata.depth >> mip, 1) : 1;\n total += getDdsLevelLayout(metadata.pixelFormat, width, height, depth).byteLength;\n }\n }\n\n return total;\n}\n\nfunction getDdsCubeFaces(caps2)\n{\n if (!(caps2 & DDSCAPS2_CUBEMAP))\n {\n return [];\n }\n return DDS_CUBE_FACE_FLAGS\n .filter((entry) => !!(caps2 & entry[1]))\n .map((entry) => entry[0]);\n}\n\nfunction getDdsLevelLayout(pixelFormat, width, height, depth)\n{\n const blockBytes = pixelFormat.startsWith(\"bc1-\") || pixelFormat.startsWith(\"bc4-\") ? 8 :\n pixelFormat.startsWith(\"bc\") ? 16 : 0;\n if (blockBytes)\n {\n const blocksWide = Math.max(Math.ceil(width / 4), 1);\n const blocksHigh = Math.max(Math.ceil(height / 4), 1);\n const rowPitch = blocksWide * blockBytes;\n const slicePitch = rowPitch * blocksHigh;\n return { rowPitch, slicePitch, byteLength: slicePitch * depth };\n }\n\n const bytesPerPixel = {\n \"rgba32float\": 16,\n \"rgb32float\": 12,\n \"rgba16float\": 8,\n \"rg32float\": 8,\n \"r32float\": 4,\n \"r16float\": 2,\n \"rgba8unorm\": 4,\n \"rgba8unorm-srgb\": 4,\n \"bgra8unorm\": 4,\n \"bgra8unorm-srgb\": 4,\n \"bgrx8unorm\": 4,\n \"bgrx8unorm-srgb\": 4,\n \"bgr8unorm\": 3,\n \"rg8unorm\": 2,\n \"r8unorm\": 1\n }[pixelFormat];\n if (!bytesPerPixel)\n {\n const error = new Error(`dds: cannot calculate subresource layout for ${pixelFormat || \"unknown\"}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n throw error;\n }\n const rowPitch = width * bytesPerPixel;\n const slicePitch = rowPitch * height;\n return { rowPitch, slicePitch, byteLength: slicePitch * depth };\n}\n\nfunction decodeUncompressed(source, metadata)\n{\n const rgba = new Uint8Array(metadata.width * metadata.height * 4);\n const bytesPerPixel = metadata.pixelFormat === \"bgr8unorm\" ? 3 :\n metadata.pixelFormat === \"rg8unorm\" ? 2 :\n metadata.pixelFormat === \"r8unorm\" ? 1 : 4;\n for (let pixel = 0; pixel < metadata.width * metadata.height; pixel++)\n {\n const sourceOffset = pixel * bytesPerPixel;\n const outputOffset = pixel * 4;\n if (metadata.pixelFormat.startsWith(\"bgra\") || metadata.pixelFormat.startsWith(\"bgrx\"))\n {\n rgba[outputOffset] = source[sourceOffset + 2];\n rgba[outputOffset + 1] = source[sourceOffset + 1];\n rgba[outputOffset + 2] = source[sourceOffset];\n rgba[outputOffset + 3] = metadata.pixelFormat.startsWith(\"bgrx\") ? 255 : source[sourceOffset + 3];\n }\n else if (metadata.pixelFormat === \"bgr8unorm\")\n {\n rgba[outputOffset] = source[sourceOffset + 2];\n rgba[outputOffset + 1] = source[sourceOffset + 1];\n rgba[outputOffset + 2] = source[sourceOffset];\n rgba[outputOffset + 3] = 255;\n }\n else if (metadata.pixelFormat === \"rg8unorm\")\n {\n rgba[outputOffset] = source[sourceOffset];\n rgba[outputOffset + 1] = source[sourceOffset + 1];\n rgba[outputOffset + 2] = 0;\n rgba[outputOffset + 3] = 255;\n }\n else\n {\n rgba[outputOffset] = source[sourceOffset];\n rgba[outputOffset + 1] = bytesPerPixel > 1 ? source[sourceOffset + 1] : source[sourceOffset];\n rgba[outputOffset + 2] = bytesPerPixel > 2 ? source[sourceOffset + 2] : source[sourceOffset];\n rgba[outputOffset + 3] = bytesPerPixel > 3 ? source[sourceOffset + 3] : 255;\n }\n }\n return rgba;\n}\n\nfunction decodeFloatUncompressed(source, metadata)\n{\n const rgba = new Float32Array(metadata.width * metadata.height * 4);\n const view = new DataView(source.buffer, source.byteOffset, source.byteLength);\n const bytesPerPixel = {\n \"rgba32float\": 16,\n \"rgb32float\": 12,\n \"rgba16float\": 8,\n \"rg32float\": 8,\n \"r32float\": 4,\n \"r16float\": 2\n }[metadata.pixelFormat];\n\n for (let pixel = 0; pixel < metadata.width * metadata.height; pixel++)\n {\n const sourceOffset = pixel * bytesPerPixel;\n const outputOffset = pixel * 4;\n let red, green, blue, alpha;\n if (metadata.pixelFormat === \"rgba32float\")\n {\n red = view.getFloat32(sourceOffset, true);\n green = view.getFloat32(sourceOffset + 4, true);\n blue = view.getFloat32(sourceOffset + 8, true);\n alpha = view.getFloat32(sourceOffset + 12, true);\n }\n else if (metadata.pixelFormat === \"rgb32float\")\n {\n red = view.getFloat32(sourceOffset, true);\n green = view.getFloat32(sourceOffset + 4, true);\n blue = view.getFloat32(sourceOffset + 8, true);\n alpha = 1;\n }\n else if (metadata.pixelFormat === \"rgba16float\")\n {\n red = halfToFloat(view.getUint16(sourceOffset, true));\n green = halfToFloat(view.getUint16(sourceOffset + 2, true));\n blue = halfToFloat(view.getUint16(sourceOffset + 4, true));\n alpha = halfToFloat(view.getUint16(sourceOffset + 6, true));\n }\n else if (metadata.pixelFormat === \"rg32float\")\n {\n red = view.getFloat32(sourceOffset, true);\n green = view.getFloat32(sourceOffset + 4, true);\n blue = 0;\n alpha = 1;\n }\n else\n {\n red = metadata.pixelFormat === \"r16float\"\n ? halfToFloat(view.getUint16(sourceOffset, true))\n : view.getFloat32(sourceOffset, true);\n green = red;\n blue = red;\n alpha = 1;\n }\n rgba[outputOffset] = red;\n rgba[outputOffset + 1] = green;\n rgba[outputOffset + 2] = blue;\n rgba[outputOffset + 3] = alpha;\n }\n return rgba;\n}\n\nfunction isFloatPixelFormat(pixelFormat)\n{\n return [ \"rgba32float\", \"rgb32float\", \"rgba16float\", \"rg32float\", \"r32float\", \"r16float\" ].includes(pixelFormat);\n}\n\nfunction halfToFloat(value)\n{\n const sign = (value & 0x8000) ? -1 : 1;\n const exponent = (value >>> 10) & 0x1f;\n const mantissa = value & 0x03ff;\n if (exponent === 0)\n {\n return sign * Math.pow(2, -14) * (mantissa / 1024);\n }\n if (exponent === 0x1f)\n {\n return mantissa === 0 ? sign * Infinity : NaN;\n }\n return sign * Math.pow(2, exponent - 15) * (1 + mantissa / 1024);\n}\n\nfunction decodeBc1(source, width, height, rowPitch)\n{\n const rgba = new Uint8Array(width * height * 4);\n for (let blockY = 0; blockY < Math.ceil(height / 4); blockY++)\n {\n for (let blockX = 0; blockX < Math.ceil(width / 4); blockX++)\n {\n const blockOffset = blockY * rowPitch + blockX * 8;\n const c0 = source[blockOffset] | (source[blockOffset + 1] << 8);\n const c1 = source[blockOffset + 2] | (source[blockOffset + 3] << 8);\n const colors = decodeBc1Colors(c0, c1);\n const indices = source[blockOffset + 4] |\n (source[blockOffset + 5] << 8) |\n (source[blockOffset + 6] << 16) |\n (source[blockOffset + 7] << 24);\n for (let y = 0; y < 4; y++)\n {\n for (let x = 0; x < 4; x++)\n {\n const outputX = blockX * 4 + x;\n const outputY = blockY * 4 + y;\n if (outputX >= width || outputY >= height) continue;\n const color = colors[(indices >>> (2 * (y * 4 + x))) & 3];\n rgba.set(color, (outputY * width + outputX) * 4);\n }\n }\n }\n }\n return rgba;\n}\n\nfunction decodeBc2(source, width, height, rowPitch)\n{\n return decodeBcAlphaColor(source, width, height, rowPitch, (blockOffset, x, y) =>\n {\n const alphaNibble = (source[blockOffset + y * 2 + Math.floor(x / 2)] >>> ((x % 2) * 4)) & 0x0f;\n return alphaNibble * 17;\n }, 8);\n}\n\nfunction decodeBc3(source, width, height, rowPitch)\n{\n return decodeBcAlphaColor(source, width, height, rowPitch, (blockOffset, x, y) =>\n {\n const alpha0 = source[blockOffset], alpha1 = source[blockOffset + 1];\n const alphaValues = alpha0 > alpha1\n ? [ alpha0, alpha1,\n Math.round((6 * alpha0 + alpha1) / 7),\n Math.round((5 * alpha0 + 2 * alpha1) / 7),\n Math.round((4 * alpha0 + 3 * alpha1) / 7),\n Math.round((3 * alpha0 + 4 * alpha1) / 7),\n Math.round((2 * alpha0 + 5 * alpha1) / 7),\n Math.round((alpha0 + 6 * alpha1) / 7) ]\n : [ alpha0, alpha1,\n Math.round((4 * alpha0 + alpha1) / 5),\n Math.round((3 * alpha0 + 2 * alpha1) / 5),\n Math.round((2 * alpha0 + 3 * alpha1) / 5),\n Math.round((alpha0 + 4 * alpha1) / 5),\n 0, 255 ];\n let alphaBits = 0n;\n for (let i = 0; i < 6; i++) alphaBits |= BigInt(source[blockOffset + 2 + i]) << BigInt(i * 8);\n return alphaValues[Number((alphaBits >> BigInt((y * 4 + x) * 3)) & 7n)];\n }, 8);\n}\n\nfunction decodeBc4(source, width, height, rowPitch, signed)\n{\n const rgba = new Uint8Array(width * height * 4);\n forEachBcPixel(width, height, rowPitch, 8, (blockOffset, x, y, outputOffset) =>\n {\n const value = decodeBc4Value(source, blockOffset, x, y, signed);\n rgba[outputOffset] = value;\n rgba[outputOffset + 1] = value;\n rgba[outputOffset + 2] = value;\n rgba[outputOffset + 3] = 255;\n });\n return rgba;\n}\n\nfunction decodeBc5(source, width, height, rowPitch, signed)\n{\n const rgba = new Uint8Array(width * height * 4);\n forEachBcPixel(width, height, rowPitch, 16, (blockOffset, x, y, outputOffset) =>\n {\n rgba[outputOffset] = decodeBc4Value(source, blockOffset, x, y, signed);\n rgba[outputOffset + 1] = decodeBc4Value(source, blockOffset + 8, x, y, signed);\n rgba[outputOffset + 2] = 0;\n rgba[outputOffset + 3] = 255;\n });\n return rgba;\n}\n\nfunction decodeBc4Value(source, blockOffset, x, y, signed)\n{\n const endpoint0 = signed ? decodeSnormByte(source[blockOffset]) : source[blockOffset];\n const endpoint1 = signed ? decodeSnormByte(source[blockOffset + 1]) : source[blockOffset + 1];\n const values = endpoint0 > endpoint1\n ? [ endpoint0, endpoint1,\n (6 * endpoint0 + endpoint1) / 7,\n (5 * endpoint0 + 2 * endpoint1) / 7,\n (4 * endpoint0 + 3 * endpoint1) / 7,\n (3 * endpoint0 + 4 * endpoint1) / 7,\n (2 * endpoint0 + 5 * endpoint1) / 7,\n (endpoint0 + 6 * endpoint1) / 7 ]\n : [ endpoint0, endpoint1,\n (4 * endpoint0 + endpoint1) / 5,\n (3 * endpoint0 + 2 * endpoint1) / 5,\n (2 * endpoint0 + 3 * endpoint1) / 5,\n (endpoint0 + 4 * endpoint1) / 5,\n signed ? -1 : 0,\n signed ? 1 : 255 ];\n let bits = 0n;\n for (let i = 0; i < 6; i++) bits |= BigInt(source[blockOffset + 2 + i]) << BigInt(i * 8);\n const value = values[Number((bits >> BigInt((y * 4 + x) * 3)) & 7n)];\n return signed ? Math.max(0, Math.min(255, Math.round((value + 1) * 127.5))) : Math.round(value);\n}\n\nfunction decodeSnormByte(value)\n{\n const signed = value > 127 ? value - 256 : value;\n return Math.max(-1, signed / 127);\n}\n\nfunction forEachBcPixel(width, height, rowPitch, blockBytes, callback)\n{\n for (let blockY = 0; blockY < Math.ceil(height / 4); blockY++)\n {\n for (let blockX = 0; blockX < Math.ceil(width / 4); blockX++)\n {\n const blockOffset = blockY * rowPitch + blockX * blockBytes;\n for (let y = 0; y < 4; y++)\n {\n for (let x = 0; x < 4; x++)\n {\n const outputX = blockX * 4 + x;\n const outputY = blockY * 4 + y;\n if (outputX < width && outputY < height)\n {\n callback(blockOffset, x, y, (outputY * width + outputX) * 4);\n }\n }\n }\n }\n }\n}\n\nfunction decodeBcAlphaColor(source, width, height, rowPitch, alphaAt, colorOffset = 0)\n{\n const rgba = new Uint8Array(width * height * 4);\n for (let blockY = 0; blockY < Math.ceil(height / 4); blockY++)\n {\n for (let blockX = 0; blockX < Math.ceil(width / 4); blockX++)\n {\n const blockOffset = blockY * rowPitch + blockX * 16;\n const colorOffsetInBlock = blockOffset + colorOffset;\n const c0 = source[colorOffsetInBlock] | (source[colorOffsetInBlock + 1] << 8);\n const c1 = source[colorOffsetInBlock + 2] | (source[colorOffsetInBlock + 3] << 8);\n const colors = decodeBc1Colors(c0, c1, true);\n const indices = source[colorOffsetInBlock + 4] |\n (source[colorOffsetInBlock + 5] << 8) |\n (source[colorOffsetInBlock + 6] << 16) |\n (source[colorOffsetInBlock + 7] << 24);\n for (let y = 0; y < 4; y++)\n {\n for (let x = 0; x < 4; x++)\n {\n const outputX = blockX * 4 + x;\n const outputY = blockY * 4 + y;\n if (outputX >= width || outputY >= height) continue;\n const color = colors[(indices >>> (2 * (y * 4 + x))) & 3];\n const outputOffset = (outputY * width + outputX) * 4;\n rgba[outputOffset] = color[0];\n rgba[outputOffset + 1] = color[1];\n rgba[outputOffset + 2] = color[2];\n rgba[outputOffset + 3] = alphaAt(blockOffset, x, y);\n }\n }\n }\n }\n return rgba;\n}\n\nfunction decodeBc1Colors(c0, c1, forceFourColor = false)\n{\n const first = decode565(c0);\n const second = decode565(c1);\n const colors = [ first, second ];\n if (c0 > c1 || forceFourColor)\n {\n colors.push([\n Math.round((2 * first[0] + second[0]) / 3),\n Math.round((2 * first[1] + second[1]) / 3),\n Math.round((2 * first[2] + second[2]) / 3),\n 255\n ], [\n Math.round((first[0] + 2 * second[0]) / 3),\n Math.round((first[1] + 2 * second[1]) / 3),\n Math.round((first[2] + 2 * second[2]) / 3),\n 255\n ]);\n }\n else\n {\n colors.push([\n Math.round((first[0] + second[0]) / 2),\n Math.round((first[1] + second[1]) / 2),\n Math.round((first[2] + second[2]) / 2),\n 255\n ], [ 0, 0, 0, 0 ]);\n }\n return colors;\n}\n\nfunction decode565(value)\n{\n return [\n Math.round(((value >>> 11) & 0x1f) * 255 / 31),\n Math.round(((value >>> 5) & 0x3f) * 255 / 63),\n Math.round((value & 0x1f) * 255 / 31),\n 255\n ];\n}\n\nfunction getDdsPixelFormat(format)\n{\n if (format.dxgiFormat) return DXGI_PIXEL_FORMATS[format.dxgiFormat] || \"\";\n if ((format.pfFlags & DDS_FOURCC) && format.fourCc)\n {\n return FOURCC_PIXEL_FORMATS[format.fourCc] || {\n 113: \"rgba16float\",\n 116: \"rgba32float\"\n }[format.fourCcCode] || \"\";\n }\n if (format.pfFlags & DDS_RGB)\n {\n if (format.rgbBitCount === 32 &&\n format.rBitMask === 0x000000ff &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x00ff0000 &&\n format.aBitMask === 0xff000000) return \"rgba8unorm\";\n if (format.rgbBitCount === 32 &&\n format.rBitMask === 0x00ff0000 &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x000000ff &&\n format.aBitMask === 0xff000000) return \"bgra8unorm\";\n if (format.rgbBitCount === 24 &&\n format.rBitMask === 0x00ff0000 &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x000000ff) return \"bgr8unorm\";\n }\n return \"\";\n}\n\nfunction inspectTGA(bytes)\n{\n return {\n sourceFormat: \"tga\",\n width: readU16LE(bytes, 12),\n height: readU16LE(bytes, 14),\n channels: Math.max(bytes[16] / 8, 1),\n imageType: bytes[2],\n pixelFormat: `tga-${bytes[16]}`,\n isCompressed: [ 9, 10, 11 ].includes(bytes[2])\n };\n}\n\nfunction pngChannels(colorType)\n{\n if (colorType === 0) return 1;\n if (colorType === 2) return 3;\n if (colorType === 3) return 1;\n if (colorType === 4) return 2;\n if (colorType === 6) return 4;\n return 0;\n}\n\nfunction readU16BE(bytes, offset)\n{\n return (bytes[offset] << 8) | bytes[offset + 1];\n}\n\nfunction readU16LE(bytes, offset)\n{\n return bytes[offset] | (bytes[offset + 1] << 8);\n}\n\nfunction readU32BE(bytes, offset)\n{\n return ((bytes[offset] * 0x1000000) + ((bytes[offset + 1] << 16) | (bytes[offset + 2] << 8) | bytes[offset + 3])) >>> 0;\n}\n\nfunction readU32LE(bytes, offset)\n{\n return (bytes[offset] | (bytes[offset + 1] << 8) | (bytes[offset + 2] << 16) | (bytes[offset + 3] * 0x1000000)) >>> 0;\n}\n\nfunction capitalize(value)\n{\n return value ? value[0].toUpperCase() + value.slice(1) : \"Image\";\n}\n"],"names":["OUTPUT_IMAGE","OUTPUT_TEXTURE","OUTPUT_RGBA","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DDS_HEADER_SIZE","DDS_PIXELFORMAT_OFFSET","DDS_FOURCC","DDS_RGB","DDS_ALPHAPIXELS","DDSCAPS2_CUBEMAP","DDSCAPS2_VOLUME","DDS_CUBE_FACE_FLAGS","FOURCC_PIXEL_FORMATS","DXT1","DXT3","DXT5","ATI1","BC4U","BC4S","ATI2","BC5U","BC5S","DXGI_PIXEL_FORMATS","COMPRESSED_PIXEL_FORMATS","Set","DEBUG_OUTPUTS","png","jpeg","jpg","tga","dds","normalizeValues","base","options","readerName","values","normalizeInputType","normalizeEmit","value","String","replace","toLowerCase","undefined","includes","TypeError","JSON","stringify","toBytes","input","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","inspectWithValues","expectedType","bytes","detected","inspectBytes","sourceFormat","capitalize","payloadType","mediaTypes","isSupportedWithValues","metadata","hasCompleteTextureData","isDataComplete","canEmitTexture","dataOffset","pixelFormat","canEmitRgba","canDecodeDdsToRgba","textureUnsupportedReason","expectedDataBytes","dataBytes","variants","kind","codec","textureFormat","supported","isCompressed","nativeOnly","nativeTextureOnly","reason","isFloatPixelFormat","toUpperCase","preferredVariant","find","v","format","some","confidence","preferred","warnings","errors","error","message","readWithValues","readDdsTexture","readDdsToRgba","Error","code","toJsonValue","Array","isArray","map","output","key","entry","entries","isPNG","inspectPNG","isJPEG","inspectJPEG","isDDS","inspectDDS","isTGA","inspectTGA","width","height","readU32LE","imageType","readU16LE","bpp","colorType","bitDepth","readU32BE","channels","pngChannels","offset","marker","length","readU16BE","Math","max","headerSize","pfOffset","pfFlags","fourCcCode","fourCc","fromCharCode","rgbBitCount","rBitMask","gBitMask","bBitMask","aBitMask","caps2","isCube","isVolume","cubeFaces","getDdsCubeFaces","hasDx10","dxgiFormat","resourceDimension","arraySize","getDdsPixelFormat","depth","mipCount","getDdsExpectedDataBytes","pitchOrLinearSize","missingDataBytes","extraDataBytes","faces","isCubeComplete","dimension","has","hasAlpha","test","hasMipMaps","subresources","buildDdsSubresources","data","subarray","reduce","sum","subresource","rgba","startsWith","decodeBc1","rowPitch","decodeBc2","decodeBc3","decodeBc4","endsWith","decodeBc5","decodeFloatUncompressed","decodeUncompressed","isFloat","strideBytes","origin","colorSpace","alphaMode","layers","layer","arrayIndex","floor","face","mip","layout","getDdsLevelLayout","push","slicePitch","total","filter","blockBytes","blocksWide","ceil","blocksHigh","bytesPerPixel","pixel","sourceOffset","outputOffset","Float32Array","view","DataView","red","green","blue","alpha","getFloat32","halfToFloat","getUint16","sign","exponent","mantissa","pow","Infinity","NaN","blockY","blockX","blockOffset","c0","c1","colors","decodeBc1Colors","indices","y","x","outputX","outputY","color","set","decodeBcAlphaColor","alphaNibble","alpha0","alpha1","alphaValues","round","alphaBits","i","BigInt","Number","signed","forEachBcPixel","decodeBc4Value","endpoint0","decodeSnormByte","endpoint1","bits","min","callback","alphaAt","colorOffset","colorOffsetInBlock","forceFourColor","first","decode565","second","slice"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../../../src/formats/dds/core/helpers.js"],"sourcesContent":["import { decodeBc6h } from \"./bc6h.js\";\nimport { decodeBc7 } from \"./bc7.js\";\n\nexport const OUTPUT_IMAGE = \"image\";\nexport const OUTPUT_TEXTURE = \"texture\";\nexport const OUTPUT_RGBA = \"rgba\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"\",\n source: \"\"\n});\n\nconst DDS_HEADER_SIZE = 124;\nconst DDS_PIXELFORMAT_OFFSET = 76;\nconst DDS_FOURCC = 0x00000004;\nconst DDS_RGB = 0x00000040;\nconst DDS_ALPHAPIXELS = 0x00000001;\nconst DDSCAPS2_CUBEMAP = 0x00000200;\nconst DDSCAPS2_VOLUME = 0x00200000;\n\nconst DDS_CUBE_FACE_FLAGS = Object.freeze([\n [ \"positive-x\", 0x00000400 ],\n [ \"negative-x\", 0x00000800 ],\n [ \"positive-y\", 0x00001000 ],\n [ \"negative-y\", 0x00002000 ],\n [ \"positive-z\", 0x00004000 ],\n [ \"negative-z\", 0x00008000 ]\n]);\n\nconst FOURCC_PIXEL_FORMATS = Object.freeze({\n DXT1: \"bc1-rgba-unorm\",\n DXT3: \"bc2-rgba-unorm\",\n DXT5: \"bc3-rgba-unorm\",\n ATI1: \"bc4-r-unorm\",\n BC4U: \"bc4-r-unorm\",\n BC4S: \"bc4-r-snorm\",\n ATI2: \"bc5-rg-unorm\",\n BC5U: \"bc5-rg-unorm\",\n BC5S: \"bc5-rg-snorm\"\n});\n\nconst DXGI_PIXEL_FORMATS = Object.freeze({\n 2: \"rgba32float\",\n 6: \"rgb32float\",\n 10: \"rgba16float\",\n 16: \"rg32float\",\n 41: \"r32float\",\n 54: \"r16float\",\n 28: \"rgba8unorm\",\n 29: \"rgba8unorm-srgb\",\n 49: \"rg8unorm\",\n 61: \"r8unorm\",\n 71: \"bc1-rgba-unorm\",\n 72: \"bc1-rgba-unorm-srgb\",\n 74: \"bc2-rgba-unorm\",\n 75: \"bc2-rgba-unorm-srgb\",\n 77: \"bc3-rgba-unorm\",\n 78: \"bc3-rgba-unorm-srgb\",\n 80: \"bc4-r-unorm\",\n 81: \"bc4-r-snorm\",\n 83: \"bc5-rg-unorm\",\n 84: \"bc5-rg-snorm\",\n 87: \"bgra8unorm\",\n 88: \"bgrx8unorm\",\n 91: \"bgra8unorm-srgb\",\n 93: \"bgrx8unorm-srgb\",\n 95: \"bc6h-rgb-ufloat\",\n 96: \"bc6h-rgb-float\",\n 98: \"bc7-rgba-unorm\",\n 99: \"bc7-rgba-unorm-srgb\"\n});\n\nconst COMPRESSED_PIXEL_FORMATS = new Set([\n \"bc1-rgba-unorm\",\n \"bc1-rgba-unorm-srgb\",\n \"bc2-rgba-unorm\",\n \"bc2-rgba-unorm-srgb\",\n \"bc3-rgba-unorm\",\n \"bc3-rgba-unorm-srgb\",\n \"bc4-r-unorm\",\n \"bc4-r-snorm\",\n \"bc5-rg-unorm\",\n \"bc5-rg-snorm\",\n \"bc6h-rgb-ufloat\",\n \"bc6h-rgb-float\",\n \"bc7-rgba-unorm\",\n \"bc7-rgba-unorm-srgb\"\n]);\n\nconst DEBUG_OUTPUTS = Object.freeze({\n png: \"pngJson\",\n jpeg: \"jpegJson\",\n jpg: \"jpegJson\",\n tga: \"tgaJson\",\n dds: \"ddsJson\"\n});\n\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsImageFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = normalizeInputType(values.inputType);\n values.emit = normalizeEmit(values.emit, values.inputType, readerName);\n return values;\n}\n\nexport function normalizeInputType(inputType)\n{\n if (!inputType) return \"\";\n const value = String(inputType).replace(/^\\./u, \"\").toLowerCase();\n return value === \"jpg\" ? \"jpeg\" : value;\n}\n\nexport function normalizeEmit(emit, inputType, readerName)\n{\n if (emit === undefined || emit === null) return OUTPUT_RAW;\n if (emit === OUTPUT_JSON && inputType) return DEBUG_OUTPUTS[inputType] || OUTPUT_JSON;\n if ([ OUTPUT_IMAGE, OUTPUT_TEXTURE, OUTPUT_RGBA, OUTPUT_RAW, OUTPUT_JSON ].includes(emit)) return emit;\n if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);\n}\n\nexport function toBytes(input)\n{\n if (input instanceof Uint8Array) return input;\n if (input instanceof ArrayBuffer) return new Uint8Array(input);\n if (ArrayBuffer.isView(input)) return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n throw new TypeError(\"Image input must be Uint8Array, ArrayBuffer, or DataView\");\n}\n\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = toBytes(input);\n const detected = inspectBytes(bytes);\n const sourceFormat = expectedType || values.inputType || detected.sourceFormat;\n\n if (expectedType && detected.sourceFormat && detected.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsFormat${capitalize(expectedType)}: expected ${expectedType}, got ${detected.sourceFormat}`);\n }\n\n return {\n payloadType: sourceFormat === \"dds\" ? \"texture\" : \"image\",\n mediaTypes: sourceFormat === \"dds\" ? [ \"texture\", \"image\" ] : [ \"image\" ],\n sourceFormat,\n byteLength: bytes.byteLength,\n ...detected\n };\n}\n\nexport function isSupportedWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n const hasCompleteTextureData = metadata.isDataComplete !== false;\n const canEmitTexture = metadata.sourceFormat === \"dds\" && metadata.dataOffset > 0 && !!metadata.pixelFormat && hasCompleteTextureData;\n const canEmitRgba = canDecodeDdsToRgba(metadata) && hasCompleteTextureData;\n const textureUnsupportedReason = !metadata.pixelFormat\n ? \"DDS texture format is not recognized yet.\"\n : !hasCompleteTextureData\n ? `DDS texture data is truncated: expected ${metadata.expectedDataBytes} bytes, got ${metadata.dataBytes}.`\n : \"\";\n const variants = metadata.sourceFormat === \"dds\"\n ? [\n {\n kind: \"compressed\",\n payloadType: \"texture\",\n codec: metadata.pixelFormat || metadata.textureFormat || \"unknown\",\n supported: canEmitTexture && metadata.isCompressed,\n nativeOnly: !!metadata.nativeTextureOnly,\n reason: metadata.isCompressed ? textureUnsupportedReason : \"DDS is not block-compressed.\"\n },\n {\n kind: \"texture\",\n payloadType: \"texture\",\n codec: metadata.pixelFormat || metadata.textureFormat || \"unknown\",\n supported: canEmitTexture,\n reason: canEmitTexture ? \"\" : textureUnsupportedReason\n },\n {\n kind: \"rgba\",\n payloadType: \"rgba\",\n codec: canEmitRgba\n ? (isFloatPixelFormat(metadata.pixelFormat) ? \"rgba32float\" : \"rgba8unorm\")\n : \"rgba8unorm\",\n supported: canEmitRgba,\n reason: canEmitRgba\n ? \"\"\n : textureUnsupportedReason || (metadata.nativeTextureOnly\n ? `${metadata.pixelFormat} is available as a native compressed texture only; register a software decoder or alternate representation for RGBA fallback.`\n : \"DDS RGBA decode is not implemented for this pixel format.\")\n },\n { kind: \"raw\", payloadType: \"raw\", codec: \"dds\", supported: true }\n ]\n : [\n { kind: \"rgba\", codec: \"rgba8\", supported: false, reason: `${metadata.sourceFormat.toUpperCase()} RGBA decode is not implemented yet.` }\n ];\n const preferredVariant = variants.find(v => v.supported && v.kind !== \"raw\") || variants.find(v => v.supported);\n\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? (variants.some(v => v.supported && v.kind !== \"raw\") ? \"full\" : (variants.some(v => v.supported) ? \"partial\" : \"none\")) : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferred: preferredVariant?.codec || \"\",\n reason: metadata.sourceFormat ? \"Container/header recognized.\" : \"Unrecognized image format.\",\n metadata,\n variants,\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: expectedType || values.inputType || \"\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferred: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = toBytes(input);\n const metadata = inspectWithValues(bytes, values, expectedType);\n\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: metadata.sourceFormat,\n metadata,\n bytes\n };\n }\n\n if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat])\n {\n return metadata;\n }\n\n if (values.emit === OUTPUT_TEXTURE && metadata.sourceFormat === \"dds\")\n {\n return readDdsTexture(bytes, metadata);\n }\n\n if ((values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE) && metadata.sourceFormat === \"dds\")\n {\n return readDdsToRgba(bytes, metadata);\n }\n\n const error = new Error(`${metadata.sourceFormat}: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n error.sourceFormat = metadata.sourceFormat;\n error.emit = values.emit;\n throw error;\n}\n\nexport function toJsonValue(value)\n{\n if (value instanceof Uint8Array)\n {\n return { byteLength: value.byteLength };\n }\n if (Array.isArray(value)) return value.map(toJsonValue);\n if (value && typeof value === \"object\")\n {\n const output = {};\n for (const [ key, entry ] of Object.entries(value)) output[key] = toJsonValue(entry);\n return output;\n }\n return value;\n}\n\nexport function inspectBytes(bytes)\n{\n if (isPNG(bytes)) return inspectPNG(bytes);\n if (isJPEG(bytes)) return inspectJPEG(bytes);\n if (isDDS(bytes)) return inspectDDS(bytes);\n if (isTGA(bytes)) return inspectTGA(bytes);\n return { sourceFormat: \"\", width: 0, height: 0 };\n}\n\nexport function isPNG(bytes)\n{\n return bytes.byteLength >= 24 &&\n bytes[0] === 0x89 && bytes[1] === 0x50 && bytes[2] === 0x4e && bytes[3] === 0x47 &&\n bytes[4] === 0x0d && bytes[5] === 0x0a && bytes[6] === 0x1a && bytes[7] === 0x0a;\n}\n\nexport function isJPEG(bytes)\n{\n return bytes.byteLength >= 4 && bytes[0] === 0xff && bytes[1] === 0xd8;\n}\n\nexport function isDDS(bytes)\n{\n return bytes.byteLength >= DDS_HEADER_SIZE + 4 &&\n bytes[0] === 0x44 && bytes[1] === 0x44 && bytes[2] === 0x53 && bytes[3] === 0x20 &&\n readU32LE(bytes, 4) === DDS_HEADER_SIZE;\n}\n\nexport function isTGA(bytes)\n{\n if (bytes.byteLength < 18) return false;\n const imageType = bytes[2], width = readU16LE(bytes, 12), height = readU16LE(bytes, 14), bpp = bytes[16];\n return width > 0 && height > 0 && [ 1, 2, 3, 9, 10, 11 ].includes(imageType) && [ 8, 16, 24, 32 ].includes(bpp);\n}\n\nfunction inspectPNG(bytes)\n{\n const colorType = bytes[25], bitDepth = bytes[24];\n return {\n sourceFormat: \"png\",\n width: readU32BE(bytes, 16),\n height: readU32BE(bytes, 20),\n bitDepth,\n colorType,\n channels: pngChannels(colorType),\n pixelFormat: `png-${bitDepth}-${colorType}`,\n isCompressed: false\n };\n}\n\nfunction inspectJPEG(bytes)\n{\n let offset = 2;\n while (offset + 9 < bytes.byteLength)\n {\n if (bytes[offset] !== 0xff)\n {\n offset++;\n continue;\n }\n const marker = bytes[offset + 1], length = readU16BE(bytes, offset + 2);\n if ([ 0xc0, 0xc1, 0xc2, 0xc3 ].includes(marker))\n {\n return {\n sourceFormat: \"jpeg\",\n width: readU16BE(bytes, offset + 7),\n height: readU16BE(bytes, offset + 5),\n channels: bytes[offset + 9],\n marker,\n pixelFormat: \"jpeg-ycbcr\",\n isCompressed: true\n };\n }\n offset += Math.max(length + 2, 2);\n }\n return { sourceFormat: \"jpeg\", width: 0, height: 0, channels: 0, pixelFormat: \"jpeg\", isCompressed: true };\n}\n\nfunction inspectDDS(bytes)\n{\n const headerSize = readU32LE(bytes, 4);\n const pfOffset = DDS_PIXELFORMAT_OFFSET;\n const pfFlags = readU32LE(bytes, pfOffset + 4);\n const fourCcCode = readU32LE(bytes, pfOffset + 8);\n const fourCc = String.fromCharCode(bytes[84], bytes[85], bytes[86], bytes[87]).replace(/\\0+$/u, \"\");\n const rgbBitCount = readU32LE(bytes, pfOffset + 12);\n const rBitMask = readU32LE(bytes, pfOffset + 16);\n const gBitMask = readU32LE(bytes, pfOffset + 20);\n const bBitMask = readU32LE(bytes, pfOffset + 24);\n const aBitMask = readU32LE(bytes, pfOffset + 28);\n const caps2 = readU32LE(bytes, 112);\n const isCube = !!(caps2 & DDSCAPS2_CUBEMAP);\n const isVolume = !!(caps2 & DDSCAPS2_VOLUME);\n const cubeFaces = getDdsCubeFaces(caps2);\n const hasDx10 = fourCc === \"DX10\" && bytes.byteLength >= 148;\n const dxgiFormat = hasDx10 ? readU32LE(bytes, 128) : 0;\n const resourceDimension = hasDx10 ? readU32LE(bytes, 132) : 0;\n const arraySize = hasDx10 ? readU32LE(bytes, 140) : 1;\n const dataOffset = hasDx10 ? 148 : 128;\n const pixelFormat = getDdsPixelFormat({ pfFlags, fourCc, fourCcCode, rgbBitCount, rBitMask, gBitMask, bBitMask, aBitMask, dxgiFormat });\n const width = readU32LE(bytes, 16);\n const height = readU32LE(bytes, 12);\n const depth = readU32LE(bytes, 24);\n const mipCount = Math.max(readU32LE(bytes, 28), 1);\n const dataBytes = Math.max(bytes.byteLength - dataOffset, 0);\n const expectedDataBytes = pixelFormat ? getDdsExpectedDataBytes({\n pixelFormat,\n width,\n height,\n depth,\n mipCount,\n arraySize,\n isCube,\n isVolume\n }) : null;\n\n return {\n sourceFormat: \"dds\",\n headerSize,\n width,\n height,\n depth,\n mipCount,\n pitchOrLinearSize: readU32LE(bytes, 20),\n pfFlags,\n fourCc,\n fourCcCode,\n rgbBitCount,\n rBitMask,\n gBitMask,\n bBitMask,\n aBitMask,\n caps2,\n hasDx10,\n dxgiFormat,\n resourceDimension,\n arraySize,\n dataOffset,\n dataBytes,\n expectedDataBytes,\n isDataComplete: expectedDataBytes !== null && dataBytes >= expectedDataBytes,\n missingDataBytes: expectedDataBytes === null ? null : Math.max(expectedDataBytes - dataBytes, 0),\n extraDataBytes: expectedDataBytes === null ? null : Math.max(dataBytes - expectedDataBytes, 0),\n faces: isCube ? 6 : 1,\n cubeFaces,\n isCubeComplete: isCube && cubeFaces.length === 6,\n isCube,\n isVolume,\n dimension: isVolume ? \"3d\" : (isCube ? \"cube\" : \"2d\"),\n pixelFormat,\n textureFormat: pixelFormat || fourCc || \"dds-legacy\",\n isCompressed: COMPRESSED_PIXEL_FORMATS.has(pixelFormat),\n nativeTextureOnly: COMPRESSED_PIXEL_FORMATS.has(pixelFormat) && !canDecodeDdsToRgba({ pixelFormat }),\n hasAlpha: !!(pfFlags & DDS_ALPHAPIXELS) || /rgba|bgra/u.test(pixelFormat),\n hasMipMaps: readU32LE(bytes, 28) > 1\n };\n}\n\nfunction readDdsTexture(bytes, metadata)\n{\n if (!metadata.pixelFormat)\n {\n const error = new Error(\"dds: texture format is not recognized yet\");\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n }\n\n const subresources = buildDdsSubresources(bytes, metadata);\n return {\n payloadType: OUTPUT_TEXTURE,\n sourceFormat: \"dds\",\n width: metadata.width,\n height: metadata.height,\n depth: metadata.depth,\n faces: metadata.faces,\n cubeFaces: metadata.cubeFaces,\n isCubeComplete: metadata.isCubeComplete,\n dimension: metadata.dimension,\n mipCount: metadata.mipCount,\n arraySize: metadata.arraySize,\n pixelFormat: metadata.pixelFormat,\n isCompressed: metadata.isCompressed,\n dataBytes: metadata.dataBytes,\n expectedDataBytes: metadata.expectedDataBytes,\n isDataComplete: metadata.isDataComplete,\n missingDataBytes: metadata.missingDataBytes,\n extraDataBytes: metadata.extraDataBytes,\n subresources,\n metadata,\n data: bytes.subarray(metadata.dataOffset, metadata.dataOffset + subresources.reduce((sum, entry) => sum + entry.byteLength, 0))\n };\n}\n\nfunction canDecodeDdsToRgba(metadata)\n{\n return [\n \"rgba32float\",\n \"rgb32float\",\n \"rgba16float\",\n \"rg32float\",\n \"r32float\",\n \"r16float\",\n \"rgba8unorm\",\n \"rgba8unorm-srgb\",\n \"bgra8unorm\",\n \"bgra8unorm-srgb\",\n \"bgrx8unorm\",\n \"bgrx8unorm-srgb\",\n \"bgr8unorm\",\n \"rg8unorm\",\n \"r8unorm\",\n \"bc1-rgba-unorm\",\n \"bc1-rgba-unorm-srgb\",\n \"bc2-rgba-unorm\",\n \"bc2-rgba-unorm-srgb\",\n \"bc3-rgba-unorm\",\n \"bc3-rgba-unorm-srgb\",\n \"bc4-r-unorm\",\n \"bc4-r-snorm\",\n \"bc5-rg-unorm\",\n \"bc5-rg-snorm\",\n \"bc6h-rgb-ufloat\",\n \"bc6h-rgb-float\",\n \"bc7-rgba-unorm\",\n \"bc7-rgba-unorm-srgb\"\n ].includes(metadata.pixelFormat);\n}\n\nfunction readDdsToRgba(bytes, metadata)\n{\n if (!canDecodeDdsToRgba(metadata))\n {\n const error = new Error(`dds: RGBA decode is not implemented for ${metadata.pixelFormat || \"unknown\"}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n }\n\n const subresource = buildDdsSubresources(bytes, metadata)[0];\n const source = bytes.subarray(metadata.dataOffset + subresource.offset, metadata.dataOffset + subresource.offset + subresource.byteLength);\n const rgba = metadata.pixelFormat.startsWith(\"bc1-\")\n ? decodeBc1(source, metadata.width, metadata.height, subresource.rowPitch)\n : metadata.pixelFormat.startsWith(\"bc2-\")\n ? decodeBc2(source, metadata.width, metadata.height, subresource.rowPitch)\n : metadata.pixelFormat.startsWith(\"bc3-\")\n ? decodeBc3(source, metadata.width, metadata.height, subresource.rowPitch)\n : metadata.pixelFormat.startsWith(\"bc4-\")\n ? decodeBc4(source, metadata.width, metadata.height, subresource.rowPitch, metadata.pixelFormat.endsWith(\"-snorm\"))\n : metadata.pixelFormat.startsWith(\"bc5-\")\n ? decodeBc5(source, metadata.width, metadata.height, subresource.rowPitch, metadata.pixelFormat.endsWith(\"-snorm\"))\n : metadata.pixelFormat.startsWith(\"bc6h-\")\n ? decodeBc6h(source, metadata.width, metadata.height, subresource.rowPitch, metadata.pixelFormat === \"bc6h-rgb-float\")\n : metadata.pixelFormat.startsWith(\"bc7-\")\n ? decodeBc7(source, metadata.width, metadata.height, subresource.rowPitch)\n : isFloatPixelFormat(metadata.pixelFormat)\n ? decodeFloatUncompressed(source, metadata)\n : decodeUncompressed(source, metadata);\n\n const isFloat = isFloatPixelFormat(metadata.pixelFormat);\n\n return {\n payloadType: OUTPUT_RGBA,\n sourceFormat: \"dds\",\n width: metadata.width,\n height: metadata.height,\n pixelFormat: isFloat ? \"rgba32float\" : \"rgba8unorm\",\n strideBytes: metadata.width * (isFloat ? 16 : 4),\n origin: \"top-left\",\n colorSpace: isFloat ? \"linear\" : (metadata.pixelFormat.endsWith(\"-srgb\") ? \"srgb\" : \"unknown\"),\n alphaMode: metadata.hasAlpha ? \"straight\" : \"opaque\",\n metadata,\n data: rgba\n };\n}\n\nfunction buildDdsSubresources(bytes, metadata)\n{\n const subresources = [];\n let offset = 0;\n const layers = Math.max(metadata.arraySize, 1) * (metadata.isCube ? 6 : 1);\n\n for (let layer = 0; layer < layers; layer++)\n {\n const arrayIndex = metadata.isCube ? Math.floor(layer / 6) : layer;\n const face = metadata.isCube ? layer % 6 : 0;\n for (let mip = 0; mip < metadata.mipCount; mip++)\n {\n const width = Math.max(metadata.width >> mip, 1);\n const height = Math.max(metadata.height >> mip, 1);\n const depth = metadata.isVolume ? Math.max(metadata.depth >> mip, 1) : 1;\n const layout = getDdsLevelLayout(metadata.pixelFormat, width, height, depth);\n if (offset + layout.byteLength > bytes.byteLength - metadata.dataOffset)\n {\n const error = new Error(\"dds: texture data is truncated\");\n error.code = \"CJS_FORMAT_TRUNCATED\";\n error.sourceFormat = metadata.sourceFormat;\n error.expectedDataBytes = metadata.expectedDataBytes;\n error.dataBytes = metadata.dataBytes;\n error.missingDataBytes = metadata.missingDataBytes;\n throw error;\n }\n subresources.push({\n mip,\n layer,\n arrayIndex,\n face,\n offset,\n byteLength: layout.byteLength,\n rowPitch: layout.rowPitch,\n slicePitch: layout.slicePitch,\n width,\n height,\n depth\n });\n offset += layout.byteLength;\n }\n }\n\n return subresources;\n}\n\nfunction getDdsExpectedDataBytes(metadata)\n{\n let total = 0;\n const layers = Math.max(metadata.arraySize, 1) * (metadata.isCube ? 6 : 1);\n\n for (let layer = 0; layer < layers; layer++)\n {\n for (let mip = 0; mip < metadata.mipCount; mip++)\n {\n const width = Math.max(metadata.width >> mip, 1);\n const height = Math.max(metadata.height >> mip, 1);\n const depth = metadata.isVolume ? Math.max(metadata.depth >> mip, 1) : 1;\n total += getDdsLevelLayout(metadata.pixelFormat, width, height, depth).byteLength;\n }\n }\n\n return total;\n}\n\nfunction getDdsCubeFaces(caps2)\n{\n if (!(caps2 & DDSCAPS2_CUBEMAP))\n {\n return [];\n }\n return DDS_CUBE_FACE_FLAGS\n .filter((entry) => !!(caps2 & entry[1]))\n .map((entry) => entry[0]);\n}\n\nfunction getDdsLevelLayout(pixelFormat, width, height, depth)\n{\n const blockBytes = pixelFormat.startsWith(\"bc1-\") || pixelFormat.startsWith(\"bc4-\") ? 8 :\n pixelFormat.startsWith(\"bc\") ? 16 : 0;\n if (blockBytes)\n {\n const blocksWide = Math.max(Math.ceil(width / 4), 1);\n const blocksHigh = Math.max(Math.ceil(height / 4), 1);\n const rowPitch = blocksWide * blockBytes;\n const slicePitch = rowPitch * blocksHigh;\n return { rowPitch, slicePitch, byteLength: slicePitch * depth };\n }\n\n const bytesPerPixel = {\n \"rgba32float\": 16,\n \"rgb32float\": 12,\n \"rgba16float\": 8,\n \"rg32float\": 8,\n \"r32float\": 4,\n \"r16float\": 2,\n \"rgba8unorm\": 4,\n \"rgba8unorm-srgb\": 4,\n \"bgra8unorm\": 4,\n \"bgra8unorm-srgb\": 4,\n \"bgrx8unorm\": 4,\n \"bgrx8unorm-srgb\": 4,\n \"bgr8unorm\": 3,\n \"rg8unorm\": 2,\n \"r8unorm\": 1\n }[pixelFormat];\n if (!bytesPerPixel)\n {\n const error = new Error(`dds: cannot calculate subresource layout for ${pixelFormat || \"unknown\"}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n throw error;\n }\n const rowPitch = width * bytesPerPixel;\n const slicePitch = rowPitch * height;\n return { rowPitch, slicePitch, byteLength: slicePitch * depth };\n}\n\nfunction decodeUncompressed(source, metadata)\n{\n const rgba = new Uint8Array(metadata.width * metadata.height * 4);\n const bytesPerPixel = metadata.pixelFormat === \"bgr8unorm\" ? 3 :\n metadata.pixelFormat === \"rg8unorm\" ? 2 :\n metadata.pixelFormat === \"r8unorm\" ? 1 : 4;\n for (let pixel = 0; pixel < metadata.width * metadata.height; pixel++)\n {\n const sourceOffset = pixel * bytesPerPixel;\n const outputOffset = pixel * 4;\n if (metadata.pixelFormat.startsWith(\"bgra\") || metadata.pixelFormat.startsWith(\"bgrx\"))\n {\n rgba[outputOffset] = source[sourceOffset + 2];\n rgba[outputOffset + 1] = source[sourceOffset + 1];\n rgba[outputOffset + 2] = source[sourceOffset];\n rgba[outputOffset + 3] = metadata.pixelFormat.startsWith(\"bgrx\") ? 255 : source[sourceOffset + 3];\n }\n else if (metadata.pixelFormat === \"bgr8unorm\")\n {\n rgba[outputOffset] = source[sourceOffset + 2];\n rgba[outputOffset + 1] = source[sourceOffset + 1];\n rgba[outputOffset + 2] = source[sourceOffset];\n rgba[outputOffset + 3] = 255;\n }\n else if (metadata.pixelFormat === \"rg8unorm\")\n {\n rgba[outputOffset] = source[sourceOffset];\n rgba[outputOffset + 1] = source[sourceOffset + 1];\n rgba[outputOffset + 2] = 0;\n rgba[outputOffset + 3] = 255;\n }\n else\n {\n rgba[outputOffset] = source[sourceOffset];\n rgba[outputOffset + 1] = bytesPerPixel > 1 ? source[sourceOffset + 1] : source[sourceOffset];\n rgba[outputOffset + 2] = bytesPerPixel > 2 ? source[sourceOffset + 2] : source[sourceOffset];\n rgba[outputOffset + 3] = bytesPerPixel > 3 ? source[sourceOffset + 3] : 255;\n }\n }\n return rgba;\n}\n\nfunction decodeFloatUncompressed(source, metadata)\n{\n const rgba = new Float32Array(metadata.width * metadata.height * 4);\n const view = new DataView(source.buffer, source.byteOffset, source.byteLength);\n const bytesPerPixel = {\n \"rgba32float\": 16,\n \"rgb32float\": 12,\n \"rgba16float\": 8,\n \"rg32float\": 8,\n \"r32float\": 4,\n \"r16float\": 2\n }[metadata.pixelFormat];\n\n for (let pixel = 0; pixel < metadata.width * metadata.height; pixel++)\n {\n const sourceOffset = pixel * bytesPerPixel;\n const outputOffset = pixel * 4;\n let red, green, blue, alpha;\n if (metadata.pixelFormat === \"rgba32float\")\n {\n red = view.getFloat32(sourceOffset, true);\n green = view.getFloat32(sourceOffset + 4, true);\n blue = view.getFloat32(sourceOffset + 8, true);\n alpha = view.getFloat32(sourceOffset + 12, true);\n }\n else if (metadata.pixelFormat === \"rgb32float\")\n {\n red = view.getFloat32(sourceOffset, true);\n green = view.getFloat32(sourceOffset + 4, true);\n blue = view.getFloat32(sourceOffset + 8, true);\n alpha = 1;\n }\n else if (metadata.pixelFormat === \"rgba16float\")\n {\n red = halfToFloat(view.getUint16(sourceOffset, true));\n green = halfToFloat(view.getUint16(sourceOffset + 2, true));\n blue = halfToFloat(view.getUint16(sourceOffset + 4, true));\n alpha = halfToFloat(view.getUint16(sourceOffset + 6, true));\n }\n else if (metadata.pixelFormat === \"rg32float\")\n {\n red = view.getFloat32(sourceOffset, true);\n green = view.getFloat32(sourceOffset + 4, true);\n blue = 0;\n alpha = 1;\n }\n else\n {\n red = metadata.pixelFormat === \"r16float\"\n ? halfToFloat(view.getUint16(sourceOffset, true))\n : view.getFloat32(sourceOffset, true);\n green = red;\n blue = red;\n alpha = 1;\n }\n rgba[outputOffset] = red;\n rgba[outputOffset + 1] = green;\n rgba[outputOffset + 2] = blue;\n rgba[outputOffset + 3] = alpha;\n }\n return rgba;\n}\n\nfunction isFloatPixelFormat(pixelFormat)\n{\n return typeof pixelFormat === \"string\" && (pixelFormat.startsWith(\"bc6h-\") ||\n [ \"rgba32float\", \"rgb32float\", \"rgba16float\", \"rg32float\", \"r32float\", \"r16float\" ].includes(pixelFormat));\n}\n\nfunction halfToFloat(value)\n{\n const sign = (value & 0x8000) ? -1 : 1;\n const exponent = (value >>> 10) & 0x1f;\n const mantissa = value & 0x03ff;\n if (exponent === 0)\n {\n return sign * Math.pow(2, -14) * (mantissa / 1024);\n }\n if (exponent === 0x1f)\n {\n return mantissa === 0 ? sign * Infinity : NaN;\n }\n return sign * Math.pow(2, exponent - 15) * (1 + mantissa / 1024);\n}\n\nfunction decodeBc1(source, width, height, rowPitch)\n{\n const rgba = new Uint8Array(width * height * 4);\n for (let blockY = 0; blockY < Math.ceil(height / 4); blockY++)\n {\n for (let blockX = 0; blockX < Math.ceil(width / 4); blockX++)\n {\n const blockOffset = blockY * rowPitch + blockX * 8;\n const c0 = source[blockOffset] | (source[blockOffset + 1] << 8);\n const c1 = source[blockOffset + 2] | (source[blockOffset + 3] << 8);\n const colors = decodeBc1Colors(c0, c1);\n const indices = source[blockOffset + 4] |\n (source[blockOffset + 5] << 8) |\n (source[blockOffset + 6] << 16) |\n (source[blockOffset + 7] << 24);\n for (let y = 0; y < 4; y++)\n {\n for (let x = 0; x < 4; x++)\n {\n const outputX = blockX * 4 + x;\n const outputY = blockY * 4 + y;\n if (outputX >= width || outputY >= height) continue;\n const color = colors[(indices >>> (2 * (y * 4 + x))) & 3];\n rgba.set(color, (outputY * width + outputX) * 4);\n }\n }\n }\n }\n return rgba;\n}\n\nfunction decodeBc2(source, width, height, rowPitch)\n{\n return decodeBcAlphaColor(source, width, height, rowPitch, (blockOffset, x, y) =>\n {\n const alphaNibble = (source[blockOffset + y * 2 + Math.floor(x / 2)] >>> ((x % 2) * 4)) & 0x0f;\n return alphaNibble * 17;\n }, 8);\n}\n\nfunction decodeBc3(source, width, height, rowPitch)\n{\n return decodeBcAlphaColor(source, width, height, rowPitch, (blockOffset, x, y) =>\n {\n const alpha0 = source[blockOffset], alpha1 = source[blockOffset + 1];\n const alphaValues = alpha0 > alpha1\n ? [ alpha0, alpha1,\n Math.round((6 * alpha0 + alpha1) / 7),\n Math.round((5 * alpha0 + 2 * alpha1) / 7),\n Math.round((4 * alpha0 + 3 * alpha1) / 7),\n Math.round((3 * alpha0 + 4 * alpha1) / 7),\n Math.round((2 * alpha0 + 5 * alpha1) / 7),\n Math.round((alpha0 + 6 * alpha1) / 7) ]\n : [ alpha0, alpha1,\n Math.round((4 * alpha0 + alpha1) / 5),\n Math.round((3 * alpha0 + 2 * alpha1) / 5),\n Math.round((2 * alpha0 + 3 * alpha1) / 5),\n Math.round((alpha0 + 4 * alpha1) / 5),\n 0, 255 ];\n let alphaBits = 0n;\n for (let i = 0; i < 6; i++) alphaBits |= BigInt(source[blockOffset + 2 + i]) << BigInt(i * 8);\n return alphaValues[Number((alphaBits >> BigInt((y * 4 + x) * 3)) & 7n)];\n }, 8);\n}\n\nfunction decodeBc4(source, width, height, rowPitch, signed)\n{\n const rgba = new Uint8Array(width * height * 4);\n forEachBcPixel(width, height, rowPitch, 8, (blockOffset, x, y, outputOffset) =>\n {\n const value = decodeBc4Value(source, blockOffset, x, y, signed);\n rgba[outputOffset] = value;\n rgba[outputOffset + 1] = value;\n rgba[outputOffset + 2] = value;\n rgba[outputOffset + 3] = 255;\n });\n return rgba;\n}\n\nfunction decodeBc5(source, width, height, rowPitch, signed)\n{\n const rgba = new Uint8Array(width * height * 4);\n forEachBcPixel(width, height, rowPitch, 16, (blockOffset, x, y, outputOffset) =>\n {\n rgba[outputOffset] = decodeBc4Value(source, blockOffset, x, y, signed);\n rgba[outputOffset + 1] = decodeBc4Value(source, blockOffset + 8, x, y, signed);\n rgba[outputOffset + 2] = 0;\n rgba[outputOffset + 3] = 255;\n });\n return rgba;\n}\n\nfunction decodeBc4Value(source, blockOffset, x, y, signed)\n{\n const endpoint0 = signed ? decodeSnormByte(source[blockOffset]) : source[blockOffset];\n const endpoint1 = signed ? decodeSnormByte(source[blockOffset + 1]) : source[blockOffset + 1];\n const values = endpoint0 > endpoint1\n ? [ endpoint0, endpoint1,\n (6 * endpoint0 + endpoint1) / 7,\n (5 * endpoint0 + 2 * endpoint1) / 7,\n (4 * endpoint0 + 3 * endpoint1) / 7,\n (3 * endpoint0 + 4 * endpoint1) / 7,\n (2 * endpoint0 + 5 * endpoint1) / 7,\n (endpoint0 + 6 * endpoint1) / 7 ]\n : [ endpoint0, endpoint1,\n (4 * endpoint0 + endpoint1) / 5,\n (3 * endpoint0 + 2 * endpoint1) / 5,\n (2 * endpoint0 + 3 * endpoint1) / 5,\n (endpoint0 + 4 * endpoint1) / 5,\n signed ? -1 : 0,\n signed ? 1 : 255 ];\n let bits = 0n;\n for (let i = 0; i < 6; i++) bits |= BigInt(source[blockOffset + 2 + i]) << BigInt(i * 8);\n const value = values[Number((bits >> BigInt((y * 4 + x) * 3)) & 7n)];\n return signed ? Math.max(0, Math.min(255, Math.round((value + 1) * 127.5))) : Math.round(value);\n}\n\nfunction decodeSnormByte(value)\n{\n const signed = value > 127 ? value - 256 : value;\n return Math.max(-1, signed / 127);\n}\n\nfunction forEachBcPixel(width, height, rowPitch, blockBytes, callback)\n{\n for (let blockY = 0; blockY < Math.ceil(height / 4); blockY++)\n {\n for (let blockX = 0; blockX < Math.ceil(width / 4); blockX++)\n {\n const blockOffset = blockY * rowPitch + blockX * blockBytes;\n for (let y = 0; y < 4; y++)\n {\n for (let x = 0; x < 4; x++)\n {\n const outputX = blockX * 4 + x;\n const outputY = blockY * 4 + y;\n if (outputX < width && outputY < height)\n {\n callback(blockOffset, x, y, (outputY * width + outputX) * 4);\n }\n }\n }\n }\n }\n}\n\nfunction decodeBcAlphaColor(source, width, height, rowPitch, alphaAt, colorOffset = 0)\n{\n const rgba = new Uint8Array(width * height * 4);\n for (let blockY = 0; blockY < Math.ceil(height / 4); blockY++)\n {\n for (let blockX = 0; blockX < Math.ceil(width / 4); blockX++)\n {\n const blockOffset = blockY * rowPitch + blockX * 16;\n const colorOffsetInBlock = blockOffset + colorOffset;\n const c0 = source[colorOffsetInBlock] | (source[colorOffsetInBlock + 1] << 8);\n const c1 = source[colorOffsetInBlock + 2] | (source[colorOffsetInBlock + 3] << 8);\n const colors = decodeBc1Colors(c0, c1, true);\n const indices = source[colorOffsetInBlock + 4] |\n (source[colorOffsetInBlock + 5] << 8) |\n (source[colorOffsetInBlock + 6] << 16) |\n (source[colorOffsetInBlock + 7] << 24);\n for (let y = 0; y < 4; y++)\n {\n for (let x = 0; x < 4; x++)\n {\n const outputX = blockX * 4 + x;\n const outputY = blockY * 4 + y;\n if (outputX >= width || outputY >= height) continue;\n const color = colors[(indices >>> (2 * (y * 4 + x))) & 3];\n const outputOffset = (outputY * width + outputX) * 4;\n rgba[outputOffset] = color[0];\n rgba[outputOffset + 1] = color[1];\n rgba[outputOffset + 2] = color[2];\n rgba[outputOffset + 3] = alphaAt(blockOffset, x, y);\n }\n }\n }\n }\n return rgba;\n}\n\nfunction decodeBc1Colors(c0, c1, forceFourColor = false)\n{\n const first = decode565(c0);\n const second = decode565(c1);\n const colors = [ first, second ];\n if (c0 > c1 || forceFourColor)\n {\n colors.push([\n Math.round((2 * first[0] + second[0]) / 3),\n Math.round((2 * first[1] + second[1]) / 3),\n Math.round((2 * first[2] + second[2]) / 3),\n 255\n ], [\n Math.round((first[0] + 2 * second[0]) / 3),\n Math.round((first[1] + 2 * second[1]) / 3),\n Math.round((first[2] + 2 * second[2]) / 3),\n 255\n ]);\n }\n else\n {\n colors.push([\n Math.round((first[0] + second[0]) / 2),\n Math.round((first[1] + second[1]) / 2),\n Math.round((first[2] + second[2]) / 2),\n 255\n ], [ 0, 0, 0, 0 ]);\n }\n return colors;\n}\n\nfunction decode565(value)\n{\n return [\n Math.round(((value >>> 11) & 0x1f) * 255 / 31),\n Math.round(((value >>> 5) & 0x3f) * 255 / 63),\n Math.round((value & 0x1f) * 255 / 31),\n 255\n ];\n}\n\nfunction getDdsPixelFormat(format)\n{\n if (format.dxgiFormat) return DXGI_PIXEL_FORMATS[format.dxgiFormat] || \"\";\n if ((format.pfFlags & DDS_FOURCC) && format.fourCc)\n {\n return FOURCC_PIXEL_FORMATS[format.fourCc] || {\n 113: \"rgba16float\",\n 116: \"rgba32float\"\n }[format.fourCcCode] || \"\";\n }\n if (format.pfFlags & DDS_RGB)\n {\n if (format.rgbBitCount === 32 &&\n format.rBitMask === 0x000000ff &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x00ff0000 &&\n format.aBitMask === 0xff000000) return \"rgba8unorm\";\n if (format.rgbBitCount === 32 &&\n format.rBitMask === 0x00ff0000 &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x000000ff &&\n format.aBitMask === 0xff000000) return \"bgra8unorm\";\n if (format.rgbBitCount === 24 &&\n format.rBitMask === 0x00ff0000 &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x000000ff) return \"bgr8unorm\";\n }\n return \"\";\n}\n\nfunction inspectTGA(bytes)\n{\n return {\n sourceFormat: \"tga\",\n width: readU16LE(bytes, 12),\n height: readU16LE(bytes, 14),\n channels: Math.max(bytes[16] / 8, 1),\n imageType: bytes[2],\n pixelFormat: `tga-${bytes[16]}`,\n isCompressed: [ 9, 10, 11 ].includes(bytes[2])\n };\n}\n\nfunction pngChannels(colorType)\n{\n if (colorType === 0) return 1;\n if (colorType === 2) return 3;\n if (colorType === 3) return 1;\n if (colorType === 4) return 2;\n if (colorType === 6) return 4;\n return 0;\n}\n\nfunction readU16BE(bytes, offset)\n{\n return (bytes[offset] << 8) | bytes[offset + 1];\n}\n\nfunction readU16LE(bytes, offset)\n{\n return bytes[offset] | (bytes[offset + 1] << 8);\n}\n\nfunction readU32BE(bytes, offset)\n{\n return ((bytes[offset] * 0x1000000) + ((bytes[offset + 1] << 16) | (bytes[offset + 2] << 8) | bytes[offset + 3])) >>> 0;\n}\n\nfunction readU32LE(bytes, offset)\n{\n return (bytes[offset] | (bytes[offset + 1] << 8) | (bytes[offset + 2] << 16) | (bytes[offset + 3] * 0x1000000)) >>> 0;\n}\n\nfunction capitalize(value)\n{\n return value ? value[0].toUpperCase() + value.slice(1) : \"Image\";\n}\n"],"names":["OUTPUT_IMAGE","OUTPUT_TEXTURE","OUTPUT_RGBA","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DDS_HEADER_SIZE","DDS_PIXELFORMAT_OFFSET","DDS_FOURCC","DDS_RGB","DDS_ALPHAPIXELS","DDSCAPS2_CUBEMAP","DDSCAPS2_VOLUME","DDS_CUBE_FACE_FLAGS","FOURCC_PIXEL_FORMATS","DXT1","DXT3","DXT5","ATI1","BC4U","BC4S","ATI2","BC5U","BC5S","DXGI_PIXEL_FORMATS","COMPRESSED_PIXEL_FORMATS","Set","DEBUG_OUTPUTS","png","jpeg","jpg","tga","dds","normalizeValues","base","options","readerName","values","normalizeInputType","normalizeEmit","value","String","replace","toLowerCase","undefined","includes","TypeError","JSON","stringify","toBytes","input","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","inspectWithValues","expectedType","bytes","detected","inspectBytes","sourceFormat","capitalize","payloadType","mediaTypes","isSupportedWithValues","metadata","hasCompleteTextureData","isDataComplete","canEmitTexture","dataOffset","pixelFormat","canEmitRgba","canDecodeDdsToRgba","textureUnsupportedReason","expectedDataBytes","dataBytes","variants","kind","codec","textureFormat","supported","isCompressed","nativeOnly","nativeTextureOnly","reason","isFloatPixelFormat","toUpperCase","preferredVariant","find","v","format","some","confidence","preferred","warnings","errors","error","message","readWithValues","readDdsTexture","readDdsToRgba","Error","code","toJsonValue","Array","isArray","map","output","key","entry","entries","isPNG","inspectPNG","isJPEG","inspectJPEG","isDDS","inspectDDS","isTGA","inspectTGA","width","height","readU32LE","imageType","readU16LE","bpp","colorType","bitDepth","readU32BE","channels","pngChannels","offset","marker","length","readU16BE","Math","max","headerSize","pfOffset","pfFlags","fourCcCode","fourCc","fromCharCode","rgbBitCount","rBitMask","gBitMask","bBitMask","aBitMask","caps2","isCube","isVolume","cubeFaces","getDdsCubeFaces","hasDx10","dxgiFormat","resourceDimension","arraySize","getDdsPixelFormat","depth","mipCount","getDdsExpectedDataBytes","pitchOrLinearSize","missingDataBytes","extraDataBytes","faces","isCubeComplete","dimension","has","hasAlpha","test","hasMipMaps","subresources","buildDdsSubresources","data","subarray","reduce","sum","subresource","rgba","startsWith","decodeBc1","rowPitch","decodeBc2","decodeBc3","decodeBc4","endsWith","decodeBc5","decodeBc6h","decodeBc7","decodeFloatUncompressed","decodeUncompressed","isFloat","strideBytes","origin","colorSpace","alphaMode","layers","layer","arrayIndex","floor","face","mip","layout","getDdsLevelLayout","push","slicePitch","total","filter","blockBytes","blocksWide","ceil","blocksHigh","bytesPerPixel","pixel","sourceOffset","outputOffset","Float32Array","view","DataView","red","green","blue","alpha","getFloat32","halfToFloat","getUint16","sign","exponent","mantissa","pow","Infinity","NaN","blockY","blockX","blockOffset","c0","c1","colors","decodeBc1Colors","indices","y","x","outputX","outputY","color","set","decodeBcAlphaColor","alphaNibble","alpha0","alpha1","alphaValues","round","alphaBits","i","BigInt","Number","signed","forEachBcPixel","decodeBc4Value","endpoint0","decodeSnormByte","endpoint1","bits","min","callback","alphaAt","colorOffset","colorOffsetInBlock","forceFourColor","first","decode565","second","slice"],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { CjsFormatGr2 } from './core/CjsFormatGr2.js';
2
+ import { GR2_MAGICS, bytesToHex } from './core/reader.js';
3
+
4
+ /**
5
+ * Exposed CarbonEngineJS-facing GR2/GSF format class.
6
+ *
7
+ * Runtime adaptation of the migrated `format-gr2` reader: the copied engine
8
+ * under core/ keeps its donor behavior (including the legacy `CjsFormatGr2`
9
+ * name), while this class adds the runtime-resource format-contract statics
10
+ * ResMan uses for byte probing and async reads.
11
+ */
12
+
13
+
14
+ /**
15
+ * CarbonEngineJS-facing GR2 (Granny 3D) and GSF (Granny State) reader.
16
+ *
17
+ * The Cjs prefix marks this as a JavaScript format/construction boundary. It
18
+ * reads `.gr2` geometry/skeleton/animation graphs and `.gsf` state profiles,
19
+ * emitting GR2 JSON, hydrated caller classes, or CMF-shaped output.
20
+ */
21
+ class CjsGr2Format extends CjsFormatGr2 {
22
+ /**
23
+ * Cheap magic probe for GR2/GSF byte streams.
24
+ *
25
+ * @param {Uint8Array} bytes Candidate source bytes.
26
+ * @returns {boolean} True when the 16-byte Granny magic is recognized.
27
+ */
28
+ static isSupported(bytes) {
29
+ if (!bytes || bytes.length < 16) return false;
30
+ return bytesToHex(bytes.subarray(0, 16)) in GR2_MAGICS;
31
+ }
32
+
33
+ /**
34
+ * Async read entrypoint for the resource-manager contract.
35
+ *
36
+ * @param {Uint8Array} bytes Source bytes.
37
+ * @param {object} [options] Read options (emit, classes, conversions).
38
+ * @returns {Promise<object>} The emitted GR2/GSF result.
39
+ */
40
+ static async readAsync(bytes, options = {}) {
41
+ return CjsGr2Format.read(bytes, options);
42
+ }
43
+ }
44
+
45
+ export { CjsGr2Format, CjsGr2Format as default };
46
+ //# sourceMappingURL=CjsGr2Format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CjsGr2Format.js","sources":["../../../../src/formats/gr2/CjsGr2Format.js"],"sourcesContent":["/**\n * Exposed CarbonEngineJS-facing GR2/GSF format class.\n *\n * Runtime adaptation of the migrated `format-gr2` reader: the copied engine\n * under core/ keeps its donor behavior (including the legacy `CjsFormatGr2`\n * name), while this class adds the runtime-resource format-contract statics\n * ResMan uses for byte probing and async reads.\n */\n\nimport { CjsFormatGr2 } from \"./core/CjsFormatGr2.js\";\nimport { GR2_MAGICS, bytesToHex } from \"./core/reader.js\";\n\n/**\n * CarbonEngineJS-facing GR2 (Granny 3D) and GSF (Granny State) reader.\n *\n * The Cjs prefix marks this as a JavaScript format/construction boundary. It\n * reads `.gr2` geometry/skeleton/animation graphs and `.gsf` state profiles,\n * emitting GR2 JSON, hydrated caller classes, or CMF-shaped output.\n */\nexport class CjsGr2Format extends CjsFormatGr2\n{\n /**\n * Cheap magic probe for GR2/GSF byte streams.\n *\n * @param {Uint8Array} bytes Candidate source bytes.\n * @returns {boolean} True when the 16-byte Granny magic is recognized.\n */\n static isSupported(bytes)\n {\n if (!bytes || bytes.length < 16) return false;\n return bytesToHex(bytes.subarray(0, 16)) in GR2_MAGICS;\n }\n\n /**\n * Async read entrypoint for the resource-manager contract.\n *\n * @param {Uint8Array} bytes Source bytes.\n * @param {object} [options] Read options (emit, classes, conversions).\n * @returns {Promise<object>} The emitted GR2/GSF result.\n */\n static async readAsync(bytes, options = {})\n {\n return CjsGr2Format.read(bytes, options);\n }\n}\n\nexport default CjsGr2Format;\n"],"names":["CjsGr2Format","CjsFormatGr2","isSupported","bytes","length","bytesToHex","subarray","GR2_MAGICS","readAsync","options","read"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,YAAY,SAASC,YAAY,CAC9C;AACI;AACJ;AACA;AACA;AACA;AACA;EACI,OAAOC,WAAWA,CAACC,KAAK,EACxB;IACI,IAAI,CAACA,KAAK,IAAIA,KAAK,CAACC,MAAM,GAAG,EAAE,EAAE,OAAO,KAAK;AAC7C,IAAA,OAAOC,UAAU,CAACF,KAAK,CAACG,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAIC,UAAU;AAC1D,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,aAAaC,SAASA,CAACL,KAAK,EAAEM,OAAO,GAAG,EAAE,EAC1C;AACI,IAAA,OAAOT,YAAY,CAACU,IAAI,CAACP,KAAK,EAAEM,OAAO,CAAC;AAC5C,EAAA;AACJ;;;;"}