16 #if defined(_MSC_VER) && (_MSC_VER > 1000)
24 _Use_decl_annotations_
27 return ( static_cast<size_t>(fmt) >= 1 && static_cast<size_t>(fmt) <= 120 );
30 _Use_decl_annotations_
35 case DXGI_FORMAT_BC1_TYPELESS:
36 case DXGI_FORMAT_BC1_UNORM:
37 case DXGI_FORMAT_BC1_UNORM_SRGB:
38 case DXGI_FORMAT_BC2_TYPELESS:
39 case DXGI_FORMAT_BC2_UNORM:
40 case DXGI_FORMAT_BC2_UNORM_SRGB:
41 case DXGI_FORMAT_BC3_TYPELESS:
42 case DXGI_FORMAT_BC3_UNORM:
43 case DXGI_FORMAT_BC3_UNORM_SRGB:
44 case DXGI_FORMAT_BC4_TYPELESS:
45 case DXGI_FORMAT_BC4_UNORM:
46 case DXGI_FORMAT_BC4_SNORM:
47 case DXGI_FORMAT_BC5_TYPELESS:
48 case DXGI_FORMAT_BC5_UNORM:
49 case DXGI_FORMAT_BC5_SNORM:
50 case DXGI_FORMAT_BC6H_TYPELESS:
51 case DXGI_FORMAT_BC6H_UF16:
52 case DXGI_FORMAT_BC6H_SF16:
53 case DXGI_FORMAT_BC7_TYPELESS:
54 case DXGI_FORMAT_BC7_UNORM:
55 case DXGI_FORMAT_BC7_UNORM_SRGB:
63 _Use_decl_annotations_
68 case DXGI_FORMAT_R8G8_B8G8_UNORM:
69 case DXGI_FORMAT_G8R8_G8B8_UNORM:
70 case DXGI_FORMAT_YUY2:
71 case DXGI_FORMAT_Y210:
72 case DXGI_FORMAT_Y216:
80 _Use_decl_annotations_
83 switch ( static_cast<int>(fmt) )
85 case DXGI_FORMAT_NV12:
86 case DXGI_FORMAT_P010:
87 case DXGI_FORMAT_P016:
88 case DXGI_FORMAT_420_OPAQUE:
89 case DXGI_FORMAT_NV11:
103 _Use_decl_annotations_
108 case DXGI_FORMAT_AI44:
109 case DXGI_FORMAT_IA44:
111 case DXGI_FORMAT_A8P8:
119 _Use_decl_annotations_
124 case DXGI_FORMAT_AYUV:
125 case DXGI_FORMAT_Y410:
126 case DXGI_FORMAT_Y416:
127 case DXGI_FORMAT_NV12:
128 case DXGI_FORMAT_P010:
129 case DXGI_FORMAT_P016:
130 case DXGI_FORMAT_YUY2:
131 case DXGI_FORMAT_Y210:
132 case DXGI_FORMAT_Y216:
133 case DXGI_FORMAT_NV11:
136 case DXGI_FORMAT_420_OPAQUE:
137 case DXGI_FORMAT_AI44:
138 case DXGI_FORMAT_IA44:
140 case DXGI_FORMAT_A8P8:
149 _Use_decl_annotations_
152 switch( static_cast<int>(fmt) )
154 case DXGI_FORMAT_D32_FLOAT_S8X24_UINT:
155 case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS:
156 case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT:
157 case DXGI_FORMAT_D32_FLOAT:
158 case DXGI_FORMAT_D24_UNORM_S8_UINT:
159 case DXGI_FORMAT_R24_UNORM_X8_TYPELESS:
160 case DXGI_FORMAT_X24_TYPELESS_G8_UINT:
161 case DXGI_FORMAT_D16_UNORM:
172 _Use_decl_annotations_
177 case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB:
178 case DXGI_FORMAT_BC1_UNORM_SRGB:
179 case DXGI_FORMAT_BC2_UNORM_SRGB:
180 case DXGI_FORMAT_BC3_UNORM_SRGB:
181 case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB:
182 case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB:
183 case DXGI_FORMAT_BC7_UNORM_SRGB:
191 _Use_decl_annotations_
192 inline bool IsTypeless( DXGI_FORMAT fmt,
bool partialTypeless )
194 switch( static_cast<int>(fmt) )
196 case DXGI_FORMAT_R32G32B32A32_TYPELESS:
197 case DXGI_FORMAT_R32G32B32_TYPELESS:
198 case DXGI_FORMAT_R16G16B16A16_TYPELESS:
199 case DXGI_FORMAT_R32G32_TYPELESS:
200 case DXGI_FORMAT_R32G8X24_TYPELESS:
201 case DXGI_FORMAT_R10G10B10A2_TYPELESS:
202 case DXGI_FORMAT_R8G8B8A8_TYPELESS:
203 case DXGI_FORMAT_R16G16_TYPELESS:
204 case DXGI_FORMAT_R32_TYPELESS:
205 case DXGI_FORMAT_R24G8_TYPELESS:
206 case DXGI_FORMAT_R8G8_TYPELESS:
207 case DXGI_FORMAT_R16_TYPELESS:
208 case DXGI_FORMAT_R8_TYPELESS:
209 case DXGI_FORMAT_BC1_TYPELESS:
210 case DXGI_FORMAT_BC2_TYPELESS:
211 case DXGI_FORMAT_BC3_TYPELESS:
212 case DXGI_FORMAT_BC4_TYPELESS:
213 case DXGI_FORMAT_BC5_TYPELESS:
214 case DXGI_FORMAT_B8G8R8A8_TYPELESS:
215 case DXGI_FORMAT_B8G8R8X8_TYPELESS:
216 case DXGI_FORMAT_BC6H_TYPELESS:
217 case DXGI_FORMAT_BC7_TYPELESS:
220 case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS:
221 case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT:
222 case DXGI_FORMAT_R24_UNORM_X8_TYPELESS:
223 case DXGI_FORMAT_X24_TYPELESS_G8_UINT:
224 return partialTypeless;
229 return partialTypeless;
236 _Use_decl_annotations_
239 switch( static_cast<int>(fmt) )
241 case DXGI_FORMAT_R32G32B32A32_TYPELESS:
242 case DXGI_FORMAT_R32G32B32A32_FLOAT:
243 case DXGI_FORMAT_R32G32B32A32_UINT:
244 case DXGI_FORMAT_R32G32B32A32_SINT:
245 case DXGI_FORMAT_R16G16B16A16_TYPELESS:
246 case DXGI_FORMAT_R16G16B16A16_FLOAT:
247 case DXGI_FORMAT_R16G16B16A16_UNORM:
248 case DXGI_FORMAT_R16G16B16A16_UINT:
249 case DXGI_FORMAT_R16G16B16A16_SNORM:
250 case DXGI_FORMAT_R16G16B16A16_SINT:
251 case DXGI_FORMAT_R10G10B10A2_TYPELESS:
252 case DXGI_FORMAT_R10G10B10A2_UNORM:
253 case DXGI_FORMAT_R10G10B10A2_UINT:
254 case DXGI_FORMAT_R8G8B8A8_TYPELESS:
255 case DXGI_FORMAT_R8G8B8A8_UNORM:
256 case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB:
257 case DXGI_FORMAT_R8G8B8A8_UINT:
258 case DXGI_FORMAT_R8G8B8A8_SNORM:
259 case DXGI_FORMAT_R8G8B8A8_SINT:
260 case DXGI_FORMAT_A8_UNORM:
261 case DXGI_FORMAT_BC1_TYPELESS:
262 case DXGI_FORMAT_BC1_UNORM:
263 case DXGI_FORMAT_BC1_UNORM_SRGB:
264 case DXGI_FORMAT_BC2_TYPELESS:
265 case DXGI_FORMAT_BC2_UNORM:
266 case DXGI_FORMAT_BC2_UNORM_SRGB:
267 case DXGI_FORMAT_BC3_TYPELESS:
268 case DXGI_FORMAT_BC3_UNORM:
269 case DXGI_FORMAT_BC3_UNORM_SRGB:
270 case DXGI_FORMAT_B5G5R5A1_UNORM:
271 case DXGI_FORMAT_B8G8R8A8_UNORM:
272 case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM:
273 case DXGI_FORMAT_B8G8R8A8_TYPELESS:
274 case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB:
275 case DXGI_FORMAT_BC7_TYPELESS:
276 case DXGI_FORMAT_BC7_UNORM:
277 case DXGI_FORMAT_BC7_UNORM_SRGB:
278 case DXGI_FORMAT_AYUV:
279 case DXGI_FORMAT_Y410:
280 case DXGI_FORMAT_Y416:
281 case DXGI_FORMAT_AI44:
282 case DXGI_FORMAT_IA44:
283 case DXGI_FORMAT_A8P8:
284 case DXGI_FORMAT_B4G4R4A4_UNORM:
297 _Use_decl_annotations_
302 return std::max<size_t>( 1, (height + 3) / 4 );
304 else if ( fmt == DXGI_FORMAT_NV11 )
311 return height + ( ( height + 1 ) >> 1 );
322 _Use_decl_annotations_
326 memset( &mdata, 0,
sizeof(mdata) );
327 mdata.width = image.width;
328 mdata.height = image.height;
332 mdata.format = image.format;
338 _Use_decl_annotations_
342 memset( &mdata, 0,
sizeof(mdata) );
343 mdata.width = image.width;
344 mdata.height = image.height;
348 mdata.format = image.format;
_Use_decl_annotations_ bool IsValid(DXGI_FORMAT fmt)
_Use_decl_annotations_ HRESULT SaveToDDSMemory(const Image &image, DWORD flags, Blob &blob)
_Use_decl_annotations_ bool IsPalettized(DXGI_FORMAT fmt)
_Use_decl_annotations_ bool IsTypeless(DXGI_FORMAT fmt, bool partialTypeless)
_Use_decl_annotations_ bool HasAlpha(DXGI_FORMAT fmt)
_In_ size_t _In_ DXGI_FORMAT _In_ size_t _In_ DXGI_FORMAT _In_ DWORD flags
_Use_decl_annotations_ bool IsVideo(DXGI_FORMAT fmt)
_Use_decl_annotations_ bool IsDepthStencil(DXGI_FORMAT fmt)
_Use_decl_annotations_ bool IsPacked(DXGI_FORMAT fmt)
_Use_decl_annotations_ bool IsCompressed(DXGI_FORMAT fmt)
_Use_decl_annotations_ bool IsPlanar(DXGI_FORMAT fmt)
_Use_decl_annotations_ size_t ComputeScanlines(DXGI_FORMAT fmt, size_t height)
_Use_decl_annotations_ HRESULT SaveToDDSFile(const Image &image, DWORD flags, LPCWSTR szFile)
_Use_decl_annotations_ bool IsSRGB(DXGI_FORMAT fmt)