Files
UnrealEngine/Engine/Source/Runtime/Apple/MetalRHI/Private/MetalHashedVertexDescriptor.h
2025-05-18 13:04:45 +08:00

46 lines
1.4 KiB
C

// Copyright Epic Games, Inc. All Rights Reserved.
/*=============================================================================
MetalHashedVertexDescriptor.h: Metal RHI Hashed Vertex Descriptor.
=============================================================================*/
#pragma once
#include "MetalRHIPrivate.h"
//------------------------------------------------------------------------------
#pragma mark - Metal Hashed Vertex Descriptor
/**
* The MTLVertexDescriptor and a pre-calculated hash value used to simplify
* comparisons (as vendor MTLVertexDescriptor implementations are not all
* comparable).
*/
struct FMetalHashedVertexDescriptor
{
NS::UInteger VertexDescHash;
MTLVertexDescriptorPtr VertexDesc;
#if PLATFORM_SUPPORTS_BINDLESS_RENDERING
FMetalHashedVertexDescriptor(IRVersionedInputLayoutDescriptor& Desc, uint32 Hash);
IRVersionedInputLayoutDescriptor IRVertexDesc;
bool bUsesIRVertexDesc = false;
#endif
FMetalHashedVertexDescriptor();
FMetalHashedVertexDescriptor(MTLVertexDescriptorPtr Desc, uint32 Hash);
FMetalHashedVertexDescriptor(FMetalHashedVertexDescriptor const& Other);
~FMetalHashedVertexDescriptor();
FMetalHashedVertexDescriptor& operator=(FMetalHashedVertexDescriptor const& Other);
bool operator==(FMetalHashedVertexDescriptor const& Other) const;
friend uint32 GetTypeHash(FMetalHashedVertexDescriptor const& Hash)
{
return Hash.VertexDescHash;
}
};