@@ -15,10 +15,14 @@ var DynamicBitmapTextWebGLRenderer = function (renderer, gameObject, interpolati
1515 var cameraScrollY = camera . scrollY * gameObject . scrollFactorY ;
1616 var text = gameObject . text ;
1717 var textLength = text . length ;
18- var chars = gameObject . fontData . data . chars ;
18+ var chars = gameObject . fontData . chars ;
1919 var lineHeight = gameObject . fontData . lineHeight ;
2020 var spriteBatch = renderer . spriteBatch ;
2121 var alpha = gameObject . alpha ;
22+ var tintTL = gameObject . _tintTL ;
23+ var tintTR = gameObject . _tintTR ;
24+ var tintBL = gameObject . _tintBL ;
25+ var tintBR = gameObject . _tintBR ;
2226 var vertexDataBuffer = spriteBatch . vertexDataBuffer ;
2327 var vertexBuffer = vertexDataBuffer . floatView ;
2428 var vertexBufferU32 = vertexDataBuffer . uintView ;
@@ -38,7 +42,6 @@ var DynamicBitmapTextWebGLRenderer = function (renderer, gameObject, interpolati
3842 var glyphY = 0 ;
3943 var glyphW = 0 ;
4044 var glyphH = 0 ;
41- var vertexColor = 0xFFFFFFFF ;
4245 var x = 0 ;
4346 var y = 0 ;
4447 var rotation = 0 ;
@@ -54,14 +57,14 @@ var DynamicBitmapTextWebGLRenderer = function (renderer, gameObject, interpolati
5457 var cameraMatrix = camera . matrix . matrix ;
5558 var mva , mvb , mvc , mvd , mve , mvf , tx0 , ty0 , tx1 , ty1 , tx2 , ty2 , tx3 , ty3 ;
5659 var sra , srb , src , srd , sre , srf , cma , cmb , cmc , cmd , cme , cmf ;
57- var scale = ( gameObject . fontSize / gameObject . fontData . data . size ) ;
60+ var scale = ( gameObject . fontSize / gameObject . fontData . size ) ;
5861 var uta , utb , utc , utd , ute , utf ;
5962 var tempMatrixCharMatrix = tempMatrixChar . matrix ;
6063 var renderTarget = gameObject . renderTarget ;
6164
6265 tempMatrix . applyITRS (
63- gameObject . x - cameraScrollX , gameObject . y - cameraScrollY ,
64- - gameObject . rotation ,
66+ gameObject . x - cameraScrollX , gameObject . y - cameraScrollY ,
67+ - gameObject . rotation ,
6568 gameObject . scaleX , gameObject . scaleY
6669 ) ;
6770
@@ -128,10 +131,13 @@ var DynamicBitmapTextWebGLRenderer = function (renderer, gameObject, interpolati
128131
129132 glyphX = textureX + glyph . x ;
130133 glyphY = textureY + glyph . y ;
134+
131135 glyphW = glyph . width ;
132136 glyphH = glyph . height ;
137+
133138 x = ( indexCount + glyph . xOffset + xAdvance ) * scale ;
134139 y = ( glyph . yOffset + yAdvance ) * scale ;
140+
135141 rotation = 0 ;
136142
137143 if ( lastGlyph !== null )
@@ -142,13 +148,17 @@ var DynamicBitmapTextWebGLRenderer = function (renderer, gameObject, interpolati
142148
143149 if ( displayCallback )
144150 {
145- var output = displayCallback ( { color : 0xFFFFFF , index : index , charCode : charCode , x : x , y : y , scale : scale , rotation : 0 , data : glyph . data } ) ;
151+ var output = displayCallback ( { tint : { topLeft : tintTL , topRight : tintTR , bottomLeft : tintBL , bottomRight : tintBR } , index : index , charCode : charCode , x : x , y : y , scale : scale , rotation : 0 , data : glyph . data } ) ;
146152
147153 x = output . x ;
148154 y = output . y ;
149155 scale = output . scale ;
150156 rotation = output . rotation ;
151- vertexColor = output . color ;
157+
158+ tintTL = output . tint . topLeft ;
159+ tintTR = output . tint . topRight ;
160+ tintBL = output . tint . bottomLeft ;
161+ tintBR = output . tint . bottomRight ;
152162 }
153163
154164 x -= gameObject . scrollX | 0 ;
@@ -202,28 +212,28 @@ var DynamicBitmapTextWebGLRenderer = function (renderer, gameObject, interpolati
202212 vertexBuffer [ vertexOffset ++ ] = ty0 ;
203213 vertexBuffer [ vertexOffset ++ ] = umin ;
204214 vertexBuffer [ vertexOffset ++ ] = vmin ;
205- vertexBufferU32 [ vertexOffset ++ ] = vertexColor ;
215+ vertexBufferU32 [ vertexOffset ++ ] = tintTL ;
206216 vertexBuffer [ vertexOffset ++ ] = alpha ;
207217
208218 vertexBuffer [ vertexOffset ++ ] = tx1 ;
209219 vertexBuffer [ vertexOffset ++ ] = ty1 ;
210220 vertexBuffer [ vertexOffset ++ ] = umin ;
211221 vertexBuffer [ vertexOffset ++ ] = vmax ;
212- vertexBufferU32 [ vertexOffset ++ ] = vertexColor ;
222+ vertexBufferU32 [ vertexOffset ++ ] = tintBL ;
213223 vertexBuffer [ vertexOffset ++ ] = alpha ;
214224
215225 vertexBuffer [ vertexOffset ++ ] = tx2 ;
216226 vertexBuffer [ vertexOffset ++ ] = ty2 ;
217227 vertexBuffer [ vertexOffset ++ ] = umax ;
218228 vertexBuffer [ vertexOffset ++ ] = vmax ;
219- vertexBufferU32 [ vertexOffset ++ ] = vertexColor ;
229+ vertexBufferU32 [ vertexOffset ++ ] = tintBR ;
220230 vertexBuffer [ vertexOffset ++ ] = alpha ;
221231
222232 vertexBuffer [ vertexOffset ++ ] = tx3 ;
223233 vertexBuffer [ vertexOffset ++ ] = ty3 ;
224234 vertexBuffer [ vertexOffset ++ ] = umax ;
225235 vertexBuffer [ vertexOffset ++ ] = vmin ;
226- vertexBufferU32 [ vertexOffset ++ ] = vertexColor ;
236+ vertexBufferU32 [ vertexOffset ++ ] = tintTR ;
227237 vertexBuffer [ vertexOffset ++ ] = alpha ;
228238
229239 xAdvance += glyph . xAdvance ;
0 commit comments