anchor.diff:            mutable RenderAssetCachedOpt : string * RenderAsset
             mutable RenderMessages : RenderMessage List
             RenderLayeredMessages : RenderLayeredMessage List }
  -
  -    static member private compareDescriptors (left : RenderLayeredMessage) (right : RenderLayeredMessage) =
  -        let elevationCompare = left.Elevation.CompareTo right.Elevation
  -        if elevationCompare <> 0 then elevationCompare else
  -        let positionYCompare = -(left.PositionY.CompareTo right.PositionY)
  -        if positionYCompare <> 0 then positionYCompare else
  -        let assetNameCompare = strCmp left.AssetTag.AssetName right.AssetTag.AssetName
  -        if assetNameCompare <> 0 then assetNameCompare else
  -        strCmp left.AssetTag.PackageName right.AssetTag.PackageName
   
       static member private invalidateCaches renderer =
           renderer.RenderPackageCachedOpt <- Unchecked.defaultof<_>
  
positive.code:             SDL.SDL_SetRenderDrawBlendMode (renderContext, SDL.SDL_BlendMode.SDL_BLENDMODE_ADD) |> ignore
              let viewAbsolute = (Math.getViewAbsoluteI eyeCenter eyeSize).InvertedView ()
              let viewRelative = (Math.getViewRelativeI eyeCenter eyeSize).InvertedView ()
              messages.Sort SdlRenderer.compareDescriptors
              for message in messages do
                  SdlRenderer.renderDescriptor (&viewAbsolute, &viewRelative, eyeCenter, eyeSize, message.RenderDescriptor, renderer)
          | _ ->
  
negative.code: namespace Nu
  open System
  open System.Collections.Generic
  open System.Linq
  open System.Numerics
  open System.IO
  open SDL2
  