@eva/plugin-renderer 2.0.1-beta.27 → 2.0.1-beta.29
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.
|
@@ -44,12 +44,45 @@ function __awaiter(thisArg, _arguments, P, generator) {
|
|
|
44
44
|
});
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
/**
|
|
48
|
+
* 渲染管理器类
|
|
49
|
+
*
|
|
50
|
+
* RendererManager 负责管理和协调所有渲染器。
|
|
51
|
+
* 它将组件变化事件分发给相应的渲染器,
|
|
52
|
+
* 并在每帧调用渲染器的更新方法。
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```typescript
|
|
56
|
+
* const rendererManager = new RendererManager({
|
|
57
|
+
* game,
|
|
58
|
+
* rendererSystem
|
|
59
|
+
* });
|
|
60
|
+
*
|
|
61
|
+
* rendererManager.register(
|
|
62
|
+
* new SpriteRenderer(),
|
|
63
|
+
* new TextRenderer()
|
|
64
|
+
* );
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
47
67
|
class RendererManager {
|
|
68
|
+
/**
|
|
69
|
+
* 构造渲染管理器
|
|
70
|
+
* @param game - 游戏实例
|
|
71
|
+
* @param rendererSystem - 渲染系统实例
|
|
72
|
+
*/
|
|
48
73
|
constructor({ game, rendererSystem }) {
|
|
74
|
+
/** 注册的渲染器列表 */
|
|
49
75
|
this.renderers = [];
|
|
50
76
|
this.game = game;
|
|
51
77
|
this.rendererSystem = rendererSystem;
|
|
52
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* 注册渲染器
|
|
81
|
+
*
|
|
82
|
+
* 将渲染器添加到管理器,并为其设置必要的引用。
|
|
83
|
+
*
|
|
84
|
+
* @param renderers - 要注册的渲染器列表
|
|
85
|
+
*/
|
|
53
86
|
register(...renderers) {
|
|
54
87
|
for (const renderer of renderers) {
|
|
55
88
|
renderer.game = this.game;
|
|
@@ -131,9 +164,11 @@ class ContainerManager {
|
|
|
131
164
|
return;
|
|
132
165
|
const { anchor, origin, position, rotation, scale, size, skew } = transform;
|
|
133
166
|
container.rotation = rotation;
|
|
167
|
+
// @ts-ignore
|
|
134
168
|
container.scale = scale;
|
|
135
169
|
container.pivot.x = size.width * origin.x;
|
|
136
170
|
container.pivot.y = size.height * origin.y;
|
|
171
|
+
// @ts-ignore
|
|
137
172
|
container.skew = skew;
|
|
138
173
|
let x = position.x;
|
|
139
174
|
let y = position.y;
|
|
@@ -142,6 +177,7 @@ class ContainerManager {
|
|
|
142
177
|
x = x + parent.size.width * anchor.x;
|
|
143
178
|
y = y + parent.size.height * anchor.y;
|
|
144
179
|
}
|
|
180
|
+
// @ts-ignore
|
|
145
181
|
container.position = { x, y };
|
|
146
182
|
}
|
|
147
183
|
}
|
|
@@ -158,7 +194,12 @@ let Transform = class Transform extends EventEmitter__default {
|
|
|
158
194
|
init(system) {
|
|
159
195
|
this.system = system;
|
|
160
196
|
this.on('changeScene', ({ scene, mode, application }) => {
|
|
197
|
+
// switch (mode) {
|
|
198
|
+
// case LOAD_SCENE_MODE.SINGLE:
|
|
161
199
|
this.waitChangeScenes.push({ scene, mode, application });
|
|
200
|
+
// break;
|
|
201
|
+
// case LOAD_SCENE_MODE.MULTI_CANVAS:
|
|
202
|
+
// }
|
|
162
203
|
});
|
|
163
204
|
}
|
|
164
205
|
update() {
|
|
@@ -167,6 +208,7 @@ let Transform = class Transform extends EventEmitter__default {
|
|
|
167
208
|
}
|
|
168
209
|
this.waitRemoveIds = [];
|
|
169
210
|
for (const sceneInfo of this.waitChangeScenes) {
|
|
211
|
+
// set scene
|
|
170
212
|
const container = this.containerManager.getContainer(sceneInfo.scene.id);
|
|
171
213
|
if (container) {
|
|
172
214
|
sceneInfo.application.stage.removeChildren();
|
|
@@ -299,17 +341,20 @@ let Renderer$1 = class Renderer extends eva_js.System {
|
|
|
299
341
|
});
|
|
300
342
|
}
|
|
301
343
|
registerObserver(observerInfo) {
|
|
344
|
+
// @ts-ignore
|
|
302
345
|
const thisObserverInfo = this.constructor.observerInfo;
|
|
303
346
|
for (const key in observerInfo) {
|
|
304
347
|
if (!thisObserverInfo[key]) {
|
|
305
348
|
thisObserverInfo[key] = [];
|
|
306
349
|
}
|
|
350
|
+
//@ts-ignore
|
|
307
351
|
thisObserverInfo[key].push(...observerInfo[key]);
|
|
308
352
|
}
|
|
309
353
|
}
|
|
310
354
|
createMultiApplication({ params }) {
|
|
311
355
|
return __awaiter(this, void 0, void 0, function* () {
|
|
312
356
|
const app = yield this.createApplication(params);
|
|
357
|
+
// @ts-ignore
|
|
313
358
|
this.multiApps.push(app);
|
|
314
359
|
return app;
|
|
315
360
|
});
|
|
@@ -363,6 +408,7 @@ let Renderer$1 = class Renderer extends eva_js.System {
|
|
|
363
408
|
resize(width, height) {
|
|
364
409
|
this.params.width = width;
|
|
365
410
|
this.params.height = height;
|
|
411
|
+
// @ts-ignore
|
|
366
412
|
this.application.renderer.resize(width, height);
|
|
367
413
|
}
|
|
368
414
|
getApplicationByScene(scene) {
|
|
@@ -390,6 +436,7 @@ let Renderer$1 = class Renderer extends eva_js.System {
|
|
|
390
436
|
resizeByScene(scene, width, height) {
|
|
391
437
|
const app = this.getApplicationByScene(scene);
|
|
392
438
|
if (app) {
|
|
439
|
+
// @ts-ignore
|
|
393
440
|
app.renderer.resize(width, height);
|
|
394
441
|
}
|
|
395
442
|
}
|
|
@@ -409,7 +456,9 @@ function getSuportCompressedTextureFormats() {
|
|
|
409
456
|
const canvas = document.createElement('canvas');
|
|
410
457
|
const gl = canvas.getContext('webgl2');
|
|
411
458
|
if (!gl) {
|
|
459
|
+
// #if _DEBUG
|
|
412
460
|
console.warn('WebGL not available for compressed textures. Silently failing.');
|
|
461
|
+
// #endif
|
|
413
462
|
return {
|
|
414
463
|
s3tc: false,
|
|
415
464
|
etc: false,
|
|
@@ -462,14 +511,29 @@ function registerKtx2CompressedTexture(params) {
|
|
|
462
511
|
addPreProcessResourceHandler(eva_js.resource);
|
|
463
512
|
}
|
|
464
513
|
|
|
514
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
465
515
|
class Renderer extends eva_js.System {
|
|
466
516
|
constructor(params) {
|
|
467
517
|
super(params);
|
|
468
518
|
this.asyncIdMap = {};
|
|
519
|
+
// @ts-ignore
|
|
469
520
|
this.observerInfo = this.constructor.observerInfo;
|
|
470
521
|
}
|
|
522
|
+
// init(arg?: any): void;
|
|
523
|
+
/**
|
|
524
|
+
* 当监听的属性变化时候调用
|
|
525
|
+
*
|
|
526
|
+
* called while the observed component props change.
|
|
527
|
+
*/
|
|
471
528
|
componentChanged(_changed) { }
|
|
529
|
+
/**
|
|
530
|
+
* 每帧调用
|
|
531
|
+
*
|
|
532
|
+
* called by every loop
|
|
533
|
+
* @param _gameObject gameObject
|
|
534
|
+
*/
|
|
472
535
|
rendererUpdate(_gameObject) { }
|
|
536
|
+
// @ts-ignore
|
|
473
537
|
update(e) {
|
|
474
538
|
const changes = this.componentObserver.clear();
|
|
475
539
|
for (const changed of changes) {
|
|
@@ -485,7 +549,19 @@ class Renderer extends eva_js.System {
|
|
|
485
549
|
}
|
|
486
550
|
}
|
|
487
551
|
|
|
552
|
+
// import { BaseTexture, utils } from 'pixi.js';
|
|
488
553
|
const mixinPIXI = () => {
|
|
554
|
+
// BaseTexture.prototype.destroy = function () {
|
|
555
|
+
// if (this.imageUrl) {
|
|
556
|
+
// delete utils.TextureCache[this.imageUrl];
|
|
557
|
+
// this.imageUrl = null;
|
|
558
|
+
// }
|
|
559
|
+
// this.source = null;
|
|
560
|
+
// this.dispose();
|
|
561
|
+
// BaseTexture.removeFromCache(this);
|
|
562
|
+
// this.textureCacheIds = null;
|
|
563
|
+
// this._destroyed = true;
|
|
564
|
+
// };
|
|
489
565
|
};
|
|
490
566
|
|
|
491
567
|
mixinPIXI();
|
|
@@ -37,14 +37,40 @@ declare interface Params {
|
|
|
37
37
|
export declare function registerKtx2CompressedTexture(params: Params): void;
|
|
38
38
|
|
|
39
39
|
export declare class Renderer<T extends {} = {}> extends System<T> {
|
|
40
|
+
/**
|
|
41
|
+
* Renderer name
|
|
42
|
+
*/
|
|
40
43
|
name: string;
|
|
44
|
+
/**
|
|
45
|
+
* currentGame
|
|
46
|
+
*/
|
|
41
47
|
game: Game;
|
|
48
|
+
/**
|
|
49
|
+
* observer component props info
|
|
50
|
+
*/
|
|
42
51
|
static observerInfo: PureObserverInfo;
|
|
52
|
+
/**
|
|
53
|
+
* observer component props info
|
|
54
|
+
*/
|
|
43
55
|
observerInfo: PureObserverInfo;
|
|
56
|
+
/**
|
|
57
|
+
* containerManager
|
|
58
|
+
*/
|
|
44
59
|
containerManager: ContainerManager;
|
|
45
60
|
rendererManager: RendererManager;
|
|
46
61
|
constructor(params?: T);
|
|
62
|
+
/**
|
|
63
|
+
* 当监听的属性变化时候调用
|
|
64
|
+
*
|
|
65
|
+
* called while the observed component props change.
|
|
66
|
+
*/
|
|
47
67
|
componentChanged(_changed: ComponentChanged): void;
|
|
68
|
+
/**
|
|
69
|
+
* 每帧调用
|
|
70
|
+
*
|
|
71
|
+
* called by every loop
|
|
72
|
+
* @param _gameObject gameObject
|
|
73
|
+
*/
|
|
48
74
|
rendererUpdate(_gameObject: GameObject): void;
|
|
49
75
|
update(e?: UpdateParams): void;
|
|
50
76
|
protected asyncIdMap: Record<number, number>;
|
|
@@ -58,14 +84,49 @@ export declare enum RENDERER_TYPE {
|
|
|
58
84
|
CANVAS = 2
|
|
59
85
|
}
|
|
60
86
|
|
|
87
|
+
/**
|
|
88
|
+
* 渲染管理器类
|
|
89
|
+
*
|
|
90
|
+
* RendererManager 负责管理和协调所有渲染器。
|
|
91
|
+
* 它将组件变化事件分发给相应的渲染器,
|
|
92
|
+
* 并在每帧调用渲染器的更新方法。
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```typescript
|
|
96
|
+
* const rendererManager = new RendererManager({
|
|
97
|
+
* game,
|
|
98
|
+
* rendererSystem
|
|
99
|
+
* });
|
|
100
|
+
*
|
|
101
|
+
* rendererManager.register(
|
|
102
|
+
* new SpriteRenderer(),
|
|
103
|
+
* new TextRenderer()
|
|
104
|
+
* );
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
61
107
|
export declare class RendererManager {
|
|
108
|
+
/** 游戏实例引用 */
|
|
62
109
|
game: Game;
|
|
110
|
+
/** 渲染系统引用 */
|
|
63
111
|
rendererSystem: RendererSystem;
|
|
112
|
+
/**
|
|
113
|
+
* 构造渲染管理器
|
|
114
|
+
* @param game - 游戏实例
|
|
115
|
+
* @param rendererSystem - 渲染系统实例
|
|
116
|
+
*/
|
|
64
117
|
constructor({ game, rendererSystem }: {
|
|
65
118
|
game: any;
|
|
66
119
|
rendererSystem: any;
|
|
67
120
|
});
|
|
121
|
+
/** 注册的渲染器列表 */
|
|
68
122
|
renderers: Renderer[];
|
|
123
|
+
/**
|
|
124
|
+
* 注册渲染器
|
|
125
|
+
*
|
|
126
|
+
* 将渲染器添加到管理器,并为其设置必要的引用。
|
|
127
|
+
*
|
|
128
|
+
* @param renderers - 要注册的渲染器列表
|
|
129
|
+
*/
|
|
69
130
|
register(...renderers: Renderer[]): void;
|
|
70
131
|
componentChanged(changes: ComponentChanged[]): void;
|
|
71
132
|
update(gameObject: GameObject): void;
|
|
@@ -35,12 +35,45 @@ function __awaiter(thisArg, _arguments, P, generator) {
|
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
/**
|
|
39
|
+
* 渲染管理器类
|
|
40
|
+
*
|
|
41
|
+
* RendererManager 负责管理和协调所有渲染器。
|
|
42
|
+
* 它将组件变化事件分发给相应的渲染器,
|
|
43
|
+
* 并在每帧调用渲染器的更新方法。
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* const rendererManager = new RendererManager({
|
|
48
|
+
* game,
|
|
49
|
+
* rendererSystem
|
|
50
|
+
* });
|
|
51
|
+
*
|
|
52
|
+
* rendererManager.register(
|
|
53
|
+
* new SpriteRenderer(),
|
|
54
|
+
* new TextRenderer()
|
|
55
|
+
* );
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
38
58
|
class RendererManager {
|
|
59
|
+
/**
|
|
60
|
+
* 构造渲染管理器
|
|
61
|
+
* @param game - 游戏实例
|
|
62
|
+
* @param rendererSystem - 渲染系统实例
|
|
63
|
+
*/
|
|
39
64
|
constructor({ game, rendererSystem }) {
|
|
65
|
+
/** 注册的渲染器列表 */
|
|
40
66
|
this.renderers = [];
|
|
41
67
|
this.game = game;
|
|
42
68
|
this.rendererSystem = rendererSystem;
|
|
43
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* 注册渲染器
|
|
72
|
+
*
|
|
73
|
+
* 将渲染器添加到管理器,并为其设置必要的引用。
|
|
74
|
+
*
|
|
75
|
+
* @param renderers - 要注册的渲染器列表
|
|
76
|
+
*/
|
|
44
77
|
register(...renderers) {
|
|
45
78
|
for (const renderer of renderers) {
|
|
46
79
|
renderer.game = this.game;
|
|
@@ -122,9 +155,11 @@ class ContainerManager {
|
|
|
122
155
|
return;
|
|
123
156
|
const { anchor, origin, position, rotation, scale, size, skew } = transform;
|
|
124
157
|
container.rotation = rotation;
|
|
158
|
+
// @ts-ignore
|
|
125
159
|
container.scale = scale;
|
|
126
160
|
container.pivot.x = size.width * origin.x;
|
|
127
161
|
container.pivot.y = size.height * origin.y;
|
|
162
|
+
// @ts-ignore
|
|
128
163
|
container.skew = skew;
|
|
129
164
|
let x = position.x;
|
|
130
165
|
let y = position.y;
|
|
@@ -133,6 +168,7 @@ class ContainerManager {
|
|
|
133
168
|
x = x + parent.size.width * anchor.x;
|
|
134
169
|
y = y + parent.size.height * anchor.y;
|
|
135
170
|
}
|
|
171
|
+
// @ts-ignore
|
|
136
172
|
container.position = { x, y };
|
|
137
173
|
}
|
|
138
174
|
}
|
|
@@ -149,7 +185,12 @@ let Transform = class Transform extends EventEmitter {
|
|
|
149
185
|
init(system) {
|
|
150
186
|
this.system = system;
|
|
151
187
|
this.on('changeScene', ({ scene, mode, application }) => {
|
|
188
|
+
// switch (mode) {
|
|
189
|
+
// case LOAD_SCENE_MODE.SINGLE:
|
|
152
190
|
this.waitChangeScenes.push({ scene, mode, application });
|
|
191
|
+
// break;
|
|
192
|
+
// case LOAD_SCENE_MODE.MULTI_CANVAS:
|
|
193
|
+
// }
|
|
153
194
|
});
|
|
154
195
|
}
|
|
155
196
|
update() {
|
|
@@ -158,6 +199,7 @@ let Transform = class Transform extends EventEmitter {
|
|
|
158
199
|
}
|
|
159
200
|
this.waitRemoveIds = [];
|
|
160
201
|
for (const sceneInfo of this.waitChangeScenes) {
|
|
202
|
+
// set scene
|
|
161
203
|
const container = this.containerManager.getContainer(sceneInfo.scene.id);
|
|
162
204
|
if (container) {
|
|
163
205
|
sceneInfo.application.stage.removeChildren();
|
|
@@ -290,17 +332,20 @@ let Renderer$1 = class Renderer extends System {
|
|
|
290
332
|
});
|
|
291
333
|
}
|
|
292
334
|
registerObserver(observerInfo) {
|
|
335
|
+
// @ts-ignore
|
|
293
336
|
const thisObserverInfo = this.constructor.observerInfo;
|
|
294
337
|
for (const key in observerInfo) {
|
|
295
338
|
if (!thisObserverInfo[key]) {
|
|
296
339
|
thisObserverInfo[key] = [];
|
|
297
340
|
}
|
|
341
|
+
//@ts-ignore
|
|
298
342
|
thisObserverInfo[key].push(...observerInfo[key]);
|
|
299
343
|
}
|
|
300
344
|
}
|
|
301
345
|
createMultiApplication({ params }) {
|
|
302
346
|
return __awaiter(this, void 0, void 0, function* () {
|
|
303
347
|
const app = yield this.createApplication(params);
|
|
348
|
+
// @ts-ignore
|
|
304
349
|
this.multiApps.push(app);
|
|
305
350
|
return app;
|
|
306
351
|
});
|
|
@@ -354,6 +399,7 @@ let Renderer$1 = class Renderer extends System {
|
|
|
354
399
|
resize(width, height) {
|
|
355
400
|
this.params.width = width;
|
|
356
401
|
this.params.height = height;
|
|
402
|
+
// @ts-ignore
|
|
357
403
|
this.application.renderer.resize(width, height);
|
|
358
404
|
}
|
|
359
405
|
getApplicationByScene(scene) {
|
|
@@ -381,6 +427,7 @@ let Renderer$1 = class Renderer extends System {
|
|
|
381
427
|
resizeByScene(scene, width, height) {
|
|
382
428
|
const app = this.getApplicationByScene(scene);
|
|
383
429
|
if (app) {
|
|
430
|
+
// @ts-ignore
|
|
384
431
|
app.renderer.resize(width, height);
|
|
385
432
|
}
|
|
386
433
|
}
|
|
@@ -400,7 +447,9 @@ function getSuportCompressedTextureFormats() {
|
|
|
400
447
|
const canvas = document.createElement('canvas');
|
|
401
448
|
const gl = canvas.getContext('webgl2');
|
|
402
449
|
if (!gl) {
|
|
450
|
+
// #if _DEBUG
|
|
403
451
|
console.warn('WebGL not available for compressed textures. Silently failing.');
|
|
452
|
+
// #endif
|
|
404
453
|
return {
|
|
405
454
|
s3tc: false,
|
|
406
455
|
etc: false,
|
|
@@ -453,14 +502,29 @@ function registerKtx2CompressedTexture(params) {
|
|
|
453
502
|
addPreProcessResourceHandler(resource);
|
|
454
503
|
}
|
|
455
504
|
|
|
505
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
456
506
|
class Renderer extends System {
|
|
457
507
|
constructor(params) {
|
|
458
508
|
super(params);
|
|
459
509
|
this.asyncIdMap = {};
|
|
510
|
+
// @ts-ignore
|
|
460
511
|
this.observerInfo = this.constructor.observerInfo;
|
|
461
512
|
}
|
|
513
|
+
// init(arg?: any): void;
|
|
514
|
+
/**
|
|
515
|
+
* 当监听的属性变化时候调用
|
|
516
|
+
*
|
|
517
|
+
* called while the observed component props change.
|
|
518
|
+
*/
|
|
462
519
|
componentChanged(_changed) { }
|
|
520
|
+
/**
|
|
521
|
+
* 每帧调用
|
|
522
|
+
*
|
|
523
|
+
* called by every loop
|
|
524
|
+
* @param _gameObject gameObject
|
|
525
|
+
*/
|
|
463
526
|
rendererUpdate(_gameObject) { }
|
|
527
|
+
// @ts-ignore
|
|
464
528
|
update(e) {
|
|
465
529
|
const changes = this.componentObserver.clear();
|
|
466
530
|
for (const changed of changes) {
|
|
@@ -476,7 +540,19 @@ class Renderer extends System {
|
|
|
476
540
|
}
|
|
477
541
|
}
|
|
478
542
|
|
|
543
|
+
// import { BaseTexture, utils } from 'pixi.js';
|
|
479
544
|
const mixinPIXI = () => {
|
|
545
|
+
// BaseTexture.prototype.destroy = function () {
|
|
546
|
+
// if (this.imageUrl) {
|
|
547
|
+
// delete utils.TextureCache[this.imageUrl];
|
|
548
|
+
// this.imageUrl = null;
|
|
549
|
+
// }
|
|
550
|
+
// this.source = null;
|
|
551
|
+
// this.dispose();
|
|
552
|
+
// BaseTexture.removeFromCache(this);
|
|
553
|
+
// this.textureCacheIds = null;
|
|
554
|
+
// this._destroyed = true;
|
|
555
|
+
// };
|
|
480
556
|
};
|
|
481
557
|
|
|
482
558
|
mixinPIXI();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eva/plugin-renderer",
|
|
3
|
-
"version": "2.0.1-beta.
|
|
3
|
+
"version": "2.0.1-beta.29",
|
|
4
4
|
"description": "@eva/plugin-renderer",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "dist/plugin-renderer.esm.js",
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"homepage": "https://eva.js.org",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@eva/eva.js": "2.0.1-beta.
|
|
22
|
-
"@eva/renderer-adapter": "2.0.1-beta.
|
|
21
|
+
"@eva/eva.js": "2.0.1-beta.29",
|
|
22
|
+
"@eva/renderer-adapter": "2.0.1-beta.29",
|
|
23
23
|
"eventemitter3": "^3.1.2",
|
|
24
24
|
"lodash-es": "^4.17.21",
|
|
25
25
|
"pixi.js": "^8.8.1"
|