OSDN Git Service

SlimDXの改造後コード。(June2010を変更したもの。)
[dtxmania/dtxmania.git] / SlimDXc_Jun2010(VC++2008) / source / d3dcompiler / ShaderDescriptionDC.h
1 /*\r
2 * Copyright (c) 2007-2010 SlimDX Group\r
3\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
10\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
13\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
20 * THE SOFTWARE.\r
21 */\r
22 #pragma once\r
23 \r
24 #include "EnumsDC.h"\r
25 \r
26 namespace SlimDX\r
27 {\r
28         namespace D3DCompiler\r
29         {\r
30                 /// <summary>\r
31                 /// Provides a description for a shader.\r
32                 /// </summary>\r
33                 /// <unmanaged>D3D11_SHADER_DESC</unmanaged>\r
34                 public ref class ShaderDescription\r
35                 {\r
36                 internal:\r
37                         ShaderDescription( const D3D11_SHADER_DESC &desc );\r
38 \r
39                 public:\r
40                         /// <summary>\r
41                         /// Shader version type.\r
42                         /// </summary>\r
43                         property ShaderVersion Version;\r
44 \r
45                         /// <summary>\r
46                         /// The name of the originator of the shader.\r
47                         /// </summary>\r
48                         property System::String^ Creator;\r
49 \r
50                         /// <summary>\r
51                         /// Shader compilation/parse flags.\r
52                         /// </summary>\r
53                         property ShaderFlags Flags;\r
54 \r
55                         /// <summary>\r
56                         /// The number of shader-constant buffers.\r
57                         /// </summary>\r
58                         property int ConstantBuffers;\r
59 \r
60                         /// <summary>\r
61                         /// The number of resource (textures and buffers) bound to a shader.\r
62                         /// </summary>\r
63                         property int BoundResources;\r
64 \r
65                         /// <summary>\r
66                         /// The number of parameters in the input signature.\r
67                         /// </summary>\r
68                         property int InputParameters;\r
69 \r
70                         /// <summary>\r
71                         /// The number of parameters in the output signature.\r
72                         /// </summary>\r
73                         property int OutputParameters;\r
74 \r
75                         /// <summary>\r
76                         /// The number of intermediate-language instructions in the compiled shader.\r
77                         /// </summary>\r
78                         property int InstructionCount;\r
79 \r
80                         /// <summary>\r
81                         /// The number of temporary registers in the compiled shader.\r
82                         /// </summary>\r
83                         property int TempRegisterCount;\r
84 \r
85                         /// <summary>\r
86                         /// Number of temporary arrays used.\r
87                         /// </summary>\r
88                         property int TempArrayCount;\r
89 \r
90                         /// <summary>\r
91                         /// Number of constant defines.\r
92                         /// </summary>\r
93                         property int DefineCount;\r
94 \r
95                         /// <summary>\r
96                         /// Number of declarations (input + output).\r
97                         /// </summary>\r
98                         property int DeclarationCount;\r
99 \r
100                         /// <summary>\r
101                         /// Number of non-categorized texture instructions.\r
102                         /// </summary>\r
103                         property int TextureNormalInstructions;\r
104 \r
105                         /// <summary>\r
106                         /// Number of texture load instructions.\r
107                         /// </summary>\r
108                         property int TextureLoadInstructions;\r
109 \r
110                         /// <summary>\r
111                         /// Number of texture comparison instructions.\r
112                         /// </summary>\r
113                         property int TextureCompareInstructions;\r
114 \r
115                         /// <summary>\r
116                         /// Number of texture bias instructions.\r
117                         /// </summary>\r
118                         property int TextureBiasInstructions;\r
119 \r
120                         /// <summary>\r
121                         /// Number of texture gradient instructions.\r
122                         /// </summary>\r
123                         property int TextureGradientInstructions;\r
124 \r
125                         /// <summary>\r
126                         /// Number of floating point arithmetic instructions used.\r
127                         /// </summary>\r
128                         property int FloatInstructionCount;\r
129 \r
130                         /// <summary>\r
131                         /// Number of signed integer arithmetic instructions used.\r
132                         /// </summary>\r
133                         property int IntInstructionCount;\r
134 \r
135                         /// <summary>\r
136                         /// Number of unsigned integer arithmetic instructions used.\r
137                         /// </summary>\r
138                         property int UintInstructionCount;\r
139 \r
140                         /// <summary>\r
141                         /// Number of static flow control instructions used.\r
142                         /// </summary>\r
143                         property int StaticFlowControlCount;\r
144                         \r
145                         /// <summary>\r
146                         /// Number of dynamic flow control instructions used.\r
147                         /// </summary>\r
148                         property int DynamicFlowControlCount;\r
149 \r
150                         /// <summary>\r
151                         /// Number of macro instructions used.\r
152                         /// </summary>\r
153                         property int MacroInstructionCount;\r
154 \r
155                         /// <summary>\r
156                         /// Number of array instructions used.\r
157                         /// </summary>\r
158                         property int ArrayInstructionCount;\r
159 \r
160                         /// <summary>\r
161                         /// Number of cut instructions used.\r
162                         /// </summary>\r
163                         property int CutInstructionCount;\r
164 \r
165                         /// <summary>\r
166                         /// Number of emit instructions used.\r
167                         /// </summary>\r
168                         property int EmitInstructionCount;\r
169 \r
170                         /// <summary>\r
171                         /// The output topology of the geometry shader.\r
172                         /// </summary>\r
173                         property Direct3D11::PrimitiveTopology GeometryShaderOutputTopology;\r
174 \r
175                         /// <summary>\r
176                         /// Geometry shader maximum output vertex count.\r
177                         /// </summary>\r
178                         property int MaximumOutputVertexCount;\r
179 \r
180                         /// <summary>\r
181                         /// The geometry shader/hull shader input primitive.\r
182                         /// </summary>\r
183                         property InputPrimitive InputPrimitive;\r
184 \r
185                         /// <summary>\r
186                         /// Number of parameters in the patch-constant signature.\r
187                         /// </summary>\r
188                         property int PatchConstantParameters;\r
189 \r
190                         /// <summary>\r
191                         /// Number of geometry shader instances.\r
192                         /// </summary>\r
193                         property int GeometryShaderInstanceCount;\r
194 \r
195                         /// <summary>\r
196                         /// Number of control points in the hull shader and domain shader.\r
197                         /// </summary>\r
198                         property int ControlPoints;\r
199 \r
200                         /// <summary>\r
201                         /// The tessellator output-primitive type.\r
202                         /// </summary>\r
203                         property TessellatorOutputPrimitive HullShaderOutputPrimitive;\r
204 \r
205                         /// <summary>\r
206                         /// The tessellator partitioning mode.\r
207                         /// </summary>\r
208                         property TessellatorPartitioning HullShaderPartitioning;\r
209 \r
210                         /// <summary>\r
211                         /// The tessellator domain.\r
212                         /// </summary>\r
213                         property TessellatorDomain TessellatorDomain;\r
214 \r
215                         /// <summary>\r
216                         /// Number of barrier instructions in a compute shader.\r
217                         /// </summary>\r
218                         property int BarrierInstructions;\r
219 \r
220                         /// <summary>\r
221                         /// Number of interlocked instructions in a compute shader.\r
222                         /// </summary>\r
223                         property int InterlockedInstructions;\r
224 \r
225                         /// <summary>\r
226                         /// Number of texture writes in a compute shader.\r
227                         /// </summary>\r
228                         property int TextureStoreInstructions;\r
229                 };\r
230         }\r
231 }