October3d55/M/PICOXRPlugin/Source/PICOXRHMD/Private/PXR_DelayDeleteLayer.h

33 lines
902 B
C++

// Copyright PICO Technology Co., Ltd. All rights reserved.
// This plugin incorporates portions of the Unreal® Engine. Unreal® is a trademark or registered trademark of Epic Games, Inc. in the United States of America and elsewhere.
// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "PXR_StereoLayer.h"
class FDelayDeleteLayerManager
{
public:
void AddLayerToDeferredDeletionQueue(const FPICOLayerPtr& ptr);
void AddPxrLayerToDeferredDeletionQueue(const uint32 ID, const uint32 layerID);
void HandleLayerDeferredDeletionQueue_RenderThread(bool bDeleteImmediately = false);
private:
struct DelayDeleteLayerEntry
{
enum class DelayDeleteLayerEntryType
{
Layer,
PxrLayer
};
FPICOLayerPtr Layer;
uint32 ID;
uint32 PxrLayerId;
uint32 FrameEnqueued;
DelayDeleteLayerEntryType EntryType;
};
TArray<DelayDeleteLayerEntry> DeferredDeletionArray;
};