struct appdata { float4 vertex : POSITION; }; struct v2f { float4 vertex : SV_POSITION; float3 vCamPos : TEXCOORD1; float3 vHitPos : TEXCOORD2; }; struct fragOut { fixed4 col : SV_Target; // float depth : SV_Depth; }; v2f vert (appdata v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); #ifdef USE_WORLD_SPACE o.vCamPos = _WorldSpaceCameraPos; o.vHitPos = mul(unity_ObjectToWorld, v.vertex); #else o.vCamPos = mul(unity_WorldToObject, float4(_WorldSpaceCameraPos, 1)); o.vHitPos = v.vertex; #endif return o; } fragOut frag (v2f i) { fragOut o; o.col = 1; o.col.r = 0; return o; } // #define SOME_MAGIC(main_fn) float3 main1()\ // main_fn \ #define SOME_MAGIC(PASS, function_definition) float3 main##PASS() function_definition #define DO_MAGIC MAIN_FN(1) // #define SECOND_PASS 1 // #define AA MAIN_FN // #define BB MAIN_FN // float3 main2() \ // main_fn // \ // float3 main2() \ // main_fn\ // #define SECOND_PASS \