2 * Copyright (c) 2007-2010 SlimDX Group
\r
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
\r
5 * of this software and associated documentation files (the "Software"), to deal
\r
6 * in the Software without restriction, including without limitation the rights
\r
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
\r
8 * copies of the Software, and to permit persons to whom the Software is
\r
9 * furnished to do so, subject to the following conditions:
\r
11 * The above copyright notice and this permission notice shall be included in
\r
12 * all copies or substantial portions of the Software.
\r
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
\r
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
\r
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
\r
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
\r
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
\r
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
\r
24 #include "../direct3d11/Enums11.h"
\r
28 namespace D3DCompiler
\r
30 // NOTE: The enumerations defined in this file are in alphabetical order. When
\r
31 // adding new enumerations or renaming existing ones, please make sure
\r
32 // the ordering is maintained.
\r
35 /// Indicates a constant buffer's type.
\r
37 /// <unmanaged>D3D11_CBUFFER_TYPE</unmanaged>
\r
38 public enum class ConstantBufferType : System::Int32
\r
41 /// A buffer containing scalar constants.
\r
43 ConstantBuffer = D3D11_CT_CBUFFER,
\r
46 /// A buffer containing texture data.
\r
48 TextureBuffer = D3D11_CT_TBUFFER,
\r
51 /// A buffer containing interface pointers.
\r
53 InterfacePointers = D3D11_CT_INTERFACE_POINTERS,
\r
56 /// A buffer containing binding information.
\r
58 ResourceBinding = D3D11_CT_RESOURCE_BIND_INFO
\r
62 /// Specifies flags that affect the output of shader disassembly.
\r
65 public enum class DisassemblyFlags : System::Int32
\r
68 /// No specific flags specified.
\r
73 /// Enable the output of color codes.
\r
75 EnableColorCodes = D3D_DISASM_ENABLE_COLOR_CODE,
\r
78 /// Enable the output of default values.
\r
80 EnableDefaultValues = D3D_DISASM_ENABLE_DEFAULT_VALUE_PRINTS,
\r
83 /// Enable instruction numbering.
\r
85 EnableInstructionNumbering = D3D_DISASM_ENABLE_INSTRUCTION_NUMBERING
\r
88 /// <summary>Specifies compile- or run-time options during effect creation.</summary>
\r
89 /// <unmanaged>D3D10_EFFECT</unmanaged>
\r
91 public enum class EffectFlags : System::Int32
\r
94 /// Standard compile- and run-time behavior.
\r
99 /// Compile the .fx file to a child effect. Child effects do not initialize shared values
\r
100 /// (as those values are instead initialized by the effect pool).
\r
102 ChildEffect = D3D10_EFFECT_COMPILE_CHILD_EFFECT,
\r
105 /// Allow mutable state objects (non-literal expressions may appear in state object definitions). This
\r
106 /// has a negative impact on run-time performance.
\r
108 AllowSlowOperations = D3D10_EFFECT_COMPILE_ALLOW_SLOW_OPS,
\r
111 /// Do not attempt to synchronize with other threads loading effects into the same pool.
\r
113 SingleThreaded = D3D10_EFFECT_SINGLE_THREADED,
\r
117 /// Flags that indicate the location of an include file.
\r
119 /// <unmanaged>D3D10_INCLUDE_TYPE</unmanaged>
\r
121 public enum class IncludeType : System::Int32
\r
124 /// Indicates that the include is in the local path (or paths).
\r
126 Local = D3D10_INCLUDE_LOCAL,
\r
129 /// Indicates that the include is in the system path (or paths).
\r
131 System = D3D10_INCLUDE_SYSTEM
\r
135 /// Indicates how the pipeline interprets geometry or hull shader input primitives.
\r
137 /// <unmanaged>D3D11_PRIMITIVE</unmanaged>
\r
138 public enum class InputPrimitive : System::Int32
\r
141 /// The shader has not been initialized with an input primitive type.
\r
143 Undefined = D3D11_PRIMITIVE_UNDEFINED,
\r
146 /// Interpret the input primitive as a point.
\r
148 Point = D3D11_PRIMITIVE_POINT,
\r
151 /// Interpret the input primitive as a line.
\r
153 Line = D3D11_PRIMITIVE_LINE,
\r
156 /// Interpret the input primitive as a triangle.
\r
158 Triangle = D3D11_PRIMITIVE_TRIANGLE,
\r
161 /// Interpret the input primitive as a line with adjacency data.
\r
163 LineWithAdjacency = D3D11_PRIMITIVE_LINE_ADJ,
\r
166 /// Interpret the input primitive as a triangle with adjacency data.
\r
168 TriangleWithAdjacency = D3D11_PRIMITIVE_TRIANGLE_ADJ,
\r
171 /// Interpret the input primitive as a control point patch with one control point.
\r
173 PatchWith1ControlPoint = D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH,
\r
176 /// Interpret the input primitive as a control point patch with two control points.
\r
178 PatchWith2ControlPoints = D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH,
\r
181 /// Interpret the input primitive as a control point patch with three control points.
\r
183 PatchWith3ControlPoints = D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH,
\r
186 /// Interpret the input primitive as a control point patch with four control points.
\r
188 PatchWith4ControlPoints = D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH,
\r
191 /// Interpret the input primitive as a control point patch with five control points.
\r
193 PatchWith5ControlPoints = D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH,
\r
196 /// Interpret the input primitive as a control point patch with six control points.
\r
198 PatchWith6ControlPoints = D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH,
\r
201 /// Interpret the input primitive as a control point patch with seven control points.
\r
203 PatchWith7ControlPoints = D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH,
\r
206 /// Interpret the input primitive as a control point patch with eight control points.
\r
208 PatchWith8ControlPoints = D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH,
\r
211 /// Interpret the input primitive as a control point patch with nine control points.
\r
213 PatchWith9ControlPoints = D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH,
\r
216 /// Interpret the input primitive as a control point patch with ten control points.
\r
218 PatchWith10ControlPoints = D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH,
\r
221 /// Interpret the input primitive as a control point patch with 11 control points.
\r
223 PatchWith11ControlPoints = D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH,
\r
226 /// Interpret the input primitive as a control point patch with 12 control points.
\r
228 PatchWith12ControlPoints = D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH,
\r
231 /// Interpret the input primitive as a control point patch with 13 control points.
\r
233 PatchWith13ControlPoints = D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH,
\r
236 /// Interpret the input primitive as a control point patch with 14 control points.
\r
238 PatchWith14ControlPoints = D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH,
\r
241 /// Interpret the input primitive as a control point patch with 15 control points.
\r
243 PatchWith15ControlPoints = D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH,
\r
246 /// Interpret the input primitive as a control point patch with 16 control points.
\r
248 PatchWith16ControlPoints = D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH,
\r
251 /// Interpret the input primitive as a control point patch with 17 control points.
\r
253 PatchWith17ControlPoints = D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH,
\r
256 /// Interpret the input primitive as a control point patch with 18 control points.
\r
258 PatchWith18ControlPoints = D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH,
\r
261 /// Interpret the input primitive as a control point patch with 19 control points.
\r
263 PatchWith19ControlPoints = D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH,
\r
266 /// Interpret the input primitive as a control point patch with 20 control points.
\r
268 PatchWith20ControlPoints = D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH,
\r
271 /// Interpret the input primitive as a control point patch with 21 control points.
\r
273 PatchWith21ControlPoints = D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH,
\r
276 /// Interpret the input primitive as a control point patch with 22 control points.
\r
278 PatchWith22ControlPoints = D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH,
\r
281 /// Interpret the input primitive as a control point patch with 23 control points.
\r
283 PatchWith23ControlPoints = D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH,
\r
286 /// Interpret the input primitive as a control point patch with 24 control points.
\r
288 PatchWith24ControlPoints = D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH,
\r
291 /// Interpret the input primitive as a control point patch with 25 control points.
\r
293 PatchWith25ControlPoints = D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH,
\r
296 /// Interpret the input primitive as a control point patch with 26 control points.
\r
298 PatchWith26ControlPoints = D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH,
\r
301 /// Interpret the input primitive as a control point patch with 27 control points.
\r
303 PatchWith27ControlPoints = D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH,
\r
306 /// Interpret the input primitive as a control point patch with 28 control points.
\r
308 PatchWith28ControlPoints = D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH,
\r
311 /// Interpret the input primitive as a control point patch with 29 control points.
\r
313 PatchWith29ControlPoints = D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH,
\r
316 /// Interpret the input primitive as a control point patch with 30 control points.
\r
318 PatchWith30ControlPoints = D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH,
\r
321 /// Interpret the input primitive as a control point patch with 31 control points.
\r
323 PatchWith31ControlPoints = D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH,
\r
326 /// Interpret the input primitive as a control point patch with 32 control points.
\r
328 PatchWith32ControlPoints = D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH
\r
332 /// Flags that indicate which components of a value are valid.
\r
335 public enum class RegisterComponentMaskFlags : System::Int32
\r
338 /// Indicates that no components are valid.
\r
343 /// Indicates that the X (or R) component is valid.
\r
348 /// Indicates that the Y (or G) component is valid.
\r
353 /// Indicates that the Z (or B) component is valid.
\r
358 /// Indicates that the W (or A) component is valid.
\r
363 /// Indicates that all components are valid.
\r
365 All = ComponentX | ComponentY | ComponentZ | ComponentW
\r
368 /// <summary>Defines possible register component types.</summary>
\r
369 /// <unmanaged>D3D10_REGISTER_COMPONENT_TYPE</unmanaged>
\r
370 public enum class RegisterComponentType : System::Int32
\r
373 /// Unknown data type.
\r
375 Unknown = D3D10_REGISTER_COMPONENT_UNKNOWN,
\r
378 /// 32-bit unsigned integer.
\r
380 UInt32 = D3D10_REGISTER_COMPONENT_UINT32,
\r
383 /// 32-bit signed integer.
\r
385 SInt32 = D3D10_REGISTER_COMPONENT_SINT32,
\r
388 /// 32-bit floating-point number.
\r
390 Float32 = D3D10_REGISTER_COMPONENT_FLOAT32
\r
394 /// Indicates return value types.
\r
396 /// <unmanaged>D3D11_RESOURCE_RETURN_TYPE</unmanaged>
\r
397 public enum class ResourceReturnType : System::Int32
\r
400 /// Return type of unsigned normalized integer.
\r
402 UNorm = D3D11_RETURN_TYPE_UNORM,
\r
405 /// Return type of signed normalized integer.
\r
407 SNorm = D3D11_RETURN_TYPE_SNORM,
\r
410 /// Return type of signed integer.
\r
412 SInt = D3D11_RETURN_TYPE_SINT,
\r
415 /// Return type of unsigned integer.
\r
417 UInt = D3D11_RETURN_TYPE_UINT,
\r
420 /// Return type of single precision floating point value.
\r
422 Float = D3D11_RETURN_TYPE_FLOAT,
\r
425 /// Return type is unknown.
\r
427 Mixed = D3D11_RETURN_TYPE_MIXED,
\r
430 /// Return type of double precision floating point value.
\r
432 Double = D3D11_RETURN_TYPE_DOUBLE,
\r
435 /// Return type is a multiple-dword type, such as a double or uint64, and the component is continued from the
\r
436 /// previous component that was declared. The first component represents the lower bits.
\r
438 Continued = D3D11_RETURN_TYPE_CONTINUED
\r
441 /// <summary>Provides various shader compilation flags.</summary>
\r
442 /// <unmanaged>D3D10_SHADER</unmanaged>
\r
444 public enum class ShaderFlags : System::Int32
\r
447 /// No specific compilation options.
\r
452 /// Insert debug file/line/type/symbol information into the resulting shader.
\r
454 Debug = D3D10_SHADER_DEBUG,
\r
457 /// Do not validate the generated code against known capabilities and constraints. Only use this with shaders that have been successfully
\r
458 /// compiled in the past. Shaders are always validated by DirectX before they are set to the device.
\r
460 SkipValidation = D3D10_SHADER_SKIP_VALIDATION,
\r
463 /// Skip optimization during code generation; generally recommended for debug only.
\r
465 SkipOptimization = D3D10_SHADER_SKIP_OPTIMIZATION,
\r
468 /// Unless explicitly specified, matrices will be packed in row-major order on input and output from the shader.
\r
470 PackMatrixRowMajor = D3D10_SHADER_PACK_MATRIX_ROW_MAJOR,
\r
473 /// Unless explicitly specified, matrices will be packed in column-major order on input and output from the shader. This is generally
\r
474 /// more efficient, since it allows vector-matrix multiplication to be performed using a series of dot-products.
\r
476 PackMatrixColumnMajor = D3D10_SHADER_PACK_MATRIX_COLUMN_MAJOR,
\r
479 /// Force all computations to be done with partial precision; this may run faster on some hardware.
\r
481 PartialPrecision = D3D10_SHADER_PARTIAL_PRECISION,
\r
484 /// Compile a vertex shader for the next highest shader profile. This option turns debugging on (and optimizations off).
\r
486 ForceSoftwareVertexShader = D3D10_SHADER_FORCE_VS_SOFTWARE_NO_OPT,
\r
489 /// Compile a pixel shader for the next highest shader profile. This option turns debugging on (and optimizations off).
\r
491 ForceSoftwarePixelShader = D3D10_SHADER_FORCE_PS_SOFTWARE_NO_OPT,
\r
494 /// Disables Preshaders. Using this flag will cause the compiler to not pull out static expression for evaluation.
\r
496 NoPreshader = D3D10_SHADER_NO_PRESHADER,
\r
499 /// Tells the compiler to not allow flow-control (when possible).
\r
501 AvoidFlowControl = D3D10_SHADER_AVOID_FLOW_CONTROL,
\r
504 /// Tells the compiler to use flow-control (when possible).
\r
506 PreferFlowControl = D3D10_SHADER_PREFER_FLOW_CONTROL,
\r
509 /// By default, the HLSL compiler disables strictness on deprecated syntax. Specifying this flag enables strictness which may not allow for legacy syntax.
\r
511 EnableStrictness = D3D10_SHADER_ENABLE_STRICTNESS,
\r
514 /// This enables older shaders to compile to 4_0 targets.
\r
516 EnableBackwardsCompatibility = D3D10_SHADER_ENABLE_BACKWARDS_COMPATIBILITY,
\r
519 /// Enables IEEE floating point strictness.
\r
521 EnableIEEEStrictness = D3D10_SHADER_IEEE_STRICTNESS,
\r
524 /// Lowest optimization level. May produce slower code but will do so more quickly. This may be useful in a highly iterative shader development cycle.
\r
526 OptimizationLevel0 = D3D10_SHADER_OPTIMIZATION_LEVEL0,
\r
529 /// Second lowest optimization level.
\r
531 OptimizationLevel1 = D3D10_SHADER_OPTIMIZATION_LEVEL1,
\r
534 /// Second highest optimization level.
\r
536 OptimizationLevel2 = D3D10_SHADER_OPTIMIZATION_LEVEL2,
\r
539 /// Highest optimization level. Will produce best possible code but may take significantly longer to do so. This will be useful for
\r
540 /// final builds of an application where performance is the most important factor.
\r
542 OptimizationLevel3 = D3D10_SHADER_OPTIMIZATION_LEVEL3,
\r
545 /// Inform the HLSL compiler to treat all warnings as errors when compiling the shader code. For new shader code, you should use this
\r
546 /// option so you can resolve all warnings and ensure the fewest possible hard-to-find code defects.
\r
548 WarningsAreErrors = D3D10_SHADER_WARNINGS_ARE_ERRORS
\r
552 /// Identifies shader input options.
\r
554 /// <unmanaged>D3D10_SHADER_INPUT_FLAGS</unmanaged>
\r
556 public enum class ShaderInputFlags : System::Int32
\r
559 /// Assign a shader input to a register based on the register assignment in the HLSL code (instead of letting the compiler choose the register).
\r
561 UserPacked = D3D10_SIF_USERPACKED,
\r
564 /// Use a comparison sampler, which uses the SampleCmp and SampleCmpLevelZero sampling functions.
\r
566 ComparisonSampler = D3D10_SIF_COMPARISON_SAMPLER,
\r
569 /// A 2-bit value for encoding texture components.
\r
571 TextureComponent0 = D3D10_SIF_TEXTURE_COMPONENT_0,
\r
574 /// A 2-bit value for encoding texture components.
\r
576 TextureComponent1 = D3D10_SIF_TEXTURE_COMPONENT_1,
\r
579 /// A 2-bit value for encoding texture components.
\r
581 TextureComponents = D3D10_SIF_TEXTURE_COMPONENTS
\r
585 /// Identifies shader resource types.
\r
587 /// <unmanaged>D3D10_SHADER_INPUT_TYPE</unmanaged>
\r
588 public enum class ShaderInputType : System::Int32
\r
591 /// The shader resource is a constant buffer.
\r
593 ConstantBuffer = D3D10_SIT_CBUFFER,
\r
596 /// The shader resource is a texture buffer.
\r
598 TextureBuffer = D3D10_SIT_TBUFFER,
\r
601 /// The shader resource is a texture.
\r
603 Texture = D3D10_SIT_TEXTURE,
\r
606 /// The shader resource is a sampler.
\r
608 Sampler = D3D10_SIT_SAMPLER,
\r
611 /// The shader resource is a structure buffer.
\r
613 Structured = D3D11_SIT_STRUCTURED,
\r
616 /// The shader resource is a read and write structured buffer.
\r
618 RWStructured = D3D11_SIT_UAV_RWSTRUCTURED,
\r
621 /// The shader resource is a byte-address buffer.
\r
623 ByteAddress = D3D11_SIT_BYTEADDRESS,
\r
626 /// The shader resource is a read and write byte-address buffer.
\r
628 RWByteAddress = D3D11_SIT_UAV_RWBYTEADDRESS,
\r
631 /// The shader resource is an append-structured buffer.
\r
633 AppendStructured = D3D11_SIT_UAV_APPEND_STRUCTURED,
\r
636 /// The shader resource is a consume-structured buffer.
\r
638 ConsumeStructured = D3D11_SIT_UAV_CONSUME_STRUCTURED,
\r
641 /// The shader resource is a read and write structured buffer that uses the built-in counter to append or consume.
\r
643 RWStructuredWithCounter = D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER
\r
647 /// Identifies shader variable classes.
\r
649 /// <unmanaged>D3D10_SHADER_VARIABLE_CLASS</unmanaged>
\r
650 public enum class ShaderVariableClass : System::Int32
\r
653 /// The shader variable is a scalar.
\r
655 Scalar = D3D10_SVC_SCALAR,
\r
658 /// The shader variable is a vector.
\r
660 Vector = D3D10_SVC_VECTOR,
\r
663 /// The shader variable is a row-major matrix.
\r
665 MatrixRows = D3D10_SVC_MATRIX_ROWS,
\r
668 /// The shader variable is a column-major matrix.
\r
670 MatrixColumns = D3D10_SVC_MATRIX_COLUMNS,
\r
673 /// The shader variable is an object.
\r
675 Object = D3D10_SVC_OBJECT,
\r
678 /// The shader variable is a structure.
\r
680 Struct = D3D10_SVC_STRUCT,
\r
683 /// The shader variable is a class.
\r
685 InterfaceClass = D3D11_SVC_INTERFACE_CLASS,
\r
688 /// The shader variable is an interface pointer.
\r
690 InterfacePointer = D3D11_SVC_INTERFACE_POINTER,
\r
694 /// Indicates additional information about a shader variable.
\r
696 /// <unmanaged>D3D10_SHADER_VARIABLE_FLAGS</unmanaged>
\r
698 public enum class ShaderVariableFlags : System::Int32
\r
701 /// Indicates that the registers assigned to this shader variable were explicitly declared in shader code (instead of automatically assigned by the compiler).
\r
703 UserPacked = D3D10_SVF_USERPACKED,
\r
706 /// Indicates that this variable is used by this shader. This value confirms that a particular shader variable
\r
707 /// (which can be common to many different shaders) is indeed used by a particular shader.
\r
709 Used = D3D10_SVF_USED
\r
713 /// Identifies possible shader variable types.
\r
715 /// <unmanaged>D3D10_SHADER_VARIABLE_TYPE</unmanaged>
\r
716 public enum class ShaderVariableType : System::Int32
\r
719 /// The variable is a void pointer.
\r
721 Void = D3D10_SVT_VOID,
\r
724 /// The variable is a boolean.
\r
726 Bool = D3D10_SVT_BOOL,
\r
729 /// The variable is an integer.
\r
731 Int = D3D10_SVT_INT,
\r
734 /// The variable is a floating-point number.
\r
736 Float = D3D10_SVT_FLOAT,
\r
739 /// The variable is a string.
\r
741 String = D3D10_SVT_STRING,
\r
744 /// The variable is a texture.
\r
746 Texture = D3D10_SVT_TEXTURE,
\r
749 /// The variable is a 1D texture.
\r
751 Texture1D = D3D10_SVT_TEXTURE1D,
\r
754 /// The variable is a 2D texture.
\r
756 Texture2D = D3D10_SVT_TEXTURE2D,
\r
759 /// The variable is a 3D texture.
\r
761 Texture3D = D3D10_SVT_TEXTURE3D,
\r
764 /// The variable is a texture cube.
\r
766 TextureCube = D3D10_SVT_TEXTURECUBE,
\r
769 /// The variable is a sampler.
\r
771 Sampler = D3D10_SVT_SAMPLER,
\r
774 /// The variable is a pixel shader.
\r
776 PixelShader = D3D10_SVT_PIXELSHADER,
\r
779 /// The variable is a vertex shader.
\r
781 VertexShader = D3D10_SVT_VERTEXSHADER,
\r
784 /// The variable is an unsigned integer.
\r
786 UInt = D3D10_SVT_UINT,
\r
789 /// The variable is an 8-bit unsigned integer.
\r
791 UInt8 = D3D10_SVT_UINT8,
\r
794 /// The variable is a geometry shader.
\r
796 GeometryShader = D3D10_SVT_GEOMETRYSHADER,
\r
799 /// The variable is a rasterizer-state object.
\r
801 Rasterizer = D3D10_SVT_RASTERIZER,
\r
804 /// The variable is a depth-stencil-state object.
\r
806 DepthStencil = D3D10_SVT_DEPTHSTENCIL,
\r
809 /// The variable is a blend-state object.
\r
811 Blend = D3D10_SVT_BLEND,
\r
814 /// The variable is a buffer.
\r
816 Buffer = D3D10_SVT_BUFFER,
\r
819 /// The variable is a constant buffer.
\r
821 CBuffer = D3D10_SVT_CBUFFER,
\r
824 /// The variable is a texture buffer.
\r
826 TBuffer = D3D10_SVT_TBUFFER,
\r
829 /// The variable is a 1D-texture array.
\r
831 Texture1DArray = D3D10_SVT_TEXTURE1DARRAY,
\r
834 /// The variable is a 2D-texture array.
\r
836 Texture2DArray = D3D10_SVT_TEXTURE2DARRAY,
\r
839 /// The variable is a render-target view.
\r
841 RenderTargetView = D3D10_SVT_RENDERTARGETVIEW,
\r
844 /// The variable is a depth-stencil view.
\r
846 DepthStencilView = D3D10_SVT_DEPTHSTENCILVIEW,
\r
849 /// The variable is a 2D-multisampled texture.
\r
851 Texture2DMS = D3D10_SVT_TEXTURE2DMS,
\r
854 /// The variable is a 2D-multisampled-texture array.
\r
856 Texture2DMSArray = D3D10_SVT_TEXTURE2DMSARRAY,
\r
859 /// The variable is a texture-cube array.
\r
861 TextureCubeArray = D3D10_SVT_TEXTURECUBEARRAY,
\r
864 /// The variable holds a compiled hull-shader binary.
\r
866 HullShader = D3D11_SVT_HULLSHADER,
\r
869 /// The variable holds a compiled domain-shader binary.
\r
871 DomainShader = D3D11_SVT_DOMAINSHADER,
\r
874 /// The variable is an interface.
\r
876 InterfacePointer = D3D11_SVT_INTERFACE_POINTER,
\r
879 /// The variable holds a compiled compute-shader binary.
\r
881 ComputeShader = D3D11_SVT_COMPUTESHADER,
\r
884 /// The variable is a double precision (64-bit) floating-point number.
\r
886 Double = D3D11_SVT_DOUBLE,
\r
889 /// The variable is a 1D read and write texture.
\r
891 RWTexture1D = D3D11_SVT_RWTEXTURE1D,
\r
894 /// The variable is an array of 1D read and write textures.
\r
896 RWTexture1DArray = D3D11_SVT_RWTEXTURE1DARRAY,
\r
899 /// The variable is a 2D read and write texture.
\r
901 RWTexture2D = D3D11_SVT_RWTEXTURE2D,
\r
904 /// The variable is an array of 2D read and write textures.
\r
906 RWTexture2DArray = D3D11_SVT_RWTEXTURE2DARRAY,
\r
909 /// he variable is a 3D read and write texture.
\r
911 RWTexture3D = D3D11_SVT_RWTEXTURE3D,
\r
914 /// The variable is a read and write buffer.
\r
916 RWBuffer = D3D11_SVT_RWBUFFER,
\r
919 /// The variable is a byte-address buffer.
\r
921 ByteAddressBuffer = D3D11_SVT_BYTEADDRESS_BUFFER,
\r
924 /// The variable is a read and write byte-address buffer.
\r
926 RWByteAddressBuffer = D3D11_SVT_RWBYTEADDRESS_BUFFER,
\r
929 /// he variable is a structured buffer.
\r
931 StructuredBuffer = D3D11_SVT_STRUCTURED_BUFFER,
\r
934 /// The variable is a read and write structured buffer.
\r
936 RWStructuredBuffer = D3D11_SVT_RWSTRUCTURED_BUFFER,
\r
939 /// The variable is an append structured buffer.
\r
941 AppendStructuredBuffer = D3D11_SVT_APPEND_STRUCTURED_BUFFER,
\r
944 /// The variable is a consume structured buffer.
\r
946 ConsumeStructuredBuffer = D3D11_SVT_CONSUME_STRUCTURED_BUFFER
\r
950 /// Indicates possible shader types.
\r
952 /// <unmanaged>D3D11_SHADER_VERSION_TYPE</unmanaged>
\r
953 public enum class ShaderVersion : System::Int32
\r
956 /// A pixel shader.
\r
958 PixelShader = D3D11_SHVER_PIXEL_SHADER,
\r
961 /// A vertex shader.
\r
963 VertexShader = D3D11_SHVER_VERTEX_SHADER,
\r
966 /// A geometry shader.
\r
968 GeometryShader = D3D11_SHVER_GEOMETRY_SHADER,
\r
973 HullShader = D3D11_SHVER_HULL_SHADER,
\r
976 /// A domain shader.
\r
978 DomainShader = D3D11_SHVER_DOMAIN_SHADER,
\r
981 /// A compute shader.
\r
983 ComputeShader = D3D11_SHVER_COMPUTE_SHADER
\r
987 /// Specifies options for stripping data from a shader or effect.
\r
989 /// <unmanaged>D3DCOMPILER_STRIP_FLAGS</unmanaged>
\r
991 public enum class StripFlags : System::Int32
\r
994 /// No extra stripping options.
\r
999 /// Remove reflection data.
\r
1001 StripReflectionData = D3DCOMPILER_STRIP_REFLECTION_DATA,
\r
1004 /// Remove debug information.
\r
1006 StripDebugInformation = D3DCOMPILER_STRIP_DEBUG_INFO,
\r
1009 /// Remove test blob data.
\r
1011 StripTestBlobs = D3DCOMPILER_STRIP_TEST_BLOBS
\r
1014 /// <summary>Identifies shader parameters that use system-value semantics.</summary>
\r
1015 /// <unmanaged>D3D10_NAME</unmanaged>
\r
1016 public enum class SystemValueType : System::Int32
\r
1019 /// This parameter does not use a predefined system-value semantic.
\r
1021 Undefined = D3D10_NAME_UNDEFINED,
\r
1024 /// This parameter contains position data.
\r
1026 Position = D3D10_NAME_POSITION,
\r
1029 /// This parameter contains clip-distance data.
\r
1031 ClipDistance = D3D10_NAME_CLIP_DISTANCE,
\r
1034 /// This parameter contains cull distance data.
\r
1036 CullDistance = D3D10_NAME_CULL_DISTANCE,
\r
1039 /// This parameter contains a render-target-array index.
\r
1041 RenderTargetArrayIndex = D3D10_NAME_RENDER_TARGET_ARRAY_INDEX,
\r
1044 /// This parameter contains a viewport-array index.
\r
1046 ViewportArrayIndex = D3D10_NAME_VIEWPORT_ARRAY_INDEX,
\r
1049 /// This parameter contains a vertex ID.
\r
1051 VertexId = D3D10_NAME_VERTEX_ID,
\r
1054 /// This parameter contains a primitive ID.
\r
1056 PrimitiveId = D3D10_NAME_PRIMITIVE_ID,
\r
1059 /// This parameter contains a instance ID.
\r
1061 InstanceId = D3D10_NAME_INSTANCE_ID,
\r
1064 /// This parameter contains data that identifies whether or not the primitive faces the camera.
\r
1066 FrontFaceFlag = D3D10_NAME_IS_FRONT_FACE,
\r
1069 /// This parameter contains a sampler-array index.
\r
1071 SampleIndex = D3D10_NAME_SAMPLE_INDEX,
\r
1074 /// This parameter contains render-target data.
\r
1076 Target = D3D10_NAME_TARGET,
\r
1079 /// This parameter contains depth data.
\r
1081 Depth = D3D10_NAME_DEPTH,
\r
1084 /// This parameter contains alpha-coverage data.
\r
1086 Coverage = D3D10_NAME_COVERAGE,
\r
1089 /// This parameter signifies that the value is greater than or equal to a reference value. This flag is used to specify conservative depth for a pixel shader.
\r
1091 DepthGreaterEqual = D3D11_NAME_DEPTH_GREATER_EQUAL,
\r
1094 /// This parameter signifies that the value is less than or equal to a reference value. This flag is used to specify conservative depth for a pixel shader.
\r
1096 DepthLessEqual = D3D11_NAME_DEPTH_LESS_EQUAL,
\r
1099 /// his parameter contains one of four tessellation factors that correspond to the amount of parts that a quad patch is broken into along
\r
1100 /// the given edge. This flag is used to tessellate a quad patch.
\r
1102 FinalQuadEdgeTessellationFactor = D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR,
\r
1105 /// This parameter contains one of two tessellation factors that correspond to the amount of parts that a quad patch is broken into vertically
\r
1106 /// and horizontally within the patch. This flag is used to tessellate a quad patch.
\r
1108 FinalQuadInsideTessellationFactor = D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR,
\r
1111 /// This parameter contains one of three tessellation factors that correspond to the amount of parts that a tri patch is broken into
\r
1112 /// along the given edge. This flag is used to tessellate a tri patch.
\r
1114 FinalTriangleEdgeTessellationFactor = D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR,
\r
1117 /// This parameter contains the tessellation factor that corresponds to the amount of parts that a tri patch is broken into within the patch.
\r
1118 /// This flag is used to tessellate a tri patch.
\r
1120 FinalTriangleInsideTessellationFactor = D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR,
\r
1123 /// This parameter contains the tessellation factor that corresponds to the amount of lines broken into within the patch. This flag is used to tessellate an isolines patch.
\r
1125 FinalLineDetailTessellationFactor = D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR,
\r
1128 /// This parameter contains the tessellation factor that corresponds to the amount of lines that are created within the patch. This flag is used to tessellate an isolines patch.
\r
1130 FinalLineDensityTessellationFactor = D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR
\r
1134 /// Specifies domain options for tessellator data.
\r
1136 /// <unmanaged>D3D11_TESSELLATOR_DOMAIN</unmanaged>
\r
1137 public enum class TessellatorDomain : System::Int32
\r
1140 /// The data type is undefined.
\r
1142 Undefined = D3D11_TESSELLATOR_DOMAIN_UNDEFINED,
\r
1147 Isoline = D3D11_TESSELLATOR_DOMAIN_ISOLINE,
\r
1150 /// Triangle data.
\r
1152 Triangle = D3D11_TESSELLATOR_DOMAIN_TRI,
\r
1157 Quad = D3D11_TESSELLATOR_DOMAIN_QUAD
\r
1161 /// Specifies output primitive types for the tessellator.
\r
1163 /// <unmanaged>D3D11_TESSELLATOR_OUTPUT_PRIMITIVE</unmanaged>
\r
1164 public enum class TessellatorOutputPrimitive : System::Int32
\r
1167 /// The output primitive type is undefined.
\r
1169 Undefined = D3D11_TESSELLATOR_OUTPUT_UNDEFINED,
\r
1172 /// The output primitive type a point.
\r
1174 Point = D3D11_TESSELLATOR_OUTPUT_POINT,
\r
1177 /// The output primitive type is a line.
\r
1179 Line = D3D11_TESSELLATOR_OUTPUT_LINE,
\r
1182 /// The output primitive type is a clockwise triangle.
\r
1184 TriangleClockwise = D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW,
\r
1187 /// The output primitive type is a counter clockwise triangle.
\r
1189 TriangleCounterclockwise = D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW
\r
1193 /// Specifies tessellator partitioning options.
\r
1195 /// <unmanaged>D3D11_TESSELLATOR_PARTITIONING</unmanaged>
\r
1196 public enum class TessellatorPartitioning : System::Int32
\r
1199 /// The partitioning type is undefined.
\r
1201 Undefined = D3D11_TESSELLATOR_PARTITIONING_UNDEFINED,
\r
1204 /// Partition with integers only.
\r
1206 Integer = D3D11_TESSELLATOR_PARTITIONING_INTEGER,
\r
1209 /// Partition with a power-of-two number only.
\r
1211 PowerOfTwo = D3D11_TESSELLATOR_PARTITIONING_POW2,
\r
1214 /// Partition with an odd, fractional number.
\r
1216 FractionalOdd = D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD,
\r
1219 /// Partition with an even, fractional number.
\r
1221 FractionalEven = D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN
\r