OSDN Git Service

Merge branch 'feature/#36529_SlimDXからSharpDXへの移行' into develop
[dtxmania/dtxmania.git] / SlimDXc_Jun2010(VC++2008) / source / direct3d9 / D3DXEnums.h
diff --git a/SlimDXc_Jun2010(VC++2008)/source/direct3d9/D3DXEnums.h b/SlimDXc_Jun2010(VC++2008)/source/direct3d9/D3DXEnums.h
deleted file mode 100644 (file)
index 2a929df..0000000
+++ /dev/null
@@ -1,1238 +0,0 @@
-/*\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
-namespace SlimDX\r
-{\r
-       namespace Direct3D9\r
-       {\r
-#ifdef XMLDOCS\r
-               ref class AnimationOutput;\r
-#endif\r
-\r
-               // NOTE: The enumerations defined in this file are in alphabetical order. When\r
-               //       adding new enumerations or renaming existing ones, please make sure\r
-               //       the ordering is maintained.\r
-\r
-\r
-               /// <summary>\r
-               /// Specifies which members of the <see cref="AnimationOutput"/> structure are valid.\r
-               /// </summary>\r
-               /// <unmanaged>None</unmanaged>\r
-               [System::Flags]\r
-               public enum class AnimationOutputFlags : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// None of the members are valid.\r
-                       /// </summary>\r
-                       None = 0,\r
-\r
-                       /// <summary>\r
-                       /// The transformation member is valid.\r
-                       /// </summary>\r
-                       Transformation = 1,\r
-\r
-                       /// <summary>\r
-                       /// The translation member is valid.\r
-                       /// </summary>\r
-                       Translation = 2,\r
-\r
-                       /// <summary>\r
-                       /// The scale member is valid.\r
-                       /// </summary>\r
-                       Scale = 4,\r
-\r
-                       /// <summary>\r
-                       /// The rotation member is valid.\r
-                       /// </summary>\r
-                       Rotation = 8\r
-               };\r
-\r
-               /// <summary>\r
-               /// Flags used to obtain callback information.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXCALLBACK_SEARCH_FLAGS</unmanaged>\r
-               public enum class CallbackSearchFlags : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// Exclude callbacks located at the initial position from the search.\r
-                       /// </summary>\r
-                       SearchExcludingInitialPosition = D3DXCALLBACK_SEARCH_EXCLUDING_INITIAL_POSITION,\r
-\r
-                       /// <summary>\r
-                       /// Reverse the callback search direction. \r
-                       /// </summary>\r
-                       SearchBehindInitialPosition = D3DXCALLBACK_SEARCH_BEHIND_INITIAL_POSITION\r
-               };\r
-\r
-               /// <summary>\r
-               /// The following flags are used to specify which channels in a texture to operate on.\r
-               /// </summary>\r
-               /// <unmanaged>D3DX_CHANNEL</unmanaged>\r
-               [System::Flags]\r
-               public enum class Channel : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// Indicates the red channel should be used.\r
-                       /// </summary>\r
-                       Red = D3DX_CHANNEL_RED,\r
-\r
-                       /// <summary>\r
-                       /// Indicates the blue channel should be used.\r
-                       /// </summary>\r
-                       Blue = D3DX_CHANNEL_BLUE,\r
-\r
-                       /// <summary>\r
-                       /// Indicates the green channel should be used.\r
-                       /// </summary>\r
-                       Green = D3DX_CHANNEL_GREEN,\r
-\r
-                       /// <summary>\r
-                       /// Indicates the alpha channel should be used.\r
-                       /// </summary>\r
-                       Alpha = D3DX_CHANNEL_ALPHA,\r
-\r
-                       /// <summary>\r
-                       /// Indicates the luminances of the red, green, and blue channels should be used.\r
-                       /// </summary>\r
-                       Luminance = D3DX_CHANNEL_LUMINANCE\r
-               };\r
-\r
-               /// <summary>\r
-               /// Defines operations to perform on vertices in preparation for mesh cleaning.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXCLEANTYPE</unmanaged>\r
-               [System::Flags]\r
-               public enum class CleanType : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// Merge triangles that share the same vertex indices but have face normals pointing\r
-                       /// in opposite directions (back-facing triangles). Unless the triangles are not split by \r
-                       /// adding a replicated vertex, mesh adjacency data from the two triangles may conflict. \r
-                       /// </summary>\r
-                       BackFacing = D3DXCLEAN_BACKFACING,\r
-\r
-                       /// <summary>\r
-                       /// If a vertex is the apex of two triangle fans (a bowtie) and mesh operations will affect\r
-                       /// one of the fans, then split the shared vertex into two new vertices. Bowties can cause problems\r
-                       /// for operations such as mesh simplification that remove vertices, because removing one vertex\r
-                       /// affects two distinct sets of triangles. \r
-                       /// </summary>\r
-                       Bowties = D3DXCLEAN_BOWTIES,\r
-\r
-                       /// <summary>\r
-                       /// Use this flag to prevent infinite loops during skinning setup mesh operations.\r
-                       /// </summary>\r
-                       Skinning = D3DXCLEAN_SKINNING,\r
-\r
-                       /// <summary>\r
-                       /// Use this flag to prevent infinite loops during mesh optimization operations.\r
-                       /// </summary>\r
-                       Optimization = D3DXCLEAN_OPTIMIZATION,\r
-\r
-                       /// <summary>\r
-                       /// Use this flag to prevent infinite loops during mesh simplification operations.\r
-                       /// </summary>\r
-                       Simplification = D3DXCLEAN_SIMPLIFICATION\r
-               };\r
-\r
-               /// <summary>\r
-               /// Effect data types. The data is contained in the Value member of EffectDefault.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXEFFECTDEFAULTTYPE</unmanaged>\r
-               public enum class EffectDefaultType : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// The data type is a NULL-terminated ASCII text string. \r
-                       /// </summary>\r
-                       String = D3DXEDT_STRING,\r
-\r
-                       /// <summary>\r
-                       /// The data type is an array of type float. The number of float types in\r
-                       /// the array is specified by Value.Length in EffectDefault.\r
-                       /// </summary>\r
-                       Floats = D3DXEDT_FLOATS,\r
-\r
-                       /// <summary>\r
-                       /// The data type is a DWORD. \r
-                       /// </summary>\r
-                       Dword = D3DXEDT_DWORD,\r
-               };\r
-\r
-               /// <summary>\r
-               /// Describes the type of events that can be keyed by the animation controller.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXEVENT_TYPE</unmanaged>\r
-               public enum class EventType : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// Track speed.\r
-                       /// </summary>\r
-                       TrackSpeed = D3DXEVENT_TRACKSPEED,\r
-\r
-                       /// <summary>\r
-                       /// Track weight.\r
-                       /// </summary>\r
-                       TrackWeight = D3DXEVENT_TRACKWEIGHT,\r
-\r
-                       /// <summary>\r
-                       /// Track position.\r
-                       /// </summary>\r
-                       TrackPosition = D3DXEVENT_TRACKPOSITION,\r
-\r
-                       /// <summary>\r
-                       /// Enable flag.\r
-                       /// </summary>\r
-                       TrackEnable = D3DXEVENT_TRACKENABLE,\r
-\r
-                       /// <summary>\r
-                       /// Priority blend value.\r
-                       /// </summary>\r
-                       PriorityBlend = D3DXEVENT_PRIORITYBLEND\r
-               };\r
-\r
-               /// <summary>\r
-               /// Flags used to specify what filters to use when processing an image.\r
-               /// </summary>\r
-               /// <unmanaged>D3DX_FILTER</unmanaged>\r
-               [System::Flags]\r
-               public enum class Filter : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// Uses the default behavior.\r
-                       /// </summary>\r
-                       Default = static_cast<int>( D3DX_DEFAULT ),\r
-\r
-                       /// <summary>\r
-                       /// No scaling or filtering will take place. Pixels outside the bounds of the source image are assumed to be transparent black.\r
-                       /// </summary>\r
-                       None = D3DX_FILTER_NONE,\r
-\r
-                       /// <summary>\r
-                       /// Each destination pixel is computed by sampling the nearest pixel from the source image.\r
-                       /// </summary>\r
-                       Point = D3DX_FILTER_POINT,\r
-\r
-                       /// <summary>\r
-                       /// Each destination pixel is computed by sampling the four nearest pixels from the source\r
-                       /// image. This filter works best when the scale on both axes is less than two.\r
-                       /// </summary>\r
-                       Linear = D3DX_FILTER_LINEAR,\r
-\r
-                       /// <summary>\r
-                       /// Every pixel in the source image contributes equally to the destination image. This is the slowest of the filters.\r
-                       /// </summary>\r
-                       Triangle = D3DX_FILTER_TRIANGLE,\r
-\r
-                       /// <summary>\r
-                       /// Each pixel is computed by averaging a 2x2(x2) box of pixels from the source image. \r
-                       /// This filter works only when the dimensions of the destination are half those of the source,\r
-                       /// as is the case with mipmaps.\r
-                       /// </summary>\r
-                       Box = D3DX_FILTER_BOX,\r
-\r
-                       /// <summary>\r
-                       /// Pixels off the edge of the texture on the u-axis should be mirrored, not wrapped.\r
-                       /// </summary>\r
-                       MirrorU = D3DX_FILTER_MIRROR_U,\r
-\r
-                       /// <summary>\r
-                       /// Pixels off the edge of the texture on the v-axis should be mirrored, not wrapped.\r
-                       /// </summary>\r
-                       MirrorV = D3DX_FILTER_MIRROR_V,\r
-\r
-                       /// <summary>\r
-                       /// Pixels off the edge of the texture on the w-axis should be mirrored, not wrapped.\r
-                       /// </summary>\r
-                       MirrorW = D3DX_FILTER_MIRROR_W,\r
-\r
-                       /// <summary>\r
-                       /// Specifying this flag is the same as specifying the MirrorU, MirrorV, and MirrorW flags.\r
-                       /// </summary>\r
-                       Mirror = D3DX_FILTER_MIRROR,\r
-\r
-                       /// <summary>\r
-                       /// The resulting image must be dithered using a 4x4 ordered dither algorithm.\r
-                       /// </summary>\r
-                       Dither = D3DX_FILTER_DITHER,\r
-\r
-                       /// <summary>\r
-                       /// Specifying this flag is the same as specifying the SrgbIn and SrgbOut flags.\r
-                       /// </summary>\r
-                       Srgb = D3DX_FILTER_SRGB,\r
-\r
-                       /// <summary>\r
-                       /// Input data is in sRGB (gamma 2.2) color space.\r
-                       /// </summary>\r
-                       SrgbIn = D3DX_FILTER_SRGB_IN,\r
-\r
-                       /// <summary>\r
-                       /// The output data is in sRGB (gamma 2.2) color space.\r
-                       /// </summary>\r
-                       SrgbOut = D3DX_FILTER_SRGB_OUT\r
-               };\r
-\r
-               /// <summary>\r
-               /// Options for saving and creating effects.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXFX</unmanaged>\r
-               [System::Flags]\r
-               public enum class FX : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// No flags.\r
-                       /// </summary>\r
-                       None = 0,\r
-\r
-                       /// <summary>\r
-                       /// No state is saved when calling Effect.Begin or restored when calling Effect.End. \r
-                       /// </summary>\r
-                       DoNotSaveState = D3DXFX_DONOTSAVESTATE,\r
-\r
-                       /// <summary>\r
-                       /// A stateblock saves state when calling Effect.Begin and restores state when calling Effect.End.\r
-                       /// </summary>\r
-                       DoNotSaveShaderState = D3DXFX_DONOTSAVESHADERSTATE,\r
-\r
-                       /// <summary>\r
-                       /// A stateblock saves state (except shaders and shader constants) when\r
-                       /// calling Effect.Begin and restores state when calling Effect.End.\r
-                       /// </summary>\r
-                       DoNotSaveSamplerState = D3DXFX_DONOTSAVESAMPLERSTATE,\r
-               };\r
-\r
-               /// <summary>\r
-               /// Describes the supported image file formats.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXIMAGE_FILEFORMAT</unmanaged>\r
-               public enum class ImageFileFormat : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// Windows bitmap (BMP) file format. \r
-                       /// </summary>\r
-                       Bmp = D3DXIFF_BMP,\r
-\r
-                       /// <summary>\r
-                       /// Joint Photographics Experts Group (JPEG) compressed file format.\r
-                       /// </summary>\r
-                       Jpg = D3DXIFF_JPG,\r
-\r
-                       /// <summary>\r
-                       /// Truevision (Targa, or TGA) image file format.\r
-                       /// </summary>\r
-                       Tga = D3DXIFF_TGA,\r
-\r
-                       /// <summary>\r
-                       /// Portable Network Graphics (PNG) file format.\r
-                       /// </summary>\r
-                       Png = D3DXIFF_PNG,\r
-\r
-                       /// <summary>\r
-                       /// DirectDraw surface (DDS) file format.\r
-                       /// </summary>\r
-                       Dds = D3DXIFF_DDS,\r
-\r
-                       /// <summary>\r
-                       /// Portable pixmap (PPM) file format.\r
-                       /// </summary>\r
-                       Ppm = D3DXIFF_PPM,\r
-\r
-                       /// <summary>\r
-                       /// Windows device-independent bitmap (DIB) file format.\r
-                       /// </summary>\r
-                       Dib = D3DXIFF_DIB,\r
-\r
-                       /// <summary>\r
-                       /// High dynamic range (HDR) file format.\r
-                       /// </summary>\r
-                       Hdr = D3DXIFF_HDR,\r
-\r
-                       /// <summary>\r
-                       /// Portable float map file format.\r
-                       /// </summary>\r
-                       Pfm = D3DXIFF_PFM,\r
-               };\r
-\r
-               /// <summary>\r
-               /// Describes the location for the include file.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXINCLUDE_TYPE</unmanaged>\r
-               public enum class IncludeType : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// Look in the local project for the include file.\r
-                       /// </summary>\r
-                       Local = D3DXINC_LOCAL,\r
-\r
-                       /// <summary>\r
-                       /// Look in the system path for the include file.\r
-                       /// </summary>\r
-                       System = D3DXINC_SYSTEM,\r
-               };\r
-\r
-               /// <summary>\r
-               /// Defines the type of mesh data present in MeshData.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXMESHDATATYPE</unmanaged>\r
-               public enum class MeshDataType : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// The data type is a mesh. See Mesh.\r
-                       /// </summary>\r
-                       Mesh = D3DXMESHTYPE_MESH,\r
-\r
-                       /// <summary>\r
-                       /// The data type is a progressive mesh. See ProgressiveMesh.\r
-                       /// </summary>\r
-                       ProgressiveMesh = D3DXMESHTYPE_PMESH,\r
-\r
-                       /// <summary>\r
-                       /// The data type is a patch mesh. See PatchMesh.\r
-                       /// </summary>\r
-                       PatchMesh = D3DXMESHTYPE_PATCHMESH\r
-               };\r
-\r
-               /// <summary>\r
-               /// Flags used to specify creation options for a mesh.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXMESH</unmanaged>\r
-               [System::Flags]\r
-               public enum class MeshFlags : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// The mesh has 32-bit indices instead of 16-bit indices.\r
-                       /// </summary>\r
-                       Use32Bit = D3DXMESH_32BIT,\r
-\r
-                       /// <summary>\r
-                       /// Use the DoNotClip usage flag for vertex and index buffers.\r
-                       /// </summary>\r
-                       DoNotClip = D3DXMESH_DONOTCLIP,\r
-\r
-                       /// <summary>\r
-                       /// Use the Points usage flag for vertex and index buffers.\r
-                       /// </summary>\r
-                       Points = D3DXMESH_POINTS,\r
-\r
-                       /// <summary>\r
-                       /// Use the RTPatches usage flag for vertex and index buffers. \r
-                       /// </summary>\r
-                       RTPatches = D3DXMESH_RTPATCHES,\r
-\r
-                       /// <summary>\r
-                       /// Specifying this flag causes the vertex and index buffer of the mesh to be created with the NPatches\r
-                       /// flag. This is required if the mesh object is to be rendered using N-patch enhancement using Direct3D. \r
-                       /// </summary>\r
-                       NPatches = D3DXMESH_NPATCHES,\r
-\r
-                       /// <summary>\r
-                       /// Use the SystemMemory usage flag for vertex buffers.\r
-                       /// </summary>\r
-                       VertexBufferSystemMemory = D3DXMESH_VB_SYSTEMMEM,\r
-\r
-                       /// <summary>\r
-                       /// Use the Managed usage flag for vertex buffers. \r
-                       /// </summary>\r
-                       VertexBufferManaged = D3DXMESH_VB_MANAGED,\r
-\r
-                       /// <summary>\r
-                       /// Use the WriteOnly usage flag for vertex buffers.\r
-                       /// </summary>\r
-                       VertexBufferWriteOnly = D3DXMESH_VB_WRITEONLY,\r
-\r
-                       /// <summary>\r
-                       /// Use the Dynamic usage flag for vertex buffers.\r
-                       /// </summary>\r
-                       VertexBufferDynamic = D3DXMESH_VB_DYNAMIC,\r
-\r
-                       /// <summary>\r
-                       /// Use the SoftwareProcessing usage flag for vertex buffers.\r
-                       /// </summary>\r
-                       VertexBufferSoftware = D3DXMESH_VB_SOFTWAREPROCESSING,\r
-\r
-                       /// <summary>\r
-                       /// Use the SystemMemory usage flag for index buffers.\r
-                       /// </summary>\r
-                       IndexBufferSystemMemory = D3DXMESH_IB_SYSTEMMEM,\r
-\r
-                       /// <summary>\r
-                       /// Use the Managed usage flag for index buffers.\r
-                       /// </summary>\r
-                       IndexBufferManaged = D3DXMESH_IB_MANAGED,\r
-\r
-                       /// <summary>\r
-                       /// Use the WriteOnly usage flag for index buffers.\r
-                       /// </summary>\r
-                       IndexBufferWriteOnly = D3DXMESH_IB_WRITEONLY,\r
-\r
-                       /// <summary>\r
-                       /// Use the Dynamic usage flag for index buffers.\r
-                       /// </summary>\r
-                       IndexBufferDynamic = D3DXMESH_IB_DYNAMIC,\r
-\r
-                       /// <summary>\r
-                       /// Use the SoftwareProcessing usage flag for index buffers.\r
-                       /// </summary>\r
-                       IndexBufferSoftware = D3DXMESH_IB_SOFTWAREPROCESSING,\r
-\r
-                       /// <summary>\r
-                       /// Forces the cloned meshes to share vertex buffers.\r
-                       /// </summary>\r
-                       VertexBufferShare = D3DXMESH_VB_SHARE,\r
-\r
-                       /// <summary>\r
-                       /// Use hardware processing only. For mixed-mode device, this flag will cause the system \r
-                       /// to use hardware (if supported in hardware) or will default to software processing.\r
-                       /// </summary>\r
-                       UseHardwareOnly = D3DXMESH_USEHWONLY,\r
-\r
-                       /// <summary>\r
-                       /// Equivalent to specifying both VertexBufferSystemMemory and IndexBufferSystemMemory.\r
-                       /// </summary>\r
-                       SystemMemory = D3DXMESH_SYSTEMMEM,\r
-\r
-                       /// <summary>\r
-                       /// Equivalent to specifying both VertexBufferManaged and IndexBufferManaged.\r
-                       /// </summary>\r
-                       Managed = D3DXMESH_MANAGED,\r
-\r
-                       /// <summary>\r
-                       /// Equivalent to specifying both VertexBufferDynamic and IndexBufferDynamic.\r
-                       /// </summary>\r
-                       WriteOnly = D3DXMESH_WRITEONLY,\r
-\r
-                       /// <summary>\r
-                       /// Equivalent to specifying both D3DXMESH_VB_DYNAMIC and D3DXMESH_IB_DYNAMIC.\r
-                       /// </summary>\r
-                       Dynamic = D3DXMESH_DYNAMIC,\r
-\r
-                       /// <summary>\r
-                       /// Equivalent to specifying both D3DXMESH_VB_SOFTWAREPROCESSING and D3DXMESH_IB_SOFTWAREPROCESSING.\r
-                       /// </summary>\r
-                       Software = D3DXMESH_SOFTWAREPROCESSING,\r
-               };\r
-\r
-               /// <summary>\r
-               /// Specifies the type of mesh optimization to be performed.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXMESHOPT</unmanaged>\r
-               [System::Flags]\r
-               public enum class MeshOptimizeFlags : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// Reorders faces to remove unused vertices and faces.\r
-                       /// </summary>\r
-                       Compact = D3DXMESHOPT_COMPACT,\r
-\r
-                       /// <summary>\r
-                       /// Reorders faces to optimize for fewer attribute bundle state changes and enhanced BaseMesh.DrawSubset performance.\r
-                       /// </summary>\r
-                       AttributeSort = D3DXMESHOPT_ATTRSORT,\r
-\r
-                       /// <summary>\r
-                       /// Reorders faces to increase the cache hit rate of vertex caches.\r
-                       /// </summary>\r
-                       VertexCache = D3DXMESHOPT_VERTEXCACHE,\r
-\r
-                       /// <summary>\r
-                       /// Reorders faces to maximize length of adjacent triangles.\r
-                       /// </summary>\r
-                       StripReorder = D3DXMESHOPT_STRIPREORDER,\r
-\r
-                       /// <summary>\r
-                       /// Optimize the faces only; do not optimize the vertices.\r
-                       /// </summary>\r
-                       IgnoreVertices = D3DXMESHOPT_IGNOREVERTS,\r
-\r
-                       /// <summary>\r
-                       /// While attribute sorting, do not split vertices that are shared between attribute groups.\r
-                       /// </summary>\r
-                       DoNotSplit = D3DXMESHOPT_DONOTSPLIT,\r
-\r
-                       /// <summary>\r
-                       /// Affects the vertex cache size. Using this flag specifies a default vertex cache size that works well on legacy hardware.\r
-                       /// </summary>\r
-                       DeviceIndependent = D3DXMESHOPT_DEVICEINDEPENDENT,\r
-               };\r
-\r
-               /// <summary>\r
-               /// Specifies simplification options for a mesh.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXMESHSIMP</unmanaged>\r
-               public enum class MeshSimplification : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// The mesh will be simplified by the number of vertices specified in the MinValue parameter.\r
-                       /// </summary>\r
-                       Vertex = D3DXMESHSIMP_VERTEX,\r
-\r
-                       /// <summary>\r
-                       /// The mesh will be simplified by the number of faces specified in the MinValue parameter.\r
-                       /// </summary>\r
-                       Face = D3DXMESHSIMP_FACE\r
-               };\r
-\r
-               /// <summary>\r
-               /// Normal maps generation constants.\r
-               /// </summary>\r
-               /// <unmanaged>D3DX_NORMALMAP</unmanaged>\r
-               [System::Flags]\r
-               public enum class NormalMapFlags : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// Indicates that pixels off the edge of the texture on the u-axis should be mirrored, not wrapped.\r
-                       /// </summary>\r
-                       MirrorU = D3DX_NORMALMAP_MIRROR_U,\r
-\r
-                       /// <summary>\r
-                       /// Indicates that pixels off the edge of the texture on the v-axis should be mirrored, not wrapped.\r
-                       /// </summary>\r
-                       MirrorV = D3DX_NORMALMAP_MIRROR_V,\r
-\r
-                       /// <summary>\r
-                       /// Same as specifying the MirrorU and MirrorV flags.\r
-                       /// </summary>\r
-                       Mirror = D3DX_NORMALMAP_MIRROR,\r
-\r
-                       /// <summary>\r
-                       /// Inverts the direction of each normal.\r
-                       /// </summary>\r
-                       InvertSign = D3DX_NORMALMAP_INVERTSIGN,\r
-\r
-                       /// <summary>\r
-                       /// Computes the per-pixel occlusion term and encodes it into the alpha. An alpha of 1 means that the\r
-                       /// pixel is not obscured in any way, and an alpha of 0 means that the pixel is completely obscured.\r
-                       /// </summary>\r
-                       ComputeOcclusion = D3DX_NORMALMAP_COMPUTE_OCCLUSION\r
-               };\r
-               \r
-               /// <summary>\r
-               /// The type of object.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXPARAMETER_CLASS</unmanaged>\r
-               public enum class ParameterClass : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// Constant is a scalar.\r
-                       /// </summary>\r
-                       Scalar = D3DXPC_SCALAR,\r
-\r
-                       /// <summary>\r
-                       /// Constant is a vector.\r
-                       /// </summary>\r
-                       Vector = D3DXPC_VECTOR,\r
-\r
-                       /// <summary>\r
-                       /// Constant is a row major matrix.\r
-                       /// </summary>\r
-                       MatrixRows = D3DXPC_MATRIX_ROWS,\r
-\r
-                       /// <summary>\r
-                       /// Constant is a column major matrix.\r
-                       /// </summary>\r
-                       MatrixColumns = D3DXPC_MATRIX_COLUMNS,\r
-\r
-                       /// <summary>\r
-                       /// Constant is either a texture, shader, or a string.\r
-                       /// </summary>\r
-                       Object = D3DXPC_OBJECT,\r
-\r
-                       /// <summary>\r
-                       /// Constant is a structure.\r
-                       /// </summary>\r
-                       Struct = D3DXPC_STRUCT,\r
-               };\r
-\r
-               /// <summary>\r
-               /// These flags provide additional information about effect parameters.\r
-               /// </summary>\r
-               /// <unmanaged>D3DX_PARAMETER</unmanaged>\r
-               [System::Flags]\r
-               public enum class ParameterFlags : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// This parameter is not marked.\r
-                       /// </summary>\r
-                       None = 0,\r
-\r
-                       /// <summary>\r
-                       /// The value of a parameter will be shared by all effects in the same namespace.\r
-                       /// Changing the value in one effect will change it in all shared effects.\r
-                       /// </summary>\r
-                       Shared = D3DX_PARAMETER_SHARED,\r
-\r
-                       /// <summary>\r
-                       /// This parameter is marked as a literal value.\r
-                       /// </summary>\r
-                       Literal = D3DX_PARAMETER_LITERAL,\r
-\r
-                       /// <summary>\r
-                       /// This parameter is marked as an annotation.\r
-                       /// </summary>\r
-                       Annotation = D3DX_PARAMETER_ANNOTATION,\r
-               };\r
-\r
-               /// <summary>\r
-               /// Describes the data contained by the enumeration.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXPARAMETER_TYPE</unmanaged>\r
-               public enum class ParameterType : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// Parameter is a void pointer.\r
-                       /// </summary>\r
-                       Void = D3DXPT_VOID,\r
-\r
-                       /// <summary>\r
-                       /// Parameter is a Boolean. Any non-zero value passed into ConstantTable.SetBool, ConstantTable.SetBoolArray,\r
-                       /// ConstantTable.SetValue, ConstantTable.SetVector, or ConstantTable.SetVectorArray will be mapped to 1 (true)\r
-                       /// before being written into the constant table; otherwise, the value will be set to 0 in the constant table.\r
-                       /// </summary>\r
-                       Bool = D3DXPT_BOOL,\r
-\r
-                       /// <summary>\r
-                       /// Parameter is an integer. Any floating-point values passed into ConstantTable.SetValue,\r
-                       /// ConstantTable.SetVector, or ConstantTable::SetVectorArray will be rounded off (to zero decimal places)\r
-                       /// before being written into the constant table. \r
-                       /// </summary>\r
-                       Int = D3DXPT_INT,\r
-\r
-                       /// <summary>\r
-                       /// Parameter is a floating-point number.\r
-                       /// </summary>\r
-                       Float = D3DXPT_FLOAT,\r
-\r
-                       /// <summary>\r
-                       /// Parameter is a string.\r
-                       /// </summary>\r
-                       String = D3DXPT_STRING,\r
-\r
-                       /// <summary>\r
-                       /// Parameter is a texture.\r
-                       /// </summary>\r
-                       Texture = D3DXPT_TEXTURE,\r
-\r
-                       /// <summary>\r
-                       /// Parameter is a 1D texture.\r
-                       /// </summary>\r
-                       Texture1D = D3DXPT_TEXTURE1D,\r
-\r
-                       /// <summary>\r
-                       /// Parameter is a 2D texture.\r
-                       /// </summary>\r
-                       Texture2D = D3DXPT_TEXTURE2D,\r
-\r
-                       /// <summary>\r
-                       /// Parameter is a DD texture.\r
-                       /// </summary>\r
-                       Texture3D = D3DXPT_TEXTURE3D,\r
-\r
-                       /// <summary>\r
-                       /// Parameter is a cube texture.\r
-                       /// </summary>\r
-                       TextureCube = D3DXPT_TEXTURECUBE,\r
-\r
-                       /// <summary>\r
-                       /// Parameter is a sampler.\r
-                       /// </summary>\r
-                       Sampler = D3DXPT_SAMPLER,\r
-\r
-                       /// <summary>\r
-                       /// Parameter is a 1D sampler.\r
-                       /// </summary>\r
-                       Sampler1D = D3DXPT_SAMPLER1D,\r
-\r
-                       /// <summary>\r
-                       /// Parameter is a 2D sampler.\r
-                       /// </summary>\r
-                       Sampler2D = D3DXPT_SAMPLER2D,\r
-\r
-                       /// <summary>\r
-                       /// Parameter is a 3D sampler.\r
-                       /// </summary>\r
-                       Sampler3D = D3DXPT_SAMPLER3D,\r
-\r
-                       /// <summary>\r
-                       /// Parameter is a cube sampler.\r
-                       /// </summary>\r
-                       SamplerCube = D3DXPT_SAMPLERCUBE,\r
-\r
-                       /// <summary>\r
-                       /// Parameter is a pixel shader.\r
-                       /// </summary>\r
-                       PixelShader = D3DXPT_PIXELSHADER,\r
-\r
-                       /// <summary>\r
-                       /// Parameter is a vertex shader.\r
-                       /// </summary>\r
-                       VertexShader = D3DXPT_VERTEXSHADER,\r
-\r
-                       /// <summary>\r
-                       /// Parameter is a pixel shader fragment.\r
-                       /// </summary>\r
-                       PixelFragment = D3DXPT_PIXELFRAGMENT,\r
-\r
-                       /// <summary>\r
-                       /// Parameter is a vertex shader fragment.\r
-                       /// </summary>\r
-                       VertexFragment = D3DXPT_VERTEXFRAGMENT,\r
-\r
-                       /// <summary>\r
-                       /// Parameter is not supported.\r
-                       /// </summary>\r
-                       Unsupported = D3DXPT_UNSUPPORTED\r
-               };\r
-\r
-               /// <summary>\r
-               /// Mesh patch types.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXPATCHMESHTYPE</unmanaged>\r
-               public enum class PatchMeshType : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// Rectangle patch mesh type.\r
-                       /// </summary>\r
-                       Rectangle = D3DXPATCHMESH_RECT,\r
-\r
-                       /// <summary>\r
-                       /// Triangle patch mesh type.\r
-                       /// </summary>\r
-                       Triangle = D3DXPATCHMESH_TRI,\r
-\r
-                       /// <summary>\r
-                       /// N-patch mesh type.\r
-                       /// </summary>\r
-                       NPatch = D3DXPATCHMESH_NPATCH\r
-               };\r
-\r
-               /// <summary>\r
-               /// Defines the type of animation set looping modes used for playback.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXPLAYBACK_TYPE</unmanaged>\r
-               public enum class PlaybackType : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// The animation repeats endlessly.\r
-                       /// </summary>\r
-                       Loop = D3DXPLAY_LOOP,\r
-\r
-                       /// <summary>\r
-                       /// The animation plays once, and then it stops on the last frame.\r
-                       /// </summary>\r
-                       Once = D3DXPLAY_ONCE,\r
-\r
-                       /// <summary>\r
-                       /// The animation alternates endlessly between playing forward and playing backward.\r
-                       /// </summary>\r
-                       PingPong = D3DXPLAY_PINGPONG\r
-               };\r
-\r
-               /// <summary>\r
-               /// Data type of the register.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXREGISTER_SET</unmanaged>\r
-               public enum class RegisterSet : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// Boolean value.\r
-                       /// </summary>\r
-                       Bool = D3DXRS_BOOL,\r
-\r
-                       /// <summary>\r
-                       /// 4D integer number.\r
-                       /// </summary>\r
-                       Int4 = D3DXRS_INT4,\r
-\r
-                       /// <summary>\r
-                       /// 4D floating-point number.\r
-                       /// </summary>\r
-                       Float4 = D3DXRS_FLOAT4,\r
-\r
-                       /// <summary>\r
-                       /// The register contains 4D sampler data.\r
-                       /// </summary>\r
-                       Sampler = D3DXRS_SAMPLER,\r
-               };\r
-\r
-               /// <summary>\r
-               /// Flags used for parsing, compiling, or assembling shaders.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXSHADER</unmanaged>\r
-               [System::Flags]\r
-               public enum class ShaderFlags : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// No flags.\r
-                       /// </summary>\r
-                       None = 0,\r
-\r
-                       /// <summary>\r
-                       /// Unless explicitly specified, matrices will be packed in column-major order (each vector will be in a single\r
-                       /// column) when passed to and from the shader. This is generally more efficient because it allows vector-matrix\r
-                       /// multiplication to be performed using a series of dot products.\r
-                       /// </summary>\r
-                       PackMatrixColumnMajor = D3DXSHADER_PACKMATRIX_COLUMNMAJOR,\r
-\r
-                       /// <summary>\r
-                       /// Unless explicitly specified, matrices will be packed in row-major order (each vector will be in a single\r
-                       /// row) when passed to or from the shader.\r
-                       /// </summary>\r
-                       PackMatrixRowMajor = D3DXSHADER_PACKMATRIX_ROWMAJOR,\r
-\r
-                       /// <summary>\r
-                       /// This is a hint to the compiler to avoid using flow-control instructions.\r
-                       /// </summary>\r
-                       AvoidFlowControl = D3DXSHADER_AVOID_FLOW_CONTROL,\r
-\r
-                       /// <summary>\r
-                       /// Insert debug filename, line numbers, and type and symbol information during shader compile.\r
-                       /// </summary>\r
-                       Debug = D3DXSHADER_DEBUG,\r
-\r
-                       /// <summary>\r
-                       /// Compile ps_1_x shaders as ps_2_0. Effects that specify ps_1_x targets will instead compile to ps_2_0\r
-                       /// targets because this is the minimum shader version supported by the DirectX 10 shader compiler. This flag\r
-                       /// has no effect when used with higher level compile targets.\r
-                       /// </summary>\r
-                       EnableBackwardsCompatibility = D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY,\r
-\r
-                       /// <summary>\r
-                       /// Force the compiler to compile against the next highest available software target for pixel shaders.\r
-                       /// This flag also turns optimizations off and debugging on.\r
-                       /// </summary>\r
-                       ForcePSSoftwareNoOpt = D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT,\r
-\r
-                       /// <summary>\r
-                       /// Force the compiler to compile against the next highest available software target for vertex shaders.\r
-                       /// This flag also turns optimizations off and debugging on.\r
-                       /// </summary>\r
-                       ForceVSSoftwareNoOpt = D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT,\r
-\r
-                       /// <summary>\r
-                       /// Disable optimizations that may cause the output of a compiled shader program to differ from the output\r
-                       /// of a program compiled with the DirectX 9 shader compiler due to small precision erros in floating point math.\r
-                       /// </summary>\r
-                       IeeeStrictness = D3DXSHADER_IEEE_STRICTNESS,\r
-\r
-                       /// <summary>\r
-                       /// Disables preshaders. The compiler will not pull out static expressions for evaluation on the host CPU.\r
-                       /// Additionally, the compiler will not loft any expressions when compiling stand-alone functions.\r
-                       /// </summary>\r
-                       NoPreshader = D3DXSHADER_NO_PRESHADER,\r
-\r
-                       /// <summary>\r
-                       /// Lowest optimization level. May produce slower code but will do so more quickly.\r
-                       /// This may be useful in a highly iterative shader development cycle.\r
-                       /// </summary>\r
-                       OptimizationLevel0 = D3DXSHADER_OPTIMIZATION_LEVEL0,\r
-\r
-                       /// <summary>\r
-                       /// Second lowest optimization level.\r
-                       /// </summary>\r
-                       OptimizationLevel1 = D3DXSHADER_OPTIMIZATION_LEVEL1,\r
-\r
-                       /// <summary>\r
-                       /// Second highest optimization level.\r
-                       /// </summary>\r
-                       OptimizationLevel2 = D3DXSHADER_OPTIMIZATION_LEVEL2,\r
-\r
-                       /// <summary>\r
-                       /// Highest optimization level. Will produce best possible code but may take significantly longer to do so.\r
-                       /// This will be useful for final builds of an application where performance is the most important factor.\r
-                       /// </summary>\r
-                       OptimizationLevel3 = D3DXSHADER_OPTIMIZATION_LEVEL3,\r
-\r
-                       /// <summary>\r
-                       /// Force all computations in the resulting shader to occur at partial precision\r
-                       /// This may result in faster evaluation of shaders on some hardware.\r
-                       /// </summary>\r
-                       PartialPrecision = D3DXSHADER_PARTIALPRECISION,\r
-\r
-                       /// <summary>\r
-                       /// This is a hint to the compiler to prefer using flow-control instructions.\r
-                       /// </summary>\r
-                       PreferFlowControl = D3DXSHADER_PREFER_FLOW_CONTROL,\r
-\r
-                       /// <summary>\r
-                       /// Instruct the compiler to skip optimization steps during code generation.\r
-                       /// Unless you are trying to isolate a problem in your code and you suspect the\r
-                       /// compiler, using this option is not recommended.\r
-                       /// </summary>\r
-                       SkipValidation = D3DXSHADER_SKIPVALIDATION,\r
-\r
-                       /// <summary>\r
-                       /// Do not validate the generated code against known capabilities and constraints.\r
-                       /// This option is recommended only when compiling shaders that are known to work\r
-                       /// (that is, shaders that have compiled before without this option). Shaders are\r
-                       /// always validated by the runtime before they are set to the device.\r
-                       /// </summary>\r
-                       SkipOptimization = D3DXSHADER_SKIPOPTIMIZATION,\r
-\r
-                       /// <summary>\r
-                       /// Enable the use of the original Direct3D 9 HLSL compiler. OCT2006_d3dx9_31_x86.cab or\r
-                       /// OCT2006_d3dx9_31_x64.cab must be included as part of the applications redist. This flag\r
-                       /// is required to compile ps_1_x shaders without using the promotion flag to ps_2_0. Specifying\r
-                       /// this flag when obtaining an EffectCompiler interface causes subsequent calls to\r
-                       /// EffectCompiler.CompileEffect and EffectCompiler/CompileShader through this object\r
-                       /// to use the legacy compiler.\r
-                       /// </summary>\r
-                       UseLegacyD3DX9_31Dll = D3DXSHADER_USE_LEGACY_D3DX9_31_DLL\r
-               };\r
-\r
-               /// <summary>\r
-               /// Flags used to specify sprite rendering options to the flags parameter in the Sprite.Begin method.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXSPRITE</unmanaged>\r
-               [System::Flags]\r
-               public enum class SpriteFlags : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// No flags.\r
-                       /// </summary>\r
-                       None = 0,\r
-\r
-                       /// <summary>\r
-                       /// The device state is not to be saved or restored when Sprite.Begin or Sprite.End is called.\r
-                       /// </summary>\r
-                       DoNotSaveState = D3DXSPRITE_DONOTSAVESTATE,\r
-\r
-                       /// <summary>\r
-                       /// The device render state is not to be changed when Sprite.Begin is called. The device is assumed\r
-                       /// to be in a valid state to draw vertices containing UsageIndex = 0 in the DeclarationUsage.Position,\r
-                       /// DeclarationUsage.TexCoord, and DeclarationUsage.Color data.\r
-                       /// </summary>\r
-                       DoNotModifyRenderState = D3DXSPRITE_DONOTMODIFY_RENDERSTATE,\r
-\r
-                       /// <summary>\r
-                       /// The world, view, and projection transforms are not modified. The transforms currently set to the\r
-                       /// device are used to transform the sprites when the batched sprites are drawn (when Sprite.Flush or\r
-                       /// Sprite.End is called). If this flag is not specified, then world, view, and projection\r
-                       /// transforms are modified so that sprites are drawn in screen-space coordinates.\r
-                       /// </summary>\r
-                       ObjectSpace = D3DXSPRITE_OBJECTSPACE,\r
-\r
-                       /// <summary>\r
-                       /// Each sprite will be rotated about its center so that it is facing the viewer.\r
-                       /// Sprite.SetWorldViewLH or Sprite.SetWorldViewRH must be called first.\r
-                       /// </summary>\r
-                       Billboard = D3DXSPRITE_BILLBOARD,\r
-\r
-                       /// <summary>\r
-                       /// Enables alpha blending with RenderState.AlphaTestEnable set to true (for nonzero alpha).\r
-                       /// Blend.SourceAlpha will be the source blend state, and Blend.InverseSourceAlpha will be the destination\r
-                       /// blend state in calls to Device.SetRenderState. Font expects this flag to be set when drawing text.\r
-                       /// </summary>\r
-                       AlphaBlend = D3DXSPRITE_ALPHABLEND,\r
-\r
-                       /// <summary>\r
-                       /// Sort sprites by texture prior to drawing. This can improve performance when drawing\r
-                       /// non-overlapping sprites of uniform depth. You may also combine SortTexture with either\r
-                       /// SortDepthFrontToBack or SortDepthBackToFront. This will sort the list of sprites by depth\r
-                       /// first and texture second.\r
-                       /// </summary>\r
-                       SortTexture = D3DXSPRITE_SORT_TEXTURE,\r
-\r
-                       /// <summary>\r
-                       /// Sprites are sorted by depth in front-to-back order prior to drawing. This procedure is\r
-                       /// recommended when drawing opaque sprites of varying depths. You may combine SortDepthFrontToBack\r
-                       /// with SortTexture to sort first by depth, and second by texture.\r
-                       /// </summary>\r
-                       SortDepthFrontToBack = D3DXSPRITE_SORT_DEPTH_FRONTTOBACK,\r
-\r
-                       /// <summary>\r
-                       /// Sprites are sorted by depth in back-to-front order prior to drawing. This procedure is\r
-                       /// recommended when drawing transparent sprites of varying depths. You may combine SortDepthBackToFront\r
-                       /// with SortTexture to sort first by depth, and second by texture.\r
-                       /// </summary>\r
-                       SortDepthBackToFront = D3DXSPRITE_SORT_DEPTH_BACKTOFRONT,\r
-\r
-                       /// <summary>\r
-                       /// Disables calling AddRef() on every draw, and Release() on Flush() for better performance.\r
-                       /// </summary>\r
-                       DoNotAddRefTexture = D3DXSPRITE_DO_NOT_ADDREF_TEXTURE,\r
-               };\r
-\r
-               /// <summary>\r
-               /// Defines settings used for mesh tangent frame computations.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXTANGENT</unmanaged>\r
-               [System::Flags]\r
-               public enum class TangentOptions : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// No options.\r
-                       /// </summary>\r
-                       None = 0,\r
-\r
-                       /// <summary>\r
-                       /// Texture coordinate values in the U direction are between 0 and 1. In this case a texture\r
-                       /// coordinate set will be chosen that minimizes the perimeter of the triangle.\r
-                       /// </summary>\r
-                       WrapU = D3DXTANGENT_WRAP_U,\r
-\r
-                       /// <summary>\r
-                       /// Texture coordinate values in the V direction are between 0 and 1. In this case a texture\r
-                       /// coordinate set will be chosen that minimizes the perimeter of the triangle.\r
-                       /// </summary>\r
-                       WrapV = D3DXTANGENT_WRAP_V,\r
-\r
-                       /// <summary>\r
-                       /// Texture coordinate values in both U and V directions are between 0 and 1. In this case a texture\r
-                       /// coordinate set will be chosen that minimizes the perimeter of the triangle.\r
-                       /// </summary>\r
-                       WrapUV = D3DXTANGENT_WRAP_UV,\r
-\r
-                       /// <summary>\r
-                       /// Do not normalize partial derivatives with respect to texture coordinates. If not normalized,\r
-                       /// the scale of the partial derivatives is proportional to the scale of the 3D model divided by the\r
-                       /// scale of the triangle in (U, V) space. This scale value provides a measure of how much the\r
-                       /// texture is stretched in a given direction. The resulting vector length is a weighted sum of\r
-                       /// the lengths of the partial derivatives.\r
-                       /// </summary>\r
-                       DontNormalizePartials = D3DXTANGENT_DONT_NORMALIZE_PARTIALS,\r
-\r
-                       /// <summary>\r
-                       /// Do not transform texture coordinates to orthogonal Cartesian coordinates. Mutually exclusive\r
-                       /// with OrthogonalizeFromU and OrthogonalizeFromV.\r
-                       /// </summary>\r
-                       DontOrthogonalize = D3DXTANGENT_DONT_ORTHOGONALIZE,\r
-\r
-                       /// <summary>\r
-                       /// Compute the partial derivative with respect to texture coordinate V independently for each vertex,\r
-                       /// and then compute the partial derivative with respect to U as the cross product of the partial derivative\r
-                       /// with respect to V and the normal vector. Mutually exclusive with DontOrthogonalize and OrthogonalizeFromU.\r
-                       /// </summary>\r
-                       OrthogonalizeFromV = D3DXTANGENT_ORTHOGONALIZE_FROM_V,\r
-\r
-                       /// <summary>\r
-                       /// Compute the partial derivative with respect to texture coordinate u independently for each vertex,\r
-                       /// and then compute the partial derivative with respect to V as the cross product of the normal vector\r
-                       /// and the partial derivative with respect to U. Mutually exclusive with DontOrthogonalize and OrthogonalizeFromV.\r
-                       /// </summary>\r
-                       OrthogonalizeFromU = D3DXTANGENT_ORTHOGONALIZE_FROM_U,\r
-\r
-                       /// <summary>\r
-                       /// Weight the direction of the computed per-vertex normal or partial derivative vector according to the areas\r
-                       /// of triangles attached to that vertex. Mutually exclusive with WeightEqual.\r
-                       /// </summary>\r
-                       WeightByArea = D3DXTANGENT_WEIGHT_BY_AREA,\r
-\r
-                       /// <summary>\r
-                       /// Compute a unit-length normal vector for each triangle of the input mesh.\r
-                       /// Mutually exclusive with WeightByArea.\r
-                       /// </summary>\r
-                       WeightEqual = D3DXTANGENT_WEIGHT_EQUAL,\r
-\r
-                       /// <summary>\r
-                       /// Vertices are ordered in a clockwise direction around each triangle.\r
-                       /// The computed normal vector direction is therefore inverted 180 degrees from\r
-                       /// the direction computed using counterclockwise vertex ordering. \r
-                       /// </summary>\r
-                       WindCW = D3DXTANGENT_WIND_CW,\r
-\r
-                       /// <summary>\r
-                       /// Compute the per-vertex normal vector for each triangle of the input mesh,\r
-                       /// and ignore any normal vectors already in the input mesh. \r
-                       /// </summary>\r
-                       CalculateNormals = D3DXTANGENT_CALCULATE_NORMALS,\r
-\r
-                       /// <summary>\r
-                       /// The results are stored in the original input mesh, and the output mesh is not used.\r
-                       /// </summary>\r
-                       GenerateInPlace = D3DXTANGENT_GENERATE_IN_PLACE,\r
-               };\r
-\r
-               /// <summary>\r
-               /// Defines the priority type to which an animation track is assigned.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXPRIORITY_TYPE</unmanaged>\r
-               public enum class TrackPriority : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// Track should be blended with all the low-priority tracks before the\r
-                       /// low-priority blend is mixed with the high-priority blend.\r
-                       /// </summary>\r
-                       Low = D3DXPRIORITY_LOW,\r
-\r
-                       /// <summary>\r
-                       /// Track should be blended with all the high-priority tracks before the\r
-                       /// high-priority blend is mixed with the low-priority blend.\r
-                       /// </summary>\r
-                       High = D3DXPRIORITY_HIGH\r
-               };\r
-\r
-               /// <summary>\r
-               /// Defines the transition style between values of a mesh animation.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXTRANSITION_TYPE</unmanaged>\r
-               public enum class TransitionType : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// Linear transition between values.\r
-                       /// </summary>\r
-                       Linear = D3DXTRANSITION_LINEAR,\r
-\r
-                       /// <summary>\r
-                       /// Ease-in, ease-out spline transition between values.\r
-                       /// </summary>\r
-                       EaseInEaseOut = D3DXTRANSITION_EASEINEASEOUT\r
-               };\r
-\r
-               public enum class UVAtlasQuality : System::Int32\r
-               {\r
-                       Default = D3DXUVATLAS_DEFAULT,\r
-                       GeodesicFast = D3DXUVATLAS_GEODESIC_FAST,\r
-                       GeodesicQuality = D3DXUVATLAS_GEODESIC_QUALITY\r
-               };\r
-\r
-               /// <summary>\r
-               /// Specifies options for welding together vertices.\r
-               /// </summary>\r
-               /// <unmanaged>D3DXWELDEPSILONSFLAGS</unmanaged>\r
-               [System::Flags]\r
-               public enum class WeldFlags : System::Int32\r
-               {\r
-                       /// <summary>\r
-                       /// Weld together all vertices that are at the same location.\r
-                       /// </summary>\r
-                       WeldAll = D3DXWELDEPSILONS_WELDALL,\r
-\r
-                       /// <summary>\r
-                       /// If a given vertex component is within epsilon, modify partially matched vertices so that both components are identical. \r
-                       /// If all components are equal, remove one of the vertices. \r
-                       /// </summary>\r
-                       WeldPartialMatches = D3DXWELDEPSILONS_WELDPARTIALMATCHES,\r
-\r
-                       /// <summary>\r
-                       /// Instructs the weld to allow only modifications to vertices and not removal. This flag is \r
-                       /// valid only if WeldPartialMatches is set. It is useful to modify vertices to be equal, \r
-                       /// but not to allow vertices to be removed.\r
-                       /// </summary>\r
-                       DoNotRemoveVertices = D3DXWELDEPSILONS_DONOTREMOVEVERTICES,\r
-\r
-                       /// <summary>\r
-                       /// Instructs the weld not to split vertices that are in separate attribute groups.\r
-                       /// </summary>\r
-                       DoNotSplit = D3DXWELDEPSILONS_DONOTSPLIT\r
-               };\r
-       }\r
-}
\ No newline at end of file