ReactOS 0.4.17-dev-923-g4c9a150
utils.c
Go to the documentation of this file.
1/*
2 * Copyright 2008 Henri Verbeet for CodeWeavers
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 *
18 */
19
20#include "dxgi_private.h"
21
23
24#define WINE_DXGI_TO_STR(x) case x: return #x
25
26static const char *debug_feature_level(D3D_FEATURE_LEVEL feature_level)
27{
28 switch (feature_level)
29 {
41 default:
42 FIXME("Unrecognized D3D_FEATURE_LEVEL %#x.\n", feature_level);
43 return "unrecognized";
44 }
45}
46
48{
49 switch(format)
50 {
154 default:
155 FIXME("Unrecognized DXGI_FORMAT %#x.\n", format);
156 return "unrecognized";
157 }
158}
159
160#undef WINE_DXGI_TO_STR
161
163{
164 switch(format)
165 {
269 default:
270 FIXME("Unhandled wined3d format %#x.\n", format);
271 return DXGI_FORMAT_UNKNOWN;
272 }
273}
274
276{
277 switch(format)
278 {
382 default:
383 FIXME("Unhandled DXGI_FORMAT %#x.\n", format);
384 return WINED3DFMT_UNKNOWN;
385 }
386}
387
389{
390 if (!desc)
391 return "(null)";
392
393 return wine_dbg_sprintf("resolution %ux%u, refresh rate %u / %u, "
394 "format %s, scanline ordering %#x, scaling %#x",
395 desc->Width, desc->Height, desc->RefreshRate.Numerator, desc->RefreshRate.Denominator,
396 debug_dxgi_format(desc->Format), desc->ScanlineOrdering, desc->Scaling);
397}
398
400{
401 if (!desc)
402 return "(null)";
403
404 return wine_dbg_sprintf("resolution %ux%u, refresh rate %u / %u, "
405 "format %s, scanline ordering %#x, scaling %#x, stereo %#x",
406 desc->Width, desc->Height, desc->RefreshRate.Numerator, desc->RefreshRate.Denominator,
407 debug_dxgi_format(desc->Format), desc->ScanlineOrdering, desc->Scaling, desc->Stereo);
408}
409
410void dump_feature_levels(const D3D_FEATURE_LEVEL *feature_levels, unsigned int level_count)
411{
412 unsigned int i;
413
414 if (!feature_levels || !level_count)
415 {
416 TRACE("Feature levels: (null).\n");
417 return;
418 }
419
420 TRACE("Feature levels (count = %u):\n", level_count);
421 for (i = 0; i < level_count; ++i)
422 TRACE(" [%u] = %s.\n", i, debug_feature_level(feature_levels[i]));
423}
424
425static unsigned int dxgi_rational_to_uint(const DXGI_RATIONAL *rational)
426{
427 if (rational->Denominator)
428 return rational->Numerator / rational->Denominator;
429 else
430 return rational->Numerator;
431}
432
434{
435 switch (scanline_order)
436 {
441 default:
442 FIXME("Unhandled scanline ordering %#x.\n", scanline_order);
444 }
445}
446
448 enum wined3d_multisample_type wined3d_type, unsigned int wined3d_quality)
449{
450 desc->Count = wined3d_type == WINED3D_MULTISAMPLE_NONE ? 1 : wined3d_type;
451 desc->Quality = wined3d_quality;
452}
453
455 unsigned int *wined3d_quality, const DXGI_SAMPLE_DESC *dxgi_desc)
456{
457 if (dxgi_desc->Count > 1)
458 {
459 *wined3d_type = dxgi_desc->Count;
460 *wined3d_quality = dxgi_desc->Quality;
461 }
462 else
463 {
464 *wined3d_type = WINED3D_MULTISAMPLE_NONE;
465 *wined3d_quality = 0;
466 }
467}
468
470 const DXGI_MODE_DESC *mode)
471{
472 wined3d_mode->width = mode->Width;
473 wined3d_mode->height = mode->Height;
474 wined3d_mode->refresh_rate = dxgi_rational_to_uint(&mode->RefreshRate);
475 wined3d_mode->format_id = wined3dformat_from_dxgi_format(mode->Format);
476 wined3d_mode->scanline_ordering = wined3d_scanline_ordering_from_dxgi(mode->ScanlineOrdering);
477}
478
480 const DXGI_MODE_DESC1 *mode)
481{
482 wined3d_mode->width = mode->Width;
483 wined3d_mode->height = mode->Height;
484 wined3d_mode->refresh_rate = dxgi_rational_to_uint(&mode->RefreshRate);
485 wined3d_mode->format_id = wined3dformat_from_dxgi_format(mode->Format);
486 wined3d_mode->scanline_ordering = wined3d_scanline_ordering_from_dxgi(mode->ScanlineOrdering);
487 FIXME("Ignoring stereo %#x.\n", mode->Stereo);
488}
489
490DXGI_USAGE dxgi_usage_from_wined3d_bind_flags(unsigned int wined3d_bind_flags)
491{
492 DXGI_USAGE dxgi_usage = 0;
493
494 if (wined3d_bind_flags & WINED3D_BIND_SHADER_RESOURCE)
495 dxgi_usage |= DXGI_USAGE_SHADER_INPUT;
496 if (wined3d_bind_flags & WINED3D_BIND_RENDER_TARGET)
498 if (wined3d_bind_flags & WINED3D_BIND_UNORDERED_ACCESS)
499 dxgi_usage |= DXGI_USAGE_UNORDERED_ACCESS;
500
501 return dxgi_usage;
502}
503
505{
506 unsigned int wined3d_bind_flags = 0;
507
508 if (dxgi_usage & DXGI_USAGE_SHADER_INPUT)
509 wined3d_bind_flags |= WINED3D_BIND_SHADER_RESOURCE;
510 if (dxgi_usage & DXGI_USAGE_RENDER_TARGET_OUTPUT)
511 wined3d_bind_flags |= WINED3D_BIND_RENDER_TARGET;
512 if (dxgi_usage & DXGI_USAGE_UNORDERED_ACCESS)
513 wined3d_bind_flags |= WINED3D_BIND_UNORDERED_ACCESS;
514
516 if (dxgi_usage)
517 FIXME("Unhandled DXGI usage %#x.\n", dxgi_usage);
518 return wined3d_bind_flags;
519}
520
521#define DXGI_WINED3D_SWAPCHAIN_FLAGS \
522 (WINED3D_SWAPCHAIN_USE_CLOSEST_MATCHING_MODE | WINED3D_SWAPCHAIN_RESTORE_WINDOW_RECT \
523 | WINED3D_SWAPCHAIN_REGISTER_STATE | WINED3D_SWAPCHAIN_RESTORE_WINDOW_STATE)
524
525unsigned int dxgi_swapchain_flags_from_wined3d(unsigned int wined3d_flags)
526{
527 unsigned int flags = 0;
528
529 wined3d_flags &= ~DXGI_WINED3D_SWAPCHAIN_FLAGS;
530
531 if (wined3d_flags & WINED3D_SWAPCHAIN_ALLOW_MODE_SWITCH)
532 {
533 wined3d_flags &= ~WINED3D_SWAPCHAIN_ALLOW_MODE_SWITCH;
535 }
536
537 if (wined3d_flags & WINED3D_SWAPCHAIN_GDI_COMPATIBLE)
538 {
539 wined3d_flags &= ~WINED3D_SWAPCHAIN_GDI_COMPATIBLE;
541 }
542
543 if (wined3d_flags)
544 FIXME("Unhandled flags %#x.\n", flags);
545
546 return flags;
547}
548
549static unsigned int wined3d_swapchain_flags_from_dxgi(unsigned int flags)
550{
551 unsigned int wined3d_flags = DXGI_WINED3D_SWAPCHAIN_FLAGS; /* WINED3D_SWAPCHAIN_DISCARD_DEPTHSTENCIL? */
552
554 {
555 flags &= ~DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH;
557 }
558
560 {
561 flags &= ~DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE;
562 wined3d_flags |= WINED3D_SWAPCHAIN_GDI_COMPATIBLE;
563 }
564
565 if (flags)
566 FIXME("Unhandled flags %#x.\n", flags);
567
568 return wined3d_flags;
569}
570
572 IDXGIOutput *dxgi_containing_output, HWND window, const DXGI_SWAP_CHAIN_DESC1 *dxgi_desc,
573 const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *dxgi_fullscreen_desc)
574{
575 struct dxgi_output *dxgi_output = unsafe_impl_from_IDXGIOutput(dxgi_containing_output);
576
577 if (dxgi_desc->Scaling != DXGI_SCALING_STRETCH)
578 FIXME("Ignoring scaling %#x.\n", dxgi_desc->Scaling);
580 FIXME("Ignoring alpha mode %#x.\n", dxgi_desc->AlphaMode);
581 if (dxgi_fullscreen_desc && dxgi_fullscreen_desc->ScanlineOrdering)
582 FIXME("Unhandled scanline ordering %#x.\n", dxgi_fullscreen_desc->ScanlineOrdering);
583 if (dxgi_fullscreen_desc && dxgi_fullscreen_desc->Scaling)
584 FIXME("Unhandled mode scaling %#x.\n", dxgi_fullscreen_desc->Scaling);
585
586 switch (dxgi_desc->SwapEffect)
587 {
590 break;
593 break;
596 break;
599 break;
600 default:
601 WARN("Invalid swap effect %#x.\n", dxgi_desc->SwapEffect);
603 }
604
605 wined3d_desc->output = dxgi_output->wined3d_output;
606 wined3d_desc->backbuffer_width = dxgi_desc->Width;
607 wined3d_desc->backbuffer_height = dxgi_desc->Height;
608 wined3d_desc->backbuffer_format = wined3dformat_from_dxgi_format(dxgi_desc->Format);
609 wined3d_desc->backbuffer_count = dxgi_desc->BufferCount;
612 &wined3d_desc->multisample_quality, &dxgi_desc->SampleDesc);
613 wined3d_desc->device_window = window;
614 wined3d_desc->windowed = dxgi_fullscreen_desc ? dxgi_fullscreen_desc->Windowed : TRUE;
615 wined3d_desc->enable_auto_depth_stencil = FALSE;
616 wined3d_desc->auto_depth_stencil_format = 0;
617 wined3d_desc->flags = wined3d_swapchain_flags_from_dxgi(dxgi_desc->Flags);
618 wined3d_desc->refresh_rate = dxgi_fullscreen_desc ? dxgi_rational_to_uint(&dxgi_fullscreen_desc->RefreshRate) : 0;
619 wined3d_desc->auto_restore_display_mode = TRUE;
620
621 return S_OK;
622}
623
625 REFGUID guid, UINT *data_size, void *data)
626{
627 const struct wined3d_private_data *stored_data;
628 DWORD size_in;
629 HRESULT hr;
630
631 if (!data_size)
632 return E_INVALIDARG;
633
635 if (!(stored_data = wined3d_private_store_get_private_data(store, guid)))
636 {
638 *data_size = 0;
639 goto done;
640 }
641
642 size_in = *data_size;
643 *data_size = stored_data->size;
644 if (!data)
645 {
646 hr = S_OK;
647 goto done;
648 }
649 if (size_in < stored_data->size)
650 {
652 goto done;
653 }
654
655 if (stored_data->flags & WINED3DSPD_IUNKNOWN)
656 IUnknown_AddRef(stored_data->content.object);
657 memcpy(data, stored_data->content.data, stored_data->size);
658 hr = S_OK;
659
660done:
662
663 return hr;
664}
665
667 REFGUID guid, UINT data_size, const void *data)
668{
670 HRESULT hr;
671
672 if (!data)
673 {
676 {
678 return S_FALSE;
679 }
680
683
684 return S_OK;
685 }
686
688 hr = wined3d_private_store_set_private_data(store, guid, data, data_size, 0);
690
691 return hr;
692}
693
695 REFGUID guid, const IUnknown *object)
696{
697 HRESULT hr;
698
699 if (!object)
700 return dxgi_set_private_data(store, guid, sizeof(object), &object);
701
704 guid, object, sizeof(object), WINED3DSPD_IUNKNOWN);
706
707 return hr;
708}
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
Definition: precomp.h:23
#define FIXME(fmt,...)
Definition: precomp.h:53
#define WARN(fmt,...)
Definition: precomp.h:61
D3D_FEATURE_LEVEL
Definition: d3dcommon.idl:102
@ D3D_FEATURE_LEVEL_10_0
Definition: d3dcommon.idl:107
@ D3D_FEATURE_LEVEL_9_1
Definition: d3dcommon.idl:104
@ D3D_FEATURE_LEVEL_12_2
Definition: d3dcommon.idl:113
@ D3D_FEATURE_LEVEL_9_2
Definition: d3dcommon.idl:105
@ D3D_FEATURE_LEVEL_9_3
Definition: d3dcommon.idl:106
@ D3D_FEATURE_LEVEL_10_1
Definition: d3dcommon.idl:108
@ D3D_FEATURE_LEVEL_1_0_CORE
Definition: d3dcommon.idl:103
@ D3D_FEATURE_LEVEL_12_1
Definition: d3dcommon.idl:112
@ D3D_FEATURE_LEVEL_12_0
Definition: d3dcommon.idl:111
@ D3D_FEATURE_LEVEL_11_0
Definition: d3dcommon.idl:109
@ D3D_FEATURE_LEVEL_11_1
Definition: d3dcommon.idl:110
#define E_INVALIDARG
Definition: ddrawi.h:101
HRESULT hr
Definition: delayimp.cpp:582
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
const char * debug_dxgi_format(DXGI_FORMAT format)
Definition: utils.c:46
enum wined3d_format_id wined3dformat_from_dxgi_format(DXGI_FORMAT format)
Definition: utils.c:323
DXGI_FORMAT dxgi_format_from_wined3dformat(enum wined3d_format_id format)
Definition: utils.c:210
#define WINE_DXGI_TO_STR(x)
Definition: utils.c:24
unsigned int wined3d_bind_flags_from_dxgi_usage(DXGI_USAGE dxgi_usage)
Definition: utils.c:504
HRESULT wined3d_swapchain_desc_from_dxgi(struct wined3d_swapchain_desc *wined3d_desc, IDXGIOutput *dxgi_containing_output, HWND window, const DXGI_SWAP_CHAIN_DESC1 *dxgi_desc, const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *dxgi_fullscreen_desc)
Definition: utils.c:571
static unsigned int dxgi_rational_to_uint(const DXGI_RATIONAL *rational)
Definition: utils.c:425
HRESULT dxgi_get_private_data(struct wined3d_private_store *store, REFGUID guid, UINT *data_size, void *data)
Definition: utils.c:624
unsigned int dxgi_swapchain_flags_from_wined3d(unsigned int wined3d_flags)
Definition: utils.c:525
void dxgi_sample_desc_from_wined3d(DXGI_SAMPLE_DESC *desc, enum wined3d_multisample_type wined3d_type, unsigned int wined3d_quality)
Definition: utils.c:447
void dump_feature_levels(const D3D_FEATURE_LEVEL *feature_levels, unsigned int level_count)
Definition: utils.c:410
void wined3d_sample_desc_from_dxgi(enum wined3d_multisample_type *wined3d_type, unsigned int *wined3d_quality, const DXGI_SAMPLE_DESC *dxgi_desc)
Definition: utils.c:454
#define DXGI_WINED3D_SWAPCHAIN_FLAGS
Definition: utils.c:521
DXGI_USAGE dxgi_usage_from_wined3d_bind_flags(unsigned int wined3d_bind_flags)
Definition: utils.c:490
HRESULT dxgi_set_private_data(struct wined3d_private_store *store, REFGUID guid, UINT data_size, const void *data)
Definition: utils.c:666
void wined3d_display_mode_from_dxgi(struct wined3d_display_mode *wined3d_mode, const DXGI_MODE_DESC *mode)
Definition: utils.c:469
HRESULT dxgi_set_private_data_interface(struct wined3d_private_store *store, REFGUID guid, const IUnknown *object)
Definition: utils.c:694
void wined3d_display_mode_from_dxgi1(struct wined3d_display_mode *wined3d_mode, const DXGI_MODE_DESC1 *mode)
Definition: utils.c:479
static unsigned int wined3d_swapchain_flags_from_dxgi(unsigned int flags)
Definition: utils.c:549
static enum wined3d_scanline_ordering wined3d_scanline_ordering_from_dxgi(DXGI_MODE_SCANLINE_ORDER scanline_order)
Definition: utils.c:433
static const char * debug_feature_level(D3D_FEATURE_LEVEL feature_level)
Definition: utils.c:26
const char * debug_dxgi_mode(const DXGI_MODE_DESC *desc)
Definition: utils.c:388
const char * debug_dxgi_mode1(const DXGI_MODE_DESC1 *desc)
Definition: utils.c:399
const char * wine_dbg_sprintf(const char *format,...)
Definition: compat.c:296
GUID guid
Definition: version.c:147
@ DXGI_ALPHA_MODE_UNSPECIFIED
Definition: dxgi1_2.idl:34
@ DXGI_ALPHA_MODE_IGNORE
Definition: dxgi1_2.idl:37
const DXGI_USAGE DXGI_USAGE_UNORDERED_ACCESS
Definition: dxgi.idl:49
@ DXGI_SWAP_EFFECT_SEQUENTIAL
Definition: dxgi.idl:66
@ DXGI_SWAP_EFFECT_DISCARD
Definition: dxgi.idl:65
@ DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL
Definition: dxgi.idl:67
@ DXGI_SWAP_EFFECT_FLIP_DISCARD
Definition: dxgi.idl:68
@ DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH
Definition: dxgi.idl:120
@ DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE
Definition: dxgi.idl:121
const DXGI_USAGE DXGI_USAGE_RENDER_TARGET_OUTPUT
Definition: dxgi.idl:44
const DXGI_USAGE DXGI_USAGE_SHADER_INPUT
Definition: dxgi.idl:43
UINT DXGI_USAGE
Definition: dxgi.idl:42
struct dxgi_output * unsafe_impl_from_IDXGIOutput(IDXGIOutput *iface)
Definition: output.c:706
DXGI_FORMAT
Definition: dxgiformat.idl:22
@ DXGI_FORMAT_R16_UINT
Definition: dxgiformat.idl:80
@ DXGI_FORMAT_B8G8R8A8_UNORM
Definition: dxgiformat.idl:110
@ DXGI_FORMAT_R8_TYPELESS
Definition: dxgiformat.idl:83
@ DXGI_FORMAT_BC3_UNORM_SRGB
Definition: dxgiformat.idl:101
@ DXGI_FORMAT_R8G8_B8G8_UNORM
Definition: dxgiformat.idl:91
@ DXGI_FORMAT_R32G32B32_TYPELESS
Definition: dxgiformat.idl:28
@ DXGI_FORMAT_BC3_TYPELESS
Definition: dxgiformat.idl:99
@ DXGI_FORMAT_R16G16_SNORM
Definition: dxgiformat.idl:60
@ DXGI_FORMAT_D32_FLOAT_S8X24_UINT
Definition: dxgiformat.idl:43
@ DXGI_FORMAT_R32G32B32A32_SINT
Definition: dxgiformat.idl:27
@ DXGI_FORMAT_BC5_UNORM
Definition: dxgiformat.idl:106
@ DXGI_FORMAT_BC1_UNORM
Definition: dxgiformat.idl:94
@ DXGI_FORMAT_R8G8_UINT
Definition: dxgiformat.idl:73
@ DXGI_FORMAT_R32G32B32A32_UINT
Definition: dxgiformat.idl:26
@ DXGI_FORMAT_R16G16B16A16_SNORM
Definition: dxgiformat.idl:36
@ DXGI_FORMAT_R32_FLOAT
Definition: dxgiformat.idl:64
@ DXGI_FORMAT_R16G16B16A16_UNORM
Definition: dxgiformat.idl:34
@ DXGI_FORMAT_R32_SINT
Definition: dxgiformat.idl:66
@ DXGI_FORMAT_R8G8_UNORM
Definition: dxgiformat.idl:72
@ DXGI_FORMAT_R16G16_UNORM
Definition: dxgiformat.idl:58
@ DXGI_FORMAT_BC1_UNORM_SRGB
Definition: dxgiformat.idl:95
@ DXGI_FORMAT_R16G16_SINT
Definition: dxgiformat.idl:61
@ DXGI_FORMAT_R24_UNORM_X8_TYPELESS
Definition: dxgiformat.idl:69
@ DXGI_FORMAT_R8G8B8A8_TYPELESS
Definition: dxgiformat.idl:50
@ DXGI_FORMAT_BC2_TYPELESS
Definition: dxgiformat.idl:96
@ DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS
Definition: dxgiformat.idl:44
@ DXGI_FORMAT_R32G32B32_FLOAT
Definition: dxgiformat.idl:29
@ DXGI_FORMAT_R32G32B32_SINT
Definition: dxgiformat.idl:31
@ DXGI_FORMAT_R32G32B32A32_TYPELESS
Definition: dxgiformat.idl:24
@ DXGI_FORMAT_B8G8R8A8_UNORM_SRGB
Definition: dxgiformat.idl:114
@ DXGI_FORMAT_B8G8R8X8_TYPELESS
Definition: dxgiformat.idl:115
@ DXGI_FORMAT_B8G8R8A8_TYPELESS
Definition: dxgiformat.idl:113
@ DXGI_FORMAT_UNKNOWN
Definition: dxgiformat.idl:23
@ DXGI_FORMAT_X24_TYPELESS_G8_UINT
Definition: dxgiformat.idl:70
@ DXGI_FORMAT_R16_SINT
Definition: dxgiformat.idl:82
@ DXGI_FORMAT_R1_UNORM
Definition: dxgiformat.idl:89
@ DXGI_FORMAT_R16G16B16A16_UINT
Definition: dxgiformat.idl:35
@ DXGI_FORMAT_R16_UNORM
Definition: dxgiformat.idl:79
@ DXGI_FORMAT_R8G8B8A8_SINT
Definition: dxgiformat.idl:55
@ DXGI_FORMAT_D24_UNORM_S8_UINT
Definition: dxgiformat.idl:68
@ DXGI_FORMAT_R8G8B8A8_SNORM
Definition: dxgiformat.idl:54
@ DXGI_FORMAT_A8_UNORM
Definition: dxgiformat.idl:88
@ DXGI_FORMAT_R8G8B8A8_UINT
Definition: dxgiformat.idl:53
@ DXGI_FORMAT_R10G10B10A2_TYPELESS
Definition: dxgiformat.idl:46
@ DXGI_FORMAT_R32G32_FLOAT
Definition: dxgiformat.idl:39
@ DXGI_FORMAT_BC6H_UF16
Definition: dxgiformat.idl:118
@ DXGI_FORMAT_BC6H_SF16
Definition: dxgiformat.idl:119
@ DXGI_FORMAT_R10G10B10A2_UNORM
Definition: dxgiformat.idl:47
@ DXGI_FORMAT_R8_SNORM
Definition: dxgiformat.idl:86
@ DXGI_FORMAT_R9G9B9E5_SHAREDEXP
Definition: dxgiformat.idl:90
@ DXGI_FORMAT_R16G16B16A16_TYPELESS
Definition: dxgiformat.idl:32
@ DXGI_FORMAT_R16G16B16A16_FLOAT
Definition: dxgiformat.idl:33
@ DXGI_FORMAT_BC7_TYPELESS
Definition: dxgiformat.idl:120
@ DXGI_FORMAT_R32_TYPELESS
Definition: dxgiformat.idl:62
@ DXGI_FORMAT_R8_UNORM
Definition: dxgiformat.idl:84
@ DXGI_FORMAT_R32G32_UINT
Definition: dxgiformat.idl:40
@ DXGI_FORMAT_R11G11B10_FLOAT
Definition: dxgiformat.idl:49
@ DXGI_FORMAT_R8G8B8A8_UNORM
Definition: dxgiformat.idl:51
@ DXGI_FORMAT_G8R8_G8B8_UNORM
Definition: dxgiformat.idl:92
@ DXGI_FORMAT_YUY2
Definition: dxgiformat.idl:130
@ DXGI_FORMAT_D16_UNORM
Definition: dxgiformat.idl:78
@ DXGI_FORMAT_R16_FLOAT
Definition: dxgiformat.idl:77
@ DXGI_FORMAT_R10G10B10A2_UINT
Definition: dxgiformat.idl:48
@ DXGI_FORMAT_BC6H_TYPELESS
Definition: dxgiformat.idl:117
@ DXGI_FORMAT_BC7_UNORM
Definition: dxgiformat.idl:121
@ DXGI_FORMAT_BC5_TYPELESS
Definition: dxgiformat.idl:105
@ DXGI_FORMAT_R32G32_SINT
Definition: dxgiformat.idl:41
@ DXGI_FORMAT_BC2_UNORM_SRGB
Definition: dxgiformat.idl:98
@ DXGI_FORMAT_R16_SNORM
Definition: dxgiformat.idl:81
@ DXGI_FORMAT_R8_SINT
Definition: dxgiformat.idl:87
@ DXGI_FORMAT_BC5_SNORM
Definition: dxgiformat.idl:107
@ DXGI_FORMAT_R32_UINT
Definition: dxgiformat.idl:65
@ DXGI_FORMAT_BC4_TYPELESS
Definition: dxgiformat.idl:102
@ DXGI_FORMAT_R32G32B32A32_FLOAT
Definition: dxgiformat.idl:25
@ DXGI_FORMAT_R24G8_TYPELESS
Definition: dxgiformat.idl:67
@ DXGI_FORMAT_R8G8_SINT
Definition: dxgiformat.idl:75
@ DXGI_FORMAT_R16_TYPELESS
Definition: dxgiformat.idl:76
@ DXGI_FORMAT_BC3_UNORM
Definition: dxgiformat.idl:100
@ DXGI_FORMAT_R32G32B32_UINT
Definition: dxgiformat.idl:30
@ DXGI_FORMAT_R16G16_TYPELESS
Definition: dxgiformat.idl:56
@ DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
Definition: dxgiformat.idl:52
@ DXGI_FORMAT_R16G16_UINT
Definition: dxgiformat.idl:59
@ DXGI_FORMAT_D32_FLOAT
Definition: dxgiformat.idl:63
@ DXGI_FORMAT_R8G8_TYPELESS
Definition: dxgiformat.idl:71
@ DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM
Definition: dxgiformat.idl:112
@ DXGI_FORMAT_R16G16B16A16_SINT
Definition: dxgiformat.idl:37
@ DXGI_FORMAT_BC1_TYPELESS
Definition: dxgiformat.idl:93
@ DXGI_FORMAT_BC7_UNORM_SRGB
Definition: dxgiformat.idl:122
@ DXGI_FORMAT_BC2_UNORM
Definition: dxgiformat.idl:97
@ DXGI_FORMAT_R32G32_TYPELESS
Definition: dxgiformat.idl:38
@ DXGI_FORMAT_R32G8X24_TYPELESS
Definition: dxgiformat.idl:42
@ DXGI_FORMAT_B4G4R4A4_UNORM
Definition: dxgiformat.idl:138
@ DXGI_FORMAT_R16G16_FLOAT
Definition: dxgiformat.idl:57
@ DXGI_FORMAT_B5G6R5_UNORM
Definition: dxgiformat.idl:108
@ DXGI_FORMAT_BC4_UNORM
Definition: dxgiformat.idl:103
@ DXGI_FORMAT_X32_TYPELESS_G8X24_UINT
Definition: dxgiformat.idl:45
@ DXGI_FORMAT_R8G8_SNORM
Definition: dxgiformat.idl:74
@ DXGI_FORMAT_B8G8R8X8_UNORM_SRGB
Definition: dxgiformat.idl:116
@ DXGI_FORMAT_R8_UINT
Definition: dxgiformat.idl:85
@ DXGI_FORMAT_BC4_SNORM
Definition: dxgiformat.idl:104
@ DXGI_FORMAT_NV12
Definition: dxgiformat.idl:126
@ DXGI_FORMAT_B5G5R5A1_UNORM
Definition: dxgiformat.idl:109
@ DXGI_FORMAT_B8G8R8X8_UNORM
Definition: dxgiformat.idl:111
DXGI_MODE_SCANLINE_ORDER
Definition: dxgitype.idl:37
@ DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED
Definition: dxgitype.idl:38
@ DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE
Definition: dxgitype.idl:39
unsigned long DWORD
Definition: ntddk_ex.h:95
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLsizeiptr size
Definition: glext.h:5919
GLenum mode
Definition: glext.h:6217
GLbitfield flags
Definition: glext.h:7161
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned int UINT
Definition: sysinfo.c:13
static D3D_DRIVER_TYPE HMODULE UINT const D3D_FEATURE_LEVEL * feature_levels
Definition: hlsl_d3d11.c:28
#define S_OK
Definition: intsafe.h:52
uint32_t entry
Definition: isohybrid.c:63
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
D3D11_SHADER_VARIABLE_DESC desc
Definition: reflection.c:1683
static IHTMLWindow2 * window
Definition: events.c:77
#define TRACE(s)
Definition: solgame.cpp:4
DXGI_FORMAT Format
Definition: dxgi1_2.idl:223
DXGI_ALPHA_MODE AlphaMode
Definition: dxgi1_2.idl:230
DXGI_USAGE BufferUsage
Definition: dxgi1_2.idl:226
DXGI_SWAP_EFFECT SwapEffect
Definition: dxgi1_2.idl:229
DXGI_SAMPLE_DESC SampleDesc
Definition: dxgi1_2.idl:225
DXGI_SCALING Scaling
Definition: dxgi1_2.idl:228
DXGI_MODE_SCANLINE_ORDER ScanlineOrdering
Definition: dxgi1_2.idl:236
DXGI_MODE_SCALING Scaling
Definition: dxgi1_2.idl:237
Definition: scsiwmi.h:51
struct wined3d_output * wined3d_output
Definition: dxgi_private.h:148
enum wined3d_format_id format_id
Definition: wined3d.h:1614
enum wined3d_scanline_ordering scanline_ordering
Definition: wined3d.h:1615
union wined3d_private_data::@4825 content
IUnknown * object
Definition: wined3d.h:2285
unsigned int multisample_quality
Definition: wined3d.h:1778
unsigned int backbuffer_height
Definition: wined3d.h:1773
BOOL auto_restore_display_mode
Definition: wined3d.h:1786
enum wined3d_multisample_type multisample_type
Definition: wined3d.h:1777
enum wined3d_format_id auto_depth_stencil_format
Definition: wined3d.h:1783
struct wined3d_output * output
Definition: wined3d.h:1771
unsigned int backbuffer_width
Definition: wined3d.h:1772
unsigned int backbuffer_count
Definition: wined3d.h:1775
enum wined3d_format_id backbuffer_format
Definition: wined3d.h:1774
enum wined3d_swap_effect swap_effect
Definition: wined3d.h:1779
BOOL enable_auto_depth_stencil
Definition: wined3d.h:1782
unsigned int refresh_rate
Definition: wined3d.h:1785
unsigned int backbuffer_bind_flags
Definition: wined3d.h:1776
wined3d_multisample_type
Definition: wined3d.h:572
@ WINED3D_MULTISAMPLE_NONE
Definition: wined3d.h:573
#define WINED3D_SWAPCHAIN_ALLOW_MODE_SWITCH
Definition: wined3d.h:897
@ WINED3D_SWAP_EFFECT_FLIP_DISCARD
Definition: wined3d.h:536
@ WINED3D_SWAP_EFFECT_SEQUENTIAL
Definition: wined3d.h:535
@ WINED3D_SWAP_EFFECT_DISCARD
Definition: wined3d.h:534
@ WINED3D_SWAP_EFFECT_FLIP_SEQUENTIAL
Definition: wined3d.h:537
#define WINED3D_BIND_UNORDERED_ACCESS
Definition: wined3d.h:916
#define WINED3D_SWAPCHAIN_GDI_COMPATIBLE
Definition: wined3d.h:900
static struct wined3d_private_data * wined3d_private_store_get_private_data(const struct wined3d_private_store *store, const GUID *tag)
Definition: wined3d.h:2612
#define WINED3D_BIND_SHADER_RESOURCE
Definition: wined3d.h:912
wined3d_format_id
Definition: wined3d.h:126
@ WINED3DFMT_R32G32B32_TYPELESS
Definition: wined3d.h:160
@ WINED3DFMT_R8_TYPELESS
Definition: wined3d.h:217
@ WINED3DFMT_BC5_UNORM
Definition: wined3d.h:240
@ WINED3DFMT_R32G32B32_SINT
Definition: wined3d.h:163
@ WINED3DFMT_R8G8_UNORM
Definition: wined3d.h:206
@ WINED3DFMT_BC7_TYPELESS
Definition: wined3d.h:253
@ WINED3DFMT_BC7_UNORM_SRGB
Definition: wined3d.h:255
@ WINED3DFMT_R32G32_SINT
Definition: wined3d.h:173
@ WINED3DFMT_X24_TYPELESS_G8_UINT
Definition: wined3d.h:204
@ WINED3DFMT_BC2_UNORM_SRGB
Definition: wined3d.h:232
@ WINED3DFMT_B4G4R4A4_UNORM
Definition: wined3d.h:130
@ WINED3DFMT_R16G16_UINT
Definition: wined3d.h:193
@ WINED3DFMT_R16G16_UNORM
Definition: wined3d.h:192
@ WINED3DFMT_R8G8_TYPELESS
Definition: wined3d.h:205
@ WINED3DFMT_BC5_SNORM
Definition: wined3d.h:241
@ WINED3DFMT_R32_SINT
Definition: wined3d.h:200
@ WINED3DFMT_D32_FLOAT
Definition: wined3d.h:197
@ WINED3DFMT_R10G10B10A2_UNORM
Definition: wined3d.h:179
@ WINED3DFMT_R8_UINT
Definition: wined3d.h:219
@ WINED3DFMT_R32G32_FLOAT
Definition: wined3d.h:171
@ WINED3DFMT_R16G16_SNORM
Definition: wined3d.h:194
@ WINED3DFMT_B8G8R8A8_UNORM
Definition: wined3d.h:244
@ WINED3DFMT_R16_UNORM
Definition: wined3d.h:213
@ WINED3DFMT_R24G8_TYPELESS
Definition: wined3d.h:201
@ WINED3DFMT_R10G10B10A2_TYPELESS
Definition: wined3d.h:178
@ WINED3DFMT_R32G32_UINT
Definition: wined3d.h:172
@ WINED3DFMT_R32G32B32_UINT
Definition: wined3d.h:162
@ WINED3DFMT_BC4_TYPELESS
Definition: wined3d.h:236
@ WINED3DFMT_BC2_UNORM
Definition: wined3d.h:231
@ WINED3DFMT_R8_UNORM
Definition: wined3d.h:218
@ WINED3DFMT_R8G8B8A8_SNORM
Definition: wined3d.h:188
@ WINED3DFMT_NV12
Definition: wined3d.h:279
@ WINED3DFMT_R10G10B10_XR_BIAS_A2_UNORM
Definition: wined3d.h:182
@ WINED3DFMT_R16_TYPELESS
Definition: wined3d.h:210
@ WINED3DFMT_R16G16B16A16_SINT
Definition: wined3d.h:169
@ WINED3DFMT_R16_SINT
Definition: wined3d.h:216
@ WINED3DFMT_R8G8_B8G8_UNORM
Definition: wined3d.h:225
@ WINED3DFMT_R32G32B32_FLOAT
Definition: wined3d.h:161
@ WINED3DFMT_B8G8R8X8_UNORM
Definition: wined3d.h:245
@ WINED3DFMT_R32_FLOAT_X8X24_TYPELESS
Definition: wined3d.h:176
@ WINED3DFMT_BC1_UNORM_SRGB
Definition: wined3d.h:229
@ WINED3DFMT_R16G16B16A16_FLOAT
Definition: wined3d.h:165
@ WINED3DFMT_D16_UNORM
Definition: wined3d.h:212
@ WINED3DFMT_R8G8_SNORM
Definition: wined3d.h:208
@ WINED3DFMT_UNKNOWN
Definition: wined3d.h:127
@ WINED3DFMT_R8G8B8A8_TYPELESS
Definition: wined3d.h:184
@ WINED3DFMT_R8G8_UINT
Definition: wined3d.h:207
@ WINED3DFMT_BC7_UNORM
Definition: wined3d.h:254
@ WINED3DFMT_R8G8B8A8_UNORM_SRGB
Definition: wined3d.h:186
@ WINED3DFMT_R9G9B9E5_SHAREDEXP
Definition: wined3d.h:224
@ WINED3DFMT_B8G8R8X8_TYPELESS
Definition: wined3d.h:248
@ WINED3DFMT_R32_UINT
Definition: wined3d.h:199
@ WINED3DFMT_B5G5R5A1_UNORM
Definition: wined3d.h:243
@ WINED3DFMT_R16_FLOAT
Definition: wined3d.h:211
@ WINED3DFMT_R8G8B8A8_UNORM
Definition: wined3d.h:185
@ WINED3DFMT_R10G10B10A2_UINT
Definition: wined3d.h:180
@ WINED3DFMT_G8R8_G8B8_UNORM
Definition: wined3d.h:226
@ WINED3DFMT_R32G32B32A32_UINT
Definition: wined3d.h:158
@ WINED3DFMT_R16G16B16A16_UNORM
Definition: wined3d.h:166
@ WINED3DFMT_BC3_UNORM
Definition: wined3d.h:234
@ WINED3DFMT_BC6H_UF16
Definition: wined3d.h:251
@ WINED3DFMT_R16G16B16A16_TYPELESS
Definition: wined3d.h:164
@ WINED3DFMT_R24_UNORM_X8_TYPELESS
Definition: wined3d.h:203
@ WINED3DFMT_D32_FLOAT_S8X24_UINT
Definition: wined3d.h:175
@ WINED3DFMT_R32_FLOAT
Definition: wined3d.h:198
@ WINED3DFMT_X32_TYPELESS_G8X24_UINT
Definition: wined3d.h:177
@ WINED3DFMT_B5G6R5_UNORM
Definition: wined3d.h:242
@ WINED3DFMT_R16G16B16A16_UINT
Definition: wined3d.h:167
@ WINED3DFMT_BC1_TYPELESS
Definition: wined3d.h:227
@ WINED3DFMT_B8G8R8X8_UNORM_SRGB
Definition: wined3d.h:249
@ WINED3DFMT_BC4_UNORM
Definition: wined3d.h:237
@ WINED3DFMT_B8G8R8A8_TYPELESS
Definition: wined3d.h:246
@ WINED3DFMT_BC3_TYPELESS
Definition: wined3d.h:233
@ WINED3DFMT_R16G16_TYPELESS
Definition: wined3d.h:190
@ WINED3DFMT_R8_SNORM
Definition: wined3d.h:220
@ WINED3DFMT_YUY2
Definition: wined3d.h:258
@ WINED3DFMT_R16G16_FLOAT
Definition: wined3d.h:191
@ WINED3DFMT_R8G8B8A8_UINT
Definition: wined3d.h:187
@ WINED3DFMT_R16_SNORM
Definition: wined3d.h:215
@ WINED3DFMT_BC6H_TYPELESS
Definition: wined3d.h:250
@ WINED3DFMT_BC1_UNORM
Definition: wined3d.h:228
@ WINED3DFMT_R32G32B32A32_TYPELESS
Definition: wined3d.h:156
@ WINED3DFMT_R32_TYPELESS
Definition: wined3d.h:196
@ WINED3DFMT_R32G8X24_TYPELESS
Definition: wined3d.h:174
@ WINED3DFMT_R16_UINT
Definition: wined3d.h:214
@ WINED3DFMT_R8_SINT
Definition: wined3d.h:221
@ WINED3DFMT_BC5_TYPELESS
Definition: wined3d.h:239
@ WINED3DFMT_R8G8_SINT
Definition: wined3d.h:209
@ WINED3DFMT_R32G32B32A32_SINT
Definition: wined3d.h:159
@ WINED3DFMT_R8G8B8A8_SINT
Definition: wined3d.h:189
@ WINED3DFMT_R1_UNORM
Definition: wined3d.h:223
@ WINED3DFMT_R11G11B10_FLOAT
Definition: wined3d.h:183
@ WINED3DFMT_B8G8R8A8_UNORM_SRGB
Definition: wined3d.h:247
@ WINED3DFMT_BC3_UNORM_SRGB
Definition: wined3d.h:235
@ WINED3DFMT_A8_UNORM
Definition: wined3d.h:222
@ WINED3DFMT_R32G32B32A32_FLOAT
Definition: wined3d.h:157
@ WINED3DFMT_BC2_TYPELESS
Definition: wined3d.h:230
@ WINED3DFMT_BC6H_SF16
Definition: wined3d.h:252
@ WINED3DFMT_D24_UNORM_S8_UINT
Definition: wined3d.h:202
@ WINED3DFMT_R16G16B16A16_SNORM
Definition: wined3d.h:168
@ WINED3DFMT_BC4_SNORM
Definition: wined3d.h:238
@ WINED3DFMT_R16G16_SINT
Definition: wined3d.h:195
@ WINED3DFMT_R32G32_TYPELESS
Definition: wined3d.h:170
static void wined3d_private_store_free_private_data(struct wined3d_private_store *store, struct wined3d_private_data *entry)
Definition: wined3d.h:2627
#define WINED3DSPD_IUNKNOWN
Definition: wined3d.h:1018
wined3d_scanline_ordering
Definition: wined3d.h:824
@ WINED3D_SCANLINE_ORDERING_UNKNOWN
Definition: wined3d.h:825
@ WINED3D_SCANLINE_ORDERING_PROGRESSIVE
Definition: wined3d.h:826
#define WINED3D_BIND_RENDER_TARGET
Definition: wined3d.h:914
static HRESULT wined3d_private_store_set_private_data(struct wined3d_private_store *store, const GUID *guid, const void *data, DWORD data_size, uint32_t flags)
Definition: wined3d.h:2648
void WINAPI wined3d_mutex_unlock(void)
Definition: wined3d_main.c:544
void WINAPI wined3d_mutex_lock(void)
Definition: wined3d_main.c:539
#define S_FALSE
Definition: winerror.h:3451
#define DXGI_ERROR_NOT_FOUND
Definition: winerror.h:7122
#define DXGI_ERROR_MORE_DATA
Definition: winerror.h:7123
#define DXGI_ERROR_INVALID_CALL
Definition: winerror.h:7120