anchor.diff:          box2i v2iZero (v2i Constants.Render.ResolutionX Constants.Render.ResolutionY)
   
       /// Compute the 2d absolute view matrix.
  -    static member computeViewAbsolute (_ : Vector2) (eyeSize : Vector2) eyeMargin =
  +    static member computeViewAbsolute (_ : Vector2) (eyeSize : Vector2) eyeMargin (_ : GlRenderer2d) =
           let translation = eyeSize * 0.5f * Constants.Render.VirtualScalar2 - eyeMargin * Constants.Render.VirtualScalar2
           Matrix4x4.CreateTranslation (v3 translation.X translation.Y 1.0f)
   
       /// Compute the 2d relative view matrix.
  -    static member computeViewRelative (eyePosition : Vector2) (eyeSize : Vector2) eyeMargin =
  +    static member computeViewRelative (eyePosition : Vector2) (eyeSize : Vector2) eyeMargin (_ : GlRenderer2d) =
           let translation = -eyePosition * Constants.Render.VirtualScalar2 + eyeSize * 0.5f * Constants.Render.VirtualScalar2 - eyeMargin * Constants.Render.VirtualScalar2
           Matrix4x4.CreateTranslation (v3 translation.X translation.Y 1.0f)
   
  
positive.code:             // begin frame
              let viewport = GlRenderer2d.computeViewport renderer
              let projection = GlRenderer2d.computeProjection viewport renderer
              let viewProjectionAbsolute = GlRenderer2d.computeViewAbsolute eyePosition eyeSize eyeMargin * projection
              let viewProjectionRelative = GlRenderer2d.computeViewRelative eyePosition eyeSize eyeMargin * projection
              OpenGL.Hl.BeginFrame viewport
              OpenGL.SpriteBatch.BeginFrame (&viewProjectionAbsolute, &viewProjectionRelative, renderer.RenderSpriteBatchEnv)
              OpenGL.Hl.Assert ()
  
negative.code:                 match renderAsset with
                  | FontAsset (_, font) ->
                  
                      // 
                      // NOTE: the resource implications (throughput and fragmentation?) of creating and destroying a
                      // texture one or more times a frame must be understood!
                      let (offset, textSurface) =
                          let mutable colorSdl = SDL.SDL_Color ()
                          colorSdl.r <- color.R8
                          colorSdl.g <- color.G8
                          colorSdl.b <- color.B8
                          colorSdl.a <- color.A8
                          match justification with
                          | Unjustified wrapped ->
                              let textSurface =
  