blob: e30af4fe0bffd84c0e65b448f5d6e0095755e6cf [file] [log] [blame]
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_VR_WIN_SCHEDULER_DELEGATE_WIN_H_
#define CHROME_BROWSER_VR_WIN_SCHEDULER_DELEGATE_WIN_H_
#include "base/memory/raw_ptr.h"
#include "chrome/browser/vr/scheduler_delegate.h"
namespace vr {
class SchedulerDelegateWin : public SchedulerDelegate {
public:
SchedulerDelegateWin();
~SchedulerDelegateWin() override;
// Tell browser when poses available, when we rendered, etc.
void OnPose(base::OnceCallback<void()> on_frame_ended,
gfx::Transform head_pose,
bool draw_overlay,
bool draw_ui);
private:
void OnPause() override;
void OnResume() override;
void OnExitPresent() override;
void SetWebXrMode(bool enabled) override;
void SetShowingVrDialog(bool showing) override;
void SetBrowserRenderer(
SchedulerBrowserRendererInterface* browser_renderer) override;
void SubmitDrawnFrame(FrameType frame_type,
const gfx::Transform& head_pose) override;
void AddInputSourceState(device::mojom::XRInputSourceStatePtr state) override;
void ConnectPresentingService(
device::mojom::XRRuntimeSessionOptionsPtr options) override;
private:
raw_ptr<SchedulerBrowserRendererInterface> browser_renderer_ = nullptr;
base::OnceCallback<void()> on_frame_ended_;
};
} // namespace vr
#endif // CHROME_BROWSER_VR_WIN_SCHEDULER_DELEGATE_WIN_H_