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