Files
OpenVulkano/openVulkanoCpp/AR/Provider/ArKit/ArSessionArKit.h
2023-10-03 19:52:23 +02:00

39 lines
1.1 KiB
C++

/*
* 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/.
*/
#pragma once
#include "AR/ArSession.hpp"
// Define the class of the native AR session to be used
#define NATIVE_AR_SESSION_CLASS ArKit::ArSessionArKit
namespace OpenVulkano::AR::ArKit
{
/**
* This is just a helper intermediate class.
* The ArKit implementation is in ArSessionArKitInternal.
* This is done to prevent the leakage of any objective c or ArKit classes into the ArSession.cpp translation unit.
*/
class ArSessionArKit : public ArSession
{
public:
[[nodiscard]] static std::shared_ptr<ArSession> Create(const ArSessionConfig& config);
[[nodiscard]] static bool IsAvailable();
[[nodiscard]] static const ArSessionCapabilities& GetCapabilities();
[[nodiscard]] ArSessionType GetSessionType() final { return ArSessionType::NATIVE; }
[[nodiscard]] ArType GetArType() final { return ArType::AR_KIT; }
protected:
ArSessionArKit();
~ArSessionArKit() override = default;
};
}