@vivi2d/web 0.1.0-alpha.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 (37) hide show
  1. package/LICENSE +160 -0
  2. package/README.md +201 -0
  3. package/dist/CanvasPool-CASccukD.js +48 -0
  4. package/dist/CanvasPool-CASccukD.js.map +1 -0
  5. package/dist/CanvasRenderer-BWDoXN0L.js +5750 -0
  6. package/dist/CanvasRenderer-BWDoXN0L.js.map +1 -0
  7. package/dist/GpuStencilModesToPixi-c2lsBIrd.js +221 -0
  8. package/dist/GpuStencilModesToPixi-c2lsBIrd.js.map +1 -0
  9. package/dist/RenderTargetSystem-BCowAg_f.js +3493 -0
  10. package/dist/RenderTargetSystem-BCowAg_f.js.map +1 -0
  11. package/dist/WebGLRenderer-KKZauisz.js +2236 -0
  12. package/dist/WebGLRenderer-KKZauisz.js.map +1 -0
  13. package/dist/WebGPURenderer-xmqgPtcF.js +1632 -0
  14. package/dist/WebGPURenderer-xmqgPtcF.js.map +1 -0
  15. package/dist/auto-register.d.ts +1 -0
  16. package/dist/auto-register.js +3 -0
  17. package/dist/auto-register.js.map +1 -0
  18. package/dist/browserAll-DQ0eWekj.js +1872 -0
  19. package/dist/browserAll-DQ0eWekj.js.map +1 -0
  20. package/dist/canvasUtils-BSaR9Fot.js +210 -0
  21. package/dist/canvasUtils-BSaR9Fot.js.map +1 -0
  22. package/dist/errors.d.ts +12 -0
  23. package/dist/getTextureBatchBindGroup-BYhXfZM4.js +22 -0
  24. package/dist/getTextureBatchBindGroup-BYhXfZM4.js.map +1 -0
  25. package/dist/index-CW8mx7yF.js +18805 -0
  26. package/dist/index-CW8mx7yF.js.map +1 -0
  27. package/dist/index.d.ts +7 -0
  28. package/dist/model-loader.d.ts +42 -0
  29. package/dist/player.d.ts +85 -0
  30. package/dist/vivi-model-element.d.ts +65 -0
  31. package/dist/vivi2d.es.js +11 -0
  32. package/dist/vivi2d.es.js.map +1 -0
  33. package/dist/vivi2d.umd.js +1020 -0
  34. package/dist/vivi2d.umd.js.map +1 -0
  35. package/dist/webworkerAll-oTmmI2Qm.js +694 -0
  36. package/dist/webworkerAll-oTmmI2Qm.js.map +1 -0
  37. package/package.json +56 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvasUtils-BSaR9Fot.js","sources":["../../../node_modules/pixi.js/lib/rendering/renderers/canvas/utils/canUseNewCanvasBlendModes.mjs","../../../node_modules/pixi.js/lib/rendering/renderers/canvas/utils/canvasUtils.mjs"],"sourcesContent":["import { DOMAdapter } from '../../../../environment/adapter.mjs';\n\n\"use strict\";\nlet canUseNewCanvasBlendModesValue;\nfunction createColoredCanvas(color) {\n const canvas = DOMAdapter.get().createCanvas(6, 1);\n const context = canvas.getContext(\"2d\");\n context.fillStyle = color;\n context.fillRect(0, 0, 6, 1);\n return canvas;\n}\nfunction canUseNewCanvasBlendModes() {\n if (canUseNewCanvasBlendModesValue !== void 0) {\n return canUseNewCanvasBlendModesValue;\n }\n try {\n const magenta = createColoredCanvas(\"#ff00ff\");\n const yellow = createColoredCanvas(\"#ffff00\");\n const canvas = DOMAdapter.get().createCanvas(6, 1);\n const context = canvas.getContext(\"2d\");\n context.globalCompositeOperation = \"multiply\";\n context.drawImage(magenta, 0, 0);\n context.drawImage(yellow, 2, 0);\n const imageData = context.getImageData(2, 0, 1, 1);\n if (!imageData) {\n canUseNewCanvasBlendModesValue = false;\n } else {\n const data = imageData.data;\n canUseNewCanvasBlendModesValue = data[0] === 255 && data[1] === 0 && data[2] === 0;\n }\n } catch (_error) {\n canUseNewCanvasBlendModesValue = false;\n }\n return canUseNewCanvasBlendModesValue;\n}\n\nexport { canUseNewCanvasBlendModes };\n//# sourceMappingURL=canUseNewCanvasBlendModes.mjs.map\n","import { Color } from '../../../../color/Color.mjs';\nimport { DOMAdapter } from '../../../../environment/adapter.mjs';\nimport { groupD8 } from '../../../../maths/matrix/groupD8.mjs';\nimport { canUseNewCanvasBlendModes } from './canUseNewCanvasBlendModes.mjs';\n\n\"use strict\";\nconst canvasUtils = {\n canvas: null,\n convertTintToImage: false,\n cacheStepsPerColorChannel: 8,\n canUseMultiply: canUseNewCanvasBlendModes(),\n tintMethod: null,\n _canvasSourceCache: /* @__PURE__ */ new WeakMap(),\n _unpremultipliedCache: /* @__PURE__ */ new WeakMap(),\n getCanvasSource: (texture) => {\n const source = texture.source;\n const resource = source?.resource;\n if (!resource) {\n return null;\n }\n const isPMA = source.alphaMode === \"premultiplied-alpha\";\n const resourceWidth = source.resourceWidth ?? source.pixelWidth;\n const resourceHeight = source.resourceHeight ?? source.pixelHeight;\n const needsResize = resourceWidth !== source.pixelWidth || resourceHeight !== source.pixelHeight;\n if (isPMA) {\n if (resource instanceof HTMLCanvasElement || typeof OffscreenCanvas !== \"undefined\" && resource instanceof OffscreenCanvas) {\n if (!needsResize) {\n return resource;\n }\n }\n const cached = canvasUtils._unpremultipliedCache.get(source);\n if (cached?.resourceId === source._resourceId) {\n return cached.canvas;\n }\n }\n if (resource instanceof Uint8Array || resource instanceof Uint8ClampedArray || resource instanceof Int8Array || resource instanceof Uint16Array || resource instanceof Int16Array || resource instanceof Uint32Array || resource instanceof Int32Array || resource instanceof Float32Array || resource instanceof ArrayBuffer) {\n const cached = canvasUtils._canvasSourceCache.get(source);\n if (cached?.resourceId === source._resourceId) {\n return cached.canvas;\n }\n const canvas = DOMAdapter.get().createCanvas(source.pixelWidth, source.pixelHeight);\n const context = canvas.getContext(\"2d\");\n const imageData = context.createImageData(source.pixelWidth, source.pixelHeight);\n const data = imageData.data;\n const bytes = resource instanceof ArrayBuffer ? new Uint8Array(resource) : new Uint8Array(resource.buffer, resource.byteOffset, resource.byteLength);\n if (source.format === \"bgra8unorm\") {\n for (let i = 0; i < data.length && i + 3 < bytes.length; i += 4) {\n data[i] = bytes[i + 2];\n data[i + 1] = bytes[i + 1];\n data[i + 2] = bytes[i];\n data[i + 3] = bytes[i + 3];\n }\n } else {\n data.set(bytes.subarray(0, data.length));\n }\n context.putImageData(imageData, 0, 0);\n canvasUtils._canvasSourceCache.set(source, { canvas, resourceId: source._resourceId });\n return canvas;\n }\n if (isPMA) {\n const canvas = DOMAdapter.get().createCanvas(source.pixelWidth, source.pixelHeight);\n const context = canvas.getContext(\"2d\", { willReadFrequently: true });\n canvas.width = source.pixelWidth;\n canvas.height = source.pixelHeight;\n context.drawImage(resource, 0, 0);\n const imageData = context.getImageData(0, 0, canvas.width, canvas.height);\n const data = imageData.data;\n for (let i = 0; i < data.length; i += 4) {\n const a = data[i + 3];\n if (a > 0) {\n const alphaInv = 255 / a;\n data[i] = Math.min(255, data[i] * alphaInv + 0.5);\n data[i + 1] = Math.min(255, data[i + 1] * alphaInv + 0.5);\n data[i + 2] = Math.min(255, data[i + 2] * alphaInv + 0.5);\n }\n }\n context.putImageData(imageData, 0, 0);\n canvasUtils._unpremultipliedCache.set(source, { canvas, resourceId: source._resourceId });\n return canvas;\n }\n if (needsResize) {\n const cached = canvasUtils._canvasSourceCache.get(source);\n if (cached?.resourceId === source._resourceId) {\n return cached.canvas;\n }\n const canvas = DOMAdapter.get().createCanvas(source.pixelWidth, source.pixelHeight);\n const context = canvas.getContext(\"2d\");\n canvas.width = source.pixelWidth;\n canvas.height = source.pixelHeight;\n context.drawImage(resource, 0, 0);\n canvasUtils._canvasSourceCache.set(source, { canvas, resourceId: source._resourceId });\n return canvas;\n }\n return resource;\n },\n getTintedCanvas: (sprite, color) => {\n const texture = sprite.texture;\n const stringColor = Color.shared.setValue(color).toHex();\n const cache = texture.tintCache || (texture.tintCache = {});\n const cachedCanvas = cache[stringColor];\n const resourceId = texture.source._resourceId;\n if (cachedCanvas?.tintId === resourceId) {\n return cachedCanvas;\n }\n const canvas = cachedCanvas && \"getContext\" in cachedCanvas ? cachedCanvas : DOMAdapter.get().createCanvas();\n canvasUtils.tintMethod(texture, color, canvas);\n canvas.tintId = resourceId;\n if (canvasUtils.convertTintToImage && canvas.toDataURL !== void 0) {\n const tintImage = DOMAdapter.get().createImage();\n tintImage.src = canvas.toDataURL();\n tintImage.tintId = resourceId;\n cache[stringColor] = tintImage;\n } else {\n cache[stringColor] = canvas;\n }\n return cache[stringColor];\n },\n getTintedPattern: (texture, color) => {\n const stringColor = Color.shared.setValue(color).toHex();\n const cache = texture.patternCache || (texture.patternCache = {});\n const resourceId = texture.source._resourceId;\n let pattern = cache[stringColor];\n if (pattern?.tintId === resourceId) {\n return pattern;\n }\n if (!canvasUtils.canvas) {\n canvasUtils.canvas = DOMAdapter.get().createCanvas();\n }\n canvasUtils.tintMethod(texture, color, canvasUtils.canvas);\n const context = canvasUtils.canvas.getContext(\"2d\");\n pattern = context.createPattern(canvasUtils.canvas, \"repeat\");\n pattern.tintId = resourceId;\n cache[stringColor] = pattern;\n return pattern;\n },\n /**\n * Applies a transform to a CanvasPattern.\n * @param pattern - The pattern to apply the transform to.\n * @param matrix - The matrix to apply.\n * @param matrix.a\n * @param matrix.b\n * @param matrix.c\n * @param matrix.d\n * @param matrix.tx\n * @param matrix.ty\n * @param invert\n */\n applyPatternTransform: (pattern, matrix, invert = true) => {\n if (!matrix) return;\n const patternAny = pattern;\n if (!patternAny.setTransform) return;\n const DOMMatrixCtor = globalThis.DOMMatrix;\n if (!DOMMatrixCtor) return;\n const domMatrix = new DOMMatrixCtor([matrix.a, matrix.b, matrix.c, matrix.d, matrix.tx, matrix.ty]);\n patternAny.setTransform(invert ? domMatrix.inverse() : domMatrix);\n },\n tintWithMultiply: (texture, color, canvas) => {\n const context = canvas.getContext(\"2d\");\n const crop = texture.frame.clone();\n const resolution = texture.source._resolution ?? texture.source.resolution ?? 1;\n const rotate = texture.rotate;\n crop.x *= resolution;\n crop.y *= resolution;\n crop.width *= resolution;\n crop.height *= resolution;\n const isVertical = groupD8.isVertical(rotate);\n const outWidth = isVertical ? crop.height : crop.width;\n const outHeight = isVertical ? crop.width : crop.height;\n canvas.width = Math.ceil(outWidth);\n canvas.height = Math.ceil(outHeight);\n context.save();\n context.fillStyle = Color.shared.setValue(color).toHex();\n context.fillRect(0, 0, outWidth, outHeight);\n context.globalCompositeOperation = \"multiply\";\n const source = canvasUtils.getCanvasSource(texture);\n if (!source) {\n context.restore();\n return;\n }\n if (rotate) {\n canvasUtils._applyInverseRotation(context, rotate, crop.width, crop.height);\n }\n context.drawImage(\n source,\n crop.x,\n crop.y,\n crop.width,\n crop.height,\n 0,\n 0,\n crop.width,\n crop.height\n );\n context.globalCompositeOperation = \"destination-atop\";\n context.drawImage(\n source,\n crop.x,\n crop.y,\n crop.width,\n crop.height,\n 0,\n 0,\n crop.width,\n crop.height\n );\n context.restore();\n },\n tintWithOverlay: (texture, color, canvas) => {\n const context = canvas.getContext(\"2d\");\n const crop = texture.frame.clone();\n const resolution = texture.source._resolution ?? texture.source.resolution ?? 1;\n const rotate = texture.rotate;\n crop.x *= resolution;\n crop.y *= resolution;\n crop.width *= resolution;\n crop.height *= resolution;\n const isVertical = groupD8.isVertical(rotate);\n const outWidth = isVertical ? crop.height : crop.width;\n const outHeight = isVertical ? crop.width : crop.height;\n canvas.width = Math.ceil(outWidth);\n canvas.height = Math.ceil(outHeight);\n context.save();\n context.globalCompositeOperation = \"copy\";\n context.fillStyle = Color.shared.setValue(color).toHex();\n context.fillRect(0, 0, outWidth, outHeight);\n context.globalCompositeOperation = \"destination-atop\";\n const source = canvasUtils.getCanvasSource(texture);\n if (!source) {\n context.restore();\n return;\n }\n if (rotate) {\n canvasUtils._applyInverseRotation(context, rotate, crop.width, crop.height);\n }\n context.drawImage(\n source,\n crop.x,\n crop.y,\n crop.width,\n crop.height,\n 0,\n 0,\n crop.width,\n crop.height\n );\n context.restore();\n },\n tintWithPerPixel: (texture, color, canvas) => {\n const context = canvas.getContext(\"2d\");\n const crop = texture.frame.clone();\n const resolution = texture.source._resolution ?? texture.source.resolution ?? 1;\n const rotate = texture.rotate;\n crop.x *= resolution;\n crop.y *= resolution;\n crop.width *= resolution;\n crop.height *= resolution;\n const isVertical = groupD8.isVertical(rotate);\n const outWidth = isVertical ? crop.height : crop.width;\n const outHeight = isVertical ? crop.width : crop.height;\n canvas.width = Math.ceil(outWidth);\n canvas.height = Math.ceil(outHeight);\n context.save();\n context.globalCompositeOperation = \"copy\";\n const source = canvasUtils.getCanvasSource(texture);\n if (!source) {\n context.restore();\n return;\n }\n if (rotate) {\n canvasUtils._applyInverseRotation(context, rotate, crop.width, crop.height);\n }\n context.drawImage(\n source,\n crop.x,\n crop.y,\n crop.width,\n crop.height,\n 0,\n 0,\n crop.width,\n crop.height\n );\n context.restore();\n const r = color >> 16 & 255;\n const g = color >> 8 & 255;\n const b = color & 255;\n const imageData = context.getImageData(0, 0, outWidth, outHeight);\n const data = imageData.data;\n for (let i = 0; i < data.length; i += 4) {\n data[i] = data[i] * r / 255;\n data[i + 1] = data[i + 1] * g / 255;\n data[i + 2] = data[i + 2] * b / 255;\n }\n context.putImageData(imageData, 0, 0);\n },\n /**\n * Applies inverse rotation transform to context for texture packer rotation compensation.\n * Supports all 16 groupD8 symmetries (rotations and reflections).\n * @param context - Canvas 2D context\n * @param rotate - The groupD8 rotation value\n * @param srcWidth - Source crop width (before rotation)\n * @param srcHeight - Source crop height (before rotation)\n */\n _applyInverseRotation: (context, rotate, srcWidth, srcHeight) => {\n const inv = groupD8.inv(rotate);\n const a = groupD8.uX(inv);\n const b = groupD8.uY(inv);\n const c = groupD8.vX(inv);\n const d = groupD8.vY(inv);\n const tx = -Math.min(0, a * srcWidth, c * srcHeight, a * srcWidth + c * srcHeight);\n const ty = -Math.min(0, b * srcWidth, d * srcHeight, b * srcWidth + d * srcHeight);\n context.transform(a, b, c, d, tx, ty);\n }\n};\ncanvasUtils.tintMethod = canvasUtils.canUseMultiply ? canvasUtils.tintWithMultiply : canvasUtils.tintWithPerPixel;\n\nexport { canvasUtils };\n//# sourceMappingURL=canvasUtils.mjs.map\n"],"names":["canUseNewCanvasBlendModesValue","createColoredCanvas","color","canvas","DOMAdapter","context","canUseNewCanvasBlendModes","magenta","yellow","imageData","data","canvasUtils","texture","source","resource","isPMA","resourceWidth","resourceHeight","needsResize","cached","bytes","i","a","alphaInv","sprite","stringColor","Color","cache","cachedCanvas","resourceId","pattern","matrix","invert","patternAny","DOMMatrixCtor","domMatrix","crop","resolution","rotate","isVertical","groupD8","outWidth","outHeight","r","g","b","srcWidth","srcHeight","inv","c","d","tx","ty"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -0,0 +1,12 @@
1
+ export type ViviWebErrorCode = "VIVI_WEB_INVALID_SOURCE" | "VIVI_WEB_FETCH_FAILED" | "VIVI_WEB_PARSE_FAILED" | "VIVI_WEB_VALIDATION_FAILED" | "VIVI_WEB_LIMIT_EXCEEDED" | "VIVI_WEB_TEXTURE_FAILED" | "VIVI_WEB_RENDERER_UNAVAILABLE" | "VIVI_WEB_INVALID_INPUT" | "VIVI_WEB_UNKNOWN_INPUT" | "VIVI_WEB_DISPOSED" | "VIVI_WEB_ABORTED" | "VIVI_WEB_INTERNAL";
2
+ export type ViviWebErrorDetails = Readonly<Record<string, string | number | boolean>>;
3
+ export declare class ViviWebError extends Error {
4
+ readonly code: ViviWebErrorCode;
5
+ readonly details: ViviWebErrorDetails;
6
+ constructor(code: ViviWebErrorCode, message: string, options?: {
7
+ cause?: unknown;
8
+ details?: ViviWebErrorDetails;
9
+ });
10
+ }
11
+ export declare function isViviWebError(error: unknown): error is ViviWebError;
12
+ export declare function toViviWebError(error: unknown, fallbackCode: ViviWebErrorCode, fallbackMessage: string): ViviWebError;
@@ -0,0 +1,22 @@
1
+ import { T as a, a as p } from "./index-CW8mx7yF.js";
2
+ const d = {};
3
+ function f(r, o, u) {
4
+ let e = 2166136261;
5
+ for (let t = 0; t < o; t++)
6
+ e ^= r[t].uid, e = Math.imul(e, 16777619), e >>>= 0;
7
+ return d[e] || l(r, o, e, u);
8
+ }
9
+ function l(r, o, u, e) {
10
+ const t = {};
11
+ let c = 0;
12
+ for (let n = 0; n < e; n++) {
13
+ const s = n < o ? r[n] : a.EMPTY.source;
14
+ t[c++] = s.source, t[c++] = s.style;
15
+ }
16
+ const i = new p(t);
17
+ return d[u] = i, i;
18
+ }
19
+ export {
20
+ f as g
21
+ };
22
+ //# sourceMappingURL=getTextureBatchBindGroup-BYhXfZM4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTextureBatchBindGroup-BYhXfZM4.js","sources":["../../../node_modules/pixi.js/lib/rendering/batcher/gpu/getTextureBatchBindGroup.mjs"],"sourcesContent":["import { BindGroup } from '../../renderers/gpu/shader/BindGroup.mjs';\nimport { Texture } from '../../renderers/shared/texture/Texture.mjs';\n\n\"use strict\";\nconst cachedGroups = {};\nfunction getTextureBatchBindGroup(textures, size, maxTextures) {\n let uid = 2166136261;\n for (let i = 0; i < size; i++) {\n uid ^= textures[i].uid;\n uid = Math.imul(uid, 16777619);\n uid >>>= 0;\n }\n return cachedGroups[uid] || generateTextureBatchBindGroup(textures, size, uid, maxTextures);\n}\nfunction generateTextureBatchBindGroup(textures, size, key, maxTextures) {\n const bindGroupResources = {};\n let bindIndex = 0;\n for (let i = 0; i < maxTextures; i++) {\n const texture = i < size ? textures[i] : Texture.EMPTY.source;\n bindGroupResources[bindIndex++] = texture.source;\n bindGroupResources[bindIndex++] = texture.style;\n }\n const bindGroup = new BindGroup(bindGroupResources);\n cachedGroups[key] = bindGroup;\n return bindGroup;\n}\n\nexport { getTextureBatchBindGroup };\n//# sourceMappingURL=getTextureBatchBindGroup.mjs.map\n"],"names":["cachedGroups","getTextureBatchBindGroup","textures","size","maxTextures","uid","i","generateTextureBatchBindGroup","key","bindGroupResources","bindIndex","texture","Texture","bindGroup","BindGroup"],"mappings":";AAIA,MAAMA,IAAe,CAAA;AACrB,SAASC,EAAyBC,GAAUC,GAAMC,GAAa;AAC7D,MAAIC,IAAM;AACV,WAASC,IAAI,GAAGA,IAAIH,GAAMG;AACxB,IAAAD,KAAOH,EAASI,CAAC,EAAE,KACnBD,IAAM,KAAK,KAAKA,GAAK,QAAQ,GAC7BA,OAAS;AAEX,SAAOL,EAAaK,CAAG,KAAKE,EAA8BL,GAAUC,GAAME,GAAKD,CAAW;AAC5F;AACA,SAASG,EAA8BL,GAAUC,GAAMK,GAAKJ,GAAa;AACvE,QAAMK,IAAqB,CAAA;AAC3B,MAAIC,IAAY;AAChB,WAASJ,IAAI,GAAGA,IAAIF,GAAaE,KAAK;AACpC,UAAMK,IAAUL,IAAIH,IAAOD,EAASI,CAAC,IAAIM,EAAQ,MAAM;AACvD,IAAAH,EAAmBC,GAAW,IAAIC,EAAQ,QAC1CF,EAAmBC,GAAW,IAAIC,EAAQ;AAAA,EAC5C;AACA,QAAME,IAAY,IAAIC,EAAUL,CAAkB;AAClD,SAAAT,EAAaQ,CAAG,IAAIK,GACbA;AACT;","x_google_ignoreList":[0]}