/*** Autogenerated by WIDL 6.4 from include/dxgiformat.idl - Do not edit ***/

#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include <rpc.h>
#include <rpcndr.h>
#endif

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __dxgiformat_h__
#define __dxgiformat_h__

/* Forward declarations */

/* Headers for imported files */


#ifdef __cplusplus
extern "C" {
#endif

#define DXGI_FORMAT_DEFINED (1)

typedef enum DXGI_FORMAT {
    DXGI_FORMAT_UNKNOWN = 0x0,
    DXGI_FORMAT_R32G32B32A32_TYPELESS = 0x1,
    DXGI_FORMAT_R32G32B32A32_FLOAT = 0x2,
    DXGI_FORMAT_R32G32B32A32_UINT = 0x3,
    DXGI_FORMAT_R32G32B32A32_SINT = 0x4,
    DXGI_FORMAT_R32G32B32_TYPELESS = 0x5,
    DXGI_FORMAT_R32G32B32_FLOAT = 0x6,
    DXGI_FORMAT_R32G32B32_UINT = 0x7,
    DXGI_FORMAT_R32G32B32_SINT = 0x8,
    DXGI_FORMAT_R16G16B16A16_TYPELESS = 0x9,
    DXGI_FORMAT_R16G16B16A16_FLOAT = 0xa,
    DXGI_FORMAT_R16G16B16A16_UNORM = 0xb,
    DXGI_FORMAT_R16G16B16A16_UINT = 0xc,
    DXGI_FORMAT_R16G16B16A16_SNORM = 0xd,
    DXGI_FORMAT_R16G16B16A16_SINT = 0xe,
    DXGI_FORMAT_R32G32_TYPELESS = 0xf,
    DXGI_FORMAT_R32G32_FLOAT = 0x10,
    DXGI_FORMAT_R32G32_UINT = 0x11,
    DXGI_FORMAT_R32G32_SINT = 0x12,
    DXGI_FORMAT_R32G8X24_TYPELESS = 0x13,
    DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 0x14,
    DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 0x15,
    DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 0x16,
    DXGI_FORMAT_R10G10B10A2_TYPELESS = 0x17,
    DXGI_FORMAT_R10G10B10A2_UNORM = 0x18,
    DXGI_FORMAT_R10G10B10A2_UINT = 0x19,
    DXGI_FORMAT_R11G11B10_FLOAT = 0x1a,
    DXGI_FORMAT_R8G8B8A8_TYPELESS = 0x1b,
    DXGI_FORMAT_R8G8B8A8_UNORM = 0x1c,
    DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 0x1d,
    DXGI_FORMAT_R8G8B8A8_UINT = 0x1e,
    DXGI_FORMAT_R8G8B8A8_SNORM = 0x1f,
    DXGI_FORMAT_R8G8B8A8_SINT = 0x20,
    DXGI_FORMAT_R16G16_TYPELESS = 0x21,
    DXGI_FORMAT_R16G16_FLOAT = 0x22,
    DXGI_FORMAT_R16G16_UNORM = 0x23,
    DXGI_FORMAT_R16G16_UINT = 0x24,
    DXGI_FORMAT_R16G16_SNORM = 0x25,
    DXGI_FORMAT_R16G16_SINT = 0x26,
    DXGI_FORMAT_R32_TYPELESS = 0x27,
    DXGI_FORMAT_D32_FLOAT = 0x28,
    DXGI_FORMAT_R32_FLOAT = 0x29,
    DXGI_FORMAT_R32_UINT = 0x2a,
    DXGI_FORMAT_R32_SINT = 0x2b,
    DXGI_FORMAT_R24G8_TYPELESS = 0x2c,
    DXGI_FORMAT_D24_UNORM_S8_UINT = 0x2d,
    DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 0x2e,
    DXGI_FORMAT_X24_TYPELESS_G8_UINT = 0x2f,
    DXGI_FORMAT_R8G8_TYPELESS = 0x30,
    DXGI_FORMAT_R8G8_UNORM = 0x31,
    DXGI_FORMAT_R8G8_UINT = 0x32,
    DXGI_FORMAT_R8G8_SNORM = 0x33,
    DXGI_FORMAT_R8G8_SINT = 0x34,
    DXGI_FORMAT_R16_TYPELESS = 0x35,
    DXGI_FORMAT_R16_FLOAT = 0x36,
    DXGI_FORMAT_D16_UNORM = 0x37,
    DXGI_FORMAT_R16_UNORM = 0x38,
    DXGI_FORMAT_R16_UINT = 0x39,
    DXGI_FORMAT_R16_SNORM = 0x3a,
    DXGI_FORMAT_R16_SINT = 0x3b,
    DXGI_FORMAT_R8_TYPELESS = 0x3c,
    DXGI_FORMAT_R8_UNORM = 0x3d,
    DXGI_FORMAT_R8_UINT = 0x3e,
    DXGI_FORMAT_R8_SNORM = 0x3f,
    DXGI_FORMAT_R8_SINT = 0x40,
    DXGI_FORMAT_A8_UNORM = 0x41,
    DXGI_FORMAT_R1_UNORM = 0x42,
    DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 0x43,
    DXGI_FORMAT_R8G8_B8G8_UNORM = 0x44,
    DXGI_FORMAT_G8R8_G8B8_UNORM = 0x45,
    DXGI_FORMAT_BC1_TYPELESS = 0x46,
    DXGI_FORMAT_BC1_UNORM = 0x47,
    DXGI_FORMAT_BC1_UNORM_SRGB = 0x48,
    DXGI_FORMAT_BC2_TYPELESS = 0x49,
    DXGI_FORMAT_BC2_UNORM = 0x4a,
    DXGI_FORMAT_BC2_UNORM_SRGB = 0x4b,
    DXGI_FORMAT_BC3_TYPELESS = 0x4c,
    DXGI_FORMAT_BC3_UNORM = 0x4d,
    DXGI_FORMAT_BC3_UNORM_SRGB = 0x4e,
    DXGI_FORMAT_BC4_TYPELESS = 0x4f,
    DXGI_FORMAT_BC4_UNORM = 0x50,
    DXGI_FORMAT_BC4_SNORM = 0x51,
    DXGI_FORMAT_BC5_TYPELESS = 0x52,
    DXGI_FORMAT_BC5_UNORM = 0x53,
    DXGI_FORMAT_BC5_SNORM = 0x54,
    DXGI_FORMAT_B5G6R5_UNORM = 0x55,
    DXGI_FORMAT_B5G5R5A1_UNORM = 0x56,
    DXGI_FORMAT_B8G8R8A8_UNORM = 0x57,
    DXGI_FORMAT_B8G8R8X8_UNORM = 0x58,
    DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 0x59,
    DXGI_FORMAT_B8G8R8A8_TYPELESS = 0x5a,
    DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 0x5b,
    DXGI_FORMAT_B8G8R8X8_TYPELESS = 0x5c,
    DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 0x5d,
    DXGI_FORMAT_BC6H_TYPELESS = 0x5e,
    DXGI_FORMAT_BC6H_UF16 = 0x5f,
    DXGI_FORMAT_BC6H_SF16 = 0x60,
    DXGI_FORMAT_BC7_TYPELESS = 0x61,
    DXGI_FORMAT_BC7_UNORM = 0x62,
    DXGI_FORMAT_BC7_UNORM_SRGB = 0x63,
    DXGI_FORMAT_AYUV = 0x64,
    DXGI_FORMAT_Y410 = 0x65,
    DXGI_FORMAT_Y416 = 0x66,
    DXGI_FORMAT_NV12 = 0x67,
    DXGI_FORMAT_P010 = 0x68,
    DXGI_FORMAT_P016 = 0x69,
    DXGI_FORMAT_420_OPAQUE = 0x6a,
    DXGI_FORMAT_YUY2 = 0x6b,
    DXGI_FORMAT_Y210 = 0x6c,
    DXGI_FORMAT_Y216 = 0x6d,
    DXGI_FORMAT_NV11 = 0x6e,
    DXGI_FORMAT_AI44 = 0x6f,
    DXGI_FORMAT_IA44 = 0x70,
    DXGI_FORMAT_P8 = 0x71,
    DXGI_FORMAT_A8P8 = 0x72,
    DXGI_FORMAT_B4G4R4A4_UNORM = 0x73,
    DXGI_FORMAT_P208 = 0x82,
    DXGI_FORMAT_V208 = 0x83,
    DXGI_FORMAT_V408 = 0x84,
    DXGI_FORMAT_FORCE_UINT = 0xffffffff
} DXGI_FORMAT;
/* Begin additional prototypes for all interfaces */


/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __dxgiformat_h__ */
