chromium/device/vr/openxr/windows/openxr_instance_wrapper.cc

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "device/vr/openxr/windows/openxr_instance_wrapper.h"

#include "base/check.h"
#include "base/memory/singleton.h"
#include "third_party/openxr/src/include/openxr/openxr.h"

namespace device {

OpenXrInstanceWrapper* OpenXrInstanceWrapper::GetWrapper() {
  return base::Singleton<
      OpenXrInstanceWrapper,
      base::LeakySingletonTraits<OpenXrInstanceWrapper>>::get();
}

bool OpenXrInstanceWrapper::HasXrInstance() {
  return instance_ != XR_NULL_HANDLE;
}

XrInstance OpenXrInstanceWrapper::GetXrInstance() {
  return instance_;
}

void OpenXrInstanceWrapper::SetXrInstance(XrInstance instance) {
  CHECK(!HasXrInstance() || instance == XR_NULL_HANDLE);
  instance_ = instance;
}

}  // namespace device