@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
|
@@ -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,51 @@ 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
|
-
|
|
212
|
+
const container = this.containerManager.getContainer(changed.gameObject.id);
|
|
390
213
|
delete transform.worldTransform;
|
|
391
214
|
container.parent && container.parent.removeChild(container);
|
|
392
215
|
}
|
|
393
|
-
}
|
|
394
|
-
|
|
216
|
+
}
|
|
217
|
+
destroy() {
|
|
395
218
|
this.removeAllListeners();
|
|
396
219
|
this.waitRemoveIds = null;
|
|
397
220
|
this.waitChangeScenes = null;
|
|
398
221
|
this.system = null;
|
|
399
222
|
this.containerManager = null;
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
}(EventEmitter__default));
|
|
223
|
+
}
|
|
224
|
+
};
|
|
225
|
+
Transform = __decorate([
|
|
226
|
+
eva_js.decorators.componentObserver({
|
|
227
|
+
Transform: ['_parent'],
|
|
228
|
+
})
|
|
229
|
+
], Transform);
|
|
408
230
|
var Transform$1 = Transform;
|
|
409
231
|
|
|
410
232
|
exports.RENDERER_TYPE = void 0;
|
|
@@ -413,167 +235,104 @@ exports.RENDERER_TYPE = void 0;
|
|
|
413
235
|
RENDERER_TYPE[RENDERER_TYPE["WEBGL"] = 1] = "WEBGL";
|
|
414
236
|
RENDERER_TYPE[RENDERER_TYPE["CANVAS"] = 2] = "CANVAS";
|
|
415
237
|
})(exports.RENDERER_TYPE || (exports.RENDERER_TYPE = {}));
|
|
416
|
-
|
|
238
|
+
const disableScroll = renderer => {
|
|
417
239
|
renderer.events.autoPreventDefault = true;
|
|
418
240
|
renderer.canvas.style.touchAction = 'none';
|
|
419
241
|
};
|
|
420
|
-
|
|
242
|
+
const enableScroll = renderer => {
|
|
421
243
|
renderer.events.autoPreventDefault = false;
|
|
422
244
|
renderer.canvas.style.touchAction = 'auto';
|
|
423
245
|
};
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
_this.multiApps = [];
|
|
429
|
-
return _this;
|
|
246
|
+
let Renderer$1 = class Renderer extends eva_js.System {
|
|
247
|
+
constructor() {
|
|
248
|
+
super(...arguments);
|
|
249
|
+
this.multiApps = [];
|
|
430
250
|
}
|
|
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];
|
|
251
|
+
init(params) {
|
|
252
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
253
|
+
this.params = params;
|
|
254
|
+
this.application = yield this.createApplication(params);
|
|
255
|
+
this.containerManager = new ContainerManager();
|
|
256
|
+
this.rendererManager = new RendererManager$1({
|
|
257
|
+
game: this.game,
|
|
258
|
+
rendererSystem: this,
|
|
259
|
+
});
|
|
260
|
+
this.game.canvas = this.application.canvas;
|
|
261
|
+
this.transform = new Transform$1({
|
|
262
|
+
system: this,
|
|
263
|
+
containerManager: this.containerManager,
|
|
264
|
+
});
|
|
265
|
+
this.game.on('sceneChanged', ({ scene, mode, params }) => {
|
|
266
|
+
let application;
|
|
267
|
+
switch (mode) {
|
|
268
|
+
case eva_js.LOAD_SCENE_MODE.SINGLE:
|
|
269
|
+
application = this.application;
|
|
270
|
+
break;
|
|
271
|
+
case eva_js.LOAD_SCENE_MODE.MULTI_CANVAS:
|
|
272
|
+
application = this.createMultiApplication({ params });
|
|
273
|
+
break;
|
|
472
274
|
}
|
|
275
|
+
scene.canvas = application.canvas;
|
|
276
|
+
this.transform.emit('changeScene', {
|
|
277
|
+
scene,
|
|
278
|
+
mode,
|
|
279
|
+
application,
|
|
280
|
+
});
|
|
473
281
|
});
|
|
474
282
|
});
|
|
475
|
-
}
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
for (var key in observerInfo) {
|
|
283
|
+
}
|
|
284
|
+
registerObserver(observerInfo) {
|
|
285
|
+
const thisObserverInfo = this.constructor.observerInfo;
|
|
286
|
+
for (const key in observerInfo) {
|
|
480
287
|
if (!thisObserverInfo[key]) {
|
|
481
288
|
thisObserverInfo[key] = [];
|
|
482
289
|
}
|
|
483
|
-
|
|
290
|
+
thisObserverInfo[key].push(...observerInfo[key]);
|
|
484
291
|
}
|
|
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
|
-
});
|
|
292
|
+
}
|
|
293
|
+
createMultiApplication({ params }) {
|
|
294
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
295
|
+
const app = yield this.createApplication(params);
|
|
296
|
+
this.multiApps.push(app);
|
|
297
|
+
return app;
|
|
522
298
|
});
|
|
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);
|
|
299
|
+
}
|
|
300
|
+
createApplication(params) {
|
|
301
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
302
|
+
const app = new rendererAdapter.Application();
|
|
303
|
+
if (params.debugMode) {
|
|
304
|
+
globalThis.__PIXI_APP__ = app;
|
|
537
305
|
}
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
this.containerManager.updateTransform({
|
|
544
|
-
name: gameObject.id,
|
|
545
|
-
transform: gameObject.transform,
|
|
546
|
-
});
|
|
547
|
-
this.rendererManager.update(gameObject);
|
|
306
|
+
yield app.init(Object.assign(Object.assign({ sharedTicker: true }, params), { hello: true }));
|
|
307
|
+
pixi_js.Ticker.shared.stop();
|
|
308
|
+
pixi_js.Ticker.shared.autoStart = false;
|
|
309
|
+
if (params.enableScroll !== undefined) {
|
|
310
|
+
params.enableScroll ? enableScroll(app.renderer) : disableScroll(app.renderer);
|
|
548
311
|
}
|
|
312
|
+
return app;
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
update() {
|
|
316
|
+
const changes = this.componentObserver.clear();
|
|
317
|
+
for (const changed of changes) {
|
|
318
|
+
this.transform.componentChanged(changed);
|
|
549
319
|
}
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
}
|
|
555
|
-
|
|
320
|
+
for (const gameObject of this.game.gameObjects) {
|
|
321
|
+
this.containerManager.updateTransform({
|
|
322
|
+
name: gameObject.id,
|
|
323
|
+
transform: gameObject.transform,
|
|
324
|
+
});
|
|
325
|
+
this.rendererManager.update(gameObject);
|
|
556
326
|
}
|
|
557
|
-
}
|
|
558
|
-
|
|
327
|
+
}
|
|
328
|
+
lateUpdate(e) {
|
|
559
329
|
this.transform.update();
|
|
560
330
|
this.application.ticker.update(e.time);
|
|
561
|
-
}
|
|
562
|
-
|
|
563
|
-
var e_3, _a;
|
|
331
|
+
}
|
|
332
|
+
onDestroy() {
|
|
564
333
|
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; }
|
|
334
|
+
for (const app of this.multiApps) {
|
|
335
|
+
app && app.destroy();
|
|
577
336
|
}
|
|
578
337
|
this.transform.destroy();
|
|
579
338
|
this.transform = null;
|
|
@@ -583,69 +342,27 @@ var Renderer$2 = (function (_super) {
|
|
|
583
342
|
this.application = null;
|
|
584
343
|
this.game = null;
|
|
585
344
|
this.multiApps = null;
|
|
586
|
-
}
|
|
587
|
-
|
|
345
|
+
}
|
|
346
|
+
resize(width, height) {
|
|
588
347
|
this.params.width = width;
|
|
589
348
|
this.params.height = height;
|
|
590
349
|
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
350
|
}
|
|
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
|
-
};
|
|
351
|
+
};
|
|
352
|
+
Renderer$1.systemName = 'Renderer';
|
|
353
|
+
Renderer$1 = __decorate([
|
|
354
|
+
eva_js.decorators.componentObserver({
|
|
355
|
+
Transform: ['_parent'],
|
|
356
|
+
})
|
|
357
|
+
], Renderer$1);
|
|
358
|
+
var Renderer$2 = Renderer$1;
|
|
642
359
|
|
|
643
|
-
|
|
360
|
+
let result = undefined;
|
|
644
361
|
function getSuportCompressedTextureFormats() {
|
|
645
362
|
if (result)
|
|
646
363
|
return result;
|
|
647
|
-
|
|
648
|
-
|
|
364
|
+
const canvas = document.createElement('canvas');
|
|
365
|
+
const gl = canvas.getContext('webgl2') || canvas.getContext('webgl');
|
|
649
366
|
if (!gl) {
|
|
650
367
|
console.warn('WebGL not available for compressed textures. Silently failing.');
|
|
651
368
|
return {
|
|
@@ -668,7 +385,7 @@ function getSuportCompressedTextureFormats() {
|
|
|
668
385
|
try {
|
|
669
386
|
console.log('Eva.js Supported Compressed Texture Format List: ' +
|
|
670
387
|
Object.keys(result)
|
|
671
|
-
.filter(
|
|
388
|
+
.filter(type => result[type])
|
|
672
389
|
.join(', '));
|
|
673
390
|
}
|
|
674
391
|
catch (e) { }
|
|
@@ -678,14 +395,14 @@ function getSuportCompressedTextureFormats() {
|
|
|
678
395
|
function addPreProcessResourceHandler(resource) {
|
|
679
396
|
resource.addPreProcessResourceHandler(function normalizeResource(resource) {
|
|
680
397
|
var _a, _b, _c;
|
|
681
|
-
|
|
398
|
+
let textures = (_b = (_a = resource.src) === null || _a === void 0 ? void 0 : _a.image) === null || _b === void 0 ? void 0 : _b.texture;
|
|
682
399
|
if (!textures)
|
|
683
400
|
return;
|
|
684
401
|
if (!Array.isArray(textures)) {
|
|
685
402
|
textures = [textures];
|
|
686
403
|
}
|
|
687
|
-
|
|
688
|
-
|
|
404
|
+
const formats = (_c = getSuportCompressedTextureFormats()) !== null && _c !== void 0 ? _c : {};
|
|
405
|
+
let target = textures.find(texture => formats[texture.type]);
|
|
689
406
|
if (target) {
|
|
690
407
|
Object.assign(resource.src.image, target);
|
|
691
408
|
}
|
|
@@ -700,10 +417,36 @@ function registerKtx2CompressedTexture(params) {
|
|
|
700
417
|
addPreProcessResourceHandler(eva_js.resource);
|
|
701
418
|
}
|
|
702
419
|
|
|
420
|
+
class Renderer extends eva_js.System {
|
|
421
|
+
constructor(params) {
|
|
422
|
+
super(params);
|
|
423
|
+
this.asyncIdMap = {};
|
|
424
|
+
this.observerInfo = this.constructor.observerInfo;
|
|
425
|
+
}
|
|
426
|
+
componentChanged(_changed) { }
|
|
427
|
+
rendererUpdate(_gameObject) { }
|
|
428
|
+
update(e) {
|
|
429
|
+
const changes = this.componentObserver.clear();
|
|
430
|
+
for (const changed of changes) {
|
|
431
|
+
this.componentChanged(changed);
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
increaseAsyncId(id) {
|
|
435
|
+
this.asyncIdMap[id] = (this.asyncIdMap[id] || 0) + 1;
|
|
436
|
+
return this.asyncIdMap[id];
|
|
437
|
+
}
|
|
438
|
+
validateAsyncId(id, asyncId) {
|
|
439
|
+
return this.asyncIdMap[id] === asyncId;
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
const mixinPIXI = () => {
|
|
444
|
+
};
|
|
445
|
+
|
|
703
446
|
mixinPIXI();
|
|
704
447
|
|
|
705
|
-
exports.ContainerManager = ContainerManager
|
|
706
|
-
exports.Renderer = Renderer
|
|
448
|
+
exports.ContainerManager = ContainerManager;
|
|
449
|
+
exports.Renderer = Renderer;
|
|
707
450
|
exports.RendererManager = RendererManager$1;
|
|
708
|
-
exports.RendererSystem = Renderer$
|
|
451
|
+
exports.RendererSystem = Renderer$2;
|
|
709
452
|
exports.registerKtx2CompressedTexture = registerKtx2CompressedTexture;
|