+++ /dev/null
-/*\r
-* Copyright (c) 2007-2010 SlimDX Group\r
-* \r
-* Permission is hereby granted, free of charge, to any person obtaining a copy\r
-* of this software and associated documentation files (the "Software"), to deal\r
-* in the Software without restriction, including without limitation the rights\r
-* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
-* copies of the Software, and to permit persons to whom the Software is\r
-* furnished to do so, subject to the following conditions:\r
-* \r
-* The above copyright notice and this permission notice shall be included in\r
-* all copies or substantial portions of the Software.\r
-* \r
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
-* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
-* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r
-* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
-* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
-* THE SOFTWARE.\r
-*/\r
-#pragma once\r
-\r
-#include "../ComObject.h"\r
-\r
-#include "Enums11.h"\r
-\r
-namespace SlimDX\r
-{\r
- namespace Direct3D11\r
- {\r
- ref class EffectConstantBuffer;\r
- ref class EffectMatrixVariable;\r
- ref class EffectResourceVariable;\r
- ref class EffectShaderVariable;\r
- ref class EffectScalarVariable;\r
- ref class EffectVectorVariable;\r
- ref class EffectStringVariable;\r
- ref class EffectUnorderedAccessViewVariable;\r
- ref class EffectBlendVariable;\r
- ref class EffectClassInstanceVariable;\r
- ref class EffectDepthStencilVariable;\r
- ref class EffectDepthStencilViewVariable;\r
- ref class EffectInterfaceVariable;\r
- ref class EffectRasterizerVariable;\r
- ref class EffectRenderTargetViewVariable;\r
- ref class EffectSamplerVariable;\r
- value class EffectVariableDescription;\r
- ref class EffectType;\r
- \r
- /// <summary>\r
- /// Defines a base class for all effect variables.\r
- /// </summary>\r
- /// <unmanaged>ID3DX11EffectVariable</unmanaged>\r
- public ref class EffectVariable\r
- {\r
- private:\r
- ID3DX11EffectVariable* m_Pointer;\r
- \r
- internal:\r
- EffectVariable( ID3DX11EffectVariable* pointer );\r
-\r
- public:\r
- /// <summary>\r
- /// Initializes a new instance of the <see cref="EffectVariable"/> class.\r
- /// </summary>\r
- /// <param name="pointer">A pointer to the unmanaged interface.</param>\r
- EffectVariable( System::IntPtr pointer );\r
-\r
- /// <summary>\r
- /// Gets the effect variable's description.\r
- /// </summary>\r
- property EffectVariableDescription Description\r
- {\r
- EffectVariableDescription get();\r
- }\r
- \r
- /// <summary>\r
- /// Indicates whether the data type matches the data stored after casting to a specific interface.\r
- /// </summary>\r
- property bool IsValid\r
- {\r
- bool get();\r
- }\r
-\r
- /// <summary>\r
- /// Gets the parent constant buffer for this variable.\r
- /// </summary>\r
- property EffectConstantBuffer^ ParentConstantBuffer\r
- {\r
- EffectConstantBuffer^ get();\r
- }\r
-\r
- /// <summary>\r
- /// Get an annotation by index.\r
- /// </summary>\r
- /// <param name="index">The zero-based index of the annotation to retrieve.</param>\r
- /// <returns>The annotation at the specified index.</returns>\r
- EffectVariable^ GetAnnotationByIndex( int index );\r
-\r
- /// <summary>\r
- /// Get an annotation by name.\r
- /// </summary>\r
- /// <param name="name">The name of the annotation to retrieve.</param>\r
- /// <returns>The annotation with the given name.</returns>\r
- EffectVariable^ GetAnnotationByName( System::String^ name );\r
- \r
- /// <summary>\r
- /// Gets an element of an array variable.\r
- /// </summary>\r
- /// <param name="index">The zero-based index of the element to retrieve.</param>\r
- /// <returns>The element at the specified index in the array.</returns>\r
- EffectVariable^ GetElement( int index );\r
- \r
- /// <summary>\r
- /// Get a structure member by index.\r
- /// </summary>\r
- /// <param name="index">The zero-based index of the structure member to retrieve.</param>\r
- /// <returns>The structure member at the specified index.</returns>\r
- EffectVariable^ GetMemberByIndex( int index );\r
-\r
- /// <summary>\r
- /// Get a structure member by name.\r
- /// </summary>\r
- /// <param name="name">The name of the structure member to retrieve.</param>\r
- /// <returns>The structure member with the given name.</returns>\r
- EffectVariable^ GetMemberByName( System::String^ name );\r
-\r
- /// <summary>\r
- /// Get a structure member by semantic.\r
- /// </summary>\r
- /// <param name="name">The semantic of the structure member to retrieve.</param>\r
- /// <returns>The structure member with the given semantic.</returns>\r
- EffectVariable^ GetMemberBySemantic( System::String^ name );\r
- \r
- /// <summary>\r
- /// Reinterprets the effect variable as a more specialized blend-state variable.\r
- /// </summary>\r
- /// <returns>The specialized effect variable.</returns>\r
- EffectBlendVariable^ AsBlend();\r
-\r
- /// <summary>\r
- /// Reinterprets the effect variable as a more specialized class instance variable.\r
- /// </summary>\r
- /// <returns>The specialized effect variable.</returns>\r
- EffectClassInstanceVariable^ AsClassInstance();\r
-\r
- /// <summary>\r
- /// Reinterprets the effect variable as a more specialized constant buffer variable.\r
- /// </summary>\r
- /// <returns>The specialized effect variable.</returns>\r
- EffectConstantBuffer^ AsConstantBuffer();\r
-\r
- /// <summary>\r
- /// Reinterprets the effect variable as a more specialized depth-stencil-state variable.\r
- /// </summary>\r
- /// <returns>The specialized effect variable.</returns>\r
- EffectDepthStencilVariable^ AsDepthStencil();\r
-\r
- /// <summary>\r
- /// Reinterprets the effect variable as a more specialized depth-stencil view variable.\r
- /// </summary>\r
- /// <returns>The specialized effect variable.</returns>\r
- EffectDepthStencilViewVariable^ AsDepthStencilView();\r
-\r
- /// <summary>\r
- /// Reinterprets the effect variable as a more specialized interface variable.\r
- /// </summary>\r
- /// <returns>The specialized effect variable.</returns>\r
- EffectInterfaceVariable^ AsInterface();\r
-\r
- /// <summary>\r
- /// Reinterprets the effect variable as a more specialized matrix variable.\r
- /// </summary>\r
- /// <returns>The specialized effect variable.</returns>\r
- EffectMatrixVariable^ AsMatrix();\r
-\r
- /// <summary>\r
- /// Reinterprets the effect variable as a more specialized rasterizer-state variable.\r
- /// </summary>\r
- /// <returns>The specialized effect variable.</returns>\r
- EffectRasterizerVariable^ AsRasterizer();\r
-\r
- /// <summary>\r
- /// Reinterprets the effect variable as a more specialized render target view variable.\r
- /// </summary>\r
- /// <returns>The specialized effect variable.</returns>\r
- EffectRenderTargetViewVariable^ AsRenderTargetView();\r
-\r
- /// <summary>\r
- /// Reinterprets the effect variable as a more specialized sampler state variable.\r
- /// </summary>\r
- /// <returns>The specialized effect variable.</returns>\r
- EffectSamplerVariable^ AsSampler();\r
-\r
- /// <summary>\r
- /// Reinterprets the effect variable as a more specialized shader resource variable.\r
- /// </summary>\r
- /// <returns>The specialized effect variable.</returns>\r
- EffectResourceVariable^ AsResource();\r
-\r
- /// <summary>\r
- /// Reinterprets the effect variable as a more specialized scalar variable.\r
- /// </summary>\r
- /// <returns>The specialized effect variable.</returns>\r
- EffectScalarVariable^ AsScalar();\r
-\r
- /// <summary>\r
- /// Reinterprets the effect variable as a more specialized shader variable.\r
- /// </summary>\r
- /// <returns>The specialized effect variable.</returns>\r
- EffectShaderVariable^ AsShader();\r
-\r
- /// <summary>\r
- /// Reinterprets the effect variable as a more specialized string variable.\r
- /// </summary>\r
- /// <returns>The specialized effect variable.</returns>\r
- EffectStringVariable^ AsString();\r
-\r
- /// <summary>\r
- /// Reinterprets the effect variable as a more specialized unordered access view variable.\r
- /// </summary>\r
- /// <returns>The specialized effect variable.</returns>\r
- EffectUnorderedAccessViewVariable^ AsUnorderedAccessView();\r
-\r
- /// <summary>\r
- /// Reinterprets the effect variable as a more specialized vector variable.\r
- /// </summary>\r
- /// <returns>The specialized effect variable.</returns>\r
- EffectVectorVariable^ AsVector();\r
-\r
- /// <summary>\r
- /// Gets information about the variable type.\r
- /// </summary>\r
- /// <returns>A type descriptor containing information about the variable type.</returns>\r
- EffectType^ GetVariableType();\r
-\r
- /// <summary>\r
- /// Sets the value of the variable using raw bytes.\r
- /// </summary>\r
- /// <param name="count">The number of bytes to set.</param>\r
- /// <returns>A <see cref="SlimDX::Result"/> object describing the result of the operation.</returns>\r
- Result SetRawValue(DataStream^ data, int count);\r
-\r
- /// <summary>\r
- /// Gets the value of the variable in raw bytes.\r
- /// </summary>\r
- /// <param name="count">The number of bytes to retrieve.</param>\r
- /// <returns>The raw data representing the value of the variable.</returns>\r
- DataStream^ GetRawValue(int count);\r
- };\r
- }\r
-};
\ No newline at end of file