Advertisement
General_101

screen vertex

May 15th, 2020
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.04 KB | None | 0 0
  1. struct VS_OUTPUT
  2. {
  3. float4 oD0 : COLOR0;
  4. float4 oT0 : TEXCOORD0;
  5. float4 oPos : POSITION;
  6. float4 oT7 : TEXCOORD7;
  7. };
  8. //global vs 2.0 vertex shader header for asm conversions. (preceded by VS_INPUT/VS_OUTPUT struct)
  9. //not used if #define HLSL is at the top of the .vsc file.
  10.  
  11. #pragma ruledisable 0x02040101
  12. #pragma ruledisable 0x02040102
  13. #pragma ruledisable 0x02040103
  14. #pragma ruledisable 0x04010100
  15. #pragma ruledisable 0x04010101
  16. #pragma ruledisable 0x04010102
  17. #pragma ruledisable 0x04010103
  18. #pragma ruledisable 0x04010104
  19.  
  20.  
  21. float4 c[96*2+16] : register(c0); // grab all the xbox specific constant register space
  22.  
  23. void hsge(out float4 dest, float4 src0, float4 src1)
  24. {
  25. dest.x = (src0.x >= src1.x) ? 1.0f : 0.0f;
  26. dest.y = (src0.y >= src1.y) ? 1.0f : 0.0f;
  27. dest.z = (src0.z >= src1.z) ? 1.0f : 0.0f;
  28. dest.w = (src0.w >= src1.w) ? 1.0f : 0.0f;
  29. }
  30.  
  31. void hslt(out float4 dest, float4 src0, float4 src1)
  32. {
  33. dest.x = (src0.x < src1.x) ? 1.0f : 0.0f;
  34. dest.y = (src0.y < src1.y) ? 1.0f : 0.0f;
  35. dest.z = (src0.z < src1.z) ? 1.0f : 0.0f;
  36. dest.w = (src0.w < src1.w) ? 1.0f : 0.0f;
  37. }
  38.  
  39. void hsincos(out float2 dest, in float angle)
  40. {
  41. sincos(angle, dest.y, dest.x);
  42. }
  43.  
  44. float dp2(float4 a, float4 b)
  45. {
  46. return a.x*b.x+a.y*b.y;
  47. }
  48.  
  49. float dp3(float4 a, float4 b)
  50. {
  51. return a.x*b.x+a.y*b.y+a.z*b.z;
  52. }
  53.  
  54. float dp4(float4 a, float4 b)
  55. {
  56. return a.x*b.x+a.y*b.y+a.z*b.z+a.w*b.w;
  57. }
  58.  
  59. VS_OUTPUT main(//input registers
  60. float4 va_position: POSITION0,
  61. float4 va_node_indices: BLENDINDICES0,
  62. float4 va_node_weights: BLENDWEIGHT0,
  63. float4 va_texcoord: TEXCOORD0,
  64. float4 va_normal: NORMAL0,
  65. float4 va_binormal: BINORMAL0,
  66. float4 va_tangent: TANGENT0,
  67. float4 va_anisotropic_binormal: BINORMAL1,
  68. float4 va_incident_radiosity: COLOR1,
  69. float4 va_secondary_texcoord: TEXCOORD1,
  70. float4 va_isq_secondary_position: POSITION1,
  71. float4 va_isq_secondary_node_indices: BLENDINDICES1,
  72. float4 va_isq_secondary_node_weights: BLENDWEIGHT1,
  73. float4 va_isq_select: TEXCOORD2,
  74. float4 va_color: COLOR0,
  75. float4 va_tint_factor: COLOR2,
  76. float4 va_dsq_plane: TEXCOORD3,
  77. float4 va_billboard_offset: TEXCOORD4,
  78. float4 va_billboard_axis: TEXCOORD5,
  79. float4 va_pca_cluster_id: TEXCOORD6,
  80. float4 va_pca_weights: TEXCOORD7)
  81. {
  82. VS_OUTPUT output;
  83.  
  84. //temps
  85. float4 r0 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  86. float4 r1 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  87. float4 r2 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  88. float4 r3 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  89. float4 r4 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  90. float4 r5 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  91. float4 r6 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  92. float4 r7 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  93. float4 r8 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  94. float4 r9 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  95. float4 r10 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  96. float4 r11 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  97. float4 oPos = float4(1.0f, 1.0f, 1.0f, 1.0f);
  98. #define r12 oPos
  99. int4 a0; //only use .x
  100.  
  101. //output registers
  102. float4 oT0 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  103. float4 oT1 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  104. float4 oT2 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  105. float4 oT3 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  106. float4 oT4 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  107. float4 oT5 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  108. float4 oT6 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  109. float4 oT7 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  110.  
  111. float oFog = 1.0f;
  112. float oPts = 1.0f;
  113.  
  114. float4 oD0 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  115. float4 oD1 = float4(1.0f, 1.0f, 1.0f, 1.0f);
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142. oPos = va_position ;
  143.  
  144. {
  145. float4 temp = (float4)(va_color );
  146. oD0.x=temp.x;
  147. oD0.y=temp.y;
  148. oD0.z=temp.z;
  149. oD0.w=temp.w;
  150. }
  151. {
  152. float4 temp = (float4)(va_texcoord );
  153. oT0.x=temp.x;
  154. oT0.y=temp.y;
  155. oT0.z=temp.z;
  156. oT0.w=temp.w;
  157. }
  158.  
  159. output.oD0=oD0;
  160. output.oT0=oT0;
  161. output.oPos=oPos;
  162. // cram anything additional here that needs to happen at the end of all vertex shaders.
  163.  
  164. output.oT7.xyzw = oPos; //float4(oPos.z, oPos.w);
  165.  
  166.  
  167. return output;
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement