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