Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
wine
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Package registry
Container registry
Model registry
Operate
Terraform modules
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Lorenzo Ferrillo
wine
Commits
d9ce33bf
Commit
d9ce33bf
authored
12 years ago
by
Ričardas Barkauskas
Committed by
Alexandre Julliard
12 years ago
Browse files
Options
Downloads
Patches
Plain Diff
dxgi: Partially implement IDXGISwapChain_GetDesc.
parent
06a8cbcc
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
dlls/dxgi/dxgi_private.h
+1
-0
1 addition, 0 deletions
dlls/dxgi/dxgi_private.h
dlls/dxgi/swapchain.c
+37
-2
37 additions, 2 deletions
dlls/dxgi/swapchain.c
dlls/dxgi/utils.c
+99
-0
99 additions, 0 deletions
dlls/dxgi/utils.c
with
137 additions
and
2 deletions
dlls/dxgi/dxgi_private.h
+
1
−
0
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 */
...
...
This diff is collapsed.
Click to expand it.
dlls/dxgi/swapchain.c
+
37
−
2
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
,
...
...
This diff is collapsed.
Click to expand it.
dlls/dxgi/utils.c
+
99
−
0
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
)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment