             behaviour.on_exit_vr?()
         return
 
-    exit: -> @destroy()
+    exit: ->
+        @HMD.exitPresent()
+        @destroy()
 
     pre_draw: ->
         {HMD} = this

            mat4.copyArray @sst, @HMD.stageParameters.sittingToStandingTransform
            mat4.invert @sst_inverse, @sst
            mat3.fromMat4 @sst3, @sst
        # @to_Z_up = mat4.new 1,0,0,0, 0,0,1,0, 0,-1,0,0, 0,0,0,1
        # left eye viewport
        camera = left_cam = @scene.active_camera.clone()

            if @use_unpredict
                quat.slerp r0, @left_orientation, r0, unpredict
            quat.copy @left_orientation, r0
            # TODO: Test with other headsets.
            @head_is_tracking =
                not (p0.x == m4.m12 and p0.y == m4.m13 and p0.z == m4.m14)
            vec3.set p0, m4.m12, m4.m13, m4.m14

            mat4.copyArray m4, rightViewMatrix
