Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
d9ce33bf
Commit
d9ce33bf
authored
Sep 24, 2012
by
Ričardas Barkauskas
Committed by
Alexandre Julliard
Sep 25, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dxgi: Partially implement IDXGISwapChain_GetDesc.
parent
06a8cbcc
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
137 additions
and
2 deletions
+137
-2
dxgi_private.h
dlls/dxgi/dxgi_private.h
+1
-0
swapchain.c
dlls/dxgi/swapchain.c
+37
-2
utils.c
dlls/dxgi/utils.c
+99
-0
No files found.
dlls/dxgi/dxgi_private.h
View file @
d9ce33bf
...
...
@@ -72,6 +72,7 @@ struct dxgi_device_layer
/* TRACE helper functions */
const
char
*
debug_dxgi_format
(
DXGI_FORMAT
format
)
DECLSPEC_HIDDEN
;
DXGI_FORMAT
dxgi_format_from_wined3dformat
(
enum
wined3d_format_id
format
)
DECLSPEC_HIDDEN
;
enum
wined3d_format_id
wined3dformat_from_dxgi_format
(
DXGI_FORMAT
format
)
DECLSPEC_HIDDEN
;
/* IDXGIFactory */
...
...
dlls/dxgi/swapchain.c
View file @
d9ce33bf
...
...
@@ -192,9 +192,44 @@ static HRESULT STDMETHODCALLTYPE dxgi_swapchain_GetFullscreenState(IDXGISwapChai
static
HRESULT
STDMETHODCALLTYPE
dxgi_swapchain_GetDesc
(
IDXGISwapChain
*
iface
,
DXGI_SWAP_CHAIN_DESC
*
desc
)
{
FIXME
(
"iface %p, desc %p stub!
\n
"
,
iface
,
desc
);
struct
dxgi_swapchain
*
swapchain
=
impl_from_IDXGISwapChain
(
iface
);
struct
wined3d_swapchain_desc
wined3d_desc
;
HRESULT
hr
;
return
E_NOTIMPL
;
FIXME
(
"iface %p, desc %p partial stub!
\n
"
,
iface
,
desc
);
if
(
desc
==
NULL
)
return
E_INVALIDARG
;
EnterCriticalSection
(
&
dxgi_cs
);
hr
=
wined3d_swapchain_get_desc
(
swapchain
->
wined3d_swapchain
,
&
wined3d_desc
);
if
(
FAILED
(
hr
))
{
LeaveCriticalSection
(
&
dxgi_cs
);
return
hr
;
}
LeaveCriticalSection
(
&
dxgi_cs
);
FIXME
(
"Ignoring ScanlineOrdering, Scaling, SwapEffect and Flags
\n
"
);
desc
->
BufferDesc
.
Width
=
wined3d_desc
.
backbuffer_width
;
desc
->
BufferDesc
.
Height
=
wined3d_desc
.
backbuffer_height
;
desc
->
BufferDesc
.
RefreshRate
.
Numerator
=
wined3d_desc
.
refresh_rate
;
desc
->
BufferDesc
.
RefreshRate
.
Denominator
=
1
;
desc
->
BufferDesc
.
Format
=
dxgi_format_from_wined3dformat
(
wined3d_desc
.
backbuffer_format
);
desc
->
BufferDesc
.
ScanlineOrdering
=
DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED
;
desc
->
BufferDesc
.
Scaling
=
DXGI_MODE_SCALING_UNSPECIFIED
;
desc
->
SampleDesc
.
Count
=
wined3d_desc
.
multisample_type
;
desc
->
SampleDesc
.
Quality
=
wined3d_desc
.
multisample_quality
;
desc
->
BufferCount
=
wined3d_desc
.
backbuffer_count
;
desc
->
OutputWindow
=
wined3d_desc
.
device_window
;
desc
->
Windowed
=
wined3d_desc
.
windowed
;
desc
->
SwapEffect
=
DXGI_SWAP_EFFECT_DISCARD
;
desc
->
Flags
=
0
;
return
hr
;
}
static
HRESULT
STDMETHODCALLTYPE
dxgi_swapchain_ResizeBuffers
(
IDXGISwapChain
*
iface
,
...
...
dlls/dxgi/utils.c
View file @
d9ce33bf
...
...
@@ -127,6 +127,105 @@ const char *debug_dxgi_format(DXGI_FORMAT format)
#undef WINE_DXGI_TO_STR
DXGI_FORMAT
dxgi_format_from_wined3dformat
(
enum
wined3d_format_id
format
)
{
switch
(
format
)
{
case
WINED3DFMT_UNKNOWN
:
return
DXGI_FORMAT_UNKNOWN
;
case
WINED3DFMT_R32G32B32A32_TYPELESS
:
return
DXGI_FORMAT_R32G32B32A32_TYPELESS
;
case
WINED3DFMT_R32G32B32A32_FLOAT
:
return
DXGI_FORMAT_R32G32B32A32_FLOAT
;
case
WINED3DFMT_R32G32B32A32_UINT
:
return
DXGI_FORMAT_R32G32B32A32_UINT
;
case
WINED3DFMT_R32G32B32A32_SINT
:
return
DXGI_FORMAT_R32G32B32A32_SINT
;
case
WINED3DFMT_R32G32B32_TYPELESS
:
return
DXGI_FORMAT_R32G32B32_TYPELESS
;
case
WINED3DFMT_R32G32B32_FLOAT
:
return
DXGI_FORMAT_R32G32B32_FLOAT
;
case
WINED3DFMT_R32G32B32_UINT
:
return
DXGI_FORMAT_R32G32B32_UINT
;
case
WINED3DFMT_R32G32B32_SINT
:
return
DXGI_FORMAT_R32G32B32_SINT
;
case
WINED3DFMT_R16G16B16A16_TYPELESS
:
return
DXGI_FORMAT_R16G16B16A16_TYPELESS
;
case
WINED3DFMT_R16G16B16A16_FLOAT
:
return
DXGI_FORMAT_R16G16B16A16_FLOAT
;
case
WINED3DFMT_R16G16B16A16_UNORM
:
return
DXGI_FORMAT_R16G16B16A16_UNORM
;
case
WINED3DFMT_R16G16B16A16_UINT
:
return
DXGI_FORMAT_R16G16B16A16_UINT
;
case
WINED3DFMT_R16G16B16A16_SNORM
:
return
DXGI_FORMAT_R16G16B16A16_SNORM
;
case
WINED3DFMT_R16G16B16A16_SINT
:
return
DXGI_FORMAT_R16G16B16A16_SINT
;
case
WINED3DFMT_R32G32_TYPELESS
:
return
DXGI_FORMAT_R32G32_TYPELESS
;
case
WINED3DFMT_R32G32_FLOAT
:
return
DXGI_FORMAT_R32G32_FLOAT
;
case
WINED3DFMT_R32G32_UINT
:
return
DXGI_FORMAT_R32G32_UINT
;
case
WINED3DFMT_R32G32_SINT
:
return
DXGI_FORMAT_R32G32_SINT
;
case
WINED3DFMT_R32G8X24_TYPELESS
:
return
DXGI_FORMAT_R32G8X24_TYPELESS
;
case
WINED3DFMT_D32_FLOAT_S8X24_UINT
:
return
DXGI_FORMAT_D32_FLOAT_S8X24_UINT
;
case
WINED3DFMT_R32_FLOAT_X8X24_TYPELESS
:
return
DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS
;
case
WINED3DFMT_X32_TYPELESS_G8X24_UINT
:
return
DXGI_FORMAT_X32_TYPELESS_G8X24_UINT
;
case
WINED3DFMT_R10G10B10A2_TYPELESS
:
return
DXGI_FORMAT_R10G10B10A2_TYPELESS
;
case
WINED3DFMT_R10G10B10A2_UNORM
:
return
DXGI_FORMAT_R10G10B10A2_UNORM
;
case
WINED3DFMT_R10G10B10A2_UINT
:
return
DXGI_FORMAT_R10G10B10A2_UINT
;
case
WINED3DFMT_R11G11B10_FLOAT
:
return
DXGI_FORMAT_R11G11B10_FLOAT
;
case
WINED3DFMT_R8G8B8A8_TYPELESS
:
return
DXGI_FORMAT_R8G8B8A8_TYPELESS
;
case
WINED3DFMT_R8G8B8A8_UNORM
:
return
DXGI_FORMAT_R8G8B8A8_UNORM
;
case
WINED3DFMT_R8G8B8A8_UNORM_SRGB
:
return
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
;
case
WINED3DFMT_R8G8B8A8_UINT
:
return
DXGI_FORMAT_R8G8B8A8_UINT
;
case
WINED3DFMT_R8G8B8A8_SNORM
:
return
DXGI_FORMAT_R8G8B8A8_SNORM
;
case
WINED3DFMT_R8G8B8A8_SINT
:
return
DXGI_FORMAT_R8G8B8A8_SINT
;
case
WINED3DFMT_R16G16_TYPELESS
:
return
DXGI_FORMAT_R16G16_TYPELESS
;
case
WINED3DFMT_R16G16_FLOAT
:
return
DXGI_FORMAT_R16G16_FLOAT
;
case
WINED3DFMT_R16G16_UNORM
:
return
DXGI_FORMAT_R16G16_UNORM
;
case
WINED3DFMT_R16G16_UINT
:
return
DXGI_FORMAT_R16G16_UINT
;
case
WINED3DFMT_R16G16_SNORM
:
return
DXGI_FORMAT_R16G16_SNORM
;
case
WINED3DFMT_R16G16_SINT
:
return
DXGI_FORMAT_R16G16_SINT
;
case
WINED3DFMT_R32_TYPELESS
:
return
DXGI_FORMAT_R32_TYPELESS
;
case
WINED3DFMT_D32_FLOAT
:
return
DXGI_FORMAT_D32_FLOAT
;
case
WINED3DFMT_R32_FLOAT
:
return
DXGI_FORMAT_R32_FLOAT
;
case
WINED3DFMT_R32_UINT
:
return
DXGI_FORMAT_R32_UINT
;
case
WINED3DFMT_R32_SINT
:
return
DXGI_FORMAT_R32_SINT
;
case
WINED3DFMT_R24G8_TYPELESS
:
return
DXGI_FORMAT_R24G8_TYPELESS
;
case
WINED3DFMT_D24_UNORM_S8_UINT
:
return
DXGI_FORMAT_D24_UNORM_S8_UINT
;
case
WINED3DFMT_R24_UNORM_X8_TYPELESS
:
return
DXGI_FORMAT_R24_UNORM_X8_TYPELESS
;
case
WINED3DFMT_X24_TYPELESS_G8_UINT
:
return
DXGI_FORMAT_X24_TYPELESS_G8_UINT
;
case
WINED3DFMT_R8G8_TYPELESS
:
return
DXGI_FORMAT_R8G8_TYPELESS
;
case
WINED3DFMT_R8G8_UNORM
:
return
DXGI_FORMAT_R8G8_UNORM
;
case
WINED3DFMT_R8G8_UINT
:
return
DXGI_FORMAT_R8G8_UINT
;
case
WINED3DFMT_R8G8_SNORM
:
return
DXGI_FORMAT_R8G8_SNORM
;
case
WINED3DFMT_R8G8_SINT
:
return
DXGI_FORMAT_R8G8_SINT
;
case
WINED3DFMT_R16_TYPELESS
:
return
DXGI_FORMAT_R16_TYPELESS
;
case
WINED3DFMT_R16_FLOAT
:
return
DXGI_FORMAT_R16_FLOAT
;
case
WINED3DFMT_D16_UNORM
:
return
DXGI_FORMAT_D16_UNORM
;
case
WINED3DFMT_R16_UNORM
:
return
DXGI_FORMAT_R16_UNORM
;
case
WINED3DFMT_R16_UINT
:
return
DXGI_FORMAT_R16_UINT
;
case
WINED3DFMT_R16_SNORM
:
return
DXGI_FORMAT_R16_SNORM
;
case
WINED3DFMT_R16_SINT
:
return
DXGI_FORMAT_R16_SINT
;
case
WINED3DFMT_R8_TYPELESS
:
return
DXGI_FORMAT_R8_TYPELESS
;
case
WINED3DFMT_R8_UNORM
:
return
DXGI_FORMAT_R8_UNORM
;
case
WINED3DFMT_R8_UINT
:
return
DXGI_FORMAT_R8_UINT
;
case
WINED3DFMT_R8_SNORM
:
return
DXGI_FORMAT_R8_SNORM
;
case
WINED3DFMT_R8_SINT
:
return
DXGI_FORMAT_R8_SINT
;
case
WINED3DFMT_A8_UNORM
:
return
DXGI_FORMAT_A8_UNORM
;
case
WINED3DFMT_R1_UNORM
:
return
DXGI_FORMAT_R1_UNORM
;
case
WINED3DFMT_R9G9B9E5_SHAREDEXP
:
return
DXGI_FORMAT_R9G9B9E5_SHAREDEXP
;
case
WINED3DFMT_R8G8_B8G8_UNORM
:
return
DXGI_FORMAT_R8G8_B8G8_UNORM
;
case
WINED3DFMT_G8R8_G8B8_UNORM
:
return
DXGI_FORMAT_G8R8_G8B8_UNORM
;
case
WINED3DFMT_BC1_TYPELESS
:
return
DXGI_FORMAT_BC1_TYPELESS
;
case
WINED3DFMT_BC1_UNORM
:
return
DXGI_FORMAT_BC1_UNORM
;
case
WINED3DFMT_BC1_UNORM_SRGB
:
return
DXGI_FORMAT_BC1_UNORM_SRGB
;
case
WINED3DFMT_BC2_TYPELESS
:
return
DXGI_FORMAT_BC2_TYPELESS
;
case
WINED3DFMT_BC2_UNORM
:
return
DXGI_FORMAT_BC2_UNORM
;
case
WINED3DFMT_BC2_UNORM_SRGB
:
return
DXGI_FORMAT_BC2_UNORM_SRGB
;
case
WINED3DFMT_BC3_TYPELESS
:
return
DXGI_FORMAT_BC3_TYPELESS
;
case
WINED3DFMT_BC3_UNORM
:
return
DXGI_FORMAT_BC3_UNORM
;
case
WINED3DFMT_BC3_UNORM_SRGB
:
return
DXGI_FORMAT_BC3_UNORM_SRGB
;
case
WINED3DFMT_BC4_TYPELESS
:
return
DXGI_FORMAT_BC4_TYPELESS
;
case
WINED3DFMT_BC4_UNORM
:
return
DXGI_FORMAT_BC4_UNORM
;
case
WINED3DFMT_BC4_SNORM
:
return
DXGI_FORMAT_BC4_SNORM
;
case
WINED3DFMT_BC5_TYPELESS
:
return
DXGI_FORMAT_BC5_TYPELESS
;
case
WINED3DFMT_BC5_UNORM
:
return
DXGI_FORMAT_BC5_UNORM
;
case
WINED3DFMT_BC5_SNORM
:
return
DXGI_FORMAT_BC5_SNORM
;
case
WINED3DFMT_B5G6R5_UNORM
:
return
DXGI_FORMAT_B5G6R5_UNORM
;
case
WINED3DFMT_B5G5R5A1_UNORM
:
return
DXGI_FORMAT_B5G5R5A1_UNORM
;
case
WINED3DFMT_B8G8R8A8_UNORM
:
return
DXGI_FORMAT_B8G8R8A8_UNORM
;
case
WINED3DFMT_B8G8R8X8_UNORM
:
return
DXGI_FORMAT_B8G8R8X8_UNORM
;
default:
FIXME
(
"Unhandled wined3d format %#x.
\n
"
,
format
);
return
DXGI_FORMAT_UNKNOWN
;
}
}
enum
wined3d_format_id
wined3dformat_from_dxgi_format
(
DXGI_FORMAT
format
)
{
switch
(
format
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment