@carbonenginejs/runtime-resource 0.9.1 → 0.9.2

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 (108) hide show
  1. package/dist/CjsResMan.js +1 -1
  2. package/dist/CjsResMan.js.map +1 -1
  3. package/dist/CjsResource.js +2 -2
  4. package/dist/CjsResource.js.map +1 -1
  5. package/dist/format/CjsBlueReader.js +2 -2
  6. package/dist/format/CjsBlueReader.js.map +1 -1
  7. package/dist/format/CjsFormat.js +5 -5
  8. package/dist/format/CjsFormat.js.map +1 -1
  9. package/dist/format/CjsResourceProbe.js +2 -2
  10. package/dist/format/CjsResourceProbe.js.map +1 -1
  11. package/dist/formats/black/core/CjsBlackPropertyReaders.js +1 -1
  12. package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
  13. package/dist/formats/black/core/CjsBlackReader.js +2 -2
  14. package/dist/formats/black/core/CjsBlackReader.js.map +1 -1
  15. package/dist/formats/fbx/core/helpers.js +1 -1
  16. package/dist/formats/fbx/core/helpers.js.map +1 -1
  17. package/dist/formats/gltf/core/helpers.js +3 -3
  18. package/dist/formats/gltf/core/helpers.js.map +1 -1
  19. package/dist/formats/gr2/core/tangents.js +9 -9
  20. package/dist/formats/gr2/core/tangents.js.map +1 -1
  21. package/dist/formats/index.js +4 -4
  22. package/dist/formats/obj/core/helpers.js +2 -2
  23. package/dist/formats/obj/core/helpers.js.map +1 -1
  24. package/dist/formats/red/CjsRedFormat.js +1 -1
  25. package/dist/formats/red/CjsRedFormat.js.map +1 -1
  26. package/dist/formats/stl/core/stl.js +2 -2
  27. package/dist/formats/stl/core/stl.js.map +1 -1
  28. package/dist/index.js +1 -1
  29. package/dist/resources/AudioGeometryResData.js +3 -3
  30. package/dist/resources/AudioGeometryResData.js.map +1 -1
  31. package/dist/resources/GStateBindingCallbackData.js +2 -2
  32. package/dist/resources/GStateBindingCallbackData.js.map +1 -1
  33. package/dist/resources/MeshDecalData.js +2 -2
  34. package/dist/resources/MeshDecalData.js.map +1 -1
  35. package/dist/resources/MeshDecalLodData.js +2 -2
  36. package/dist/resources/MeshDecalLodData.js.map +1 -1
  37. package/dist/resources/Tr2EffectRes.js +1 -1
  38. package/dist/resources/Tr2EffectRes.js.map +1 -1
  39. package/dist/resources/Tr2GrannyIntersectionResult.js +4 -4
  40. package/dist/resources/Tr2GrannyIntersectionResult.js.map +1 -1
  41. package/dist/resources/Tr2GrannyStateRes.js +1 -1
  42. package/dist/resources/Tr2GrannyStateRes.js.map +1 -1
  43. package/dist/resources/Tr2ImageRes.js +1 -1
  44. package/dist/resources/Tr2ImageRes.js.map +1 -1
  45. package/dist/resources/Tr2LightProfileRes.js +1 -1
  46. package/dist/resources/Tr2LightProfileRes.js.map +1 -1
  47. package/dist/resources/Tr2MaterialArea.js +2 -2
  48. package/dist/resources/Tr2MaterialArea.js.map +1 -1
  49. package/dist/resources/Tr2MaterialMesh.js +2 -2
  50. package/dist/resources/Tr2MaterialMesh.js.map +1 -1
  51. package/dist/resources/Tr2MaterialRes.js +2 -2
  52. package/dist/resources/Tr2MaterialRes.js.map +1 -1
  53. package/dist/resources/Tr2ShaderPermutation.js +2 -2
  54. package/dist/resources/Tr2ShaderPermutation.js.map +1 -1
  55. package/dist/resources/Tr2TextureLodManager.js +2 -2
  56. package/dist/resources/Tr2TextureLodManager.js.map +1 -1
  57. package/dist/resources/Tr2TextureLodUpdateRequest.js +2 -2
  58. package/dist/resources/Tr2TextureLodUpdateRequest.js.map +1 -1
  59. package/dist/resources/Tr2TexturePackChannel.js +2 -2
  60. package/dist/resources/Tr2TexturePackChannel.js.map +1 -1
  61. package/dist/resources/Tr2TexturePipeline.js +2 -2
  62. package/dist/resources/Tr2TexturePipeline.js.map +1 -1
  63. package/dist/resources/Tr2TexturePipelineParams.js +2 -2
  64. package/dist/resources/Tr2TexturePipelineParams.js.map +1 -1
  65. package/dist/resources/Tr2TexturePipelineStepCompress.js +2 -2
  66. package/dist/resources/Tr2TexturePipelineStepCompress.js.map +1 -1
  67. package/dist/resources/Tr2TexturePipelineStepGenerateMips.js +2 -2
  68. package/dist/resources/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  69. package/dist/resources/Tr2TexturePipelineStepLimitSize.js +2 -2
  70. package/dist/resources/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  71. package/dist/resources/Tr2TexturePipelineStepLoad.js +2 -2
  72. package/dist/resources/Tr2TexturePipelineStepLoad.js.map +1 -1
  73. package/dist/resources/Tr2TexturePipelineStepPack.js +2 -2
  74. package/dist/resources/Tr2TexturePipelineStepPack.js.map +1 -1
  75. package/dist/resources/TriGeometryRes.js +1 -1
  76. package/dist/resources/TriGeometryRes.js.map +1 -1
  77. package/dist/resources/TriGeometryResAreaData.js +3 -3
  78. package/dist/resources/TriGeometryResAreaData.js.map +1 -1
  79. package/dist/resources/TriGeometryResJointData.js +3 -3
  80. package/dist/resources/TriGeometryResJointData.js.map +1 -1
  81. package/dist/resources/TriGeometryResLodData.js +2 -2
  82. package/dist/resources/TriGeometryResLodData.js.map +1 -1
  83. package/dist/resources/TriGeometryResMeshData.js +4 -4
  84. package/dist/resources/TriGeometryResMeshData.js.map +1 -1
  85. package/dist/resources/TriGeometryResSkeletonData.js +2 -2
  86. package/dist/resources/TriGeometryResSkeletonData.js.map +1 -1
  87. package/dist/resources/TriGrannyRes.js +1 -1
  88. package/dist/resources/TriGrannyRes.js.map +1 -1
  89. package/dist/resources/TriJointBinding.js +3 -3
  90. package/dist/resources/TriJointBinding.js.map +1 -1
  91. package/dist/resources/TriMorphTargetGeometryConstants.js +2 -2
  92. package/dist/resources/TriMorphTargetGeometryConstants.js.map +1 -1
  93. package/dist/resources/TriRtGeometryConstants.js +2 -2
  94. package/dist/resources/TriRtGeometryConstants.js.map +1 -1
  95. package/dist/resources/TriTextureRes.js +1 -1
  96. package/dist/resources/TriTextureRes.js.map +1 -1
  97. package/dist/resources/texturePipelineBehavior.js +2 -2
  98. package/dist/resources/texturePipelineBehavior.js.map +1 -1
  99. package/dist/texture/CjsTextureArrayRes.js +1 -1
  100. package/dist/texture/CjsTextureArrayRes.js.map +1 -1
  101. package/dist/texture/CjsTextureParameterProxy.js +1 -1
  102. package/dist/texture/CjsTextureParameterProxy.js.map +1 -1
  103. package/docs/README.md +2 -2
  104. package/docs/architecture.md +1 -1
  105. package/docs/reference/classes/formats.md +1 -1
  106. package/docs/reference/events.md +1 -1
  107. package/format-notices/black/NOTICE +1 -1
  108. package/package.json +2 -4
@@ -1 +1 @@
1
- {"version":3,"file":"CjsTextureArrayRes.js","sources":["../../../src/texture/CjsTextureArrayRes.js"],"sourcesContent":["import { type } from \"@carbonenginejs/core-types/schema\";\nimport { CjsResource } from \"../CjsResource.js\";\nimport { normalizeResourcePath } from \"../resourcePath.js\";\nimport { CjsTextureParameterProxy } from \"./CjsTextureParameterProxy.js\";\n\n/**\n * Mutable runtime aggregate for an ordered texture-array request.\n *\n * Private engine-bridge layer proxies only invalidate this parent. A resource\n * manager or engine scheduler consumes the coalesced update on a later frame\n * and prepares the corresponding immutable/cached texture-array payload.\n */\n@type.define({ className: \"CjsTextureArrayRes\", family: \"resource\" })\nexport class CjsTextureArrayRes extends CjsResource\n{\n #layers = [];\n #dirtyLayers = new Set();\n #requestedRevision = 0;\n #preparedRevision = 0;\n #updateScheduled = false;\n #topologyChanged = false;\n #inFlightRequests = new Map();\n #readyWaiters = [];\n #failedRevision = 0;\n #failedError = null;\n #updateScheduler = null;\n #updateHandler = null;\n\n constructor(values = null)\n {\n const options = values && typeof values === \"object\" && !Array.isArray(values) ? values : {};\n const resourceValues = { ...options };\n delete resourceValues.layers;\n delete resourceValues.paths;\n delete resourceValues.layerCount;\n delete resourceValues.layerNames;\n delete resourceValues.updateScheduler;\n delete resourceValues.updateHandler;\n super(resourceValues);\n\n if (options.updateScheduler) this.SetUpdateScheduler(options.updateScheduler);\n if (options.updateHandler) this.SetUpdateHandler(options.updateHandler);\n\n const paths = options.layers || options.paths;\n if (paths !== undefined)\n {\n this.SetLayerResourcePaths(paths, options.layerNames);\n }\n else if (options.layerCount !== undefined)\n {\n this.SetLayerCount(options.layerCount, options.layerNames);\n }\n }\n\n GetLayerCount()\n {\n return this.#layers.length;\n }\n\n SetLayerCount(value, names = null)\n {\n const count = Number(value);\n if (!Number.isInteger(count) || count < 1)\n {\n throw new RangeError(\"CjsTextureArrayRes layer count must be a positive integer.\");\n }\n if (count === this.#layers.length)\n {\n this.#SetLayerNames(names);\n return false;\n }\n\n const previousCount = this.#layers.length;\n if (count < previousCount)\n {\n this.#layers.length = count;\n }\n else\n {\n for (let layer = previousCount; layer < count; layer++)\n {\n this.#layers.push(this.#CreateLayer(layer, names?.[layer]));\n }\n }\n this.#SetLayerNames(names);\n this.#InvalidateRange(count, true);\n return true;\n }\n\n GetLayerParameter(layer)\n {\n return this.#GetLayer(layer).proxy;\n }\n\n GetLayerParameters(out = [])\n {\n for (const layer of this.#layers) out.push(layer.proxy);\n return out;\n }\n\n GetLayerResourcePath(layer)\n {\n return this.#GetLayer(layer).path;\n }\n\n GetLayerResourcePaths(out = [])\n {\n for (const layer of this.#layers) out.push(layer.path);\n return out;\n }\n\n SetLayerResourcePath(layer, value)\n {\n const record = this.#GetLayer(layer);\n const path = normalizeResourcePath(value);\n if (path === record.path) return false;\n record.path = path;\n record.resource = null;\n this.#InvalidateLayer(layer);\n return true;\n }\n\n SetLayerResourcePaths(values, names = null)\n {\n if (!Array.isArray(values) || values.length === 0)\n {\n throw new TypeError(\"CjsTextureArrayRes layers must be a non-empty array of resource paths.\");\n }\n\n const paths = values.map(value => normalizeResourcePath(\n value && typeof value === \"object\"\n ? value.resourcePath ?? value.path ?? value.GetPath?.() ?? \"\"\n : value\n ));\n const topologyChanged = paths.length !== this.#layers.length;\n let contentChanged = topologyChanged;\n let namesChanged = false;\n const changedLayers = new Set();\n const next = [];\n for (let layer = 0; layer < paths.length; layer++)\n {\n const current = this.#layers[layer];\n const name = names?.[layer] ?? current?.proxy?.GetParameterName?.() ?? \"\";\n if (!current)\n {\n next.push(this.#CreateLayer(layer, name, paths[layer]));\n }\n else\n {\n if (current.path !== paths[layer])\n {\n current.path = paths[layer];\n current.resource = null;\n contentChanged = true;\n changedLayers.add(layer);\n }\n if (current.proxy.SetParameterName(name)) namesChanged = true;\n next.push(current);\n }\n }\n this.#layers = next;\n if (topologyChanged)\n {\n this.#InvalidateRange(paths.length, true);\n }\n else if (contentChanged)\n {\n this.#InvalidateLayers(changedLayers);\n }\n return contentChanged || namesChanged;\n }\n\n GetLayerResource(layer)\n {\n return this.#GetLayer(layer).resource;\n }\n\n SetLayerResource(layer, resource)\n {\n const record = this.#GetLayer(layer);\n const next = resource ?? null;\n if (record.resource === next) return false;\n record.resource = next;\n this.#InvalidateLayer(layer);\n return true;\n }\n\n /** Invalidate a layer whose resolved resource changed without changing identity. */\n TouchLayer(layer)\n {\n this.#GetLayer(layer);\n this.#InvalidateLayer(layer);\n return this;\n }\n\n /** Invalidate every current layer, for example after an adapter generation loss. */\n TouchAllLayers(options = {})\n {\n this.#InvalidateRange(this.#layers.length, !!options.topologyChanged);\n return this;\n }\n\n GetRequestedRevision()\n {\n return this.#requestedRevision;\n }\n\n GetPreparedRevision()\n {\n return this.#preparedRevision;\n }\n\n NeedsUpdate()\n {\n return this.#updateScheduled || this.#dirtyLayers.size > 0 || this.#preparedRevision < this.#requestedRevision;\n }\n\n GetDirtyLayers()\n {\n return new Set(this.#dirtyLayers);\n }\n\n GetInFlightRevisions(out = [])\n {\n for (const revision of this.#inFlightRequests.keys()) out.push(revision);\n return out.sort((a, b) => a - b);\n }\n\n IsRevisionInFlight(revision)\n {\n return this.#inFlightRequests.has(revision);\n }\n\n SetUpdateScheduler(schedule = null)\n {\n if (schedule !== null && typeof schedule !== \"function\")\n {\n throw new TypeError(\"CjsTextureArrayRes update scheduler must be a function or null.\");\n }\n this.#updateScheduler = schedule;\n if (schedule && this.#updateScheduled) schedule(this);\n return this;\n }\n\n SetUpdateHandler(handler = null)\n {\n if (handler !== null && typeof handler !== \"function\")\n {\n throw new TypeError(\"CjsTextureArrayRes update handler must be a function or null.\");\n }\n this.#updateHandler = handler;\n return this;\n }\n\n /**\n * Consume all proxy changes as one immutable request snapshot.\n * A frame scheduler should call this at most once per parent per frame.\n */\n ConsumeUpdateRequest()\n {\n if (!this.#updateScheduled && this.#dirtyLayers.size === 0) return null;\n const request = Object.freeze({\n revision: this.#requestedRevision,\n paths: Object.freeze(this.GetLayerResourcePaths()),\n resources: Object.freeze(this.#layers.map(layer => layer.resource)),\n dirtyLayers: Object.freeze([ ...this.#dirtyLayers ].sort((a, b) => a - b)),\n topologyChanged: this.#topologyChanged\n });\n this.#dirtyLayers.clear();\n this.#topologyChanged = false;\n this.#updateScheduled = false;\n this.#inFlightRequests.set(request.revision, request);\n return request;\n }\n\n /** Requeue a consumed current request after cancellation, loss, or retryable failure. */\n RetryUpdateRequest(revision = this.#requestedRevision)\n {\n const request = this.#inFlightRequests.get(revision);\n if (!request) return false;\n this.#inFlightRequests.delete(revision);\n if (revision !== this.#requestedRevision) return false;\n if (this.#failedRevision === revision)\n {\n this.#failedRevision = 0;\n this.#failedError = null;\n }\n for (const layer of request.dirtyLayers)\n {\n if (layer < this.#layers.length) this.#dirtyLayers.add(layer);\n }\n this.#topologyChanged ||= request.topologyChanged;\n this.#ScheduleUpdate();\n this.EmitEvent(\"revisionretry\", this, revision);\n return true;\n }\n\n /** Complete a consumed request as failed, optionally making it retryable. */\n FailUpdateRequest(revision, error, options = {})\n {\n if (options.retry) return this.RetryUpdateRequest(revision);\n if (!this.#inFlightRequests.has(revision)) return false;\n this.#inFlightRequests.delete(revision);\n if (revision !== this.#requestedRevision) return false;\n const failure = error instanceof Error ? error : new Error(String(error ?? \"Texture array preparation failed.\"));\n this.#failedRevision = revision;\n this.#failedError = failure;\n if (this.#preparedRevision === 0) this.SetError(failure);\n this.EmitEvent(\"revisionfailed\", this, revision, failure);\n this.#RejectReadyWaiters(revision, failure);\n return true;\n }\n\n /** Run the registered update handler for the current coalesced frame request. */\n Update(context = {})\n {\n const request = this.ConsumeUpdateRequest();\n if (!request) return null;\n this.EmitEvent(\"update\", this, request, context);\n return this.#updateHandler\n ? this.#updateHandler(this, request, context)\n : request;\n }\n\n /**\n * Atomically publish an opaque adapter allocation with its prepared revision.\n * The caller owns disposal of a successfully displaced allocation.\n */\n CommitPreparedAdapterRevision(revision, adapterKey, candidate, options = {})\n {\n if (!adapterKey) throw new TypeError(\"CjsTextureArrayRes adapter publication requires a key.\");\n if (candidate === null || candidate === undefined)\n {\n throw new TypeError(\"CjsTextureArrayRes adapter publication requires a candidate allocation.\");\n }\n const inFlight = this.#inFlightRequests.has(revision);\n if (!inFlight || revision !== this.#requestedRevision)\n {\n if (inFlight) this.#inFlightRequests.delete(revision);\n if (options.destroyRejected !== false) DestroyAdapterValue(candidate);\n return Object.freeze({ published: false, revision, displaced: null });\n }\n\n const displaced = this.GetAdapterResource(adapterKey);\n this.SetAdapterResource(adapterKey, candidate);\n this.#preparedRevision = revision;\n this.#failedRevision = 0;\n this.#failedError = null;\n this.#inFlightRequests.delete(revision);\n for (const pendingRevision of this.#inFlightRequests.keys())\n {\n if (pendingRevision < revision) this.#inFlightRequests.delete(pendingRevision);\n }\n this.MarkPrepared();\n this.EmitEvent(\"revisionprepared\", this, revision, adapterKey, candidate);\n this.#ResolveReadyWaiters(revision);\n return Object.freeze({\n published: true,\n revision,\n displaced: displaced === candidate ? null : displaced\n });\n }\n\n /** Destroy an unusable adapter allocation and request a complete rebuild. */\n HandleAdapterLoss(adapterKey, options = {})\n {\n if (!adapterKey) throw new TypeError(\"CjsTextureArrayRes adapter loss requires a key.\");\n const lost = this.GetAdapterResource(adapterKey);\n if (this.HasAdapterResource(adapterKey)) this.DestroyAdapterResource(adapterKey, options);\n this.#preparedRevision = 0;\n if (this.#layers.length) this.#InvalidateRange(this.#layers.length, true);\n if (this.state === CjsResource.State.PREPARED) this.MarkPreparing();\n this.EmitEvent(\"adapterlost\", this, adapterKey, lost);\n return lost;\n }\n\n /** Resolve when the generation requested at call time has been prepared. */\n Ready()\n {\n if (this.#requestedRevision === 0)\n {\n const error = new Error(\"Texture array resource has no configured layers.\");\n error.code = \"CJS_TEXTURE_ARRAY_UNCONFIGURED\";\n return Promise.reject(error);\n }\n const revision = this.#requestedRevision;\n if (this.#preparedRevision >= revision && this.IsPrepared()) return Promise.resolve(this);\n if (this.#failedRevision === revision) return Promise.reject(this.#failedError);\n return new Promise((resolve, reject) =>\n {\n this.#readyWaiters.push({ revision, resolve, reject });\n });\n }\n\n #CreateLayer(layer, name = \"\", path = \"\")\n {\n return {\n path: normalizeResourcePath(path),\n resource: null,\n proxy: new CjsTextureParameterProxy(this, layer, { name })\n };\n }\n\n #GetLayer(layer)\n {\n if (!Number.isInteger(layer) || layer < 0 || layer >= this.#layers.length)\n {\n throw new RangeError(`CjsTextureArrayRes layer ${layer} is out of range.`);\n }\n return this.#layers[layer];\n }\n\n #SetLayerNames(names)\n {\n if (!names) return;\n for (let layer = 0; layer < Math.min(names.length, this.#layers.length); layer++)\n {\n this.#layers[layer].proxy.SetParameterName(names[layer]);\n }\n }\n\n #InvalidateLayer(layer)\n {\n this.#InvalidateLayers([ layer ]);\n }\n\n #InvalidateRange(count, topologyChanged = false)\n {\n const layers = [];\n for (let layer = 0; layer < count; layer++) layers.push(layer);\n this.#InvalidateLayers(layers, topologyChanged);\n }\n\n #InvalidateLayers(layers, topologyChanged = false)\n {\n const changed = [];\n for (const layer of layers)\n {\n if (!Number.isInteger(layer) || layer < 0 || layer >= this.#layers.length) continue;\n this.#dirtyLayers.add(layer);\n changed.push(layer);\n }\n if (!changed.length && !topologyChanged) return;\n this.#topologyChanged ||= topologyChanged;\n this.#failedRevision = 0;\n this.#failedError = null;\n this.#requestedRevision += 1;\n this.#ScheduleUpdate();\n this.EmitEvent(\"invalidated\", this, Object.freeze(changed), this.#requestedRevision, Object.freeze({\n topologyChanged: this.#topologyChanged\n }));\n }\n\n #ScheduleUpdate()\n {\n if (this.#updateScheduled) return;\n this.#updateScheduled = true;\n this.#updateScheduler?.(this);\n }\n\n #ResolveReadyWaiters(revision)\n {\n const pending = [];\n for (const waiter of this.#readyWaiters)\n {\n if (waiter.revision <= revision) waiter.resolve(this);\n else pending.push(waiter);\n }\n this.#readyWaiters = pending;\n }\n\n #RejectReadyWaiters(revision, error)\n {\n const pending = [];\n for (const waiter of this.#readyWaiters)\n {\n if (waiter.revision <= revision) waiter.reject(error);\n else pending.push(waiter);\n }\n this.#readyWaiters = pending;\n }\n\n static payload = \"texture-array\";\n}\n\nfunction DestroyAdapterValue(value)\n{\n if (!value || (typeof value !== \"object\" && typeof value !== \"function\")) return;\n const destroy = value.Destroy || value.Dispose || value.destroy || value.dispose;\n if (typeof destroy === \"function\") destroy.call(value);\n}\n"],"names":["_CjsTextureArrayRes","_identity","CjsTextureArrayRes","CjsResource","_initClass","_applyDecs","type","define","className","family","c","Set","Map","constructor","values","options","Array","isArray","resourceValues","layers","paths","layerCount","layerNames","updateScheduler","updateHandler","SetUpdateScheduler","SetUpdateHandler","undefined","SetLayerResourcePaths","SetLayerCount","GetLayerCount","length","value","names","count","Number","isInteger","RangeError","previousCount","layer","push","GetLayerParameter","proxy","GetLayerParameters","out","GetLayerResourcePath","path","GetLayerResourcePaths","SetLayerResourcePath","record","normalizeResourcePath","resource","TypeError","map","resourcePath","GetPath","topologyChanged","contentChanged","namesChanged","changedLayers","next","current","name","GetParameterName","add","SetParameterName","GetLayerResource","SetLayerResource","TouchLayer","TouchAllLayers","GetRequestedRevision","GetPreparedRevision","NeedsUpdate","size","GetDirtyLayers","GetInFlightRevisions","revision","keys","sort","a","b","IsRevisionInFlight","has","schedule","handler","ConsumeUpdateRequest","request","Object","freeze","resources","dirtyLayers","clear","set","RetryUpdateRequest","get","delete","EmitEvent","FailUpdateRequest","error","retry","failure","Error","String","SetError","Update","context","CommitPreparedAdapterRevision","adapterKey","candidate","inFlight","destroyRejected","DestroyAdapterValue","published","displaced","GetAdapterResource","SetAdapterResource","pendingRevision","MarkPrepared","HandleAdapterLoss","lost","HasAdapterResource","DestroyAdapterResource","state","State","PREPARED","MarkPreparing","Ready","code","Promise","reject","IsPrepared","resolve","#CreateLayer","CjsTextureParameterProxy","#GetLayer","#SetLayerNames","Math","min","#InvalidateLayer","#InvalidateRange","#InvalidateLayers","changed","#ScheduleUpdate","#ResolveReadyWaiters","pending","waiter","#RejectReadyWaiters","payload","destroy","Destroy","Dispose","dispose","call"],"mappings":"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"}
1
+ {"version":3,"file":"CjsTextureArrayRes.js","sources":["../../../src/texture/CjsTextureArrayRes.js"],"sourcesContent":["import { type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { CjsResource } from \"../CjsResource.js\";\nimport { normalizeResourcePath } from \"../resourcePath.js\";\nimport { CjsTextureParameterProxy } from \"./CjsTextureParameterProxy.js\";\n\n/**\n * Mutable runtime aggregate for an ordered texture-array request.\n *\n * Private engine-bridge layer proxies only invalidate this parent. A resource\n * manager or engine scheduler consumes the coalesced update on a later frame\n * and prepares the corresponding immutable/cached texture-array payload.\n */\n@type.define({ className: \"CjsTextureArrayRes\", family: \"resource\" })\nexport class CjsTextureArrayRes extends CjsResource\n{\n #layers = [];\n #dirtyLayers = new Set();\n #requestedRevision = 0;\n #preparedRevision = 0;\n #updateScheduled = false;\n #topologyChanged = false;\n #inFlightRequests = new Map();\n #readyWaiters = [];\n #failedRevision = 0;\n #failedError = null;\n #updateScheduler = null;\n #updateHandler = null;\n\n constructor(values = null)\n {\n const options = values && typeof values === \"object\" && !Array.isArray(values) ? values : {};\n const resourceValues = { ...options };\n delete resourceValues.layers;\n delete resourceValues.paths;\n delete resourceValues.layerCount;\n delete resourceValues.layerNames;\n delete resourceValues.updateScheduler;\n delete resourceValues.updateHandler;\n super(resourceValues);\n\n if (options.updateScheduler) this.SetUpdateScheduler(options.updateScheduler);\n if (options.updateHandler) this.SetUpdateHandler(options.updateHandler);\n\n const paths = options.layers || options.paths;\n if (paths !== undefined)\n {\n this.SetLayerResourcePaths(paths, options.layerNames);\n }\n else if (options.layerCount !== undefined)\n {\n this.SetLayerCount(options.layerCount, options.layerNames);\n }\n }\n\n GetLayerCount()\n {\n return this.#layers.length;\n }\n\n SetLayerCount(value, names = null)\n {\n const count = Number(value);\n if (!Number.isInteger(count) || count < 1)\n {\n throw new RangeError(\"CjsTextureArrayRes layer count must be a positive integer.\");\n }\n if (count === this.#layers.length)\n {\n this.#SetLayerNames(names);\n return false;\n }\n\n const previousCount = this.#layers.length;\n if (count < previousCount)\n {\n this.#layers.length = count;\n }\n else\n {\n for (let layer = previousCount; layer < count; layer++)\n {\n this.#layers.push(this.#CreateLayer(layer, names?.[layer]));\n }\n }\n this.#SetLayerNames(names);\n this.#InvalidateRange(count, true);\n return true;\n }\n\n GetLayerParameter(layer)\n {\n return this.#GetLayer(layer).proxy;\n }\n\n GetLayerParameters(out = [])\n {\n for (const layer of this.#layers) out.push(layer.proxy);\n return out;\n }\n\n GetLayerResourcePath(layer)\n {\n return this.#GetLayer(layer).path;\n }\n\n GetLayerResourcePaths(out = [])\n {\n for (const layer of this.#layers) out.push(layer.path);\n return out;\n }\n\n SetLayerResourcePath(layer, value)\n {\n const record = this.#GetLayer(layer);\n const path = normalizeResourcePath(value);\n if (path === record.path) return false;\n record.path = path;\n record.resource = null;\n this.#InvalidateLayer(layer);\n return true;\n }\n\n SetLayerResourcePaths(values, names = null)\n {\n if (!Array.isArray(values) || values.length === 0)\n {\n throw new TypeError(\"CjsTextureArrayRes layers must be a non-empty array of resource paths.\");\n }\n\n const paths = values.map(value => normalizeResourcePath(\n value && typeof value === \"object\"\n ? value.resourcePath ?? value.path ?? value.GetPath?.() ?? \"\"\n : value\n ));\n const topologyChanged = paths.length !== this.#layers.length;\n let contentChanged = topologyChanged;\n let namesChanged = false;\n const changedLayers = new Set();\n const next = [];\n for (let layer = 0; layer < paths.length; layer++)\n {\n const current = this.#layers[layer];\n const name = names?.[layer] ?? current?.proxy?.GetParameterName?.() ?? \"\";\n if (!current)\n {\n next.push(this.#CreateLayer(layer, name, paths[layer]));\n }\n else\n {\n if (current.path !== paths[layer])\n {\n current.path = paths[layer];\n current.resource = null;\n contentChanged = true;\n changedLayers.add(layer);\n }\n if (current.proxy.SetParameterName(name)) namesChanged = true;\n next.push(current);\n }\n }\n this.#layers = next;\n if (topologyChanged)\n {\n this.#InvalidateRange(paths.length, true);\n }\n else if (contentChanged)\n {\n this.#InvalidateLayers(changedLayers);\n }\n return contentChanged || namesChanged;\n }\n\n GetLayerResource(layer)\n {\n return this.#GetLayer(layer).resource;\n }\n\n SetLayerResource(layer, resource)\n {\n const record = this.#GetLayer(layer);\n const next = resource ?? null;\n if (record.resource === next) return false;\n record.resource = next;\n this.#InvalidateLayer(layer);\n return true;\n }\n\n /** Invalidate a layer whose resolved resource changed without changing identity. */\n TouchLayer(layer)\n {\n this.#GetLayer(layer);\n this.#InvalidateLayer(layer);\n return this;\n }\n\n /** Invalidate every current layer, for example after an adapter generation loss. */\n TouchAllLayers(options = {})\n {\n this.#InvalidateRange(this.#layers.length, !!options.topologyChanged);\n return this;\n }\n\n GetRequestedRevision()\n {\n return this.#requestedRevision;\n }\n\n GetPreparedRevision()\n {\n return this.#preparedRevision;\n }\n\n NeedsUpdate()\n {\n return this.#updateScheduled || this.#dirtyLayers.size > 0 || this.#preparedRevision < this.#requestedRevision;\n }\n\n GetDirtyLayers()\n {\n return new Set(this.#dirtyLayers);\n }\n\n GetInFlightRevisions(out = [])\n {\n for (const revision of this.#inFlightRequests.keys()) out.push(revision);\n return out.sort((a, b) => a - b);\n }\n\n IsRevisionInFlight(revision)\n {\n return this.#inFlightRequests.has(revision);\n }\n\n SetUpdateScheduler(schedule = null)\n {\n if (schedule !== null && typeof schedule !== \"function\")\n {\n throw new TypeError(\"CjsTextureArrayRes update scheduler must be a function or null.\");\n }\n this.#updateScheduler = schedule;\n if (schedule && this.#updateScheduled) schedule(this);\n return this;\n }\n\n SetUpdateHandler(handler = null)\n {\n if (handler !== null && typeof handler !== \"function\")\n {\n throw new TypeError(\"CjsTextureArrayRes update handler must be a function or null.\");\n }\n this.#updateHandler = handler;\n return this;\n }\n\n /**\n * Consume all proxy changes as one immutable request snapshot.\n * A frame scheduler should call this at most once per parent per frame.\n */\n ConsumeUpdateRequest()\n {\n if (!this.#updateScheduled && this.#dirtyLayers.size === 0) return null;\n const request = Object.freeze({\n revision: this.#requestedRevision,\n paths: Object.freeze(this.GetLayerResourcePaths()),\n resources: Object.freeze(this.#layers.map(layer => layer.resource)),\n dirtyLayers: Object.freeze([ ...this.#dirtyLayers ].sort((a, b) => a - b)),\n topologyChanged: this.#topologyChanged\n });\n this.#dirtyLayers.clear();\n this.#topologyChanged = false;\n this.#updateScheduled = false;\n this.#inFlightRequests.set(request.revision, request);\n return request;\n }\n\n /** Requeue a consumed current request after cancellation, loss, or retryable failure. */\n RetryUpdateRequest(revision = this.#requestedRevision)\n {\n const request = this.#inFlightRequests.get(revision);\n if (!request) return false;\n this.#inFlightRequests.delete(revision);\n if (revision !== this.#requestedRevision) return false;\n if (this.#failedRevision === revision)\n {\n this.#failedRevision = 0;\n this.#failedError = null;\n }\n for (const layer of request.dirtyLayers)\n {\n if (layer < this.#layers.length) this.#dirtyLayers.add(layer);\n }\n this.#topologyChanged ||= request.topologyChanged;\n this.#ScheduleUpdate();\n this.EmitEvent(\"revisionretry\", this, revision);\n return true;\n }\n\n /** Complete a consumed request as failed, optionally making it retryable. */\n FailUpdateRequest(revision, error, options = {})\n {\n if (options.retry) return this.RetryUpdateRequest(revision);\n if (!this.#inFlightRequests.has(revision)) return false;\n this.#inFlightRequests.delete(revision);\n if (revision !== this.#requestedRevision) return false;\n const failure = error instanceof Error ? error : new Error(String(error ?? \"Texture array preparation failed.\"));\n this.#failedRevision = revision;\n this.#failedError = failure;\n if (this.#preparedRevision === 0) this.SetError(failure);\n this.EmitEvent(\"revisionfailed\", this, revision, failure);\n this.#RejectReadyWaiters(revision, failure);\n return true;\n }\n\n /** Run the registered update handler for the current coalesced frame request. */\n Update(context = {})\n {\n const request = this.ConsumeUpdateRequest();\n if (!request) return null;\n this.EmitEvent(\"update\", this, request, context);\n return this.#updateHandler\n ? this.#updateHandler(this, request, context)\n : request;\n }\n\n /**\n * Atomically publish an opaque adapter allocation with its prepared revision.\n * The caller owns disposal of a successfully displaced allocation.\n */\n CommitPreparedAdapterRevision(revision, adapterKey, candidate, options = {})\n {\n if (!adapterKey) throw new TypeError(\"CjsTextureArrayRes adapter publication requires a key.\");\n if (candidate === null || candidate === undefined)\n {\n throw new TypeError(\"CjsTextureArrayRes adapter publication requires a candidate allocation.\");\n }\n const inFlight = this.#inFlightRequests.has(revision);\n if (!inFlight || revision !== this.#requestedRevision)\n {\n if (inFlight) this.#inFlightRequests.delete(revision);\n if (options.destroyRejected !== false) DestroyAdapterValue(candidate);\n return Object.freeze({ published: false, revision, displaced: null });\n }\n\n const displaced = this.GetAdapterResource(adapterKey);\n this.SetAdapterResource(adapterKey, candidate);\n this.#preparedRevision = revision;\n this.#failedRevision = 0;\n this.#failedError = null;\n this.#inFlightRequests.delete(revision);\n for (const pendingRevision of this.#inFlightRequests.keys())\n {\n if (pendingRevision < revision) this.#inFlightRequests.delete(pendingRevision);\n }\n this.MarkPrepared();\n this.EmitEvent(\"revisionprepared\", this, revision, adapterKey, candidate);\n this.#ResolveReadyWaiters(revision);\n return Object.freeze({\n published: true,\n revision,\n displaced: displaced === candidate ? null : displaced\n });\n }\n\n /** Destroy an unusable adapter allocation and request a complete rebuild. */\n HandleAdapterLoss(adapterKey, options = {})\n {\n if (!adapterKey) throw new TypeError(\"CjsTextureArrayRes adapter loss requires a key.\");\n const lost = this.GetAdapterResource(adapterKey);\n if (this.HasAdapterResource(adapterKey)) this.DestroyAdapterResource(adapterKey, options);\n this.#preparedRevision = 0;\n if (this.#layers.length) this.#InvalidateRange(this.#layers.length, true);\n if (this.state === CjsResource.State.PREPARED) this.MarkPreparing();\n this.EmitEvent(\"adapterlost\", this, adapterKey, lost);\n return lost;\n }\n\n /** Resolve when the generation requested at call time has been prepared. */\n Ready()\n {\n if (this.#requestedRevision === 0)\n {\n const error = new Error(\"Texture array resource has no configured layers.\");\n error.code = \"CJS_TEXTURE_ARRAY_UNCONFIGURED\";\n return Promise.reject(error);\n }\n const revision = this.#requestedRevision;\n if (this.#preparedRevision >= revision && this.IsPrepared()) return Promise.resolve(this);\n if (this.#failedRevision === revision) return Promise.reject(this.#failedError);\n return new Promise((resolve, reject) =>\n {\n this.#readyWaiters.push({ revision, resolve, reject });\n });\n }\n\n #CreateLayer(layer, name = \"\", path = \"\")\n {\n return {\n path: normalizeResourcePath(path),\n resource: null,\n proxy: new CjsTextureParameterProxy(this, layer, { name })\n };\n }\n\n #GetLayer(layer)\n {\n if (!Number.isInteger(layer) || layer < 0 || layer >= this.#layers.length)\n {\n throw new RangeError(`CjsTextureArrayRes layer ${layer} is out of range.`);\n }\n return this.#layers[layer];\n }\n\n #SetLayerNames(names)\n {\n if (!names) return;\n for (let layer = 0; layer < Math.min(names.length, this.#layers.length); layer++)\n {\n this.#layers[layer].proxy.SetParameterName(names[layer]);\n }\n }\n\n #InvalidateLayer(layer)\n {\n this.#InvalidateLayers([ layer ]);\n }\n\n #InvalidateRange(count, topologyChanged = false)\n {\n const layers = [];\n for (let layer = 0; layer < count; layer++) layers.push(layer);\n this.#InvalidateLayers(layers, topologyChanged);\n }\n\n #InvalidateLayers(layers, topologyChanged = false)\n {\n const changed = [];\n for (const layer of layers)\n {\n if (!Number.isInteger(layer) || layer < 0 || layer >= this.#layers.length) continue;\n this.#dirtyLayers.add(layer);\n changed.push(layer);\n }\n if (!changed.length && !topologyChanged) return;\n this.#topologyChanged ||= topologyChanged;\n this.#failedRevision = 0;\n this.#failedError = null;\n this.#requestedRevision += 1;\n this.#ScheduleUpdate();\n this.EmitEvent(\"invalidated\", this, Object.freeze(changed), this.#requestedRevision, Object.freeze({\n topologyChanged: this.#topologyChanged\n }));\n }\n\n #ScheduleUpdate()\n {\n if (this.#updateScheduled) return;\n this.#updateScheduled = true;\n this.#updateScheduler?.(this);\n }\n\n #ResolveReadyWaiters(revision)\n {\n const pending = [];\n for (const waiter of this.#readyWaiters)\n {\n if (waiter.revision <= revision) waiter.resolve(this);\n else pending.push(waiter);\n }\n this.#readyWaiters = pending;\n }\n\n #RejectReadyWaiters(revision, error)\n {\n const pending = [];\n for (const waiter of this.#readyWaiters)\n {\n if (waiter.revision <= revision) waiter.reject(error);\n else pending.push(waiter);\n }\n this.#readyWaiters = pending;\n }\n\n static payload = \"texture-array\";\n}\n\nfunction DestroyAdapterValue(value)\n{\n if (!value || (typeof value !== \"object\" && typeof value !== \"function\")) return;\n const destroy = value.Destroy || value.Dispose || value.destroy || value.dispose;\n if (typeof destroy === \"function\") destroy.call(value);\n}\n"],"names":["_CjsTextureArrayRes","_identity","CjsTextureArrayRes","CjsResource","_initClass","_applyDecs","type","define","className","family","c","Set","Map","constructor","values","options","Array","isArray","resourceValues","layers","paths","layerCount","layerNames","updateScheduler","updateHandler","SetUpdateScheduler","SetUpdateHandler","undefined","SetLayerResourcePaths","SetLayerCount","GetLayerCount","length","value","names","count","Number","isInteger","RangeError","previousCount","layer","push","GetLayerParameter","proxy","GetLayerParameters","out","GetLayerResourcePath","path","GetLayerResourcePaths","SetLayerResourcePath","record","normalizeResourcePath","resource","TypeError","map","resourcePath","GetPath","topologyChanged","contentChanged","namesChanged","changedLayers","next","current","name","GetParameterName","add","SetParameterName","GetLayerResource","SetLayerResource","TouchLayer","TouchAllLayers","GetRequestedRevision","GetPreparedRevision","NeedsUpdate","size","GetDirtyLayers","GetInFlightRevisions","revision","keys","sort","a","b","IsRevisionInFlight","has","schedule","handler","ConsumeUpdateRequest","request","Object","freeze","resources","dirtyLayers","clear","set","RetryUpdateRequest","get","delete","EmitEvent","FailUpdateRequest","error","retry","failure","Error","String","SetError","Update","context","CommitPreparedAdapterRevision","adapterKey","candidate","inFlight","destroyRejected","DestroyAdapterValue","published","displaced","GetAdapterResource","SetAdapterResource","pendingRevision","MarkPrepared","HandleAdapterLoss","lost","HasAdapterResource","DestroyAdapterResource","state","State","PREPARED","MarkPreparing","Ready","code","Promise","reject","IsPrepared","resolve","#CreateLayer","CjsTextureParameterProxy","#GetLayer","#SetLayerNames","Math","min","#InvalidateLayer","#InvalidateRange","#InvalidateLayers","changed","#ScheduleUpdate","#ResolveReadyWaiters","pending","waiter","#RejectReadyWaiters","payload","destroy","Destroy","Dispose","dispose","call"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { CjsEventEmitter } from '@carbonenginejs/core-types/model';
1
+ import { CjsEventEmitter } from '@carbonenginejs/runtime-utils/model';
2
2
 
3
3
  /**
4
4
  * Runtime-only internal texture parameter facade for one array layer.
@@ -1 +1 @@
1
- {"version":3,"file":"CjsTextureParameterProxy.js","sources":["../../../src/texture/CjsTextureParameterProxy.js"],"sourcesContent":["import { CjsEventEmitter } from \"@carbonenginejs/core-types/model\";\n\n/**\n * Runtime-only internal texture parameter facade for one array layer.\n *\n * The proxy mirrors the public texture-parameter path API while delegating\n * storage, invalidation, readiness, and adapter ownership to its parent array.\n * Engines bridge public parameters into it; it does not replace persisted\n * parameter entries or their individual source resources. It deliberately\n * carries no shader metadata or backend objects.\n */\nexport class CjsTextureParameterProxy extends CjsEventEmitter\n{\n #parent;\n #layer;\n #name;\n\n constructor(parent, layer, options = {})\n {\n super();\n if (!parent || typeof parent.SetLayerResourcePath !== \"function\")\n {\n throw new TypeError(\"CjsTextureParameterProxy requires a CjsTextureArrayRes-compatible parent.\");\n }\n if (!Number.isInteger(layer) || layer < 0)\n {\n throw new RangeError(\"CjsTextureParameterProxy layer must be a non-negative integer.\");\n }\n\n this.#parent = parent;\n this.#layer = layer;\n this.#name = options.name === undefined ? \"\" : String(options.name);\n }\n\n get resourcePath()\n {\n return this.GetResourcePath();\n }\n\n /** The aggregate texture resource used by the shader. */\n get textureRes()\n {\n return this.#parent;\n }\n\n /** Compatibility alias for textureRes. */\n get res()\n {\n return this.#parent;\n }\n\n /** Compatibility alias used by Carbon-shaped texture parameters. */\n get resource()\n {\n return this.#parent;\n }\n\n set resourcePath(value)\n {\n this.SetResourcePath(value);\n }\n\n get name()\n {\n return this.#name;\n }\n\n set name(value)\n {\n this.SetParameterName(value);\n }\n\n GetParent()\n {\n return this.#parent;\n }\n\n GetLayerIndex()\n {\n return this.#layer;\n }\n\n GetParameterName()\n {\n return this.#name;\n }\n\n SetParameterName(value)\n {\n const next = value === null || value === undefined ? \"\" : String(value);\n if (next === this.#name) return false;\n const previous = this.#name;\n this.#name = next;\n this.EmitEvent(\"changed\", this, \"name\", next, previous);\n return true;\n }\n\n GetResourcePath()\n {\n return this.#parent.GetLayerResourcePath(this.#layer);\n }\n\n SetResourcePath(value)\n {\n const previous = this.GetResourcePath();\n if (!this.#parent.SetLayerResourcePath(this.#layer, value)) return false;\n this.EmitEvent(\"changed\", this, \"resourcepath\", this.GetResourcePath(), previous);\n return true;\n }\n\n GetValue()\n {\n return this.GetResourcePath();\n }\n\n SetValue(value)\n {\n if (value === undefined) return false;\n return this.SetResourcePath(value);\n }\n\n EqualsValue(value)\n {\n return String(value ?? \"\").trim().replace(/\\\\/gu, \"/\").replace(/\\/+/gu, \"/\").toLowerCase() === this.GetResourcePath();\n }\n\n /** Return the aggregate texture resource used by the shader binding. */\n GetResource()\n {\n return this.#parent;\n }\n\n /** Return the optional resolved source resource for this layer. */\n GetSourceResource()\n {\n return this.#parent.GetLayerResource(this.#layer);\n }\n\n SetSourceResource(resource)\n {\n const previous = this.GetSourceResource();\n if (!this.#parent.SetLayerResource(this.#layer, resource)) return false;\n this.EmitEvent(\"changed\", this, \"sourceresource\", this.GetSourceResource(), previous);\n return true;\n }\n\n SetResource(resource)\n {\n return this.SetSourceResource(resource);\n }\n\n /** Invalidate this layer after an in-place source content revision. */\n Touch()\n {\n this.#parent.TouchLayer(this.#layer);\n this.EmitEvent(\"changed\", this, \"sourcerevision\", this.GetSourceResource());\n return this;\n }\n\n GetResources(out = [])\n {\n if (!out.includes(this.#parent)) out.push(this.#parent);\n return out;\n }\n\n IsPrepared()\n {\n return this.#parent.IsPrepared();\n }\n\n IsGood()\n {\n return this.#parent.IsGood();\n }\n\n Ready(options = {})\n {\n return this.#parent.Ready(options);\n }\n}\n"],"names":["CjsTextureParameterProxy","CjsEventEmitter","constructor","parent","layer","options","SetLayerResourcePath","TypeError","Number","isInteger","RangeError","name","undefined","String","resourcePath","GetResourcePath","textureRes","res","resource","value","SetResourcePath","SetParameterName","GetParent","GetLayerIndex","GetParameterName","next","previous","EmitEvent","GetLayerResourcePath","GetValue","SetValue","EqualsValue","trim","replace","toLowerCase","GetResource","GetSourceResource","GetLayerResource","SetSourceResource","SetLayerResource","SetResource","Touch","TouchLayer","GetResources","out","includes","push","IsPrepared","IsGood","Ready"],"mappings":"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"}
1
+ {"version":3,"file":"CjsTextureParameterProxy.js","sources":["../../../src/texture/CjsTextureParameterProxy.js"],"sourcesContent":["import { CjsEventEmitter } from \"@carbonenginejs/runtime-utils/model\";\n\n/**\n * Runtime-only internal texture parameter facade for one array layer.\n *\n * The proxy mirrors the public texture-parameter path API while delegating\n * storage, invalidation, readiness, and adapter ownership to its parent array.\n * Engines bridge public parameters into it; it does not replace persisted\n * parameter entries or their individual source resources. It deliberately\n * carries no shader metadata or backend objects.\n */\nexport class CjsTextureParameterProxy extends CjsEventEmitter\n{\n #parent;\n #layer;\n #name;\n\n constructor(parent, layer, options = {})\n {\n super();\n if (!parent || typeof parent.SetLayerResourcePath !== \"function\")\n {\n throw new TypeError(\"CjsTextureParameterProxy requires a CjsTextureArrayRes-compatible parent.\");\n }\n if (!Number.isInteger(layer) || layer < 0)\n {\n throw new RangeError(\"CjsTextureParameterProxy layer must be a non-negative integer.\");\n }\n\n this.#parent = parent;\n this.#layer = layer;\n this.#name = options.name === undefined ? \"\" : String(options.name);\n }\n\n get resourcePath()\n {\n return this.GetResourcePath();\n }\n\n /** The aggregate texture resource used by the shader. */\n get textureRes()\n {\n return this.#parent;\n }\n\n /** Compatibility alias for textureRes. */\n get res()\n {\n return this.#parent;\n }\n\n /** Compatibility alias used by Carbon-shaped texture parameters. */\n get resource()\n {\n return this.#parent;\n }\n\n set resourcePath(value)\n {\n this.SetResourcePath(value);\n }\n\n get name()\n {\n return this.#name;\n }\n\n set name(value)\n {\n this.SetParameterName(value);\n }\n\n GetParent()\n {\n return this.#parent;\n }\n\n GetLayerIndex()\n {\n return this.#layer;\n }\n\n GetParameterName()\n {\n return this.#name;\n }\n\n SetParameterName(value)\n {\n const next = value === null || value === undefined ? \"\" : String(value);\n if (next === this.#name) return false;\n const previous = this.#name;\n this.#name = next;\n this.EmitEvent(\"changed\", this, \"name\", next, previous);\n return true;\n }\n\n GetResourcePath()\n {\n return this.#parent.GetLayerResourcePath(this.#layer);\n }\n\n SetResourcePath(value)\n {\n const previous = this.GetResourcePath();\n if (!this.#parent.SetLayerResourcePath(this.#layer, value)) return false;\n this.EmitEvent(\"changed\", this, \"resourcepath\", this.GetResourcePath(), previous);\n return true;\n }\n\n GetValue()\n {\n return this.GetResourcePath();\n }\n\n SetValue(value)\n {\n if (value === undefined) return false;\n return this.SetResourcePath(value);\n }\n\n EqualsValue(value)\n {\n return String(value ?? \"\").trim().replace(/\\\\/gu, \"/\").replace(/\\/+/gu, \"/\").toLowerCase() === this.GetResourcePath();\n }\n\n /** Return the aggregate texture resource used by the shader binding. */\n GetResource()\n {\n return this.#parent;\n }\n\n /** Return the optional resolved source resource for this layer. */\n GetSourceResource()\n {\n return this.#parent.GetLayerResource(this.#layer);\n }\n\n SetSourceResource(resource)\n {\n const previous = this.GetSourceResource();\n if (!this.#parent.SetLayerResource(this.#layer, resource)) return false;\n this.EmitEvent(\"changed\", this, \"sourceresource\", this.GetSourceResource(), previous);\n return true;\n }\n\n SetResource(resource)\n {\n return this.SetSourceResource(resource);\n }\n\n /** Invalidate this layer after an in-place source content revision. */\n Touch()\n {\n this.#parent.TouchLayer(this.#layer);\n this.EmitEvent(\"changed\", this, \"sourcerevision\", this.GetSourceResource());\n return this;\n }\n\n GetResources(out = [])\n {\n if (!out.includes(this.#parent)) out.push(this.#parent);\n return out;\n }\n\n IsPrepared()\n {\n return this.#parent.IsPrepared();\n }\n\n IsGood()\n {\n return this.#parent.IsGood();\n }\n\n Ready(options = {})\n {\n return this.#parent.Ready(options);\n }\n}\n"],"names":["CjsTextureParameterProxy","CjsEventEmitter","constructor","parent","layer","options","SetLayerResourcePath","TypeError","Number","isInteger","RangeError","name","undefined","String","resourcePath","GetResourcePath","textureRes","res","resource","value","SetResourcePath","SetParameterName","GetParent","GetLayerIndex","GetParameterName","next","previous","EmitEvent","GetLayerResourcePath","GetValue","SetValue","EqualsValue","trim","replace","toLowerCase","GetResource","GetSourceResource","GetLayerResource","SetSourceResource","SetLayerResource","SetResource","Touch","TouchLayer","GetResources","out","includes","push","IsPrepared","IsGood","Ready"],"mappings":"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"}
package/docs/README.md CHANGED
@@ -24,8 +24,8 @@ packages realize that payload into backend objects.
24
24
 
25
25
  ## Where it fits
26
26
 
27
- - Foundations consumed: `@carbonenginejs/core-types` (event emitter, model
28
- contracts) and `@carbonenginejs/core-math` where formats need math values.
27
+ - Foundations consumed: `@carbonenginejs/runtime-utils` (event emitter, model
28
+ contracts) and `@carbonenginejs/runtime-utils` where formats need math values.
29
29
  - Normal consumers: `runtime-core` (configures and exposes a `CjsResMan`),
30
30
  `runtime-trinity` and `runtime-sof` (request GPU-free objects), and engine
31
31
  packages (`engine-webgpu`, future WebGL engines) that realize prepared
@@ -42,7 +42,7 @@ historical mapping.
42
42
  source/read/resource deduplication, object loader dispatch, and prefetch.
43
43
  - `CjsTextureArrayRes` and `CjsTextureParameterProxy` for material-facing,
44
44
  frame-coalesced texture-array inputs.
45
- - Raw `CjsEventEmitter` (from `core-types/model`) for manager/runtime events
45
+ - Raw `CjsEventEmitter` (from `runtime-utils/model`) for manager/runtime events
46
46
  without requiring `CjsModel` inheritance.
47
47
  - Path normalization, extension helpers, and source adapters for memory and
48
48
  `fetch`.
@@ -380,7 +380,7 @@ PNG format profile that synchronously inspects chunk and header metadata and emi
380
380
  <!-- class:CjsRedFormat -->
381
381
  ## `CjsRedFormat`
382
382
 
383
- Red format profile that reads type-discriminated, self-referential Red YAML object graphs and emits a compact public payload, a neutral raw graph, or caller-supplied runtime classes through the core-types hydration adapter.
383
+ Red format profile that reads type-discriminated, self-referential Red YAML object graphs and emits a compact public payload, a neutral raw graph, or caller-supplied runtime classes through the runtime-utils hydration adapter.
384
384
 
385
385
  - Export: `@carbonenginejs/runtime-resource/formats/red`
386
386
  - Source: `src/formats/red/CjsRedFormat.js`
@@ -7,7 +7,7 @@ Summary: Defines the `CjsEventEmitter` API surface used by resource managers and
7
7
 
8
8
  ## Purpose
9
9
 
10
- `CjsEventEmitter` (from `core-types/model`) is a separate base class so
10
+ `CjsEventEmitter` (from `runtime-utils/model`) is a separate base class so
11
11
  non-model runtime services can emit events without extending `CjsModel`;
12
12
  `CjsResMan` uses that path. CarbonEngineJS exposes one small event-emitter API
13
13
  and avoids short generic names such as `On`, `Once`, `Off`, and `Emit` on
@@ -25,7 +25,7 @@ Local license notice: Copyright (c) 2023 @rawrafox and @cppctamber
25
25
 
26
26
  CarbonEngineJS uses black-reader-js as reference material for `.black` format
27
27
  behavior. The format-black package is implemented against CarbonEngineJS
28
- core-types/canonical schema definitions and emits CarbonEngineJS public
28
+ runtime-utils/canonical schema definitions and emits CarbonEngineJS public
29
29
  Black payload data.
30
30
 
31
31
  Provenance and legal requirements
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carbonenginejs/runtime-resource",
3
- "version": "0.9.1",
3
+ "version": "0.9.2",
4
4
  "description": "CarbonEngineJS resource lifecycle, cache, source, and object loading contracts.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -39,9 +39,7 @@
39
39
  "node": ">=18"
40
40
  },
41
41
  "dependencies": {
42
- "@carbonenginejs/core-math": "^0.1.5",
43
- "@carbonenginejs/core-types": "^0.12.0",
44
- "@carbonenginejs/runtime-const": "^0.1.0",
42
+ "@carbonenginejs/runtime-utils": "^0.1.0",
45
43
  "meshoptimizer": "^1.2.0",
46
44
  "yaml": "^2.4.0"
47
45
  },