anchor.diff:      fAnimTilesVtxCount := 0;
       fAnimTilesIndCount := 0;
     end;
  +
  +  for V := Low(TVBOArrayType) to High(TVBOArrayType) do
  +    fVBONeedsFlush[V] := True;
   end;
   
   
  
positive.code: var
    I, K: Integer;
    pData: array [0..255] of Cardinal;
  begin
    inherited;
    if SKIP_RENDER then Exit;
  
negative.code:     vatTile:       if fTilesVtxCount > 0 then
                      begin
                        glBindBuffer(GL_ARRAY_BUFFER, fVtxTilesShd);
                        glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, fIndTilesShd);
  
                        if fVBONeedsFlush[aVBOArrayType] then
                        begin
                          glBufferData(GL_ARRAY_BUFFER, fTilesVtxCount * SizeOf(TTileVerticeExt), @fTilesVtx[0].X, GL_STREAM_DRAW);
                          glBufferData(GL_ELEMENT_ARRAY_BUFFER, fTilesIndCount * SizeOf(fTilesInd[0]), @fTilesInd[0], GL_STREAM_DRAW);
                          fVBONeedsFlush[aVBOArrayType] := False;
                        end;
                      end else Exit;
      vatTileLayer:  if Length(fTilesLayersVtx) > 0 then
                      begin
                        glBindBuffer(GL_ARRAY_BUFFER, fVtxTilesLayersShd);
                        glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, fIndTilesLayersShd);
  
                        if fVBONeedsFlush[aVBOArrayType] then
                        begin
                          glBufferData(GL_ARRAY_BUFFER, Length(fTilesLayersVtx) * SizeOf(TTileVertice), @fTilesLayersVtx[0].X, GL_STREAM_DRAW);
                          glBufferData(GL_ELEMENT_ARRAY_BUFFER, Length(fTilesLayersInd) * SizeOf(fTilesLayersInd[0]), @fTilesLayersInd[0], GL_STREAM_DRAW);
                          fVBONeedsFlush[aVBOArrayType] := False;
                        end;
                      end else Exit;
      vatAnimTile:   if fAnimTilesVtxCount > 0 then
                      begin
                        glBindBuffer(GL_ARRAY_BUFFER, fVtxAnimTilesShd);
                        glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, fIndAnimTilesShd);
  
                        if fVBONeedsFlush[aVBOArrayType] then
                        begin
                          glBufferData(GL_ARRAY_BUFFER, fAnimTilesVtxCount * SizeOf(TTileVertice), @fAnimTilesVtx[0].X, GL_STREAM_DRAW);
                          glBufferData(GL_ELEMENT_ARRAY_BUFFER, fAnimTilesIndCount * SizeOf(fAnimTilesInd[0]), @fAnimTilesInd[0], GL_STREAM_DRAW);
                          fVBONeedsFlush[aVBOArrayType] := False;
                        end;
                      end else Exit;
      vatFOW:        if fTilesFowVtxCount > 0 then
                      begin
                        glBindBuffer(GL_ARRAY_BUFFER, fVtxTilesFowShd);
                        glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, fIndTilesFowShd);
  
                        if fVBONeedsFlush[aVBOArrayType] then
                        begin
                          glBufferData(GL_ARRAY_BUFFER, fTilesFowVtxCount * SizeOf(TTileFowVertice), @fTilesFowVtx[0].X, GL_STREAM_DRAW);
                          glBufferData(GL_ELEMENT_ARRAY_BUFFER, fTilesFowIndCount * SizeOf(fTilesFowInd[0]), @fTilesFowInd[0], GL_STREAM_DRAW);
                          fVBONeedsFlush[aVBOArrayType] := False;
                        end;
                      end else Exit;
    end;
    fLastBindVBOArrayType := aVBOArrayType;
  