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

25 lines
1.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "CopyTextureShaders.h"
IMPLEMENT_TYPE_LAYOUT(FCopyTextureCS);
#define IMPLEMENT_COPY_RESOURCE_SHADER(SrcType,DstType,ValueType)\
typedef TCopyResourceCS<ECopyTextureResourceType::SrcType, ECopyTextureResourceType::DstType, ECopyTextureValueType::ValueType, 4> FCopyTextureCS_##SrcType##_##DstType##_##ValueType##4;\
IMPLEMENT_SHADER_TYPE4_WITH_TEMPLATE_PREFIX(template<>, RENDERCORE_API, FCopyTextureCS_##SrcType##_##DstType##_##ValueType##4, SF_Compute);
#define IMPLEMENT_COPY_RESOURCE_SHADER_ALL_TYPES(SrcType,DstType)\
IMPLEMENT_COPY_RESOURCE_SHADER(SrcType,DstType,Float)\
IMPLEMENT_COPY_RESOURCE_SHADER(SrcType,DstType,Int32)\
IMPLEMENT_COPY_RESOURCE_SHADER(SrcType,DstType,Uint32)
IMPLEMENT_COPY_RESOURCE_SHADER_ALL_TYPES(Texture2D , Texture2D );
IMPLEMENT_COPY_RESOURCE_SHADER_ALL_TYPES(Texture2D , Texture2DArray);
IMPLEMENT_COPY_RESOURCE_SHADER_ALL_TYPES(Texture2D , Texture3D );
IMPLEMENT_COPY_RESOURCE_SHADER_ALL_TYPES(Texture2DArray, Texture2D );
IMPLEMENT_COPY_RESOURCE_SHADER_ALL_TYPES(Texture2DArray, Texture2DArray);
IMPLEMENT_COPY_RESOURCE_SHADER_ALL_TYPES(Texture2DArray, Texture3D );
IMPLEMENT_COPY_RESOURCE_SHADER_ALL_TYPES(Texture3D , Texture2D );
IMPLEMENT_COPY_RESOURCE_SHADER_ALL_TYPES(Texture3D , Texture2DArray);
IMPLEMENT_COPY_RESOURCE_SHADER_ALL_TYPES(Texture3D , Texture3D );