anchor.diff:              |> Sg.uniform "ProjTrafo" infos.[0].projTrafos
               |> Sg.uniform "ViewportSize" (Mod.constant infos.[0].framebufferSize)
   
  +    member private x.ProcessEvents() =
  +        let mutable evt : VREvent_t = Unchecked.defaultof<VREvent_t>
  +        while system.PollNextEvent(&evt, uint32 sizeof<VREvent_t>) do
  +            x.ProcessEvent(evt)
  +            let id = evt.trackedDeviceIndex |> int
  +            if id >= 0 && id < devicesPerIndex.Length then
  +                match devicesPerIndex.[id] with
  +                    | Some device ->
  +                        device.Trigger(&evt)
  +                    | None ->
  +                        ()
  +
       member x.ControllerBoxes =
           controllerBoxes
   
  
positive.code:     abstract member Render : unit -> unit
      abstract member Release : unit -> unit
  
      member x.Run () =
          if not isAlive then raise <| ObjectDisposedException("VrSystem")
          let (lTex, rTex) = x.OnLoad infos.[0] 
  
          while isAlive do
              processEvents()
  
              let err = compositor.WaitGetPoses(renderPoses, gamePoses)
              if err = EVRCompositorError.None then
  
negative.code:             }
          )
  
      let mutable backgroundColor = C4f.Black
  
  
  