1 // Copyright © 2015; Connor Hilarides
2 // Licensed under the MIT License <LICENSE.md>
3 //! Mappings for the contents of dxgitype.h
4 pub const DXGI_CPU_ACCESS_NONE: ::DWORD = 0;
5 pub const DXGI_CPU_ACCESS_DYNAMIC: ::DWORD = 1;
6 pub const DXGI_CPU_ACCESS_READ_WRITE: ::DWORD = 2;
7 pub const DXGI_CPU_ACCESS_SCRATCH: ::DWORD = 3;
8 pub const DXGI_CPU_ACCESS_FIELD: ::DWORD = 15;
9 FLAGS!{enum DXGI_USAGE {
10     DXGI_USAGE_SHADER_INPUT = 1 << (0 + 4),
11     DXGI_USAGE_RENDER_TARGET_OUTPUT = 1 << (1 + 4),
12     DXGI_USAGE_BACK_BUFFER = 1 << (2 + 4),
13     DXGI_USAGE_SHARED = 1 << (3 + 4),
14     DXGI_USAGE_READ_ONLY = 1 << (4 + 4),
15     DXGI_USAGE_DISCARD_ON_PRESENT = 1 << (5 + 4),
16     DXGI_USAGE_UNORDERED_ACCESS = 1 << (6 + 4),
17 }}
18 STRUCT!{struct DXGI_RGB {
19     Red: f32,
20     Green: f32,
21     Blue: f32,
22 }}
23 pub type DXGI_RGBA = ::D3DCOLORVALUE;
24 STRUCT!{nodebug struct DXGI_GAMMA_CONTROL {
25     Scale: DXGI_RGB,
26     Offset: DXGI_RGB,
27     GammaCurve: [DXGI_RGB; 1025],
28 }}
29 STRUCT!{nodebug struct DXGI_GAMMA_CONTROL_CAPABILITIES {
30     ScaleAndOffsetSupported: ::BOOL,
31     MaxConvertedValue: f32,
32     MinConvertedValue: f32,
33     NumGammaControlPoints: ::UINT,
34     ControlPointPositions: [f32; 1025],
35 }}
36 STRUCT!{struct DXGI_RATIONAL {
37     Numerator: ::UINT,
38     Denominator: ::UINT,
39 }}
40 ENUM!{enum DXGI_MODE_SCANLINE_ORDER {
41     DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED,
42     DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE,
43     DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST,
44     DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST,
45 }}
46 ENUM!{enum DXGI_MODE_SCALING {
47     DXGI_MODE_SCALING_UNSPECIFIED,
48     DXGI_MODE_SCALING_CENTERED,
49     DXGI_MODE_SCALING_STRETCHED,
50 }}
51 ENUM!{enum DXGI_MODE_ROTATION {
52     DXGI_MODE_ROTATION_UNSPECIFIED,
53     DXGI_MODE_ROTATION_IDENTITY,
54     DXGI_MODE_ROTATION_ROTATE90,
55     DXGI_MODE_ROTATION_ROTATE180,
56     DXGI_MODE_ROTATION_ROTATE270,
57 }}
58 STRUCT!{struct DXGI_MODE_DESC {
59     Width: ::UINT,
60     Height: ::UINT,
61     RefreshRate: DXGI_RATIONAL,
62     Format: ::DXGI_FORMAT,
63     ScanlineOrdering: DXGI_MODE_SCANLINE_ORDER,
64     Scaling: DXGI_MODE_SCALING,
65 }}
66 STRUCT!{struct DXGI_SAMPLE_DESC {
67     Count: ::UINT,
68     Quality: ::UINT,
69 }}
70 ENUM!{enum DXGI_COLOR_SPACE_TYPE {
71     DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 = 0x0,
72     DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709 = 0x1,
73     DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709 = 0x2,
74     DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020 = 0x3,
75     DXGI_COLOR_SPACE_RESERVED = 0x4,
76     DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 = 0x5,
77     DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 = 0x6,
78     DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601 = 0x7,
79     DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709 = 0x8,
80     DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709 = 0x9,
81     DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020 = 0xA,
82     DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020 = 0xB,
83     DXGI_COLOR_SPACE_CUSTOM = 0xFFFFFFFF,
84 }}
85 pub const DXGI_CENTER_MULTISAMPLE_QUALITY_PATTERN: ::UINT = 0xfffffffe;
86 pub const DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN: ::UINT = 0xffffffff;
87