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