#include "common.hlsli" #if defined(SM_5) || defined(SM_4_1) #define SMAA_HLSL_4_1 #else #define SMAA_HLSL_4 #endif #define SMAA_INCLUDE_VS 1 uniform float4 scaled_screen_res; #define SMAA_RT_METRICS scaled_screen_res.zwxy #include "smaa.hlsli" // Struct struct p_smaa { float4 hpos : SV_POSITION; float2 tc0 : TEXCOORD0; // Texture coordinates (for sampling maps) float4 offset : TEXCOORD1; }; struct v2p_smaa { float2 tc0 : TEXCOORD0; float4 HPos : POSITIONT; // Clip-space position (for rasterization) }; // Vertex p_smaa main(v2p_smaa I) { p_smaa O; // Transform to screen space (in d3d9 it was done automatically) O.hpos.x = (I.HPos.x * scaled_screen_res.z * 2 - 1); O.hpos.y = -(I.HPos.y * scaled_screen_res.w * 2 - 1); O.hpos.zw = I.HPos.zw; O.tc0 = I.tc0; SMAANeighborhoodBlendingVS(I.tc0, O.offset); return O; }