Advertisement
General_101

screen_hud vertex shader

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