43 lines
1.2 KiB
HLSL
43 lines
1.2 KiB
HLSL
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
/*=============================================================================
|
|
SimpleElementVertexShader.hlsl: Vertex shader for drawing simple elements.
|
|
=============================================================================*/
|
|
|
|
#include "Common.ush"
|
|
|
|
#ifndef ENABLE_LWC
|
|
#define ENABLE_LWC 0
|
|
#endif
|
|
|
|
float4x4 Transform;
|
|
#if ENABLE_LWC
|
|
float3 TransformPositionHigh;
|
|
#endif
|
|
|
|
void Main(
|
|
in float4 InPositionHigh : ATTRIBUTE0,
|
|
in float4 InPositionLow : ATTRIBUTE1,
|
|
in float2 InTextureCoordinate : ATTRIBUTE2,
|
|
in float4 InColor : ATTRIBUTE3,
|
|
in float4 InHitProxyId : ATTRIBUTE4,
|
|
out float2 OutTextureCoordinate : TEXCOORD0,
|
|
out float4 OutColor : TEXCOORD1,
|
|
out float4 OutHitProxyId : TEXCOORD2,
|
|
out float4 OutPosition : SV_POSITION
|
|
)
|
|
{
|
|
#if ENABLE_LWC
|
|
FDFVector4 InPosition = MakeDFVector4(InPositionHigh, InPositionLow);
|
|
FDFInverseMatrix WorldToClip = MakeDFInverseMatrix(TransformPositionHigh, Transform);
|
|
OutPosition = DFMultiplyDemote(InPosition, WorldToClip);
|
|
OutPosition.z = max(OutPosition.z, 0);
|
|
#else
|
|
OutPosition = mul(InPositionHigh, Transform);
|
|
#endif
|
|
|
|
OutTextureCoordinate = InTextureCoordinate;
|
|
OutColor = InColor;
|
|
OutHitProxyId = InHitProxyId;
|
|
}
|