@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.
- package/LICENSE +160 -0
- package/README.md +201 -0
- package/dist/CanvasPool-CASccukD.js +48 -0
- package/dist/CanvasPool-CASccukD.js.map +1 -0
- package/dist/CanvasRenderer-BWDoXN0L.js +5750 -0
- package/dist/CanvasRenderer-BWDoXN0L.js.map +1 -0
- package/dist/GpuStencilModesToPixi-c2lsBIrd.js +221 -0
- package/dist/GpuStencilModesToPixi-c2lsBIrd.js.map +1 -0
- package/dist/RenderTargetSystem-BCowAg_f.js +3493 -0
- package/dist/RenderTargetSystem-BCowAg_f.js.map +1 -0
- package/dist/WebGLRenderer-KKZauisz.js +2236 -0
- package/dist/WebGLRenderer-KKZauisz.js.map +1 -0
- package/dist/WebGPURenderer-xmqgPtcF.js +1632 -0
- package/dist/WebGPURenderer-xmqgPtcF.js.map +1 -0
- package/dist/auto-register.d.ts +1 -0
- package/dist/auto-register.js +3 -0
- package/dist/auto-register.js.map +1 -0
- package/dist/browserAll-DQ0eWekj.js +1872 -0
- package/dist/browserAll-DQ0eWekj.js.map +1 -0
- package/dist/canvasUtils-BSaR9Fot.js +210 -0
- package/dist/canvasUtils-BSaR9Fot.js.map +1 -0
- package/dist/errors.d.ts +12 -0
- package/dist/getTextureBatchBindGroup-BYhXfZM4.js +22 -0
- package/dist/getTextureBatchBindGroup-BYhXfZM4.js.map +1 -0
- package/dist/index-CW8mx7yF.js +18805 -0
- package/dist/index-CW8mx7yF.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/model-loader.d.ts +42 -0
- package/dist/player.d.ts +85 -0
- package/dist/vivi-model-element.d.ts +65 -0
- package/dist/vivi2d.es.js +11 -0
- package/dist/vivi2d.es.js.map +1 -0
- package/dist/vivi2d.umd.js +1020 -0
- package/dist/vivi2d.umd.js.map +1 -0
- package/dist/webworkerAll-oTmmI2Qm.js +694 -0
- package/dist/webworkerAll-oTmmI2Qm.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import { ao as m, a8 as l, S as a } from "./index-CW8mx7yF.js";
|
|
2
|
+
const c = {
|
|
3
|
+
name: "local-uniform-bit",
|
|
4
|
+
vertex: {
|
|
5
|
+
header: (
|
|
6
|
+
/* wgsl */
|
|
7
|
+
`
|
|
8
|
+
|
|
9
|
+
struct LocalUniforms {
|
|
10
|
+
uTransformMatrix:mat3x3<f32>,
|
|
11
|
+
uColor:vec4<f32>,
|
|
12
|
+
uRound:f32,
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@group(1) @binding(0) var<uniform> localUniforms : LocalUniforms;
|
|
16
|
+
`
|
|
17
|
+
),
|
|
18
|
+
main: (
|
|
19
|
+
/* wgsl */
|
|
20
|
+
`
|
|
21
|
+
vColor *= localUniforms.uColor;
|
|
22
|
+
modelMatrix *= localUniforms.uTransformMatrix;
|
|
23
|
+
`
|
|
24
|
+
),
|
|
25
|
+
end: (
|
|
26
|
+
/* wgsl */
|
|
27
|
+
`
|
|
28
|
+
if(localUniforms.uRound == 1)
|
|
29
|
+
{
|
|
30
|
+
vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
|
|
31
|
+
}
|
|
32
|
+
`
|
|
33
|
+
)
|
|
34
|
+
}
|
|
35
|
+
}, x = {
|
|
36
|
+
...c,
|
|
37
|
+
vertex: {
|
|
38
|
+
...c.vertex,
|
|
39
|
+
// replace the group!
|
|
40
|
+
header: c.vertex.header.replace("group(1)", "group(2)")
|
|
41
|
+
}
|
|
42
|
+
}, d = {
|
|
43
|
+
name: "local-uniform-bit",
|
|
44
|
+
vertex: {
|
|
45
|
+
header: (
|
|
46
|
+
/* glsl */
|
|
47
|
+
`
|
|
48
|
+
|
|
49
|
+
uniform mat3 uTransformMatrix;
|
|
50
|
+
uniform vec4 uColor;
|
|
51
|
+
uniform float uRound;
|
|
52
|
+
`
|
|
53
|
+
),
|
|
54
|
+
main: (
|
|
55
|
+
/* glsl */
|
|
56
|
+
`
|
|
57
|
+
vColor *= uColor;
|
|
58
|
+
modelMatrix = uTransformMatrix;
|
|
59
|
+
`
|
|
60
|
+
),
|
|
61
|
+
end: (
|
|
62
|
+
/* glsl */
|
|
63
|
+
`
|
|
64
|
+
if(uRound == 1.)
|
|
65
|
+
{
|
|
66
|
+
gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
|
|
67
|
+
}
|
|
68
|
+
`
|
|
69
|
+
)
|
|
70
|
+
}
|
|
71
|
+
}, b = {
|
|
72
|
+
name: "texture-bit",
|
|
73
|
+
vertex: {
|
|
74
|
+
header: (
|
|
75
|
+
/* wgsl */
|
|
76
|
+
`
|
|
77
|
+
|
|
78
|
+
struct TextureUniforms {
|
|
79
|
+
uTextureMatrix:mat3x3<f32>,
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@group(2) @binding(2) var<uniform> textureUniforms : TextureUniforms;
|
|
83
|
+
`
|
|
84
|
+
),
|
|
85
|
+
main: (
|
|
86
|
+
/* wgsl */
|
|
87
|
+
`
|
|
88
|
+
uv = (textureUniforms.uTextureMatrix * vec3(uv, 1.0)).xy;
|
|
89
|
+
`
|
|
90
|
+
)
|
|
91
|
+
},
|
|
92
|
+
fragment: {
|
|
93
|
+
header: (
|
|
94
|
+
/* wgsl */
|
|
95
|
+
`
|
|
96
|
+
@group(2) @binding(0) var uTexture: texture_2d<f32>;
|
|
97
|
+
@group(2) @binding(1) var uSampler: sampler;
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
`
|
|
101
|
+
),
|
|
102
|
+
main: (
|
|
103
|
+
/* wgsl */
|
|
104
|
+
`
|
|
105
|
+
outColor = textureSample(uTexture, uSampler, vUV);
|
|
106
|
+
`
|
|
107
|
+
)
|
|
108
|
+
}
|
|
109
|
+
}, v = {
|
|
110
|
+
name: "texture-bit",
|
|
111
|
+
vertex: {
|
|
112
|
+
header: (
|
|
113
|
+
/* glsl */
|
|
114
|
+
`
|
|
115
|
+
uniform mat3 uTextureMatrix;
|
|
116
|
+
`
|
|
117
|
+
),
|
|
118
|
+
main: (
|
|
119
|
+
/* glsl */
|
|
120
|
+
`
|
|
121
|
+
uv = (uTextureMatrix * vec3(uv, 1.0)).xy;
|
|
122
|
+
`
|
|
123
|
+
)
|
|
124
|
+
},
|
|
125
|
+
fragment: {
|
|
126
|
+
header: (
|
|
127
|
+
/* glsl */
|
|
128
|
+
`
|
|
129
|
+
uniform sampler2D uTexture;
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
`
|
|
133
|
+
),
|
|
134
|
+
main: (
|
|
135
|
+
/* glsl */
|
|
136
|
+
`
|
|
137
|
+
outColor = texture(uTexture, vUV);
|
|
138
|
+
`
|
|
139
|
+
)
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
function M(n, u) {
|
|
143
|
+
for (const r in n.attributes) {
|
|
144
|
+
const t = n.attributes[r], o = u[r];
|
|
145
|
+
o ? (t.format ?? (t.format = o.format), t.offset ?? (t.offset = o.offset), t.instance ?? (t.instance = o.instance)) : m(`Attribute ${r} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`);
|
|
146
|
+
}
|
|
147
|
+
f(n);
|
|
148
|
+
}
|
|
149
|
+
function f(n) {
|
|
150
|
+
const { buffers: u, attributes: r } = n, t = {}, o = {};
|
|
151
|
+
for (const s in u) {
|
|
152
|
+
const e = u[s];
|
|
153
|
+
t[e.uid] = 0, o[e.uid] = 0;
|
|
154
|
+
}
|
|
155
|
+
for (const s in r) {
|
|
156
|
+
const e = r[s];
|
|
157
|
+
t[e.buffer.uid] += l(e.format).stride;
|
|
158
|
+
}
|
|
159
|
+
for (const s in r) {
|
|
160
|
+
const e = r[s];
|
|
161
|
+
e.stride ?? (e.stride = t[e.buffer.uid]), e.start ?? (e.start = o[e.buffer.uid]), o[e.buffer.uid] += l(e.format).stride;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
const i = [];
|
|
165
|
+
i[a.NONE] = void 0;
|
|
166
|
+
i[a.DISABLED] = {
|
|
167
|
+
stencilWriteMask: 0,
|
|
168
|
+
stencilReadMask: 0
|
|
169
|
+
};
|
|
170
|
+
i[a.RENDERING_MASK_ADD] = {
|
|
171
|
+
stencilFront: {
|
|
172
|
+
compare: "equal",
|
|
173
|
+
passOp: "increment-clamp"
|
|
174
|
+
},
|
|
175
|
+
stencilBack: {
|
|
176
|
+
compare: "equal",
|
|
177
|
+
passOp: "increment-clamp"
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
i[a.RENDERING_MASK_REMOVE] = {
|
|
181
|
+
stencilFront: {
|
|
182
|
+
compare: "equal",
|
|
183
|
+
passOp: "decrement-clamp"
|
|
184
|
+
},
|
|
185
|
+
stencilBack: {
|
|
186
|
+
compare: "equal",
|
|
187
|
+
passOp: "decrement-clamp"
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
i[a.MASK_ACTIVE] = {
|
|
191
|
+
stencilWriteMask: 0,
|
|
192
|
+
stencilFront: {
|
|
193
|
+
compare: "equal",
|
|
194
|
+
passOp: "keep"
|
|
195
|
+
},
|
|
196
|
+
stencilBack: {
|
|
197
|
+
compare: "equal",
|
|
198
|
+
passOp: "keep"
|
|
199
|
+
}
|
|
200
|
+
};
|
|
201
|
+
i[a.INVERSE_MASK_ACTIVE] = {
|
|
202
|
+
stencilWriteMask: 0,
|
|
203
|
+
stencilFront: {
|
|
204
|
+
compare: "not-equal",
|
|
205
|
+
passOp: "keep"
|
|
206
|
+
},
|
|
207
|
+
stencilBack: {
|
|
208
|
+
compare: "not-equal",
|
|
209
|
+
passOp: "keep"
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
export {
|
|
213
|
+
i as G,
|
|
214
|
+
d as a,
|
|
215
|
+
x as b,
|
|
216
|
+
v as c,
|
|
217
|
+
M as e,
|
|
218
|
+
c as l,
|
|
219
|
+
b as t
|
|
220
|
+
};
|
|
221
|
+
//# sourceMappingURL=GpuStencilModesToPixi-c2lsBIrd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GpuStencilModesToPixi-c2lsBIrd.js","sources":["../../../node_modules/pixi.js/lib/rendering/high-shader/shader-bits/localUniformBit.mjs","../../../node_modules/pixi.js/lib/rendering/high-shader/shader-bits/textureBit.mjs","../../../node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/ensureAttributes.mjs","../../../node_modules/pixi.js/lib/rendering/renderers/gpu/state/GpuStencilModesToPixi.mjs"],"sourcesContent":["\"use strict\";\nconst localUniformBit = {\n name: \"local-uniform-bit\",\n vertex: {\n header: (\n /* wgsl */\n `\n\n struct LocalUniforms {\n uTransformMatrix:mat3x3<f32>,\n uColor:vec4<f32>,\n uRound:f32,\n }\n\n @group(1) @binding(0) var<uniform> localUniforms : LocalUniforms;\n `\n ),\n main: (\n /* wgsl */\n `\n vColor *= localUniforms.uColor;\n modelMatrix *= localUniforms.uTransformMatrix;\n `\n ),\n end: (\n /* wgsl */\n `\n if(localUniforms.uRound == 1)\n {\n vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);\n }\n `\n )\n }\n};\nconst localUniformBitGroup2 = {\n ...localUniformBit,\n vertex: {\n ...localUniformBit.vertex,\n // replace the group!\n header: localUniformBit.vertex.header.replace(\"group(1)\", \"group(2)\")\n }\n};\nconst localUniformBitGl = {\n name: \"local-uniform-bit\",\n vertex: {\n header: (\n /* glsl */\n `\n\n uniform mat3 uTransformMatrix;\n uniform vec4 uColor;\n uniform float uRound;\n `\n ),\n main: (\n /* glsl */\n `\n vColor *= uColor;\n modelMatrix = uTransformMatrix;\n `\n ),\n end: (\n /* glsl */\n `\n if(uRound == 1.)\n {\n gl_Position.xy = roundPixels(gl_Position.xy, uResolution);\n }\n `\n )\n }\n};\n\nexport { localUniformBit, localUniformBitGl, localUniformBitGroup2 };\n//# sourceMappingURL=localUniformBit.mjs.map\n","\"use strict\";\nconst textureBit = {\n name: \"texture-bit\",\n vertex: {\n header: (\n /* wgsl */\n `\n\n struct TextureUniforms {\n uTextureMatrix:mat3x3<f32>,\n }\n\n @group(2) @binding(2) var<uniform> textureUniforms : TextureUniforms;\n `\n ),\n main: (\n /* wgsl */\n `\n uv = (textureUniforms.uTextureMatrix * vec3(uv, 1.0)).xy;\n `\n )\n },\n fragment: {\n header: (\n /* wgsl */\n `\n @group(2) @binding(0) var uTexture: texture_2d<f32>;\n @group(2) @binding(1) var uSampler: sampler;\n\n\n `\n ),\n main: (\n /* wgsl */\n `\n outColor = textureSample(uTexture, uSampler, vUV);\n `\n )\n }\n};\nconst textureBitGl = {\n name: \"texture-bit\",\n vertex: {\n header: (\n /* glsl */\n `\n uniform mat3 uTextureMatrix;\n `\n ),\n main: (\n /* glsl */\n `\n uv = (uTextureMatrix * vec3(uv, 1.0)).xy;\n `\n )\n },\n fragment: {\n header: (\n /* glsl */\n `\n uniform sampler2D uTexture;\n\n\n `\n ),\n main: (\n /* glsl */\n `\n outColor = texture(uTexture, vUV);\n `\n )\n }\n};\n\nexport { textureBit, textureBitGl };\n//# sourceMappingURL=textureBit.mjs.map\n","import { warn } from '../../../../../utils/logging/warn.mjs';\nimport { getAttributeInfoFromFormat } from '../../../shared/geometry/utils/getAttributeInfoFromFormat.mjs';\n\n\"use strict\";\nfunction ensureAttributes(geometry, extractedData) {\n for (const i in geometry.attributes) {\n const attribute = geometry.attributes[i];\n const attributeData = extractedData[i];\n if (attributeData) {\n attribute.format ?? (attribute.format = attributeData.format);\n attribute.offset ?? (attribute.offset = attributeData.offset);\n attribute.instance ?? (attribute.instance = attributeData.instance);\n } else {\n warn(`Attribute ${i} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`);\n }\n }\n ensureStartAndStride(geometry);\n}\nfunction ensureStartAndStride(geometry) {\n const { buffers, attributes } = geometry;\n const tempStride = {};\n const tempStart = {};\n for (const j in buffers) {\n const buffer = buffers[j];\n tempStride[buffer.uid] = 0;\n tempStart[buffer.uid] = 0;\n }\n for (const j in attributes) {\n const attribute = attributes[j];\n tempStride[attribute.buffer.uid] += getAttributeInfoFromFormat(attribute.format).stride;\n }\n for (const j in attributes) {\n const attribute = attributes[j];\n attribute.stride ?? (attribute.stride = tempStride[attribute.buffer.uid]);\n attribute.start ?? (attribute.start = tempStart[attribute.buffer.uid]);\n tempStart[attribute.buffer.uid] += getAttributeInfoFromFormat(attribute.format).stride;\n }\n}\n\nexport { ensureAttributes };\n//# sourceMappingURL=ensureAttributes.mjs.map\n","import { STENCIL_MODES } from '../../shared/state/const.mjs';\n\n\"use strict\";\nconst GpuStencilModesToPixi = [];\nGpuStencilModesToPixi[STENCIL_MODES.NONE] = void 0;\nGpuStencilModesToPixi[STENCIL_MODES.DISABLED] = {\n stencilWriteMask: 0,\n stencilReadMask: 0\n};\nGpuStencilModesToPixi[STENCIL_MODES.RENDERING_MASK_ADD] = {\n stencilFront: {\n compare: \"equal\",\n passOp: \"increment-clamp\"\n },\n stencilBack: {\n compare: \"equal\",\n passOp: \"increment-clamp\"\n }\n};\nGpuStencilModesToPixi[STENCIL_MODES.RENDERING_MASK_REMOVE] = {\n stencilFront: {\n compare: \"equal\",\n passOp: \"decrement-clamp\"\n },\n stencilBack: {\n compare: \"equal\",\n passOp: \"decrement-clamp\"\n }\n};\nGpuStencilModesToPixi[STENCIL_MODES.MASK_ACTIVE] = {\n stencilWriteMask: 0,\n stencilFront: {\n compare: \"equal\",\n passOp: \"keep\"\n },\n stencilBack: {\n compare: \"equal\",\n passOp: \"keep\"\n }\n};\nGpuStencilModesToPixi[STENCIL_MODES.INVERSE_MASK_ACTIVE] = {\n stencilWriteMask: 0,\n stencilFront: {\n compare: \"not-equal\",\n passOp: \"keep\"\n },\n stencilBack: {\n compare: \"not-equal\",\n passOp: \"keep\"\n }\n};\n\nexport { GpuStencilModesToPixi };\n//# sourceMappingURL=GpuStencilModesToPixi.mjs.map\n"],"names":["localUniformBit","localUniformBitGroup2","localUniformBitGl","textureBit","textureBitGl","ensureAttributes","geometry","extractedData","i","attribute","attributeData","warn","ensureStartAndStride","buffers","attributes","tempStride","tempStart","j","buffer","getAttributeInfoFromFormat","GpuStencilModesToPixi","STENCIL_MODES"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
|