Skip to content

Commit 6bc8e7c

Browse files
committed
Trying to get batching working with Scene Renderer
1 parent eda554b commit 6bc8e7c

1 file changed

Lines changed: 41 additions & 19 deletions

File tree

plugins/spine/src/gameobject/SpineGameObjectWebGLRenderer.js

Lines changed: 41 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,18 @@ var RadToDeg = require('../../../../src/math/RadToDeg');
2525
var SpineGameObjectWebGLRenderer = function (renderer, src, interpolationPercentage, camera, parentMatrix)
2626
{
2727
var plugin = src.plugin;
28-
var mvp = plugin.mvp;
2928

30-
var shader = plugin.shader;
31-
var batcher = plugin.batcher;
32-
var runtime = plugin.runtime;
29+
// var mvp = plugin.mvp;
30+
31+
// var shader = plugin.shader;
32+
// var batcher = plugin.batcher;
33+
// var runtime = plugin.runtime;
34+
3335
var skeleton = src.skeleton;
34-
var skeletonRenderer = plugin.skeletonRenderer;
36+
37+
var sceneRenderer = plugin.sceneRenderer;
38+
39+
// var skeletonRenderer = plugin.skeletonRenderer;
3540

3641
if (!skeleton)
3742
{
@@ -73,8 +78,8 @@ var SpineGameObjectWebGLRenderer = function (renderer, src, interpolationPercent
7378
camMatrix.multiply(spriteMatrix, calcMatrix);
7479
}
7580

76-
var width = renderer.width;
77-
var height = renderer.height;
81+
var viewportWidth = renderer.width;
82+
var viewportHeight = renderer.height;
7883

7984
skeleton.x = calcMatrix.tx;
8085
skeleton.scaleX = calcMatrix.scaleX;
@@ -86,44 +91,61 @@ var SpineGameObjectWebGLRenderer = function (renderer, src, interpolationPercent
8691
}
8792
else
8893
{
89-
skeleton.y = height - calcMatrix.ty;
94+
skeleton.y = viewportHeight - calcMatrix.ty;
9095
skeleton.scaleY = calcMatrix.scaleY;
9196
}
9297

9398
src.root.rotation = RadToDeg(CounterClockwise(calcMatrix.rotation));
9499

100+
sceneRenderer.camera.position.x = viewportWidth / 2;
101+
sceneRenderer.camera.position.y = viewportHeight / 2;
102+
sceneRenderer.camera.viewportWidth = viewportWidth;
103+
sceneRenderer.camera.viewportHeight = viewportHeight;
104+
95105
// Add autoUpdate option
96106
skeleton.updateWorldTransform();
97107

98108
if (renderer.newType)
99109
{
100-
mvp.ortho(0, width, 0, height, 0, 1);
110+
sceneRenderer.begin();
101111

102-
shader.bind();
103-
shader.setUniformi(runtime.Shader.SAMPLER, 0);
104-
shader.setUniform4x4f(runtime.Shader.MVP_MATRIX, mvp.val);
112+
// mvp.ortho(0, width, 0, height, 0, 1);
105113

106-
skeletonRenderer.premultipliedAlpha = true;
114+
// shader.bind();
115+
// shader.setUniformi(runtime.Shader.SAMPLER, 0);
116+
// shader.setUniform4x4f(runtime.Shader.MVP_MATRIX, mvp.val);
107117

108-
batcher.begin(shader);
118+
// skeletonRenderer.premultipliedAlpha = true;
119+
120+
// batcher.setBlendMode(renderer.gl.ONE, renderer.gl.ONE_MINUS_SRC_ALPHA);
121+
// batcher.begin(shader);
109122
}
110123

111124
if (renderer.nextTypeMatch)
112125
{
113-
// batcher.isDrawing = false;
126+
// sceneRenderer.batcher.isDrawing = false;
114127
}
115128

116129
// Draw the current skeleton
117-
skeletonRenderer.draw(batcher, skeleton);
130+
131+
sceneRenderer.drawSkeleton(skeleton, true);
132+
133+
// sceneRenderer.drawSkeletonDebug(skeleton, true);
134+
135+
// skeletonRenderer.premultipliedAlpha = true;
136+
// skeletonRenderer.draw(batcher, skeleton);
118137

119138
if (!renderer.nextTypeMatch)
120139
{
121140
// The next object in the display list is not a Spine object, so we end the batch
122-
batcher.isDrawing = true;
141+
// batcher.isDrawing = true;
142+
// sceneRenderer.batcher.isDrawing = true;
143+
144+
// batcher.end();
123145

124-
batcher.end();
146+
// shader.unbind();
125147

126-
shader.unbind();
148+
sceneRenderer.end();
127149

128150
renderer.rebindPipeline(renderer.pipelines.TextureTintPipeline);
129151
}

0 commit comments

Comments
 (0)