44 * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License }
55 */
66
7- var SetTransform = require ( '../../../../src/renderer/canvas/utils/SetTransform' ) ;
8-
97/**
108 * Renders this Game Object with the Canvas Renderer to the given Camera.
119 * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.
@@ -23,12 +21,132 @@ var SetTransform = require('../../../../src/renderer/canvas/utils/SetTransform')
2321 */
2422var SpineGameObjectWebGLRenderer = function ( renderer , src , interpolationPercentage , camera , parentMatrix )
2523{
26- src . plugin . skeletonRenderer . ctx = context ;
24+ var plugin = src . plugin ;
25+ var mvp = plugin . mvp ;
26+ var shader = plugin . shader ;
27+ var batcher = plugin . batcher ;
28+ var runtime = src . runtime ;
29+ var skeletonRenderer = plugin . skeletonRenderer ;
30+
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);
27117
28118 src . skeleton . updateWorldTransform ( ) ;
29119
30- src . plugin . skeletonRenderer . draw ( src . skeleton ) ;
120+ // Bind the shader and set the texture and model-view-projection matrix.
121+
122+ shader . bind ( ) ;
123+ shader . setUniformi ( runtime . webgl . Shader . SAMPLER , 0 ) ;
124+ shader . setUniform4x4f ( runtime . webgl . Shader . MVP_MATRIX , mvp . values ) ;
125+
126+ // Start the batch and tell the SkeletonRenderer to render the active skeleton.
127+ batcher . begin ( shader ) ;
128+
129+ plugin . skeletonRenderer . vertexEffect = null ;
130+
131+ skeletonRenderer . premultipliedAlpha = true ;
132+
133+ skeletonRenderer . draw ( batcher , src . skeleton ) ;
134+
135+ batcher . end ( ) ;
136+
137+ shader . unbind ( ) ;
31138
139+ /*
140+ if (debug) {
141+ debugShader.bind();
142+ debugShader.setUniform4x4f(spine.webgl.Shader.MVP_MATRIX, mvp.values);
143+ debugRenderer.premultipliedAlpha = premultipliedAlpha;
144+ shapes.begin(debugShader);
145+ debugRenderer.draw(shapes, skeleton);
146+ shapes.end();
147+ debugShader.unbind();
148+ }
149+ */
32150} ;
33151
34152module . exports = SpineGameObjectWebGLRenderer ;
0 commit comments