@@ -238,8 +238,9 @@ var StaticTilemapLayer = new Class({
238238 var gl = renderer . gl ;
239239 var vertexBuffer = this . vertexBuffer ;
240240 var bufferData = this . bufferData ;
241- var voffset = 0 ;
241+ var voffset = - 1 ;
242242 var vertexCount = 0 ;
243+ var tintEffect = false ;
243244 var bufferSize = ( mapWidth * mapHeight ) * pipeline . vertexSize * 6 ;
244245
245246 if ( bufferData === null )
@@ -258,15 +259,23 @@ var StaticTilemapLayer = new Class({
258259 for ( col = 0 ; col < mapWidth ; ++ col )
259260 {
260261 tile = mapData [ row ] [ col ] ;
261- if ( tile === null || tile . index === - 1 ) { continue ; }
262+
263+ if ( tile === null || tile . index === - 1 )
264+ {
265+ continue ;
266+ }
262267
263268 var tx = tile . pixelX ;
264269 var ty = tile . pixelY ;
265270 var txw = tx + tile . width ;
266271 var tyh = ty + tile . height ;
267272
268273 texCoords = tileset . getTileTextureCoordinates ( tile . index ) ;
269- if ( texCoords === null ) { continue ; }
274+
275+ if ( texCoords === null )
276+ {
277+ continue ;
278+ }
270279
271280 var u0 = texCoords . x / width ;
272281 var v0 = texCoords . y / height ;
@@ -281,46 +290,58 @@ var StaticTilemapLayer = new Class({
281290 var ty2 = tyh ;
282291 var tx3 = txw ;
283292 var ty3 = ty ;
293+
284294 var tint = Utils . getTintAppendFloatAlpha ( 0xffffff , camera . alpha * this . alpha * tile . alpha ) ;
285295
286- vertexViewF32 [ voffset + 0 ] = tx0 ;
287- vertexViewF32 [ voffset + 1 ] = ty0 ;
288- vertexViewF32 [ voffset + 2 ] = u0 ;
289- vertexViewF32 [ voffset + 3 ] = v0 ;
290- vertexViewU32 [ voffset + 4 ] = tint ;
291- vertexViewF32 [ voffset + 5 ] = tx1 ;
292- vertexViewF32 [ voffset + 6 ] = ty1 ;
293- vertexViewF32 [ voffset + 7 ] = u0 ;
294- vertexViewF32 [ voffset + 8 ] = v1 ;
295- vertexViewU32 [ voffset + 9 ] = tint ;
296- vertexViewF32 [ voffset + 10 ] = tx2 ;
297- vertexViewF32 [ voffset + 11 ] = ty2 ;
298- vertexViewF32 [ voffset + 12 ] = u1 ;
299- vertexViewF32 [ voffset + 13 ] = v1 ;
300- vertexViewU32 [ voffset + 14 ] = tint ;
301- vertexViewF32 [ voffset + 15 ] = tx0 ;
302- vertexViewF32 [ voffset + 16 ] = ty0 ;
303- vertexViewF32 [ voffset + 17 ] = u0 ;
304- vertexViewF32 [ voffset + 18 ] = v0 ;
305- vertexViewU32 [ voffset + 19 ] = tint ;
306- vertexViewF32 [ voffset + 20 ] = tx2 ;
307- vertexViewF32 [ voffset + 21 ] = ty2 ;
308- vertexViewF32 [ voffset + 22 ] = u1 ;
309- vertexViewF32 [ voffset + 23 ] = v1 ;
310- vertexViewU32 [ voffset + 24 ] = tint ;
311- vertexViewF32 [ voffset + 25 ] = tx3 ;
312- vertexViewF32 [ voffset + 26 ] = ty3 ;
313- vertexViewF32 [ voffset + 27 ] = u1 ;
314- vertexViewF32 [ voffset + 28 ] = v0 ;
315- vertexViewU32 [ voffset + 29 ] = tint ;
316-
317- voffset += 30 ;
296+ vertexViewF32 [ ++ voffset ] = tx0 ;
297+ vertexViewF32 [ ++ voffset ] = ty0 ;
298+ vertexViewF32 [ ++ voffset ] = u0 ;
299+ vertexViewF32 [ ++ voffset ] = v0 ;
300+ vertexViewF32 [ ++ voffset ] = tintEffect ;
301+ vertexViewU32 [ ++ voffset ] = tint ;
302+
303+ vertexViewF32 [ ++ voffset ] = tx1 ;
304+ vertexViewF32 [ ++ voffset ] = ty1 ;
305+ vertexViewF32 [ ++ voffset ] = u0 ;
306+ vertexViewF32 [ ++ voffset ] = v1 ;
307+ vertexViewF32 [ ++ voffset ] = tintEffect ;
308+ vertexViewU32 [ ++ voffset ] = tint ;
309+
310+ vertexViewF32 [ ++ voffset ] = tx2 ;
311+ vertexViewF32 [ ++ voffset ] = ty2 ;
312+ vertexViewF32 [ ++ voffset ] = u1 ;
313+ vertexViewF32 [ ++ voffset ] = v1 ;
314+ vertexViewF32 [ ++ voffset ] = tintEffect ;
315+ vertexViewU32 [ ++ voffset ] = tint ;
316+
317+ vertexViewF32 [ ++ voffset ] = tx0 ;
318+ vertexViewF32 [ ++ voffset ] = ty0 ;
319+ vertexViewF32 [ ++ voffset ] = u0 ;
320+ vertexViewF32 [ ++ voffset ] = v0 ;
321+ vertexViewF32 [ ++ voffset ] = tintEffect ;
322+ vertexViewU32 [ ++ voffset ] = tint ;
323+
324+ vertexViewF32 [ ++ voffset ] = tx2 ;
325+ vertexViewF32 [ ++ voffset ] = ty2 ;
326+ vertexViewF32 [ ++ voffset ] = u1 ;
327+ vertexViewF32 [ ++ voffset ] = v1 ;
328+ vertexViewF32 [ ++ voffset ] = tintEffect ;
329+ vertexViewU32 [ ++ voffset ] = tint ;
330+
331+ vertexViewF32 [ ++ voffset ] = tx3 ;
332+ vertexViewF32 [ ++ voffset ] = ty3 ;
333+ vertexViewF32 [ ++ voffset ] = u1 ;
334+ vertexViewF32 [ ++ voffset ] = v0 ;
335+ vertexViewF32 [ ++ voffset ] = tintEffect ;
336+ vertexViewU32 [ ++ voffset ] = tint ;
337+
318338 vertexCount += 6 ;
319339 }
320340 }
321341
322342 this . vertexCount = vertexCount ;
323343 this . dirty = false ;
344+
324345 if ( vertexBuffer === null )
325346 {
326347 vertexBuffer = renderer . createVertexBuffer ( bufferData , gl . STATIC_DRAW ) ;
0 commit comments