55 */
66
77var CounterClockwise = require ( '../../../../src/math/angle/CounterClockwise' ) ;
8+ var RadToDeg = require ( '../../../../src/math/RadToDeg' ) ;
89
910/**
1011 * Renders this Game Object with the Canvas Renderer to the given Camera.
@@ -23,13 +24,12 @@ var CounterClockwise = require('../../../../src/math/angle/CounterClockwise');
2324 */
2425var SpineGameObjectWebGLRenderer = function ( renderer , src , interpolationPercentage , camera , parentMatrix )
2526{
26- var pipeline = renderer . currentPipeline ;
2727 var plugin = src . plugin ;
2828 var mvp = plugin . mvp ;
2929
3030 var shader = plugin . shader ;
3131 var batcher = plugin . batcher ;
32- var runtime = src . runtime ;
32+ var runtime = plugin . runtime ;
3333 var skeleton = src . skeleton ;
3434 var skeletonRenderer = plugin . skeletonRenderer ;
3535
@@ -38,7 +38,10 @@ var SpineGameObjectWebGLRenderer = function (renderer, src, interpolationPercent
3838 return ;
3939 }
4040
41- renderer . clearPipeline ( ) ;
41+ if ( renderer . newType )
42+ {
43+ renderer . clearPipeline ( ) ;
44+ }
4245
4346 var camMatrix = renderer . _tempMatrix1 ;
4447 var spriteMatrix = renderer . _tempMatrix2 ;
@@ -73,38 +76,60 @@ var SpineGameObjectWebGLRenderer = function (renderer, src, interpolationPercent
7376 var width = renderer . width ;
7477 var height = renderer . height ;
7578
76- var data = calcMatrix . decomposeMatrix ( ) ;
79+ skeleton . x = calcMatrix . tx ;
80+ skeleton . y = height - calcMatrix . ty ;
81+ skeleton . scaleX = calcMatrix . scaleX ;
82+ skeleton . scaleY = calcMatrix . scaleY ;
7783
78- mvp . ortho ( 0 , width , 0 , height , 0 , 1 ) ;
79- mvp . translateXYZ ( data . translateX , height - data . translateY , 0 ) ;
80- mvp . rotateZ ( CounterClockwise ( data . rotation ) ) ;
81- mvp . scaleXYZ ( data . scaleX , data . scaleY , 1 ) ;
84+ src . root . rotation = RadToDeg ( CounterClockwise ( calcMatrix . rotation ) ) ;
8285
83- // For a Stage 1 release we'll handle it like this:
84- shader . bind ( ) ;
85- shader . setUniformi ( runtime . webgl . Shader . SAMPLER , 0 ) ;
86- shader . setUniform4x4f ( runtime . webgl . Shader . MVP_MATRIX , mvp . val ) ;
86+ // Add autoUpdate option
87+ skeleton . updateWorldTransform ( ) ;
88+
89+ if ( renderer . newType )
90+ {
91+ mvp . ortho ( 0 , width , 0 , height , 0 , 1 ) ;
8792
88- // For Stage 2, we'll move to using a custom pipeline, so Spine objects are batched
93+ shader . bind ( ) ;
94+ shader . setUniformi ( runtime . Shader . SAMPLER , 0 ) ;
95+ shader . setUniform4x4f ( runtime . Shader . MVP_MATRIX , mvp . val ) ;
8996
90- batcher . begin ( shader ) ;
97+ batcher . begin ( shader ) ;
9198
92- skeletonRenderer . premultipliedAlpha = true ;
99+ skeletonRenderer . premultipliedAlpha = true ;
100+ }
101+
102+ if ( renderer . nextTypeMatch )
103+ {
104+ batcher . isDrawing = false ;
105+ }
93106
107+ // Draw the current skeleton
94108 skeletonRenderer . draw ( batcher , skeleton ) ;
95109
96- batcher . end ( ) ;
110+ if ( ! renderer . nextTypeMatch )
111+ {
112+ // The next object in the display list is not a Spine object, so we end the batch
113+ batcher . isDrawing = true ;
114+
115+ batcher . end ( ) ;
97116
98- shader . unbind ( ) ;
117+ shader . unbind ( ) ;
99118
100- if ( plugin . drawDebug || src . drawDebug )
119+ renderer . rebindPipeline ( renderer . pipelines . TextureTintPipeline ) ;
120+ }
121+
122+ /*
123+ var drawDebug = (plugin.drawDebug || src.drawDebug);
124+
125+ if (drawDebug)
101126 {
102127 var debugShader = plugin.debugShader;
103128 var debugRenderer = plugin.debugRenderer;
104129 var shapes = plugin.shapes;
105130
106131 debugShader.bind();
107- debugShader . setUniform4x4f ( runtime . webgl . Shader . MVP_MATRIX , mvp . val ) ;
132+ debugShader.setUniform4x4f(runtime.Shader.MVP_MATRIX, mvp.val);
108133
109134 shapes.begin(debugShader);
110135
@@ -114,8 +139,7 @@ var SpineGameObjectWebGLRenderer = function (renderer, src, interpolationPercent
114139
115140 debugShader.unbind();
116141 }
117-
118- renderer . rebindPipeline ( pipeline ) ;
142+ */
119143} ;
120144
121145module . exports = SpineGameObjectWebGLRenderer ;
0 commit comments