OSDN Git Service

9d6360e2062e868470a007999ede056d7b63e898
[dtxmania/dtxmania.git] / SlimDXc_Jun2010(VC++2008) / source / direct3d11 / EffectShaderVariable11.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 "EffectVariable11.h"\r
25 \r
26 using System::Runtime::InteropServices::OutAttribute;\r
27 \r
28 namespace SlimDX\r
29 {\r
30         namespace D3DCompiler\r
31         {\r
32                 value class ShaderParameterDescription;\r
33         }\r
34 \r
35         namespace Direct3D11\r
36         {\r
37                 ref class PixelShader;\r
38                 ref class VertexShader;\r
39                 ref class GeometryShader;\r
40                 ref class DomainShader;\r
41                 ref class HullShader;\r
42                 ref class ComputeShader;\r
43 \r
44                 value class EffectShaderDescription;\r
45                 \r
46                 /// <summary>\r
47                 /// Represents a shader effect variable.\r
48                 /// </summary>\r
49                 /// <unmanaged>ID3DX11EffectShaderVariable</unmanaged>\r
50                 public ref class EffectShaderVariable : public EffectVariable\r
51                 {       \r
52                 private:\r
53                         ID3DX11EffectShaderVariable* m_Pointer;\r
54                         \r
55                 internal:\r
56                         EffectShaderVariable( ID3DX11EffectShaderVariable* pointer );\r
57 \r
58                 public:\r
59                         /// <summary>\r
60                         /// Initializes a new instance of the <see cref="EffectShaderVariable"/> class.\r
61                         /// </summary>\r
62                         /// <param name="pointer">A pointer to the unmanaged interface.</param>\r
63                         EffectShaderVariable( System::IntPtr pointer );\r
64                         \r
65                         /// <summary>\r
66                         /// Gets a pixel shader.\r
67                         /// </summary>\r
68                         /// <param name="index">The zero-based index of the pixel shader to retrieve.</param>\r
69                         /// <returns>The pixel shader at the specified index.</returns>\r
70                         PixelShader^ GetPixelShader( int index );\r
71 \r
72                         /// <summary>\r
73                         /// Gets a vertex shader.\r
74                         /// </summary>\r
75                         /// <param name="index">The zero-based index of the vertex shader to retrieve.</param>\r
76                         /// <returns>The vertex shader at the specified index.</returns>\r
77                         VertexShader^ GetVertexShader( int index );\r
78 \r
79                         /// <summary>\r
80                         /// Gets a geometry shader.\r
81                         /// </summary>\r
82                         /// <param name="index">The zero-based index of the geometry shader to retrieve.</param>\r
83                         /// <returns>The geometry shader at the specified index.</returns>\r
84                         GeometryShader^ GetGeometryShader( int index );\r
85 \r
86                         /// <summary>\r
87                         /// Gets a hull shader.\r
88                         /// </summary>\r
89                         /// <param name="index">The zero-based index of the hull shader to retrieve.</param>\r
90                         /// <returns>The hull shader at the specified index.</returns>\r
91                         HullShader^ GetHullShader( int index );\r
92 \r
93                         /// <summary>\r
94                         /// Gets a domain shader.\r
95                         /// </summary>\r
96                         /// <param name="index">The zero-based index of the domain shader to retrieve.</param>\r
97                         /// <returns>The domain shader at the specified index.</returns>\r
98                         DomainShader^ GetDomainShader( int index );\r
99 \r
100                         /// <summary>\r
101                         /// Gets a compute shader.\r
102                         /// </summary>\r
103                         /// <param name="index">The zero-based index of the compute shader to retrieve.</param>\r
104                         /// <returns>The compute shader at the specified index.</returns>\r
105                         ComputeShader^ GetComputeShader( int index );\r
106                         \r
107                         /// <summary>\r
108                         /// Gets the description for a single element of the given shader's input signature.\r
109                         /// </summary>\r
110                         /// <param name="shaderIndex">The zero-based shader index.</param>\r
111                         /// <param name="parameterIndex">The index of the signature element.</param>\r
112                         /// <returns>The description for the given shader signature element.</returns>\r
113                         D3DCompiler::ShaderParameterDescription GetInputParameterDescription( int shaderIndex, int parameterIndex );\r
114 \r
115                         /// <summary>\r
116                         /// Gets the description for a single element of the given shader's output signature.\r
117                         /// </summary>\r
118                         /// <param name="shaderIndex">The zero-based shader index.</param>\r
119                         /// <param name="parameterIndex">The index of the signature element.</param>\r
120                         /// <returns>The description for the given shader signature element.</returns>\r
121                         D3DCompiler::ShaderParameterDescription GetOutputParameterDescription( int shaderIndex, int parameterIndex );\r
122 \r
123                         /// <summary>\r
124                         /// Gets the description for a single element of the given shader's patch constant signature.\r
125                         /// </summary>\r
126                         /// <param name="shaderIndex">The zero-based shader index.</param>\r
127                         /// <param name="parameterIndex">The index of the signature element.</param>\r
128                         /// <returns>The description for the given shader signature element.</returns>\r
129                         D3DCompiler::ShaderParameterDescription GetPatchConstantDescription( int shaderIndex, int parameterIndex );\r
130                         \r
131                         /// <summary>\r
132                         /// Gets the description for the given shader.\r
133                         /// </summary>\r
134                         /// <param name="shaderIndex">The zero-based shader index.</param>\r
135                         /// <returns>The description for the given shader.</returns>\r
136                         EffectShaderDescription GetShaderDescription( int shaderIndex );\r
137                 };\r
138         }\r
139 };