anchor.diff:                      // 
                       // NOTE: the resource implications (throughput and fragmentation?) of creating and destroying a
                       // surface and texture one or more times a frame must be understood!
  -                    let (offset, textSurface) =
  +                    let (offset, textSurface, textSurfacePtr) =
   
                           // create sdl color
                           let mutable colorSdl = SDL.SDL_Color ()
  
positive.code:                         OpenGL.Gl.DeleteTextures textTexture
                          OpenGL.Hl.Assert ()
  
                      SDL.SDL_FreeSurface textSurface
  
                  | _ -> Log.debug "Cannot render text with a non-font asset."
              | _ -> Log.info ("TextDescriptor failed due to unloadable assets for '" + scstring font + "'.")
  
negative.code:                                 | JustifyMiddle -> (size.Y - height) * 0.5f
                                  | JustifyBottom -> size.Y - height
                              let offset = v2 offsetX offsetY
                              (offset, textSurface, textSurfacePtr)
  
                      if textSurfacePtr <> IntPtr.Zero then
  
                          // flip surface
                          OpenGL.Hl.FlipSurface &textSurface
  
                          // construct mvp matrix
                          let textSurfaceWidth = single (textSurface.w * Constants.Render.VirtualScalar)
                          let textSurfaceHeight = single (textSurface.h * Constants.Render.VirtualScalar)
                          let translation = (position + offset).V3
                          let scale = v3 textSurfaceWidth textSurfaceHeight 1.0f
                          let modelTranslation = Matrix4x4.CreateTranslation translation
  