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
29 /// Represents a compiled shader designed to fill textures with image data.
\r
31 /// <unmanaged>ID3DXTextureShader</unmanaged>
\r
32 public ref class TextureShader : public ComObject
\r
34 COMOBJECT(ID3DXTextureShader, TextureShader);
\r
38 /// Initializes a new instance of the <see cref="TextureShader"/> class.
\r
40 /// <param name="stream">A stream of compiled shader data.</param>
\r
41 TextureShader( DataStream^ stream );
\r
44 /// Gets a constant by looking up its index.
\r
46 /// <param name="parent">The parent handle.</param>
\r
47 /// <param name="index">The index of the constant.</param>
\r
48 /// <returns>A handle to the constant data.</returns>
\r
49 EffectHandle^ GetConstant( EffectHandle^ parent, int index );
\r
52 /// Gets a constant by looking up its name.
\r
54 /// <param name="parent">The parent handle.</param>
\r
55 /// <param name="name">The name of the constant.</param>
\r
56 /// <returns>A handle to the constant data.</returns>
\r
57 EffectHandle^ GetConstant( EffectHandle^ parent, System::String^ name );
\r
60 /// Gets a constant from the constant table.
\r
62 /// <param name="handle">The array handle.</param>
\r
63 /// <param name="index">The index of the constant.</param>
\r
64 /// <returns>A handle to the constant data.</returns>
\r
65 EffectHandle^ GetConstantElement( EffectHandle^ handle, int index );
\r
68 /// Gets a description for a constant.
\r
70 /// <param name="handle">The constant handle.</param>
\r
71 /// <returns>The description of the constant.</returns>
\r
72 ConstantDescription GetConstantDescription( EffectHandle^ handle );
\r
75 /// Gets a list of descriptions for an array constant.
\r
77 /// <param name="handle">The array handle.</param>
\r
78 /// <returns>The list of constant descriptions.</returns>
\r
79 array<ConstantDescription>^ GetConstantDescriptionArray( EffectHandle^ handle );
\r
82 /// Sets an effect parameter value.
\r
84 /// <param name="parameter">The effect parameter.</param>
\r
85 /// <param name="value">The parameter value.</param>
\r
86 /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
\r
87 Result SetValue( EffectHandle^ parameter, bool value );
\r
90 /// Sets an array of effect parameter values.
\r
92 /// <param name="parameter">The effect parameter.</param>
\r
93 /// <param name="values">The parameter values.</param>
\r
94 /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
\r
95 Result SetValue( EffectHandle^ parameter, array<bool>^ values );
\r
98 /// Sets an effect parameter value.
\r
100 /// <param name="parameter">The effect parameter.</param>
\r
101 /// <param name="value">The parameter value.</param>
\r
102 /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
\r
103 Result SetValue( EffectHandle^ parameter, int value );
\r
106 /// Sets an array of effect parameter values.
\r
108 /// <param name="parameter">The effect parameter.</param>
\r
109 /// <param name="values">The parameter values.</param>
\r
110 /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
\r
111 Result SetValue( EffectHandle^ parameter, array<int>^ values );
\r
114 /// Sets an effect parameter value.
\r
116 /// <param name="parameter">The effect parameter.</param>
\r
117 /// <param name="value">The parameter value.</param>
\r
118 /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
\r
119 Result SetValue( EffectHandle^ parameter, float value );
\r
122 /// Sets an array of effect parameter values.
\r
124 /// <param name="parameter">The effect parameter.</param>
\r
125 /// <param name="values">The parameter values.</param>
\r
126 /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
\r
127 Result SetValue( EffectHandle^ parameter, array<float>^ values );
\r
130 /// Sets an effect parameter value.
\r
132 /// <param name="parameter">The effect parameter.</param>
\r
133 /// <param name="value">The parameter value.</param>
\r
134 /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
\r
135 Result SetValue( EffectHandle^ parameter, Vector4 value );
\r
138 /// Sets an array of effect parameter values.
\r
140 /// <param name="parameter">The effect parameter.</param>
\r
141 /// <param name="values">The parameter values.</param>
\r
142 /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
\r
143 Result SetValue( EffectHandle^ parameter, array<Vector4>^ values );
\r
146 /// Sets an effect parameter value.
\r
148 /// <param name="parameter">The effect parameter.</param>
\r
149 /// <param name="value">The parameter value.</param>
\r
150 /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
\r
151 Result SetValue( EffectHandle^ parameter, Color4 value );
\r
154 /// Sets an array of effect parameter values.
\r
156 /// <param name="parameter">The effect parameter.</param>
\r
157 /// <param name="values">The parameter values.</param>
\r
158 /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
\r
159 Result SetValue( EffectHandle^ parameter, array<Color4>^ values );
\r
162 /// Sets an effect parameter value.
\r
164 /// <param name="parameter">The effect parameter.</param>
\r
165 /// <param name="value">The parameter value.</param>
\r
166 /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
\r
167 Result SetValue( EffectHandle^ parameter, Matrix value );
\r
170 /// Sets an array of effect parameter values.
\r
172 /// <param name="parameter">The effect parameter.</param>
\r
173 /// <param name="values">The parameter values.</param>
\r
174 /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
\r
175 Result SetValue( EffectHandle^ parameter, array<Matrix>^ values );
\r
178 /// Sets an effect parameter value.
\r
180 /// <param name="parameter">The effect parameter.</param>
\r
181 /// <param name="value">The parameter value.</param>
\r
182 /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
\r
183 Result SetValueTranspose( EffectHandle^ parameter, Matrix value );
\r
186 /// Sets an array of effect parameter values.
\r
188 /// <param name="parameter">The effect parameter.</param>
\r
189 /// <param name="values">The parameter values.</param>
\r
190 /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
\r
191 Result SetValueTranspose( EffectHandle^ parameter, array<Matrix>^ values );
\r
194 /// Resets constant values to those defined in the shader.
\r
196 /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>
\r
197 Result SetDefaults();
\r
200 /// Gets the constant table description.
\r
202 property ConstantTableDescription Description
\r
204 ConstantTableDescription get();
\r
208 /// Gets the raw stream of constant data.
\r
210 property DataStream^ ConstantBuffer
\r
216 /// Gets the raw shader stream.
\r
218 property DataStream^ FunctionStream
\r