// 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; }