// Defines the faces of a cube map in the TextureCube class type.
structCubeMapFace
{
enumtype
{
NegativeX=1,
NegativeY=3,
NegativeZ=5,
PositiveX=0,
PositiveY=2,
PositiveZ=4
};
};
// Defines winding orders that may be used to identify back faces for culling.
structCullMode
{
enumtype
{
None,
CullClockwiseFace,
CullCounterClockwiseFace
};
};
// Defines the format of data in a depth buffer.
structDepthFormat
{
enumtype
{
None,
Depth16,
Depth24,
Depth24Stencil8,
};
};
// Defines classes that can be used for effect parameters or shader constants.
structEffectParameterClass
{
enumtype
{
Scalar,
Vector,
Matrix,
Object,
Struct,
};
};
// Defines types that can be used for effect parameters or shader constants.
structEffectParameterType
{
enumtype
{
// Parameter is a void pointer.
Void,
// Parameter is a Boolean. Any nonzero value passed in 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,
// Parameter is an integer. Any floating-point values passed in will be rounded off (to zero decimal places) before being written into the constant table.
Int32,
// Parameter is a floating-point number.
Single,
// Parameter is a string.
String,
// Parameter is a texture.
Texture,
// Parameter is a 1D texture.
Texture1D,
// Parameter is a 2D texture.
Texture2D,
// Parameter is a 3D texture.
Texture3D,
// Parameter is a cube texture.
TextureCube
};
};
// Describes options for filling the vertices and lines that define a primitive.
structFillMode
{
enumtype
{
Point=1,
Solid=3,
WireFrame=2
};
};
// Describes the status of the device.
structGraphicsDeviceStatus
{
enumtype
{
Lost=1,
Normal=0,
NotReset=2
};
};
// Defines supported image file formats that may be used for textures.
structImageFileFormat
{
enumtype
{
Bmp=0,
Dds=4,
Dib=6,
Hdr=7,
Jpg=1,
Pfm=8,
Png=3,
Ppm=5,
Tga=2
};
};
// Defines the size of an element of an index buffer.
structIndexElementSize
{
enumtype
{
SixteenBits,
ThirtyTwoBits
};
};
// Defines flags that describe the relationship between the adapter refresh rate and the rate at which GraphicsDevice.Present operations are completed.
structPresentInterval
{
enumtype
{
Default=0,
Immediate=0x80000000,
One=1,
Two=2
};
};
// Defines how data in a vertex stream is interpreted during a draw call.
structPrimitiveType
{
enumtype
{
LineList=2,
LineStrip=4,
PointList=1,
TriangleList=5,
TriangleStrip=6
};
};
// Determines how render target data is used once a new render target is set.
structRenderTargetUsage
{
enumtype
{
DiscardContents,
PlatformContents,
PreserveContents
};
};
// Describes whether existing buffer data will be overwritten or discarded during a SetData operation.
structSetDataOptions
{
enumtype
{
Discard=8192,
None=0,
NoOverwrite=4096
};
};
// Defines sprite rotation options.
structSpriteEffects
{
enumtype
{
FlipHorizontally=1,//Rotate 180 degrees about the Y axis before rendering.
FlipVertically=0x100,//Rotate 180 degrees about the X axis before rendering.
None=0//No rotations specified.
};
};
// Defines sprite sort-rendering options.
structSpriteSortMode
{
enumtype
{
BackToFront=3,
Deferred=1,
FrontToBack=4,
Immediate=0,
Texture=2
};
};
// Defines stencil buffer operations.
structStencilOperation
{
enumtype
{
Decrement=8,
DecrementSaturation=5,
Increment=7,
IncrementSaturation=4,
Invert=6,
Keep=1,
Replace=3,
Zero=2
};
};
// Defines various types of surface formats.
structSurfaceFormat
{
enumtype
{
Alpha8=15,
Bgr565=9,
Bgra4444=12,
Bgra5551=10,
Color=1,
Dxt1=28,
Dxt2=29,
Dxt3=30,
Dxt4=31,
Dxt5=32,
HalfSingle=25,
HalfVector2=26,
HalfVector4=27,
HdrBlendable=19,
NormalizedByte2=18,
NormalizedByte4=19,
Rg32=7,
Rgba1010102=6,
Rgba64=8,
Single=22,
Vector2=23,
Vector4=24,
};
};
// Defines constants that describe supported texture-addressing modes.
structTextureAddressMode
{
enumtype
{
Clamp=3,
Mirror=2,
Wrap=1
};
};
// Defines how a texture will be filtered as it is minified for each mipmap level.
structTextureFilter
{
enumtype
{
// Use linear filtering.
Linear,
// Use point filtering.
Point,
// Use anisotropic filtering.
Anisotropic,
// Use linear filtering to shrink or expand, and point filtering between mipmap levels (mip).
LinearMipPoint,
// Use point filtering to shrink (minify) or expand (magnify), and linear filtering between mipmap levels.
PointMipLinear,
// Use linear filtering to shrink, point filtering to expand, and linear filtering between mipmap levels.
MinLinearMagPointMipLinear,
// Use linear filtering to shrink, point filtering to expand, and point filtering between mipmap levels.
MinLinearMagPointMipPoint,
// Use point filtering to shrink, linear filtering to expand, and linear filtering between mipmap levels.
MinPointMagLinearMipLinear,
// Use point filtering to shrink, linear filtering to expand, and point filtering between mipmap levels.
MinPointMagLinearMipPoint
};
};
// Defines vertex element formats.
structVertexElementFormat
{
enumtype
{
Byte4,
Color,
HalfVector2,
HalfVector4,
NormalizedShort2,
NormalizedShort4,
Short2,
Short4,
Single,
Vector2,
Vector3,
Vector4
};
};
// Defines usage for vertex elements.
structVertexElementUsage
{
enumtype
{
Binormal,
BlendIndices,
BlendWeight,
Color,
Depth,
Fog,
Normal,
PointSize,
Position,
Sample,
Tangent,
TessellateFactor,
TextureCoordinate
};
};
// Lots of typedefs, but there was no other way to make these typesafe enum hacks look good.