diff --git a/spine-ts/index.html b/spine-ts/index.html
index f7c99f4c3..177fa1d2e 100644
--- a/spine-ts/index.html
+++ b/spine-ts/index.html
@@ -86,6 +86,9 @@
Custom object factory name
+
+ Add existing object
+
Player
diff --git a/spine-ts/spine-phaser/example/add-existing.html b/spine-ts/spine-phaser/example/add-existing.html
new file mode 100644
index 000000000..5b115d6b9
--- /dev/null
+++ b/spine-ts/spine-phaser/example/add-existing.html
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+ Spine Phaser Example
+
+
+
+ Add existing object
+
+
+
+
\ No newline at end of file
diff --git a/spine-ts/spine-phaser/src/SpinePlugin.ts b/spine-ts/spine-phaser/src/SpinePlugin.ts
index 01abaf0f4..e9d5cbfb1 100644
--- a/spine-ts/spine-phaser/src/SpinePlugin.ts
+++ b/spine-ts/spine-phaser/src/SpinePlugin.ts
@@ -75,7 +75,10 @@ export class SpinePlugin extends Phaser.Plugins.ScenePlugin {
game: Phaser.Game;
private isWebGL: boolean;
gl: WebGLRenderingContext | null;
- webGLRenderer: SceneRenderer | null;
+ static gameWebGLRenderer: SceneRenderer | null = null;
+ get webGLRenderer(): SceneRenderer | null {
+ return SpinePlugin.gameWebGLRenderer;
+ }
canvasRenderer: SkeletonRenderer | null;
phaserRenderer: Phaser.Renderer.Canvas.CanvasRenderer | Phaser.Renderer.WebGL.WebGLRenderer;
private skeletonDataCache: Phaser.Cache.BaseCache;
@@ -87,7 +90,6 @@ export class SpinePlugin extends Phaser.Plugins.ScenePlugin {
this.isWebGL = this.game.config.renderType === 2;
this.gl = this.isWebGL ? (this.game.renderer as Phaser.Renderer.WebGL.WebGLRenderer).gl : null;
this.phaserRenderer = this.game.renderer;
- this.webGLRenderer = null;
this.canvasRenderer = null;
this.skeletonDataCache = this.game.cache.addCustom(SPINE_SKELETON_DATA_CACHE_KEY);
this.atlasCache = this.game.cache.addCustom(SPINE_ATLAS_CACHE_KEY);
@@ -141,11 +143,12 @@ export class SpinePlugin extends Phaser.Plugins.ScenePlugin {
pluginManager.registerGameObject((window as any).SPINE_GAME_OBJECT_TYPE ? (window as any).SPINE_GAME_OBJECT_TYPE : SPINE_GAME_OBJECT_TYPE, addSpineGameObject, makeSpineGameObject);
}
+ static rendererId = 0;
boot () {
Skeleton.yDown = true;
if (this.isWebGL) {
- if (!this.webGLRenderer) {
- this.webGLRenderer = new SceneRenderer((this.game.renderer! as Phaser.Renderer.WebGL.WebGLRenderer).canvas, this.gl!, true);
+ if (!SpinePlugin.gameWebGLRenderer) {
+ SpinePlugin.gameWebGLRenderer = new SceneRenderer((this.game.renderer! as Phaser.Renderer.WebGL.WebGLRenderer).canvas, this.gl!, true);
}
this.onResize();
this.game.scale.on(Phaser.Scale.Events.RESIZE, this.onResize, this);