/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ #include "ArSessionArKit.h" #include "ArSessionArKitInternal.h" namespace OpenVulkano::AR::ArKit { namespace { ArSessionCapabilities QueryNativeCapabilities() { bool supportsDepth = [ARWorldTrackingConfiguration supportsFrameSemantics:ARFrameSemanticSceneDepth]; ArSessionCapabilities capabilities(ArType::AR_KIT, ArSessionType::NATIVE, true, supportsDepth); return capabilities; } } std::shared_ptr ArSessionArKit::Create(const ArSessionConfig& config) { return std::dynamic_pointer_cast(std::make_shared(config)); } bool ArSessionArKit::IsAvailable() { return true; } const ArSessionCapabilities& ArSessionArKit::GetCapabilities() { static ArSessionCapabilities capabilities = QueryNativeCapabilities(); return capabilities; } ArSessionArKit::ArSessionArKit() : ArSession({ ArType::AR_KIT, ArDepthFormat::METER_FP32, { 0, 2 } }) {} }