Add texture cache for ar frame textures

This commit is contained in:
Georg Hagen
2024-07-09 13:43:09 +02:00
parent 88aa077dcb
commit bbaf8933ae
4 changed files with 129 additions and 1 deletions

View File

@@ -8,6 +8,8 @@
#include "ArSessionArKit.h"
#include "Data/Concurent/MutexProtectedObject.hpp"
#include "Scene/Texture.hpp"
#include "Vulkan/Metal/MetalTextureCache.h"
#include <atomic>
#import <ARKit/ARSession.h>
@@ -46,9 +48,11 @@ namespace OpenVulkano::AR::ArKit
void OnArCameraTrackingChange(ARSession* session, ARCamera* camera);
void OnArAnchorsUpdate(NSArray<__kindof ARAnchor*>* anchors);
bool ArShouldAttemptRelocalization();
void SetRenderer(IRenderer* renderer) override;
protected:
Scene::Texture * MakeTexture(OpenVulkano::AR::ArFrame *frame) override;
Scene::Texture * MakeTexture(ArFrame *frame) override;
void ReturnTexture(Scene::Texture *texture) override;
@@ -56,6 +60,7 @@ namespace OpenVulkano::AR::ArKit
ArKitDelegate* m_arKitDelegate;
ARWorldTrackingConfiguration* m_arConfig;
ARSession* m_arSession;
Vulkan::MetalTextureCache m_textureCache;
/*#if (__cplusplus >= 202002L)
std::atomic<std::shared_ptr<ArFrame>> m_frame;
#else*/