@eva/plugin-renderer 2.0.0-beta.1 → 2.0.0-beta.3
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/dist/EVA.plugin.renderer.js +270 -619
- package/dist/EVA.plugin.renderer.min.js +1 -1
- package/dist/plugin-renderer.cjs.js +233 -490
- package/dist/plugin-renderer.cjs.prod.js +16 -1
- package/dist/plugin-renderer.esm.js +231 -488
- package/package.json +3 -3
|
@@ -18,31 +18,6 @@ MERCHANTABLITY OR NON-INFRINGEMENT.
|
|
|
18
18
|
See the Apache Version 2.0 License for specific language governing permissions
|
|
19
19
|
and limitations under the License.
|
|
20
20
|
***************************************************************************** */
|
|
21
|
-
/* global Reflect, Promise */
|
|
22
|
-
|
|
23
|
-
var extendStatics = function(d, b) {
|
|
24
|
-
extendStatics = Object.setPrototypeOf ||
|
|
25
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
26
|
-
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
27
|
-
return extendStatics(d, b);
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
function __extends(d, b) {
|
|
31
|
-
extendStatics(d, b);
|
|
32
|
-
function __() { this.constructor = d; }
|
|
33
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
var __assign = function() {
|
|
37
|
-
__assign = Object.assign || function __assign(t) {
|
|
38
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
39
|
-
s = arguments[i];
|
|
40
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
41
|
-
}
|
|
42
|
-
return t;
|
|
43
|
-
};
|
|
44
|
-
return __assign.apply(this, arguments);
|
|
45
|
-
};
|
|
46
21
|
|
|
47
22
|
function __decorate(decorators, target, key, desc) {
|
|
48
23
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -58,293 +33,137 @@ function __awaiter(thisArg, _arguments, P, generator) {
|
|
|
58
33
|
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
|
59
34
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
60
35
|
});
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
function __generator(thisArg, body) {
|
|
64
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
65
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
66
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
67
|
-
function step(op) {
|
|
68
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
69
|
-
while (_) try {
|
|
70
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
71
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
72
|
-
switch (op[0]) {
|
|
73
|
-
case 0: case 1: t = op; break;
|
|
74
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
75
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
76
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
77
|
-
default:
|
|
78
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
79
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
80
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
81
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
82
|
-
if (t[2]) _.ops.pop();
|
|
83
|
-
_.trys.pop(); continue;
|
|
84
|
-
}
|
|
85
|
-
op = body.call(thisArg, _);
|
|
86
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
87
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
function __values(o) {
|
|
92
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
|
|
93
|
-
if (m) return m.call(o);
|
|
94
|
-
return {
|
|
95
|
-
next: function () {
|
|
96
|
-
if (o && i >= o.length) o = void 0;
|
|
97
|
-
return { value: o && o[i++], done: !o };
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
function __read(o, n) {
|
|
103
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
104
|
-
if (!m) return o;
|
|
105
|
-
var i = m.call(o), r, ar = [], e;
|
|
106
|
-
try {
|
|
107
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
108
|
-
}
|
|
109
|
-
catch (error) { e = { error: error }; }
|
|
110
|
-
finally {
|
|
111
|
-
try {
|
|
112
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
113
|
-
}
|
|
114
|
-
finally { if (e) throw e.error; }
|
|
115
|
-
}
|
|
116
|
-
return ar;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
function __spread() {
|
|
120
|
-
for (var ar = [], i = 0; i < arguments.length; i++)
|
|
121
|
-
ar = ar.concat(__read(arguments[i]));
|
|
122
|
-
return ar;
|
|
123
36
|
}
|
|
124
37
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
var game = _a.game, rendererSystem = _a.rendererSystem;
|
|
38
|
+
class RendererManager {
|
|
39
|
+
constructor({ game, rendererSystem }) {
|
|
128
40
|
this.renderers = [];
|
|
129
41
|
this.game = game;
|
|
130
42
|
this.rendererSystem = rendererSystem;
|
|
131
43
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
try {
|
|
139
|
-
for (var renderers_1 = __values(renderers), renderers_1_1 = renderers_1.next(); !renderers_1_1.done; renderers_1_1 = renderers_1.next()) {
|
|
140
|
-
var renderer = renderers_1_1.value;
|
|
141
|
-
renderer.game = this.game;
|
|
142
|
-
renderer.rendererManager = this.rendererSystem.rendererManager;
|
|
143
|
-
renderer.containerManager = this.rendererSystem.containerManager;
|
|
144
|
-
this.renderers.push(renderer);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
148
|
-
finally {
|
|
149
|
-
try {
|
|
150
|
-
if (renderers_1_1 && !renderers_1_1.done && (_a = renderers_1.return)) _a.call(renderers_1);
|
|
151
|
-
}
|
|
152
|
-
finally { if (e_1) throw e_1.error; }
|
|
44
|
+
register(...renderers) {
|
|
45
|
+
for (const renderer of renderers) {
|
|
46
|
+
renderer.game = this.game;
|
|
47
|
+
renderer.rendererManager = this.rendererSystem.rendererManager;
|
|
48
|
+
renderer.containerManager = this.rendererSystem.containerManager;
|
|
49
|
+
this.renderers.push(renderer);
|
|
153
50
|
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
if (props) {
|
|
164
|
-
if ([OBSERVER_TYPE.ADD, OBSERVER_TYPE.REMOVE].indexOf(changed.type) > -1) {
|
|
165
|
-
try {
|
|
166
|
-
renderer.componentChanged && renderer.componentChanged(changed);
|
|
167
|
-
}
|
|
168
|
-
catch (e) {
|
|
169
|
-
console.error("gameObject: " + changed.gameObject.name + ", " + changed.componentName + " is error.", changed, e);
|
|
170
|
-
}
|
|
171
|
-
continue;
|
|
51
|
+
}
|
|
52
|
+
componentChanged(changes) {
|
|
53
|
+
for (const changed of changes) {
|
|
54
|
+
for (const renderer of this.renderers) {
|
|
55
|
+
const props = renderer.observerInfo[changed.componentName];
|
|
56
|
+
if (props) {
|
|
57
|
+
if ([OBSERVER_TYPE.ADD, OBSERVER_TYPE.REMOVE].indexOf(changed.type) > -1) {
|
|
58
|
+
try {
|
|
59
|
+
renderer.componentChanged && renderer.componentChanged(changed);
|
|
172
60
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
});
|
|
176
|
-
if (index > -1) {
|
|
177
|
-
try {
|
|
178
|
-
renderer.componentChanged && renderer.componentChanged(changed);
|
|
179
|
-
}
|
|
180
|
-
catch (e) {
|
|
181
|
-
console.error("gameObject: " + (changed.gameObject && changed.gameObject.name) + ", " + changed.componentName + " is componentChanged error.", changed, e);
|
|
182
|
-
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
console.error(`gameObject: ${changed.gameObject.name}, ${changed.componentName} is error.`, changed, e);
|
|
183
63
|
}
|
|
64
|
+
continue;
|
|
184
65
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
};
|
|
195
|
-
var this_1 = this;
|
|
196
|
-
try {
|
|
197
|
-
for (var changes_1 = __values(changes), changes_1_1 = changes_1.next(); !changes_1_1.done; changes_1_1 = changes_1.next()) {
|
|
198
|
-
var changed = changes_1_1.value;
|
|
199
|
-
_loop_1(changed);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
203
|
-
finally {
|
|
204
|
-
try {
|
|
205
|
-
if (changes_1_1 && !changes_1_1.done && (_a = changes_1.return)) _a.call(changes_1);
|
|
206
|
-
}
|
|
207
|
-
finally { if (e_2) throw e_2.error; }
|
|
208
|
-
}
|
|
209
|
-
};
|
|
210
|
-
RendererManager.prototype.update = function (gameObject) {
|
|
211
|
-
var e_4, _a, e_5, _b;
|
|
212
|
-
try {
|
|
213
|
-
for (var _c = __values(gameObject.components), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
214
|
-
var component = _d.value;
|
|
215
|
-
try {
|
|
216
|
-
for (var _e = (e_5 = void 0, __values(this.renderers)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
217
|
-
var renderer = _f.value;
|
|
218
|
-
var cache = [];
|
|
219
|
-
var props = renderer.observerInfo[component.name];
|
|
220
|
-
if (props && cache.indexOf(gameObject) === -1) {
|
|
221
|
-
cache.push(gameObject);
|
|
222
|
-
try {
|
|
223
|
-
renderer.rendererUpdate && renderer.rendererUpdate(gameObject);
|
|
224
|
-
}
|
|
225
|
-
catch (e) {
|
|
226
|
-
console.info("gameObject: " + gameObject.name + ", " + component.name + " is update error", e);
|
|
227
|
-
}
|
|
66
|
+
const index = props.findIndex(prop => {
|
|
67
|
+
return isEqual(prop, changed.prop);
|
|
68
|
+
});
|
|
69
|
+
if (index > -1) {
|
|
70
|
+
try {
|
|
71
|
+
renderer.componentChanged && renderer.componentChanged(changed);
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
console.error(`gameObject: ${changed.gameObject && changed.gameObject.name}, ${changed.componentName} is componentChanged error.`, changed, e);
|
|
228
75
|
}
|
|
229
76
|
}
|
|
230
77
|
}
|
|
231
|
-
|
|
232
|
-
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
update(gameObject) {
|
|
82
|
+
for (const component of gameObject.components) {
|
|
83
|
+
for (const renderer of this.renderers) {
|
|
84
|
+
const cache = [];
|
|
85
|
+
const props = renderer.observerInfo[component.name];
|
|
86
|
+
if (props && cache.indexOf(gameObject) === -1) {
|
|
87
|
+
cache.push(gameObject);
|
|
233
88
|
try {
|
|
234
|
-
|
|
89
|
+
renderer.rendererUpdate && renderer.rendererUpdate(gameObject);
|
|
90
|
+
}
|
|
91
|
+
catch (e) {
|
|
92
|
+
console.info(`gameObject: ${gameObject.name}, ${component.name} is update error`, e);
|
|
235
93
|
}
|
|
236
|
-
finally { if (e_5) throw e_5.error; }
|
|
237
94
|
}
|
|
238
95
|
}
|
|
239
96
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
try {
|
|
243
|
-
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
244
|
-
}
|
|
245
|
-
finally { if (e_4) throw e_4.error; }
|
|
246
|
-
}
|
|
247
|
-
};
|
|
248
|
-
return RendererManager;
|
|
249
|
-
}());
|
|
97
|
+
}
|
|
98
|
+
}
|
|
250
99
|
var RendererManager$1 = RendererManager;
|
|
251
100
|
|
|
252
|
-
|
|
253
|
-
|
|
101
|
+
class ContainerManager {
|
|
102
|
+
constructor() {
|
|
254
103
|
this.containerMap = {};
|
|
255
104
|
}
|
|
256
|
-
|
|
257
|
-
var name = _a.name, container = _a.container;
|
|
105
|
+
addContainer({ name, container }) {
|
|
258
106
|
this.containerMap[name] = container;
|
|
259
|
-
}
|
|
260
|
-
|
|
107
|
+
}
|
|
108
|
+
getContainer(name) {
|
|
261
109
|
return this.containerMap[name];
|
|
262
|
-
}
|
|
263
|
-
|
|
110
|
+
}
|
|
111
|
+
removeContainer(name) {
|
|
264
112
|
var _a;
|
|
265
113
|
(_a = this.containerMap[name]) === null || _a === void 0 ? void 0 : _a.destroy({ children: true });
|
|
266
114
|
delete this.containerMap[name];
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
var container = this.containerMap[name];
|
|
115
|
+
}
|
|
116
|
+
updateTransform({ name, transform }) {
|
|
117
|
+
const container = this.containerMap[name];
|
|
271
118
|
if (!container || !transform)
|
|
272
119
|
return;
|
|
273
|
-
|
|
120
|
+
const { anchor, origin, position, rotation, scale, size, skew } = transform;
|
|
274
121
|
container.rotation = rotation;
|
|
275
122
|
container.scale = scale;
|
|
276
123
|
container.pivot.x = size.width * origin.x;
|
|
277
124
|
container.pivot.y = size.height * origin.y;
|
|
278
125
|
container.skew = skew;
|
|
279
|
-
|
|
280
|
-
|
|
126
|
+
let x = position.x;
|
|
127
|
+
let y = position.y;
|
|
281
128
|
if (transform.parent) {
|
|
282
|
-
|
|
283
|
-
x = x +
|
|
284
|
-
y = y +
|
|
129
|
+
const parent = transform.parent;
|
|
130
|
+
x = x + parent.size.width * anchor.x;
|
|
131
|
+
y = y + parent.size.height * anchor.y;
|
|
285
132
|
}
|
|
286
|
-
container.position = { x
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
}());
|
|
290
|
-
var ContainerManager$1 = ContainerManager;
|
|
133
|
+
container.position = { x, y };
|
|
134
|
+
}
|
|
135
|
+
}
|
|
291
136
|
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
_this.containerManager = containerManager;
|
|
301
|
-
_this.init(system);
|
|
302
|
-
return _this;
|
|
137
|
+
let Transform = class Transform extends EventEmitter {
|
|
138
|
+
constructor({ system, containerManager }) {
|
|
139
|
+
super();
|
|
140
|
+
this.name = 'Transform';
|
|
141
|
+
this.waitRemoveIds = [];
|
|
142
|
+
this.waitChangeScenes = [];
|
|
143
|
+
this.containerManager = containerManager;
|
|
144
|
+
this.init(system);
|
|
303
145
|
}
|
|
304
|
-
|
|
305
|
-
var _this = this;
|
|
146
|
+
init(system) {
|
|
306
147
|
this.system = system;
|
|
307
|
-
this.on('changeScene',
|
|
308
|
-
|
|
309
|
-
_this.waitChangeScenes.push({ scene: scene, mode: mode, application: application });
|
|
148
|
+
this.on('changeScene', ({ scene, mode, application }) => {
|
|
149
|
+
this.waitChangeScenes.push({ scene, mode, application });
|
|
310
150
|
});
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
for (var _c = __values(this.waitRemoveIds), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
316
|
-
var id = _d.value;
|
|
317
|
-
this.containerManager.removeContainer(id);
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
321
|
-
finally {
|
|
322
|
-
try {
|
|
323
|
-
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
324
|
-
}
|
|
325
|
-
finally { if (e_1) throw e_1.error; }
|
|
151
|
+
}
|
|
152
|
+
update() {
|
|
153
|
+
for (const id of this.waitRemoveIds) {
|
|
154
|
+
this.containerManager.removeContainer(id);
|
|
326
155
|
}
|
|
327
156
|
this.waitRemoveIds = [];
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
sceneInfo.application.stage.removeChildren();
|
|
334
|
-
sceneInfo.application.stage.addChild(container);
|
|
335
|
-
}
|
|
157
|
+
for (const sceneInfo of this.waitChangeScenes) {
|
|
158
|
+
const container = this.containerManager.getContainer(sceneInfo.scene.id);
|
|
159
|
+
if (container) {
|
|
160
|
+
sceneInfo.application.stage.removeChildren();
|
|
161
|
+
sceneInfo.application.stage.addChild(container);
|
|
336
162
|
}
|
|
337
163
|
}
|
|
338
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
339
|
-
finally {
|
|
340
|
-
try {
|
|
341
|
-
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
342
|
-
}
|
|
343
|
-
finally { if (e_2) throw e_2.error; }
|
|
344
|
-
}
|
|
345
164
|
this.waitChangeScenes = [];
|
|
346
|
-
}
|
|
347
|
-
|
|
165
|
+
}
|
|
166
|
+
componentChanged(changed) {
|
|
348
167
|
if (changed.type === OBSERVER_TYPE.ADD) {
|
|
349
168
|
this.addContainer(changed);
|
|
350
169
|
}
|
|
@@ -354,48 +173,51 @@ var Transform = (function (_super) {
|
|
|
354
173
|
else if (changed.type === OBSERVER_TYPE.REMOVE) {
|
|
355
174
|
this.waitRemoveIds.push(changed.gameObject.id);
|
|
356
175
|
}
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
|
|
176
|
+
}
|
|
177
|
+
addContainer(changed) {
|
|
178
|
+
const container = new Container();
|
|
360
179
|
container.label = changed.gameObject.name;
|
|
361
180
|
this.containerManager.addContainer({
|
|
362
181
|
name: changed.gameObject.id,
|
|
363
|
-
container
|
|
182
|
+
container,
|
|
364
183
|
});
|
|
365
|
-
|
|
366
|
-
transform
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
184
|
+
const transform = changed.component;
|
|
185
|
+
Object.defineProperty(transform, 'worldTransform', {
|
|
186
|
+
get() {
|
|
187
|
+
return container.worldTransform;
|
|
188
|
+
},
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
change(changed) {
|
|
192
|
+
const transform = changed.component;
|
|
370
193
|
if (transform.parent) {
|
|
371
|
-
|
|
194
|
+
const parentContainer = this.containerManager.getContainer(transform.parent.gameObject.id);
|
|
372
195
|
parentContainer.addChild(this.containerManager.getContainer(changed.gameObject.id));
|
|
373
|
-
|
|
196
|
+
const render = changed.gameObject.transform.parent &&
|
|
374
197
|
changed.gameObject.transform.parent.gameObject.getComponent('Render');
|
|
375
198
|
if (render) {
|
|
376
199
|
render.sortDirty = true;
|
|
377
200
|
}
|
|
378
201
|
}
|
|
379
202
|
else {
|
|
380
|
-
|
|
203
|
+
const container = this.containerManager.getContainer(changed.gameObject.id);
|
|
381
204
|
delete transform.worldTransform;
|
|
382
205
|
container.parent && container.parent.removeChild(container);
|
|
383
206
|
}
|
|
384
|
-
}
|
|
385
|
-
|
|
207
|
+
}
|
|
208
|
+
destroy() {
|
|
386
209
|
this.removeAllListeners();
|
|
387
210
|
this.waitRemoveIds = null;
|
|
388
211
|
this.waitChangeScenes = null;
|
|
389
212
|
this.system = null;
|
|
390
213
|
this.containerManager = null;
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
}(EventEmitter));
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
Transform = __decorate([
|
|
217
|
+
decorators.componentObserver({
|
|
218
|
+
Transform: ['_parent'],
|
|
219
|
+
})
|
|
220
|
+
], Transform);
|
|
399
221
|
var Transform$1 = Transform;
|
|
400
222
|
|
|
401
223
|
var RENDERER_TYPE;
|
|
@@ -404,167 +226,104 @@ var RENDERER_TYPE;
|
|
|
404
226
|
RENDERER_TYPE[RENDERER_TYPE["WEBGL"] = 1] = "WEBGL";
|
|
405
227
|
RENDERER_TYPE[RENDERER_TYPE["CANVAS"] = 2] = "CANVAS";
|
|
406
228
|
})(RENDERER_TYPE || (RENDERER_TYPE = {}));
|
|
407
|
-
|
|
229
|
+
const disableScroll = renderer => {
|
|
408
230
|
renderer.events.autoPreventDefault = true;
|
|
409
231
|
renderer.canvas.style.touchAction = 'none';
|
|
410
232
|
};
|
|
411
|
-
|
|
233
|
+
const enableScroll = renderer => {
|
|
412
234
|
renderer.events.autoPreventDefault = false;
|
|
413
235
|
renderer.canvas.style.touchAction = 'auto';
|
|
414
236
|
};
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
_this.multiApps = [];
|
|
420
|
-
return _this;
|
|
237
|
+
let Renderer$1 = class Renderer extends System {
|
|
238
|
+
constructor() {
|
|
239
|
+
super(...arguments);
|
|
240
|
+
this.multiApps = [];
|
|
421
241
|
}
|
|
422
|
-
|
|
423
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
});
|
|
444
|
-
|
|
445
|
-
var scene = _a.scene, mode = _a.mode, params = _a.params;
|
|
446
|
-
var application;
|
|
447
|
-
switch (mode) {
|
|
448
|
-
case LOAD_SCENE_MODE.SINGLE:
|
|
449
|
-
application = _this.application;
|
|
450
|
-
break;
|
|
451
|
-
case LOAD_SCENE_MODE.MULTI_CANVAS:
|
|
452
|
-
application = _this.createMultiApplication({ params: params });
|
|
453
|
-
break;
|
|
454
|
-
}
|
|
455
|
-
scene.canvas = application.canvas;
|
|
456
|
-
_this.transform.emit('changeScene', {
|
|
457
|
-
scene: scene,
|
|
458
|
-
mode: mode,
|
|
459
|
-
application: application,
|
|
460
|
-
});
|
|
461
|
-
});
|
|
462
|
-
return [2];
|
|
242
|
+
init(params) {
|
|
243
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
244
|
+
this.params = params;
|
|
245
|
+
this.application = yield this.createApplication(params);
|
|
246
|
+
this.containerManager = new ContainerManager();
|
|
247
|
+
this.rendererManager = new RendererManager$1({
|
|
248
|
+
game: this.game,
|
|
249
|
+
rendererSystem: this,
|
|
250
|
+
});
|
|
251
|
+
this.game.canvas = this.application.canvas;
|
|
252
|
+
this.transform = new Transform$1({
|
|
253
|
+
system: this,
|
|
254
|
+
containerManager: this.containerManager,
|
|
255
|
+
});
|
|
256
|
+
this.game.on('sceneChanged', ({ scene, mode, params }) => {
|
|
257
|
+
let application;
|
|
258
|
+
switch (mode) {
|
|
259
|
+
case LOAD_SCENE_MODE.SINGLE:
|
|
260
|
+
application = this.application;
|
|
261
|
+
break;
|
|
262
|
+
case LOAD_SCENE_MODE.MULTI_CANVAS:
|
|
263
|
+
application = this.createMultiApplication({ params });
|
|
264
|
+
break;
|
|
463
265
|
}
|
|
266
|
+
scene.canvas = application.canvas;
|
|
267
|
+
this.transform.emit('changeScene', {
|
|
268
|
+
scene,
|
|
269
|
+
mode,
|
|
270
|
+
application,
|
|
271
|
+
});
|
|
464
272
|
});
|
|
465
273
|
});
|
|
466
|
-
}
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
for (var key in observerInfo) {
|
|
274
|
+
}
|
|
275
|
+
registerObserver(observerInfo) {
|
|
276
|
+
const thisObserverInfo = this.constructor.observerInfo;
|
|
277
|
+
for (const key in observerInfo) {
|
|
471
278
|
if (!thisObserverInfo[key]) {
|
|
472
279
|
thisObserverInfo[key] = [];
|
|
473
280
|
}
|
|
474
|
-
|
|
281
|
+
thisObserverInfo[key].push(...observerInfo[key]);
|
|
475
282
|
}
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
return
|
|
482
|
-
switch (_b.label) {
|
|
483
|
-
case 0: return [4, this.createApplication(params)];
|
|
484
|
-
case 1:
|
|
485
|
-
app = _b.sent();
|
|
486
|
-
this.multiApps.push(app);
|
|
487
|
-
return [2, app];
|
|
488
|
-
}
|
|
489
|
-
});
|
|
490
|
-
});
|
|
491
|
-
};
|
|
492
|
-
Renderer.prototype.createApplication = function (params) {
|
|
493
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
494
|
-
var app;
|
|
495
|
-
return __generator(this, function (_a) {
|
|
496
|
-
switch (_a.label) {
|
|
497
|
-
case 0:
|
|
498
|
-
app = new Application();
|
|
499
|
-
if (params.debugMode) {
|
|
500
|
-
globalThis.__PIXI_APP__ = app;
|
|
501
|
-
}
|
|
502
|
-
return [4, app.init(__assign(__assign({ sharedTicker: true }, params), { hello: true }))];
|
|
503
|
-
case 1:
|
|
504
|
-
_a.sent();
|
|
505
|
-
Ticker.shared.stop();
|
|
506
|
-
Ticker.shared.autoStart = false;
|
|
507
|
-
if (params.enableScroll !== undefined) {
|
|
508
|
-
params.enableScroll ? enableScroll(app.renderer) : disableScroll(app.renderer);
|
|
509
|
-
}
|
|
510
|
-
return [2, app];
|
|
511
|
-
}
|
|
512
|
-
});
|
|
283
|
+
}
|
|
284
|
+
createMultiApplication({ params }) {
|
|
285
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
286
|
+
const app = yield this.createApplication(params);
|
|
287
|
+
this.multiApps.push(app);
|
|
288
|
+
return app;
|
|
513
289
|
});
|
|
514
|
-
}
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
var changed = changes_1_1.value;
|
|
521
|
-
this.transform.componentChanged(changed);
|
|
522
|
-
}
|
|
523
|
-
}
|
|
524
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
525
|
-
finally {
|
|
526
|
-
try {
|
|
527
|
-
if (changes_1_1 && !changes_1_1.done && (_a = changes_1.return)) _a.call(changes_1);
|
|
290
|
+
}
|
|
291
|
+
createApplication(params) {
|
|
292
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
293
|
+
const app = new Application();
|
|
294
|
+
if (params.debugMode) {
|
|
295
|
+
globalThis.__PIXI_APP__ = app;
|
|
528
296
|
}
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
this.containerManager.updateTransform({
|
|
535
|
-
name: gameObject.id,
|
|
536
|
-
transform: gameObject.transform,
|
|
537
|
-
});
|
|
538
|
-
this.rendererManager.update(gameObject);
|
|
297
|
+
yield app.init(Object.assign(Object.assign({ sharedTicker: true }, params), { hello: true }));
|
|
298
|
+
Ticker.shared.stop();
|
|
299
|
+
Ticker.shared.autoStart = false;
|
|
300
|
+
if (params.enableScroll !== undefined) {
|
|
301
|
+
params.enableScroll ? enableScroll(app.renderer) : disableScroll(app.renderer);
|
|
539
302
|
}
|
|
303
|
+
return app;
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
update() {
|
|
307
|
+
const changes = this.componentObserver.clear();
|
|
308
|
+
for (const changed of changes) {
|
|
309
|
+
this.transform.componentChanged(changed);
|
|
540
310
|
}
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
}
|
|
546
|
-
|
|
311
|
+
for (const gameObject of this.game.gameObjects) {
|
|
312
|
+
this.containerManager.updateTransform({
|
|
313
|
+
name: gameObject.id,
|
|
314
|
+
transform: gameObject.transform,
|
|
315
|
+
});
|
|
316
|
+
this.rendererManager.update(gameObject);
|
|
547
317
|
}
|
|
548
|
-
}
|
|
549
|
-
|
|
318
|
+
}
|
|
319
|
+
lateUpdate(e) {
|
|
550
320
|
this.transform.update();
|
|
551
321
|
this.application.ticker.update(e.time);
|
|
552
|
-
}
|
|
553
|
-
|
|
554
|
-
var e_3, _a;
|
|
322
|
+
}
|
|
323
|
+
onDestroy() {
|
|
555
324
|
this.application.destroy();
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
var app = _c.value;
|
|
559
|
-
app && app.destroy();
|
|
560
|
-
}
|
|
561
|
-
}
|
|
562
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
563
|
-
finally {
|
|
564
|
-
try {
|
|
565
|
-
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
566
|
-
}
|
|
567
|
-
finally { if (e_3) throw e_3.error; }
|
|
325
|
+
for (const app of this.multiApps) {
|
|
326
|
+
app && app.destroy();
|
|
568
327
|
}
|
|
569
328
|
this.transform.destroy();
|
|
570
329
|
this.transform = null;
|
|
@@ -574,69 +333,27 @@ var Renderer$2 = (function (_super) {
|
|
|
574
333
|
this.application = null;
|
|
575
334
|
this.game = null;
|
|
576
335
|
this.multiApps = null;
|
|
577
|
-
}
|
|
578
|
-
|
|
336
|
+
}
|
|
337
|
+
resize(width, height) {
|
|
579
338
|
this.params.width = width;
|
|
580
339
|
this.params.height = height;
|
|
581
340
|
this.application.renderer.resize(width, height);
|
|
582
|
-
};
|
|
583
|
-
Renderer.systemName = 'Renderer';
|
|
584
|
-
Renderer = __decorate([
|
|
585
|
-
decorators.componentObserver({
|
|
586
|
-
Transform: ['_parent'],
|
|
587
|
-
})
|
|
588
|
-
], Renderer);
|
|
589
|
-
return Renderer;
|
|
590
|
-
}(System));
|
|
591
|
-
var Renderer$3 = Renderer$2;
|
|
592
|
-
|
|
593
|
-
var Renderer = (function (_super) {
|
|
594
|
-
__extends(Renderer, _super);
|
|
595
|
-
function Renderer(params) {
|
|
596
|
-
var _this = _super.call(this, params) || this;
|
|
597
|
-
_this.asyncIdMap = {};
|
|
598
|
-
_this.observerInfo = _this.constructor.observerInfo;
|
|
599
|
-
return _this;
|
|
600
341
|
}
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
this.componentChanged(changed);
|
|
610
|
-
}
|
|
611
|
-
}
|
|
612
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
613
|
-
finally {
|
|
614
|
-
try {
|
|
615
|
-
if (changes_1_1 && !changes_1_1.done && (_a = changes_1.return)) _a.call(changes_1);
|
|
616
|
-
}
|
|
617
|
-
finally { if (e_1) throw e_1.error; }
|
|
618
|
-
}
|
|
619
|
-
};
|
|
620
|
-
Renderer.prototype.increaseAsyncId = function (id) {
|
|
621
|
-
this.asyncIdMap[id] = (this.asyncIdMap[id] || 0) + 1;
|
|
622
|
-
return this.asyncIdMap[id];
|
|
623
|
-
};
|
|
624
|
-
Renderer.prototype.validateAsyncId = function (id, asyncId) {
|
|
625
|
-
return this.asyncIdMap[id] === asyncId;
|
|
626
|
-
};
|
|
627
|
-
return Renderer;
|
|
628
|
-
}(System));
|
|
629
|
-
var Renderer$1 = Renderer;
|
|
630
|
-
|
|
631
|
-
var mixinPIXI = function () {
|
|
632
|
-
};
|
|
342
|
+
};
|
|
343
|
+
Renderer$1.systemName = 'Renderer';
|
|
344
|
+
Renderer$1 = __decorate([
|
|
345
|
+
decorators.componentObserver({
|
|
346
|
+
Transform: ['_parent'],
|
|
347
|
+
})
|
|
348
|
+
], Renderer$1);
|
|
349
|
+
var Renderer$2 = Renderer$1;
|
|
633
350
|
|
|
634
|
-
|
|
351
|
+
let result = undefined;
|
|
635
352
|
function getSuportCompressedTextureFormats() {
|
|
636
353
|
if (result)
|
|
637
354
|
return result;
|
|
638
|
-
|
|
639
|
-
|
|
355
|
+
const canvas = document.createElement('canvas');
|
|
356
|
+
const gl = canvas.getContext('webgl2') || canvas.getContext('webgl');
|
|
640
357
|
if (!gl) {
|
|
641
358
|
console.warn('WebGL not available for compressed textures. Silently failing.');
|
|
642
359
|
return {
|
|
@@ -659,7 +376,7 @@ function getSuportCompressedTextureFormats() {
|
|
|
659
376
|
try {
|
|
660
377
|
console.log('Eva.js Supported Compressed Texture Format List: ' +
|
|
661
378
|
Object.keys(result)
|
|
662
|
-
.filter(
|
|
379
|
+
.filter(type => result[type])
|
|
663
380
|
.join(', '));
|
|
664
381
|
}
|
|
665
382
|
catch (e) { }
|
|
@@ -669,14 +386,14 @@ function getSuportCompressedTextureFormats() {
|
|
|
669
386
|
function addPreProcessResourceHandler(resource) {
|
|
670
387
|
resource.addPreProcessResourceHandler(function normalizeResource(resource) {
|
|
671
388
|
var _a, _b, _c;
|
|
672
|
-
|
|
389
|
+
let textures = (_b = (_a = resource.src) === null || _a === void 0 ? void 0 : _a.image) === null || _b === void 0 ? void 0 : _b.texture;
|
|
673
390
|
if (!textures)
|
|
674
391
|
return;
|
|
675
392
|
if (!Array.isArray(textures)) {
|
|
676
393
|
textures = [textures];
|
|
677
394
|
}
|
|
678
|
-
|
|
679
|
-
|
|
395
|
+
const formats = (_c = getSuportCompressedTextureFormats()) !== null && _c !== void 0 ? _c : {};
|
|
396
|
+
let target = textures.find(texture => formats[texture.type]);
|
|
680
397
|
if (target) {
|
|
681
398
|
Object.assign(resource.src.image, target);
|
|
682
399
|
}
|
|
@@ -691,6 +408,32 @@ function registerKtx2CompressedTexture(params) {
|
|
|
691
408
|
addPreProcessResourceHandler(resource);
|
|
692
409
|
}
|
|
693
410
|
|
|
411
|
+
class Renderer extends System {
|
|
412
|
+
constructor(params) {
|
|
413
|
+
super(params);
|
|
414
|
+
this.asyncIdMap = {};
|
|
415
|
+
this.observerInfo = this.constructor.observerInfo;
|
|
416
|
+
}
|
|
417
|
+
componentChanged(_changed) { }
|
|
418
|
+
rendererUpdate(_gameObject) { }
|
|
419
|
+
update(e) {
|
|
420
|
+
const changes = this.componentObserver.clear();
|
|
421
|
+
for (const changed of changes) {
|
|
422
|
+
this.componentChanged(changed);
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
increaseAsyncId(id) {
|
|
426
|
+
this.asyncIdMap[id] = (this.asyncIdMap[id] || 0) + 1;
|
|
427
|
+
return this.asyncIdMap[id];
|
|
428
|
+
}
|
|
429
|
+
validateAsyncId(id, asyncId) {
|
|
430
|
+
return this.asyncIdMap[id] === asyncId;
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
const mixinPIXI = () => {
|
|
435
|
+
};
|
|
436
|
+
|
|
694
437
|
mixinPIXI();
|
|
695
438
|
|
|
696
|
-
export { ContainerManager
|
|
439
|
+
export { ContainerManager, RENDERER_TYPE, Renderer, RendererManager$1 as RendererManager, Renderer$2 as RendererSystem, registerKtx2CompressedTexture };
|