Files
UnrealEngine/Engine/Source/Runtime/RHI/Private/RHITransition.cpp
2025-05-18 13:04:45 +08:00

51 lines
1.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "RHITransition.h"
#include "DynamicRHI.h"
uint64 GRHITransitionPrivateData_SizeInBytes = 0;
uint64 GRHITransitionPrivateData_AlignInBytes = 0;
FRHIViewableResource* GetViewableResource(const FRHITransitionInfo& Info)
{
switch (Info.Type)
{
case FRHITransitionInfo::EType::Buffer:
{
return Info.Buffer;
}
case FRHITransitionInfo::EType::Texture:
{
if (!Info.Texture)
{
return nullptr;
}
FRHITextureReference* TextureReference = Info.Texture->GetTextureReference();
if (TextureReference)
{
return TextureReference->GetReferencedTexture();
}
return Info.Texture;
}
case FRHITransitionInfo::EType::UAV:
{
return Info.UAV ? Info.UAV->GetResource() : nullptr;
}
}
return nullptr;
}
void FRHITransition::Cleanup() const
{
FRHITransition* Transition = const_cast<FRHITransition*>(this);
RHIReleaseTransition(Transition);
// Explicit destruction of the transition.
Transition->~FRHITransition();
FRHICmdListBaseLinearAllocator::Free(Transition);
}