#include "chrome/browser/vr/vr_browser_renderer_thread.h"
#include <vector>
#include "base/functional/bind.h"
#include "base/task/single_thread_task_runner.h"
#include "chrome/browser/vr/browser_renderer.h"
#include "chrome/browser/vr/ui.h"
#include "chrome/browser/vr/graphics_delegate_win.h"
#include "ui/gfx/geometry/quaternion.h"
#undef DrawState
namespace {
constexpr base::TimeDelta kWebVrInitialFrameTimeout = …;
constexpr base::TimeDelta kWebVrSpinnerTimeout = …;
constexpr float kEpsilon = …;
constexpr float kMaxPosition = …;
constexpr float kMinPosition = …;
bool g_overlay_ui_disabled_for_testing_ = …;
bool InRange(float val, float min = kMinPosition, float max = kMaxPosition) { … }
}
namespace vr {
VRBrowserRendererThread* VRBrowserRendererThread::instance_for_testing_ = …;
VRBrowserRendererThread::VRBrowserRendererThread(
mojo::PendingRemote<device::mojom::ImmersiveOverlay> overlay,
const std::vector<device::mojom::XRViewPtr>& views)
: … { … }
VRBrowserRendererThread::~VRBrowserRendererThread() { … }
void VRBrowserRendererThread::StopOverlay() { … }
void VRBrowserRendererThread::StartWebXrTimeout() { … }
void VRBrowserRendererThread::StopWebXrTimeout() { … }
int VRBrowserRendererThread::GetNextRequestId() { … }
void VRBrowserRendererThread::OnWebXrTimeoutImminent() { … }
void VRBrowserRendererThread::OnWebXrTimedOut() { … }
void VRBrowserRendererThread::UpdateOverlayState() { … }
void VRBrowserRendererThread::SetFramesThrottled(bool throttled) { … }
void VRBrowserRendererThread::SetVisibleExternalPromptNotification(
ExternalPromptNotificationType prompt) { … }
void VRBrowserRendererThread::SetIndicatorsVisible(bool visible) { … }
void VRBrowserRendererThread::OnSpinnerVisibilityChanged(bool visible) { … }
void VRBrowserRendererThread::SetCapturingState(
const CapturingStateModel& active_capturing,
const CapturingStateModel& background_capturing,
const CapturingStateModel& potential_capturing) { … }
VRBrowserRendererThread*
VRBrowserRendererThread::GetInstanceForTesting() { … }
BrowserRenderer* VRBrowserRendererThread::GetBrowserRendererForTesting() { … }
namespace {
constexpr unsigned kSlidingAverageSize = …;
}
void VRBrowserRendererThread::DisableOverlayForTesting() { … }
void VRBrowserRendererThread::StartOverlay() { … }
void VRBrowserRendererThread::OnGraphicsReady(
std::unique_ptr<GraphicsDelegate> initializing_graphics) { … }
void VRBrowserRendererThread::OnWebXRSubmitted() { … }
device::mojom::XRRenderInfoPtr ValidateFrameData(
device::mojom::XRRenderInfoPtr data) { … }
void VRBrowserRendererThread::OnPose(int request_id,
device::mojom::XRRenderInfoPtr data) { … }
bool VRBrowserRendererThread::PreRender() { … }
void VRBrowserRendererThread::SubmitFrame(int16_t frame_id) { … }
void VRBrowserRendererThread::SubmitResult(bool success) { … }
bool VRBrowserRendererThread::DrawState::ShouldDrawUI() { … }
bool VRBrowserRendererThread::DrawState::ShouldDrawWebXR() { … }
bool VRBrowserRendererThread::DrawState::SetPrompt(
ExternalPromptNotificationType prompt) { … }
bool VRBrowserRendererThread::DrawState::SetSpinnerVisible(bool visible) { … }
bool VRBrowserRendererThread::DrawState::SetIndicatorsVisible(bool visible) { … }
}