@eva/plugin-renderer 2.0.0-beta.1 → 2.0.0-beta.10
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 -620
- package/dist/EVA.plugin.renderer.min.js +1 -1
- package/dist/plugin-renderer.cjs.js +233 -491
- package/dist/plugin-renderer.cjs.prod.js +16 -1
- package/dist/plugin-renderer.esm.js +231 -489
- package/package.json +4 -4
|
@@ -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,50 @@ 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
|
-
|
|
381
|
-
delete transform.worldTransform;
|
|
203
|
+
const container = this.containerManager.getContainer(changed.gameObject.id);
|
|
382
204
|
container.parent && container.parent.removeChild(container);
|
|
383
205
|
}
|
|
384
|
-
}
|
|
385
|
-
|
|
206
|
+
}
|
|
207
|
+
destroy() {
|
|
386
208
|
this.removeAllListeners();
|
|
387
209
|
this.waitRemoveIds = null;
|
|
388
210
|
this.waitChangeScenes = null;
|
|
389
211
|
this.system = null;
|
|
390
212
|
this.containerManager = null;
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
}(EventEmitter));
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
Transform = __decorate([
|
|
216
|
+
decorators.componentObserver({
|
|
217
|
+
Transform: ['_parent'],
|
|
218
|
+
})
|
|
219
|
+
], Transform);
|
|
399
220
|
var Transform$1 = Transform;
|
|
400
221
|
|
|
401
222
|
var RENDERER_TYPE;
|
|
@@ -404,167 +225,104 @@ var RENDERER_TYPE;
|
|
|
404
225
|
RENDERER_TYPE[RENDERER_TYPE["WEBGL"] = 1] = "WEBGL";
|
|
405
226
|
RENDERER_TYPE[RENDERER_TYPE["CANVAS"] = 2] = "CANVAS";
|
|
406
227
|
})(RENDERER_TYPE || (RENDERER_TYPE = {}));
|
|
407
|
-
|
|
228
|
+
const disableScroll = renderer => {
|
|
408
229
|
renderer.events.autoPreventDefault = true;
|
|
409
230
|
renderer.canvas.style.touchAction = 'none';
|
|
410
231
|
};
|
|
411
|
-
|
|
232
|
+
const enableScroll = renderer => {
|
|
412
233
|
renderer.events.autoPreventDefault = false;
|
|
413
234
|
renderer.canvas.style.touchAction = 'auto';
|
|
414
235
|
};
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
_this.multiApps = [];
|
|
420
|
-
return _this;
|
|
236
|
+
let Renderer$1 = class Renderer extends System {
|
|
237
|
+
constructor() {
|
|
238
|
+
super(...arguments);
|
|
239
|
+
this.multiApps = [];
|
|
421
240
|
}
|
|
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];
|
|
241
|
+
init(params) {
|
|
242
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
243
|
+
this.params = params;
|
|
244
|
+
this.application = yield this.createApplication(params);
|
|
245
|
+
this.containerManager = new ContainerManager();
|
|
246
|
+
this.rendererManager = new RendererManager$1({
|
|
247
|
+
game: this.game,
|
|
248
|
+
rendererSystem: this,
|
|
249
|
+
});
|
|
250
|
+
this.game.canvas = this.application.canvas;
|
|
251
|
+
this.transform = new Transform$1({
|
|
252
|
+
system: this,
|
|
253
|
+
containerManager: this.containerManager,
|
|
254
|
+
});
|
|
255
|
+
this.game.on('sceneChanged', ({ scene, mode, params }) => {
|
|
256
|
+
let application;
|
|
257
|
+
switch (mode) {
|
|
258
|
+
case LOAD_SCENE_MODE.SINGLE:
|
|
259
|
+
application = this.application;
|
|
260
|
+
break;
|
|
261
|
+
case LOAD_SCENE_MODE.MULTI_CANVAS:
|
|
262
|
+
application = this.createMultiApplication({ params });
|
|
263
|
+
break;
|
|
463
264
|
}
|
|
265
|
+
scene.canvas = application.canvas;
|
|
266
|
+
this.transform.emit('changeScene', {
|
|
267
|
+
scene,
|
|
268
|
+
mode,
|
|
269
|
+
application,
|
|
270
|
+
});
|
|
464
271
|
});
|
|
465
272
|
});
|
|
466
|
-
}
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
for (var key in observerInfo) {
|
|
273
|
+
}
|
|
274
|
+
registerObserver(observerInfo) {
|
|
275
|
+
const thisObserverInfo = this.constructor.observerInfo;
|
|
276
|
+
for (const key in observerInfo) {
|
|
471
277
|
if (!thisObserverInfo[key]) {
|
|
472
278
|
thisObserverInfo[key] = [];
|
|
473
279
|
}
|
|
474
|
-
|
|
280
|
+
thisObserverInfo[key].push(...observerInfo[key]);
|
|
475
281
|
}
|
|
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
|
-
});
|
|
282
|
+
}
|
|
283
|
+
createMultiApplication({ params }) {
|
|
284
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
285
|
+
const app = yield this.createApplication(params);
|
|
286
|
+
this.multiApps.push(app);
|
|
287
|
+
return app;
|
|
513
288
|
});
|
|
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);
|
|
289
|
+
}
|
|
290
|
+
createApplication(params) {
|
|
291
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
292
|
+
const app = new Application();
|
|
293
|
+
if (params.debugMode) {
|
|
294
|
+
globalThis.__PIXI_APP__ = app;
|
|
528
295
|
}
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
this.containerManager.updateTransform({
|
|
535
|
-
name: gameObject.id,
|
|
536
|
-
transform: gameObject.transform,
|
|
537
|
-
});
|
|
538
|
-
this.rendererManager.update(gameObject);
|
|
296
|
+
yield app.init(Object.assign(Object.assign({ sharedTicker: true }, params), { hello: true }));
|
|
297
|
+
Ticker.shared.stop();
|
|
298
|
+
Ticker.shared.autoStart = false;
|
|
299
|
+
if (params.enableScroll !== undefined) {
|
|
300
|
+
params.enableScroll ? enableScroll(app.renderer) : disableScroll(app.renderer);
|
|
539
301
|
}
|
|
302
|
+
return app;
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
update() {
|
|
306
|
+
const changes = this.componentObserver.clear();
|
|
307
|
+
for (const changed of changes) {
|
|
308
|
+
this.transform.componentChanged(changed);
|
|
540
309
|
}
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
}
|
|
546
|
-
|
|
310
|
+
for (const gameObject of this.game.gameObjects) {
|
|
311
|
+
this.containerManager.updateTransform({
|
|
312
|
+
name: gameObject.id,
|
|
313
|
+
transform: gameObject.transform,
|
|
314
|
+
});
|
|
315
|
+
this.rendererManager.update(gameObject);
|
|
547
316
|
}
|
|
548
|
-
}
|
|
549
|
-
|
|
317
|
+
}
|
|
318
|
+
lateUpdate(e) {
|
|
550
319
|
this.transform.update();
|
|
551
320
|
this.application.ticker.update(e.time);
|
|
552
|
-
}
|
|
553
|
-
|
|
554
|
-
var e_3, _a;
|
|
321
|
+
}
|
|
322
|
+
onDestroy() {
|
|
555
323
|
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; }
|
|
324
|
+
for (const app of this.multiApps) {
|
|
325
|
+
app && app.destroy();
|
|
568
326
|
}
|
|
569
327
|
this.transform.destroy();
|
|
570
328
|
this.transform = null;
|
|
@@ -574,69 +332,27 @@ var Renderer$2 = (function (_super) {
|
|
|
574
332
|
this.application = null;
|
|
575
333
|
this.game = null;
|
|
576
334
|
this.multiApps = null;
|
|
577
|
-
}
|
|
578
|
-
|
|
335
|
+
}
|
|
336
|
+
resize(width, height) {
|
|
579
337
|
this.params.width = width;
|
|
580
338
|
this.params.height = height;
|
|
581
339
|
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
340
|
}
|
|
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
|
-
};
|
|
341
|
+
};
|
|
342
|
+
Renderer$1.systemName = 'Renderer';
|
|
343
|
+
Renderer$1 = __decorate([
|
|
344
|
+
decorators.componentObserver({
|
|
345
|
+
Transform: ['_parent'],
|
|
346
|
+
})
|
|
347
|
+
], Renderer$1);
|
|
348
|
+
var Renderer$2 = Renderer$1;
|
|
633
349
|
|
|
634
|
-
|
|
350
|
+
let result = undefined;
|
|
635
351
|
function getSuportCompressedTextureFormats() {
|
|
636
352
|
if (result)
|
|
637
353
|
return result;
|
|
638
|
-
|
|
639
|
-
|
|
354
|
+
const canvas = document.createElement('canvas');
|
|
355
|
+
const gl = canvas.getContext('webgl2') || canvas.getContext('webgl');
|
|
640
356
|
if (!gl) {
|
|
641
357
|
console.warn('WebGL not available for compressed textures. Silently failing.');
|
|
642
358
|
return {
|
|
@@ -659,7 +375,7 @@ function getSuportCompressedTextureFormats() {
|
|
|
659
375
|
try {
|
|
660
376
|
console.log('Eva.js Supported Compressed Texture Format List: ' +
|
|
661
377
|
Object.keys(result)
|
|
662
|
-
.filter(
|
|
378
|
+
.filter(type => result[type])
|
|
663
379
|
.join(', '));
|
|
664
380
|
}
|
|
665
381
|
catch (e) { }
|
|
@@ -669,14 +385,14 @@ function getSuportCompressedTextureFormats() {
|
|
|
669
385
|
function addPreProcessResourceHandler(resource) {
|
|
670
386
|
resource.addPreProcessResourceHandler(function normalizeResource(resource) {
|
|
671
387
|
var _a, _b, _c;
|
|
672
|
-
|
|
388
|
+
let textures = (_b = (_a = resource.src) === null || _a === void 0 ? void 0 : _a.image) === null || _b === void 0 ? void 0 : _b.texture;
|
|
673
389
|
if (!textures)
|
|
674
390
|
return;
|
|
675
391
|
if (!Array.isArray(textures)) {
|
|
676
392
|
textures = [textures];
|
|
677
393
|
}
|
|
678
|
-
|
|
679
|
-
|
|
394
|
+
const formats = (_c = getSuportCompressedTextureFormats()) !== null && _c !== void 0 ? _c : {};
|
|
395
|
+
let target = textures.find(texture => formats[texture.type]);
|
|
680
396
|
if (target) {
|
|
681
397
|
Object.assign(resource.src.image, target);
|
|
682
398
|
}
|
|
@@ -691,6 +407,32 @@ function registerKtx2CompressedTexture(params) {
|
|
|
691
407
|
addPreProcessResourceHandler(resource);
|
|
692
408
|
}
|
|
693
409
|
|
|
410
|
+
class Renderer extends System {
|
|
411
|
+
constructor(params) {
|
|
412
|
+
super(params);
|
|
413
|
+
this.asyncIdMap = {};
|
|
414
|
+
this.observerInfo = this.constructor.observerInfo;
|
|
415
|
+
}
|
|
416
|
+
componentChanged(_changed) { }
|
|
417
|
+
rendererUpdate(_gameObject) { }
|
|
418
|
+
update(e) {
|
|
419
|
+
const changes = this.componentObserver.clear();
|
|
420
|
+
for (const changed of changes) {
|
|
421
|
+
this.componentChanged(changed);
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
increaseAsyncId(id) {
|
|
425
|
+
this.asyncIdMap[id] = (this.asyncIdMap[id] || 0) + 1;
|
|
426
|
+
return this.asyncIdMap[id];
|
|
427
|
+
}
|
|
428
|
+
validateAsyncId(id, asyncId) {
|
|
429
|
+
return this.asyncIdMap[id] === asyncId;
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
const mixinPIXI = () => {
|
|
434
|
+
};
|
|
435
|
+
|
|
694
436
|
mixinPIXI();
|
|
695
437
|
|
|
696
|
-
export { ContainerManager
|
|
438
|
+
export { ContainerManager, RENDERER_TYPE, Renderer, RendererManager$1 as RendererManager, Renderer$2 as RendererSystem, registerKtx2CompressedTexture };
|