#include "device/vr/openxr/openxr_extension_handler_factories.h"
#include <memory>
#include <vector>
#include "base/no_destructor.h"
#include "build/build_config.h"
#include "device/vr/openxr/fb/openxr_hand_tracker_fb.h"
#include "device/vr/openxr/msft/openxr_scene_understanding_manager_msft.h"
#include "device/vr/openxr/msft/openxr_unbounded_space_provider_msft.h"
#include "device/vr/openxr/openxr_hand_tracker.h"
#include "device/vr/openxr/openxr_spatial_framework_manager.h"
#include "device/vr/openxr/openxr_stage_bounds_provider_basic.h"
#if BUILDFLAG(IS_ANDROID)
#include "device/vr/openxr/android/openxr_depth_sensor_android.h"
#include "device/vr/openxr/android/openxr_light_estimator_android.h"
#include "device/vr/openxr/android/openxr_scene_understanding_manager_android.h"
#include "device/vr/openxr/android/openxr_unbounded_space_provider_android.h"
#endif
namespace device {
const std::vector<OpenXrExtensionHandlerFactory*>&
GetExtensionHandlerFactories() {
static base::NoDestructor<std::vector<OpenXrExtensionHandlerFactory*>>
kFactories{std::vector<OpenXrExtensionHandlerFactory*>{
new OpenXrSpatialFrameworkManagerFactory(),
#if BUILDFLAG(IS_ANDROID)
new OpenXrUnboundedSpaceProviderAndroidFactory(),
new OpenXrSceneUnderstandingManagerAndroidFactory(),
new OpenXrLightEstimatorAndroidFactory(),
new OpenXrDepthSensorAndroidFactory(),
#endif
new OpenXrHandTrackerFbFactory(),
new OpenXrHandTrackerFactory(),
new OpenXrStageBoundsProviderBasicFactory(),
new OpenXrUnboundedSpaceProviderMsftFactory(),
new OpenXrSceneUnderstandingManagerMsftFactory(),
}};
return *kFactories;
}
}