anchor.diff:                              let tileIdPosition = tileId * tileSourceSize.X
                               let tileSourcePosition = v2 (single (tileIdPosition % tileSetWidth)) (single (tileIdPosition / tileSetWidth * tileSourceSize.Y))
                               let inset = box2 tileSourcePosition (v2 (single tileSourceSize.X) (single tileSourceSize.Y))
  -                            GlRenderer2d.renderSpriteInline absolute tilePosition tileSize tilePivot 0.0f inset textureMetadata texture color Transparent glow flip renderer
  +                            GlRenderer2d.batchSprite absolute tilePosition tileSize tilePivot 0.0f inset textureMetadata texture color Transparent glow flip renderer
                           | None -> ()
           
                   tileIndex <- inc tileIndex
  
positive.code:                     
                      // loop until swapped or terminated
                      let mutable swapped = false
                      while not swapped && not (this :> RenderProcess2d).Terminated do
                          swapped <- lock swapLock (fun () ->
                              if swap then
                                  renderer.Swap ()
  
negative.code:         | ValueSome renderAsset ->
              match renderAsset with
              | TextureAsset (textureMetadata, texture) ->
                  GlRenderer2d.batchSprite absolute position size pivot rotation inset textureMetadata texture color blend glow flip renderer
              | _ -> Log.trace "Cannot render sprite with a non-texture asset."
          | _ -> Log.info ("SpriteDescriptor failed to render due to unloadable assets for '" + scstring image + "'.")
  
  