anchor.diff:          )
   
       let desiredSize =
  -        let mutable width = 0u
  -        let mutable height = 0u
  -        system.GetRecommendedRenderTargetSize(&width,&height)
  -        V2i(int width, int height)
  +        lazy (
  +            let mutable width = 0u
  +            let mutable height = 0u
  +            system.GetRecommendedRenderTargetSize(&width,&height)
  +            V2i(max 1.0 (float width * scaleFactor), max 1.0 (float height * scaleFactor))
  +        )
   
   
       let view (t : Trafo3d) =
  
positive.code:         if OpenVR.Chaperone.GetPlayAreaRect(&quad) then
              let quad = 
                  Polygon3d [|
                      V3d(quad.vCorners0.v0, quad.vCorners0.v1, quad.vCorners0.v2)
                      V3d(quad.vCorners1.v0, quad.vCorners1.v1, quad.vCorners1.v2)
                      V3d(quad.vCorners2.v0, quad.vCorners2.v1, quad.vCorners2.v2)
                      V3d(quad.vCorners3.v0, quad.vCorners3.v1, quad.vCorners3.v2)
                  |]
              Some quad
          else
  
negative.code: 
      member x.System = system
      member x.Compositor = compositor
      member x.DesiredSize = desiredSize.Value
  
      member x.Shutdown() =
          running <- false
  
      member x.Info = infos.Value.[0]
  
      member x.HiddenAreaMesh = hiddenAreaMesh
  
  