2121 */
2222var SpineGameObjectWebGLRenderer = function ( renderer , src , interpolationPercentage , camera , parentMatrix )
2323{
24+ var pipeline = renderer . currentPipeline ;
25+
26+ renderer . flush ( ) ;
27+
28+ renderer . currentProgram = null ;
29+ renderer . currentVertexBuffer = null ;
30+
31+ var mvp = src . mvp ;
2432 var plugin = src . plugin ;
25- var mvp = plugin . mvp ;
2633 var shader = plugin . shader ;
2734 var batcher = plugin . batcher ;
2835 var runtime = src . runtime ;
2936 var skeletonRenderer = plugin . skeletonRenderer ;
3037
31- // spriteMatrix.applyITRS(sprite.x, sprite.y, sprite.rotation, sprite.scaleX, sprite.scaleY);
32-
33- src . mvp . identity ( ) ;
34-
35- src . mvp . ortho ( 0 , 0 + 800 , 0 , 0 + 600 , 0 , 1 ) ;
36-
37- src . mvp . translate ( { x : src . x , y : 600 - src . y , z : 0 } ) ;
38-
39- src . mvp . rotateX ( src . rotation ) ;
40-
41- src . mvp . scale ( { x : src . scaleX , y : src . scaleY , z : 1 } ) ;
42-
43- // mvp.translate(-src.x, src.y, 0);
44- // mvp.ortho2d(-250, 0, 800, 600);
45-
46- // var camMatrix = renderer._tempMatrix1;
47- // var spriteMatrix = renderer._tempMatrix2;
48- // var calcMatrix = renderer._tempMatrix3;
49-
50- // spriteMatrix.applyITRS(src.x, src.y, src.rotation, src.scaleX, src.scaleY);
51-
52- // mvp.values[0] = spriteMatrix[0];
53- // mvp.values[1] = spriteMatrix[1];
54- // mvp.values[2] = spriteMatrix[2];
55- // mvp.values[4] = spriteMatrix[3];
56- // mvp.values[5] = spriteMatrix[4];
57- // mvp.values[6] = spriteMatrix[5];
58- // mvp.values[8] = spriteMatrix[6];
59- // mvp.values[9] = spriteMatrix[7];
60- // mvp.values[10] = spriteMatrix[8];
61-
62- // Const = Array Index = Identity
63- // M00 = 0 = 1
64- // M01 = 4 = 0
65- // M02 = 8 = 0
66- // M03 = 12 = 0
67- // M10 = 1 = 0
68- // M11 = 5 = 1
69- // M12 = 9 = 0
70- // M13 = 13 = 0
71- // M20 = 2 = 0
72- // M21 = 6 = 0
73- // M22 = 10 = 1
74- // M23 = 14 = 0
75- // M30 = 3 = 0
76- // M31 = 7 = 0
77- // M32 = 11 = 0
78- // M33 = 15 = 1
79-
80- mvp . values [ 0 ] = src . mvp . val [ 0 ] ;
81- mvp . values [ 1 ] = src . mvp . val [ 1 ] ;
82- mvp . values [ 2 ] = src . mvp . val [ 2 ] ;
83- mvp . values [ 3 ] = src . mvp . val [ 3 ] ;
84- mvp . values [ 4 ] = src . mvp . val [ 4 ] ;
85- mvp . values [ 5 ] = src . mvp . val [ 5 ] ;
86- mvp . values [ 6 ] = src . mvp . val [ 6 ] ;
87- mvp . values [ 7 ] = src . mvp . val [ 7 ] ;
88- mvp . values [ 8 ] = src . mvp . val [ 8 ] ;
89- mvp . values [ 9 ] = src . mvp . val [ 9 ] ;
90- mvp . values [ 10 ] = src . mvp . val [ 10 ] ;
91- mvp . values [ 11 ] = src . mvp . val [ 11 ] ;
92- mvp . values [ 12 ] = src . mvp . val [ 12 ] ;
93- mvp . values [ 13 ] = src . mvp . val [ 13 ] ;
94- mvp . values [ 14 ] = src . mvp . val [ 14 ] ;
95- mvp . values [ 15 ] = src . mvp . val [ 15 ] ;
96-
97- // Array Order - Index
98- // M00 = 0
99- // M10 = 1
100- // M20 = 2
101- // M30 = 3
102- // M01 = 4
103- // M11 = 5
104- // M21 = 6
105- // M31 = 7
106- // M02 = 8
107- // M12 = 9
108- // M22 = 10
109- // M32 = 11
110- // M03 = 12
111- // M13 = 13
112- // M23 = 14
113- // M33 = 15
114-
115-
116- // mvp.ortho(-250, -250 + 1600, 0, 0 + 1200, 0, 1);
38+ mvp . ortho ( 0 , renderer . width , 0 , renderer . height , 0 , 1 ) ;
39+
40+ // var originX = camera.width * camera.originX;
41+ // var originY = camera.height * camera.originY;
42+ // mvp.translateXYZ(((camera.x - originX) - camera.scrollX) + src.x, renderer.height - (((camera.y + originY) - camera.scrollY) + src.y), 0);
43+ // mvp.rotateZ(-(camera.rotation + src.rotation));
44+ // mvp.scaleXYZ(camera.zoom * src.scaleX, camera.zoom * src.scaleY, 1);
45+
46+ mvp . translateXYZ ( src . x , renderer . height - src . y , 0 ) ;
47+ mvp . rotateZ ( - src . rotation ) ;
48+ mvp . scaleXYZ ( src . scaleX , src . scaleY , 1 ) ;
49+
50+ // spriteMatrix.e -= camera.scrollX * sprite.scrollFactorX;
51+ // spriteMatrix.f -= camera.scrollY * sprite.scrollFactorY;
52+
53+ // 12,13 = tx/ty
54+ // 0,5 = scale x/y
55+
56+ // var localA = mvp.val[0];
57+ // var localB = mvp.val[1];
58+ // var localC = mvp.val[2];
59+ // var localD = mvp.val[3];
60+ // var localE = mvp.val[4];
61+ // var localF = mvp.val[5];
62+
63+ // var sourceA = camMatrix.matrix[0];
64+ // var sourceB = camMatrix.matrix[1];
65+ // var sourceC = camMatrix.matrix[2];
66+ // var sourceD = camMatrix.matrix[3];
67+ // var sourceE = camMatrix.matrix[4];
68+ // var sourceF = camMatrix.matrix[5];
69+
70+ // mvp.val[0] = (sourceA * localA) + (sourceB * localC);
71+ // mvp.val[1] = (sourceA * localB) + (sourceB * localD);
72+ // mvp.val[2] = (sourceC * localA) + (sourceD * localC);
73+ // mvp.val[3] = (sourceC * localB) + (sourceD * localD);
74+ // mvp.val[4] = (sourceE * localA) + (sourceF * localC) + localE;
75+ // mvp.val[5] = (sourceE * localB) + (sourceF * localD) + localF;
11776
11877 src . skeleton . updateWorldTransform ( ) ;
11978
12079 // Bind the shader and set the texture and model-view-projection matrix.
12180
12281 shader . bind ( ) ;
12382 shader . setUniformi ( runtime . webgl . Shader . SAMPLER , 0 ) ;
124- shader . setUniform4x4f ( runtime . webgl . Shader . MVP_MATRIX , mvp . values ) ;
83+ shader . setUniform4x4f ( runtime . webgl . Shader . MVP_MATRIX , mvp . val ) ;
12584
12685 // Start the batch and tell the SkeletonRenderer to render the active skeleton.
12786 batcher . begin ( shader ) ;
12887
12988 plugin . skeletonRenderer . vertexEffect = null ;
13089
131- skeletonRenderer . premultipliedAlpha = true ;
90+ skeletonRenderer . premultipliedAlpha = false ;
13291
13392 skeletonRenderer . draw ( batcher , src . skeleton ) ;
13493
@@ -147,6 +106,11 @@ var SpineGameObjectWebGLRenderer = function (renderer, src, interpolationPercent
147106 debugShader.unbind();
148107 }
149108 */
109+
110+ renderer . currentPipeline = pipeline ;
111+ renderer . currentPipeline . bind ( ) ;
112+ renderer . currentPipeline . onBind ( ) ;
113+ renderer . setBlankTexture ( true ) ;
150114} ;
151115
152116module . exports = SpineGameObjectWebGLRenderer ;
0 commit comments