1 module directx.dxgitype; 2 // 3 // Copyright (C) Microsoft. All rights reserved. 4 // 5 6 version(Windows): 7 8 public import directx.dxgiformat; 9 10 import directx.d3dcommon; 11 12 enum _FACDXGI = 0x87a; 13 14 HRESULT MAKE_DXGI_HRESULT(T)(T code) { 15 return MAKE_HRESULT(1, _FACDXGI, code); 16 } 17 18 HRESULT MAKE_DXGI_STATUS(T)(T code) { 19 return MAKE_HRESULT(0, _FACDXGI, code); 20 } 21 22 // DXGI error messages have moved to winerror.h 23 enum DXGI_STATUS_OCCLUDED = MAKE_DXGI_STATUS(1); 24 enum DXGI_STATUS_CLIPPED = MAKE_DXGI_STATUS(2); 25 enum DXGI_STATUS_NO_REDIRECTION = MAKE_DXGI_STATUS(4); 26 enum DXGI_STATUS_NO_DESKTOP_ACCESS = MAKE_DXGI_STATUS(5); 27 enum DXGI_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE = MAKE_DXGI_STATUS(6); 28 enum DXGI_STATUS_MODE_CHANGED = MAKE_DXGI_STATUS(7); 29 enum DXGI_STATUS_MODE_CHANGE_IN_PROGRESS = MAKE_DXGI_STATUS(8); 30 31 enum DXGI_ERROR_INVALID_CALL = MAKE_DXGI_HRESULT(1); 32 enum DXGI_ERROR_NOT_FOUND = MAKE_DXGI_HRESULT(2); 33 enum DXGI_ERROR_MORE_DATA = MAKE_DXGI_HRESULT(3); 34 enum DXGI_ERROR_UNSUPPORTED = MAKE_DXGI_HRESULT(4); 35 enum DXGI_ERROR_DEVICE_REMOVED = MAKE_DXGI_HRESULT(5); 36 enum DXGI_ERROR_DEVICE_HUNG = MAKE_DXGI_HRESULT(6); 37 enum DXGI_ERROR_DEVICE_RESET = MAKE_DXGI_HRESULT(7); 38 enum DXGI_ERROR_WAS_STILL_DRAWING = MAKE_DXGI_HRESULT(10); 39 enum DXGI_ERROR_FRAME_STATISTICS_DISJOINT = MAKE_DXGI_HRESULT(11); 40 enum DXGI_ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE = MAKE_DXGI_HRESULT(12); 41 enum DXGI_ERROR_DRIVER_INTERNAL_ERROR = MAKE_DXGI_HRESULT(32); 42 enum DXGI_ERROR_NONEXCLUSIVE = MAKE_DXGI_HRESULT(33); 43 enum DXGI_ERROR_NOT_CURRENTLY_AVAILABLE = MAKE_DXGI_HRESULT(34); 44 enum DXGI_ERROR_REMOTE_CLIENT_DISCONNECTED = MAKE_DXGI_HRESULT(35); 45 enum DXGI_ERROR_REMOTE_OUTOFMEMORY = MAKE_DXGI_HRESULT(36); 46 47 struct DXGI_RGB 48 { 49 float Red; 50 float Green; 51 float Blue; 52 } 53 54 alias D3DCOLORVALUE DXGI_RGBA; 55 56 struct DXGI_GAMMA_CONTROL 57 { 58 DXGI_RGB Scale; 59 DXGI_RGB Offset; 60 DXGI_RGB[ 1025 ] GammaCurve; 61 } 62 63 struct DXGI_GAMMA_CONTROL_CAPABILITIES 64 { 65 int ScaleAndOffsetSupported; 66 float MaxConvertedValue; 67 float MinConvertedValue; 68 uint NumGammaControlPoints; 69 float[1025] ControlPointPositions; 70 } 71 72 struct DXGI_RATIONAL 73 { 74 uint Numerator; 75 uint Denominator; 76 } 77 78 alias DXGI_MODE_SCANLINE_ORDER = int; 79 enum : DXGI_MODE_SCANLINE_ORDER 80 { 81 DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED = 0, 82 DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE = 1, 83 DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST = 2, 84 DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST = 3 85 } 86 87 alias DXGI_MODE_SCALING = int; 88 enum : DXGI_MODE_SCALING 89 { 90 DXGI_MODE_SCALING_UNSPECIFIED = 0, 91 DXGI_MODE_SCALING_CENTERED = 1, 92 DXGI_MODE_SCALING_STRETCHED = 2 93 } 94 95 alias DXGI_MODE_ROTATION = int; 96 enum : DXGI_MODE_ROTATION 97 { 98 DXGI_MODE_ROTATION_UNSPECIFIED = 0, 99 DXGI_MODE_ROTATION_IDENTITY = 1, 100 DXGI_MODE_ROTATION_ROTATE90 = 2, 101 DXGI_MODE_ROTATION_ROTATE180 = 3, 102 DXGI_MODE_ROTATION_ROTATE270 = 4 103 } 104 105 struct DXGI_MODE_DESC 106 { 107 uint Width; 108 uint Height; 109 DXGI_RATIONAL RefreshRate; 110 DXGI_FORMAT Format; 111 DXGI_MODE_SCANLINE_ORDER ScanlineOrdering; 112 DXGI_MODE_SCALING Scaling; 113 } 114 115 // The following values are used with DXGI_SAMPLE_DESC::Quality: 116 enum DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN = 0xffffffff; 117 enum DXGI_CENTER_MULTISAMPLE_QUALITY_PATTERN = 0xfffffffe; 118 119 struct DXGI_SAMPLE_DESC 120 { 121 uint Count; 122 uint Quality; 123 } 124 125 alias DWORD DXGI_COLOR_SPACE_TYPE; 126 enum : DXGI_COLOR_SPACE_TYPE 127 { 128 DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 = 0, 129 DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709 = 1, 130 DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709 = 2, 131 DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020 = 3, 132 DXGI_COLOR_SPACE_RESERVED = 4, 133 DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 = 5, 134 DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 = 6, 135 DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601 = 7, 136 DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709 = 8, 137 DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709 = 9, 138 DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020 = 10, 139 DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020 = 11, 140 DXGI_COLOR_SPACE_CUSTOM = 0xFFFFFFFF 141 } 142 143 struct DXGI_JPEG_DC_HUFFMAN_TABLE 144 { 145 BYTE[12] CodeCounts; 146 BYTE[12] CodeValues; 147 } 148 149 struct DXGI_JPEG_AC_HUFFMAN_TABLE 150 { 151 BYTE[16] CodeCounts; 152 BYTE[162] CodeValues; 153 } 154 155 struct DXGI_JPEG_QUANTIZATION_TABLE 156 { 157 BYTE[64] Elements; 158 }