Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

130 lines
4.1 KiB

  1. //===== Copyright � Valve Corporation, All rights reserved. ======//
  2. #ifndef ISHADER_DECLARATIONS_HDR
  3. #define ISHADER_DECLARATIONS_HDR
  4. //-----------------------------------------------------------------------------
  5. // Standard vertex shader constants
  6. //-----------------------------------------------------------------------------
  7. enum
  8. {
  9. // Standard vertex shader constants
  10. VERTEX_SHADER_MATH_CONSTANTS0 = 0,
  11. VERTEX_SHADER_MATH_CONSTANTS1 = 1,
  12. VERTEX_SHADER_CAMERA_POS = 2,
  13. VERTEX_SHADER_FLEXSCALE = 3, // DX9 only
  14. VERTEX_SHADER_LIGHT_INDEX = 3, // DX8 only
  15. VERTEX_SHADER_MODELVIEWPROJ = 4,
  16. VERTEX_SHADER_VIEWPROJ = 8,
  17. VERTEX_SHADER_MODELVIEWPROJ_THIRD_ROW = 12,
  18. VERTEX_SHADER_VIEWPROJ_THIRD_ROW = 13,
  19. VERTEX_SHADER_SHADER_SPECIFIC_CONST_10 = 14,
  20. VERTEX_SHADER_SHADER_SPECIFIC_CONST_11 = 15,
  21. VERTEX_SHADER_FOG_PARAMS = 16,
  22. VERTEX_SHADER_VIEWMODEL = 17,
  23. VERTEX_SHADER_AMBIENT_LIGHT = 21,
  24. VERTEX_SHADER_LIGHTS = 27,
  25. VERTEX_SHADER_LIGHT0_POSITION = 29,
  26. VERTEX_SHADER_MODULATION_COLOR = 47,
  27. VERTEX_SHADER_SHADER_SPECIFIC_CONST_0 = 48,
  28. VERTEX_SHADER_SHADER_SPECIFIC_CONST_1 = 49,
  29. VERTEX_SHADER_SHADER_SPECIFIC_CONST_2 = 50,
  30. VERTEX_SHADER_SHADER_SPECIFIC_CONST_3 = 51,
  31. VERTEX_SHADER_SHADER_SPECIFIC_CONST_4 = 52,
  32. VERTEX_SHADER_SHADER_SPECIFIC_CONST_5 = 53,
  33. VERTEX_SHADER_SHADER_SPECIFIC_CONST_6 = 54,
  34. VERTEX_SHADER_SHADER_SPECIFIC_CONST_7 = 55,
  35. VERTEX_SHADER_SHADER_SPECIFIC_CONST_8 = 56,
  36. VERTEX_SHADER_SHADER_SPECIFIC_CONST_9 = 57,
  37. VERTEX_SHADER_MODEL = 58,
  38. //
  39. // We reserve up through 216 for the 53 bones supported on DX9
  40. //
  41. VERTEX_SHADER_SHADER_SPECIFIC_CONST_13 = 217,
  42. VERTEX_SHADER_SHADER_SPECIFIC_CONST_14 = 218,
  43. VERTEX_SHADER_SHADER_SPECIFIC_CONST_15 = 219,
  44. VERTEX_SHADER_SHADER_SPECIFIC_CONST_16 = 220,
  45. VERTEX_SHADER_SHADER_SPECIFIC_CONST_17 = 221,
  46. VERTEX_SHADER_SHADER_SPECIFIC_CONST_18 = 222,
  47. VERTEX_SHADER_SHADER_SPECIFIC_CONST_19 = 223,
  48. VERTEX_SHADER_SHADER_SPECIFIC_CONST_12 = 224,
  49. // 226 ClipPlane0 |------ OpenGL will jam clip planes into these two
  50. // 227 ClipPlane1 |
  51. VERTEX_SHADER_FLEX_WEIGHTS = 1024,
  52. VERTEX_SHADER_MAX_FLEX_WEIGHT_COUNT = 512,
  53. };
  54. //-----------------------------------------------------------------------------
  55. // forward declarations
  56. //-----------------------------------------------------------------------------
  57. class IMaterialVar;
  58. class IShaderShadow;
  59. class IShaderDynamicAPI;
  60. class IShaderInit;
  61. class CBasePerMaterialContextData;
  62. //-----------------------------------------------------------------------------
  63. // Shader flags
  64. //-----------------------------------------------------------------------------
  65. enum ShaderFlags_t
  66. {
  67. SHADER_NOT_EDITABLE = 0x1
  68. };
  69. //-----------------------------------------------------------------------------
  70. // Shader parameter flags
  71. //-----------------------------------------------------------------------------
  72. enum ShaderParamFlags_t
  73. {
  74. SHADER_PARAM_NOT_EDITABLE = 0x1
  75. };
  76. //-----------------------------------------------------------------------------
  77. // Standard vertex shader constants
  78. //-----------------------------------------------------------------------------
  79. enum
  80. {
  81. // Standard vertex shader constants
  82. VERTEX_SHADER_LIGHT_ENABLE_BOOL_CONST = 0,
  83. VERTEX_SHADER_LIGHT_ENABLE_BOOL_CONST_COUNT = 4,
  84. VERTEX_SHADER_SHADER_SPECIFIC_BOOL_CONST_0 = 4,
  85. VERTEX_SHADER_SHADER_SPECIFIC_BOOL_CONST_1 = 5,
  86. VERTEX_SHADER_SHADER_SPECIFIC_BOOL_CONST_2 = 6,
  87. VERTEX_SHADER_SHADER_SPECIFIC_BOOL_CONST_3 = 7,
  88. VERTEX_SHADER_SHADER_SPECIFIC_BOOL_CONST_4 = 8,
  89. VERTEX_SHADER_SHADER_SPECIFIC_BOOL_CONST_5 = 9,
  90. VERTEX_SHADER_SHADER_SPECIFIC_BOOL_CONST_6 = 10,
  91. VERTEX_SHADER_SHADER_SPECIFIC_BOOL_CONST_7 = 11,
  92. };
  93. //-----------------------------------------------------------------------------
  94. // Shader dictionaries defined in DLLs
  95. //-----------------------------------------------------------------------------
  96. enum PrecompiledShaderType_t
  97. {
  98. PRECOMPILED_VERTEX_SHADER = 0,
  99. PRECOMPILED_PIXEL_SHADER,
  100. PRECOMPILED_SHADER_TYPE_COUNT,
  101. };
  102. //-----------------------------------------------------------------------------
  103. // Flags field of PrecompiledShader_t
  104. //-----------------------------------------------------------------------------
  105. enum
  106. {
  107. // runtime flags
  108. SHADER_IS_ASM = 0x1,
  109. SHADER_FAILED_LOAD = 0x2,
  110. };
  111. #endif