EffectStates11.h 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. //--------------------------------------------------------------------------------------
  2. // File: EffectStates11.h
  3. //
  4. // Direct3D 11 Effects States Header
  5. // This file defines properties of states which can appear in
  6. // state blocks and pass blocks.
  7. //
  8. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  9. // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  10. // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  11. // PARTICULAR PURPOSE.
  12. //
  13. // Copyright (c) Microsoft Corporation. All rights reserved.
  14. //
  15. // http://go.microsoft.com/fwlink/p/?LinkId=271568
  16. //--------------------------------------------------------------------------------------
  17. #pragma once
  18. #include "EffectStateBase11.h"
  19. namespace D3DX11Effects
  20. {
  21. //////////////////////////////////////////////////////////////////////////
  22. // Effect HLSL late resolve lists (state values)
  23. //////////////////////////////////////////////////////////////////////////
  24. static const RValue g_rvNULL[] =
  25. {
  26. { "nullptr", 0 },
  27. RVALUE_END()
  28. };
  29. static const RValue g_rvBOOL[] =
  30. {
  31. { "false", 0 },
  32. { "true", 1 },
  33. RVALUE_END()
  34. };
  35. static const RValue g_rvDEPTH_WRITE_MASK[] =
  36. {
  37. { "ZERO", D3D11_DEPTH_WRITE_MASK_ZERO },
  38. { "ALL", D3D11_DEPTH_WRITE_MASK_ALL },
  39. RVALUE_END()
  40. };
  41. static const RValue g_rvFILL[] =
  42. {
  43. { "WIREFRAME", D3D11_FILL_WIREFRAME },
  44. { "SOLID", D3D11_FILL_SOLID },
  45. RVALUE_END()
  46. };
  47. static const RValue g_rvFILTER[] =
  48. {
  49. RVALUE_ENTRY(D3D11_FILTER_, MIN_MAG_MIP_POINT ),
  50. RVALUE_ENTRY(D3D11_FILTER_, MIN_MAG_POINT_MIP_LINEAR ),
  51. RVALUE_ENTRY(D3D11_FILTER_, MIN_POINT_MAG_LINEAR_MIP_POINT ),
  52. RVALUE_ENTRY(D3D11_FILTER_, MIN_POINT_MAG_MIP_LINEAR ),
  53. RVALUE_ENTRY(D3D11_FILTER_, MIN_LINEAR_MAG_MIP_POINT ),
  54. RVALUE_ENTRY(D3D11_FILTER_, MIN_LINEAR_MAG_POINT_MIP_LINEAR ),
  55. RVALUE_ENTRY(D3D11_FILTER_, MIN_MAG_LINEAR_MIP_POINT ),
  56. RVALUE_ENTRY(D3D11_FILTER_, MIN_MAG_MIP_LINEAR ),
  57. RVALUE_ENTRY(D3D11_FILTER_, ANISOTROPIC ),
  58. RVALUE_ENTRY(D3D11_FILTER_, COMPARISON_MIN_MAG_MIP_POINT ),
  59. RVALUE_ENTRY(D3D11_FILTER_, COMPARISON_MIN_MAG_POINT_MIP_LINEAR ),
  60. RVALUE_ENTRY(D3D11_FILTER_, COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT ),
  61. RVALUE_ENTRY(D3D11_FILTER_, COMPARISON_MIN_POINT_MAG_MIP_LINEAR ),
  62. RVALUE_ENTRY(D3D11_FILTER_, COMPARISON_MIN_LINEAR_MAG_MIP_POINT ),
  63. RVALUE_ENTRY(D3D11_FILTER_, COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR ),
  64. RVALUE_ENTRY(D3D11_FILTER_, COMPARISON_MIN_MAG_LINEAR_MIP_POINT ),
  65. RVALUE_ENTRY(D3D11_FILTER_, COMPARISON_MIN_MAG_MIP_LINEAR ),
  66. RVALUE_ENTRY(D3D11_FILTER_, COMPARISON_ANISOTROPIC ),
  67. RVALUE_END()
  68. };
  69. static const RValue g_rvBLEND[] =
  70. {
  71. { "ZERO", D3D11_BLEND_ZERO },
  72. { "ONE", D3D11_BLEND_ONE },
  73. { "SRC_COLOR", D3D11_BLEND_SRC_COLOR },
  74. { "INV_SRC_COLOR", D3D11_BLEND_INV_SRC_COLOR },
  75. { "SRC_ALPHA", D3D11_BLEND_SRC_ALPHA },
  76. { "INV_SRC_ALPHA", D3D11_BLEND_INV_SRC_ALPHA },
  77. { "DEST_ALPHA", D3D11_BLEND_DEST_ALPHA },
  78. { "INV_DEST_ALPHA", D3D11_BLEND_INV_DEST_ALPHA },
  79. { "DEST_COLOR", D3D11_BLEND_DEST_COLOR },
  80. { "INV_DEST_COLOR", D3D11_BLEND_INV_DEST_COLOR },
  81. { "SRC_ALPHA_SAT", D3D11_BLEND_SRC_ALPHA_SAT },
  82. { "BLEND_FACTOR", D3D11_BLEND_BLEND_FACTOR },
  83. { "INV_BLEND_FACTOR", D3D11_BLEND_INV_BLEND_FACTOR },
  84. { "SRC1_COLOR", D3D11_BLEND_SRC1_COLOR },
  85. { "INV_SRC1_COLOR", D3D11_BLEND_INV_SRC1_COLOR },
  86. { "SRC1_ALPHA", D3D11_BLEND_SRC1_ALPHA },
  87. { "INV_SRC1_ALPHA", D3D11_BLEND_INV_SRC1_ALPHA },
  88. RVALUE_END()
  89. };
  90. static const RValue g_rvTADDRESS[] =
  91. {
  92. { "CLAMP", D3D11_TEXTURE_ADDRESS_CLAMP },
  93. { "WRAP", D3D11_TEXTURE_ADDRESS_WRAP },
  94. { "MIRROR", D3D11_TEXTURE_ADDRESS_MIRROR },
  95. { "BORDER", D3D11_TEXTURE_ADDRESS_BORDER },
  96. { "MIRROR_ONCE", D3D11_TEXTURE_ADDRESS_MIRROR_ONCE },
  97. RVALUE_END()
  98. };
  99. static const RValue g_rvCULL[] =
  100. {
  101. { "NONE", D3D11_CULL_NONE },
  102. { "FRONT", D3D11_CULL_FRONT },
  103. { "BACK", D3D11_CULL_BACK },
  104. RVALUE_END()
  105. };
  106. static const RValue g_rvCMP[] =
  107. {
  108. { "NEVER", D3D11_COMPARISON_NEVER },
  109. { "LESS", D3D11_COMPARISON_LESS },
  110. { "EQUAL", D3D11_COMPARISON_EQUAL },
  111. { "LESS_EQUAL", D3D11_COMPARISON_LESS_EQUAL },
  112. { "GREATER", D3D11_COMPARISON_GREATER },
  113. { "NOT_EQUAL", D3D11_COMPARISON_NOT_EQUAL },
  114. { "GREATER_EQUAL", D3D11_COMPARISON_GREATER_EQUAL },
  115. { "ALWAYS", D3D11_COMPARISON_ALWAYS },
  116. RVALUE_END()
  117. };
  118. static const RValue g_rvSTENCILOP[] =
  119. {
  120. { "KEEP", D3D11_STENCIL_OP_KEEP },
  121. { "ZERO", D3D11_STENCIL_OP_ZERO },
  122. { "REPLACE", D3D11_STENCIL_OP_REPLACE },
  123. { "INCR_SAT", D3D11_STENCIL_OP_INCR_SAT },
  124. { "DECR_SAT", D3D11_STENCIL_OP_DECR_SAT },
  125. { "INVERT", D3D11_STENCIL_OP_INVERT },
  126. { "INCR", D3D11_STENCIL_OP_INCR },
  127. { "DECR", D3D11_STENCIL_OP_DECR },
  128. RVALUE_END()
  129. };
  130. static const RValue g_rvBLENDOP[] =
  131. {
  132. { "ADD", D3D11_BLEND_OP_ADD },
  133. { "SUBTRACT", D3D11_BLEND_OP_SUBTRACT },
  134. { "REV_SUBTRACT", D3D11_BLEND_OP_REV_SUBTRACT },
  135. { "MIN", D3D11_BLEND_OP_MIN },
  136. { "MAX", D3D11_BLEND_OP_MAX },
  137. RVALUE_END()
  138. };
  139. //////////////////////////////////////////////////////////////////////////
  140. // Effect HLSL states
  141. //////////////////////////////////////////////////////////////////////////
  142. #define strideof( s, m ) offsetof_fx(s,m[1]) - offsetof_fx(s,m[0])
  143. const LValue g_lvGeneral[] =
  144. {
  145. // RObjects
  146. { "RasterizerState", EBT_Pass, D3D_SVT_RASTERIZER, 1, 1, false, nullptr, ELHS_RasterizerBlock, offsetof_fx(SPassBlock, BackingStore.pRasterizerBlock), 0 },
  147. { "DepthStencilState", EBT_Pass, D3D_SVT_DEPTHSTENCIL, 1, 1, false, nullptr, ELHS_DepthStencilBlock, offsetof_fx(SPassBlock, BackingStore.pDepthStencilBlock), 0 },
  148. { "BlendState", EBT_Pass, D3D_SVT_BLEND, 1, 1, false, nullptr, ELHS_BlendBlock, offsetof_fx(SPassBlock, BackingStore.pBlendBlock), 0 },
  149. { "RenderTargetView", EBT_Pass, D3D_SVT_RENDERTARGETVIEW, 1, 8, false, nullptr, ELHS_RenderTargetView, offsetof_fx(SPassBlock, BackingStore.pRenderTargetViews), 0 },
  150. { "DepthStencilView", EBT_Pass, D3D_SVT_DEPTHSTENCILVIEW, 1, 8, false, nullptr, ELHS_DepthStencilView, offsetof_fx(SPassBlock, BackingStore.pDepthStencilView), 0 },
  151. { "GenerateMips", EBT_Pass, D3D_SVT_TEXTURE, 1, 1, false, nullptr, ELHS_GenerateMips, 0, 0 },
  152. // Shaders
  153. { "VertexShader", EBT_Pass, D3D_SVT_VERTEXSHADER, 1, 1, false, g_rvNULL, ELHS_VertexShaderBlock, offsetof_fx(SPassBlock, BackingStore.pVertexShaderBlock), 0 },
  154. { "PixelShader", EBT_Pass, D3D_SVT_PIXELSHADER, 1, 1, false, g_rvNULL, ELHS_PixelShaderBlock, offsetof_fx(SPassBlock, BackingStore.pPixelShaderBlock), 0 },
  155. { "GeometryShader", EBT_Pass, D3D_SVT_GEOMETRYSHADER, 1, 1, false, g_rvNULL, ELHS_GeometryShaderBlock, offsetof_fx(SPassBlock, BackingStore.pGeometryShaderBlock), 0 },
  156. // RObject config assignments
  157. { "DS_StencilRef", EBT_Pass, D3D_SVT_UINT, 1, 1, false, nullptr, ELHS_DS_StencilRef, offsetof_fx(SPassBlock, BackingStore.StencilRef), 0 },
  158. { "AB_BlendFactor", EBT_Pass, D3D_SVT_FLOAT, 4, 1, false, nullptr, ELHS_B_BlendFactor, offsetof_fx(SPassBlock, BackingStore.BlendFactor), 0 },
  159. { "AB_SampleMask", EBT_Pass, D3D_SVT_UINT, 1, 1, false, nullptr, ELHS_B_SampleMask, offsetof_fx(SPassBlock, BackingStore.SampleMask), 0 },
  160. { "FillMode", EBT_Rasterizer, D3D_SVT_UINT, 1, 1, false, g_rvFILL, ELHS_FillMode, offsetof_fx(SRasterizerBlock, BackingStore.FillMode), 0 },
  161. { "CullMode", EBT_Rasterizer, D3D_SVT_UINT, 1, 1, false, g_rvCULL, ELHS_CullMode, offsetof_fx(SRasterizerBlock, BackingStore.CullMode), 0 },
  162. { "FrontCounterClockwise", EBT_Rasterizer, D3D_SVT_BOOL, 1, 1, false, g_rvBOOL, ELHS_FrontCC, offsetof_fx(SRasterizerBlock, BackingStore.FrontCounterClockwise), 0 },
  163. { "DepthBias", EBT_Rasterizer, D3D_SVT_UINT, 1, 1, false, nullptr, ELHS_DepthBias, offsetof_fx(SRasterizerBlock, BackingStore.DepthBias), 0 },
  164. { "DepthBiasClamp", EBT_Rasterizer, D3D_SVT_FLOAT, 1, 1, false, nullptr, ELHS_DepthBiasClamp, offsetof_fx(SRasterizerBlock, BackingStore.DepthBiasClamp), 0 },
  165. { "SlopeScaledDepthBias", EBT_Rasterizer, D3D_SVT_FLOAT, 1, 1, false, nullptr, ELHS_SlopeScaledDepthBias, offsetof_fx(SRasterizerBlock, BackingStore.SlopeScaledDepthBias), 0 },
  166. { "DepthClipEnable", EBT_Rasterizer, D3D_SVT_BOOL, 1, 1, false, g_rvBOOL, ELHS_DepthClipEnable, offsetof_fx(SRasterizerBlock, BackingStore.DepthClipEnable), 0 },
  167. { "ScissorEnable", EBT_Rasterizer, D3D_SVT_BOOL, 1, 1, false, g_rvBOOL, ELHS_ScissorEnable, offsetof_fx(SRasterizerBlock, BackingStore.ScissorEnable), 0 },
  168. { "MultisampleEnable", EBT_Rasterizer, D3D_SVT_BOOL, 1, 1, false, g_rvBOOL, ELHS_MultisampleEnable, offsetof_fx(SRasterizerBlock, BackingStore.MultisampleEnable), 0 },
  169. { "AntialiasedLineEnable", EBT_Rasterizer, D3D_SVT_BOOL, 1, 1, false, g_rvBOOL, ELHS_AntialiasedLineEnable, offsetof_fx(SRasterizerBlock, BackingStore.AntialiasedLineEnable), 0 },
  170. { "DepthEnable", EBT_DepthStencil, D3D_SVT_BOOL, 1, 1, false, g_rvBOOL, ELHS_DepthEnable, offsetof_fx(SDepthStencilBlock, BackingStore.DepthEnable), 0 },
  171. { "DepthWriteMask", EBT_DepthStencil, D3D_SVT_UINT, 1, 1, false, g_rvDEPTH_WRITE_MASK, ELHS_DepthWriteMask, offsetof_fx(SDepthStencilBlock, BackingStore.DepthWriteMask), 0 },
  172. { "DepthFunc", EBT_DepthStencil, D3D_SVT_UINT, 1, 1, false, g_rvCMP, ELHS_DepthFunc, offsetof_fx(SDepthStencilBlock, BackingStore.DepthFunc), 0 },
  173. { "StencilEnable", EBT_DepthStencil, D3D_SVT_BOOL, 1, 1, false, g_rvBOOL, ELHS_StencilEnable, offsetof_fx(SDepthStencilBlock, BackingStore.StencilEnable), 0 },
  174. { "StencilReadMask", EBT_DepthStencil, D3D_SVT_UINT8, 1, 1, false, nullptr, ELHS_StencilReadMask, offsetof_fx(SDepthStencilBlock, BackingStore.StencilReadMask), 0 },
  175. { "StencilWriteMask", EBT_DepthStencil, D3D_SVT_UINT8, 1, 1, false, nullptr, ELHS_StencilWriteMask, offsetof_fx(SDepthStencilBlock, BackingStore.StencilWriteMask), 0 },
  176. { "FrontFaceStencilFail", EBT_DepthStencil, D3D_SVT_UINT, 1, 1, false, g_rvSTENCILOP, ELHS_FrontFaceStencilFailOp, offsetof_fx(SDepthStencilBlock, BackingStore.FrontFace.StencilFailOp), 0 },
  177. { "FrontFaceStencilDepthFail", EBT_DepthStencil, D3D_SVT_UINT, 1, 1, false, g_rvSTENCILOP, ELHS_FrontFaceStencilDepthFailOp,offsetof_fx(SDepthStencilBlock, BackingStore.FrontFace.StencilDepthFailOp), 0 },
  178. { "FrontFaceStencilPass", EBT_DepthStencil, D3D_SVT_UINT, 1, 1, false, g_rvSTENCILOP, ELHS_FrontFaceStencilPassOp, offsetof_fx(SDepthStencilBlock, BackingStore.FrontFace.StencilPassOp), 0 },
  179. { "FrontFaceStencilFunc", EBT_DepthStencil, D3D_SVT_UINT, 1, 1, false, g_rvCMP, ELHS_FrontFaceStencilFunc, offsetof_fx(SDepthStencilBlock, BackingStore.FrontFace.StencilFunc), 0 },
  180. { "BackFaceStencilFail", EBT_DepthStencil, D3D_SVT_UINT, 1, 1, false, g_rvSTENCILOP, ELHS_BackFaceStencilFailOp, offsetof_fx(SDepthStencilBlock, BackingStore.BackFace.StencilFailOp), 0 },
  181. { "BackFaceStencilDepthFail", EBT_DepthStencil, D3D_SVT_UINT, 1, 1, false, g_rvSTENCILOP, ELHS_BackFaceStencilDepthFailOp,offsetof_fx(SDepthStencilBlock, BackingStore.BackFace.StencilDepthFailOp), 0 },
  182. { "BackFaceStencilPass", EBT_DepthStencil, D3D_SVT_UINT, 1, 1, false, g_rvSTENCILOP, ELHS_BackFaceStencilPassOp, offsetof_fx(SDepthStencilBlock, BackingStore.BackFace.StencilPassOp), 0 },
  183. { "BackFaceStencilFunc", EBT_DepthStencil, D3D_SVT_UINT, 1, 1, false, g_rvCMP, ELHS_BackFaceStencilFunc, offsetof_fx(SDepthStencilBlock, BackingStore.BackFace.StencilFunc), 0 },
  184. { "AlphaToCoverageEnable", EBT_Blend, D3D_SVT_BOOL, 1, 1, false, g_rvBOOL, ELHS_AlphaToCoverage, offsetof_fx(SBlendBlock, BackingStore.AlphaToCoverageEnable), 0 },
  185. { "BlendEnable", EBT_Blend, D3D_SVT_BOOL, 1, 8, false, g_rvBOOL, ELHS_BlendEnable, offsetof_fx(SBlendBlock, BackingStore.RenderTarget[0].BlendEnable), strideof(SBlendBlock, BackingStore.RenderTarget) },
  186. { "SrcBlend", EBT_Blend, D3D_SVT_UINT, 1, 8, true, g_rvBLEND, ELHS_SrcBlend, offsetof_fx(SBlendBlock, BackingStore.RenderTarget[0].SrcBlend), strideof(SBlendBlock, BackingStore.RenderTarget) },
  187. { "DestBlend", EBT_Blend, D3D_SVT_UINT, 1, 8, true, g_rvBLEND, ELHS_DestBlend, offsetof_fx(SBlendBlock, BackingStore.RenderTarget[0].DestBlend), strideof(SBlendBlock, BackingStore.RenderTarget) },
  188. { "BlendOp", EBT_Blend, D3D_SVT_UINT, 1, 8, true, g_rvBLENDOP, ELHS_BlendOp, offsetof_fx(SBlendBlock, BackingStore.RenderTarget[0].BlendOp), strideof(SBlendBlock, BackingStore.RenderTarget) },
  189. { "SrcBlendAlpha", EBT_Blend, D3D_SVT_UINT, 1, 8, true, g_rvBLEND, ELHS_SrcBlendAlpha, offsetof_fx(SBlendBlock, BackingStore.RenderTarget[0].SrcBlendAlpha), strideof(SBlendBlock, BackingStore.RenderTarget) },
  190. { "DestBlendAlpha", EBT_Blend, D3D_SVT_UINT, 1, 8, true, g_rvBLEND, ELHS_DestBlendAlpha, offsetof_fx(SBlendBlock, BackingStore.RenderTarget[0].DestBlendAlpha), strideof(SBlendBlock, BackingStore.RenderTarget) },
  191. { "BlendOpAlpha", EBT_Blend, D3D_SVT_UINT, 1, 8, true, g_rvBLENDOP, ELHS_BlendOpAlpha, offsetof_fx(SBlendBlock, BackingStore.RenderTarget[0].BlendOpAlpha), strideof(SBlendBlock, BackingStore.RenderTarget) },
  192. { "RenderTargetWriteMask", EBT_Blend, D3D_SVT_UINT8, 1, 8, false, nullptr, ELHS_RenderTargetWriteMask, offsetof_fx(SBlendBlock, BackingStore.RenderTarget[0].RenderTargetWriteMask), strideof(SBlendBlock, BackingStore.RenderTarget) },
  193. { "Filter", EBT_Sampler, D3D_SVT_UINT, 1, 1, false, g_rvFILTER, ELHS_Filter, offsetof_fx(SSamplerBlock, BackingStore.SamplerDesc.Filter), 0 },
  194. { "AddressU", EBT_Sampler, D3D_SVT_UINT, 1, 1, false, g_rvTADDRESS, ELHS_AddressU, offsetof_fx(SSamplerBlock, BackingStore.SamplerDesc.AddressU), 0 },
  195. { "AddressV", EBT_Sampler, D3D_SVT_UINT, 1, 1, false, g_rvTADDRESS, ELHS_AddressV, offsetof_fx(SSamplerBlock, BackingStore.SamplerDesc.AddressV), 0 },
  196. { "AddressW", EBT_Sampler, D3D_SVT_UINT, 1, 1, false, g_rvTADDRESS, ELHS_AddressW, offsetof_fx(SSamplerBlock, BackingStore.SamplerDesc.AddressW), 0 },
  197. { "MipLODBias", EBT_Sampler, D3D_SVT_FLOAT, 1, 1, false, nullptr, ELHS_MipLODBias, offsetof_fx(SSamplerBlock, BackingStore.SamplerDesc.MipLODBias), 0 },
  198. { "MaxAnisotropy", EBT_Sampler, D3D_SVT_UINT, 1, 1, false, nullptr, ELHS_MaxAnisotropy, offsetof_fx(SSamplerBlock, BackingStore.SamplerDesc.MaxAnisotropy), 0 },
  199. { "ComparisonFunc", EBT_Sampler, D3D_SVT_UINT, 1, 1, false, g_rvCMP, ELHS_ComparisonFunc, offsetof_fx(SSamplerBlock, BackingStore.SamplerDesc.ComparisonFunc), 0 },
  200. { "BorderColor", EBT_Sampler, D3D_SVT_FLOAT, 4, 1, false, nullptr, ELHS_BorderColor, offsetof_fx(SSamplerBlock, BackingStore.SamplerDesc.BorderColor), 0 },
  201. { "MinLOD", EBT_Sampler, D3D_SVT_FLOAT, 1, 1, false, nullptr, ELHS_MinLOD, offsetof_fx(SSamplerBlock, BackingStore.SamplerDesc.MinLOD), 0 },
  202. { "MaxLOD", EBT_Sampler, D3D_SVT_FLOAT, 1, 1, false, nullptr, ELHS_MaxLOD, offsetof_fx(SSamplerBlock, BackingStore.SamplerDesc.MaxLOD), 0 },
  203. { "Texture", EBT_Sampler, D3D_SVT_TEXTURE, 1, 1, false, g_rvNULL, ELHS_Texture, offsetof_fx(SSamplerBlock, BackingStore.pTexture), 0 },
  204. // D3D11
  205. { "HullShader", EBT_Pass, D3D11_SVT_HULLSHADER, 1, 1, false, g_rvNULL, ELHS_HullShaderBlock, offsetof_fx(SPassBlock, BackingStore.pHullShaderBlock), 0 },
  206. { "DomainShader", EBT_Pass, D3D11_SVT_DOMAINSHADER, 1, 1, false, g_rvNULL, ELHS_DomainShaderBlock, offsetof_fx(SPassBlock, BackingStore.pDomainShaderBlock), 0 },
  207. { "ComputeShader", EBT_Pass, D3D11_SVT_COMPUTESHADER, 1, 1, false, g_rvNULL, ELHS_ComputeShaderBlock, offsetof_fx(SPassBlock, BackingStore.pComputeShaderBlock), 0 },
  208. };
  209. #define NUM_STATES (sizeof(g_lvGeneral) / sizeof(LValue))
  210. #define MAX_VECTOR_SCALAR_INDEX 8
  211. const uint32_t g_lvGeneralCount = NUM_STATES;
  212. } // end namespace D3DX11Effects