[PATCH 2/5] wined3d: Pass correct bind flags to swapchain creation functions.
Henri Verbeet
hverbeet at codeweavers.com
Wed Oct 31 04:31:48 CDT 2018
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
dlls/d3d8/device.c | 2 +-
dlls/d3d9/device.c | 2 +-
dlls/ddraw/ddraw.c | 2 +-
dlls/dxgi/device.c | 12 ++++++------
dlls/dxgi/dxgi_private.h | 4 ++--
dlls/dxgi/swapchain.c | 6 +++---
dlls/dxgi/utils.c | 22 +++++++++++-----------
dlls/wined3d/device.c | 8 ++++----
dlls/wined3d/swapchain.c | 12 ++++++------
include/wine/wined3d.h | 2 +-
10 files changed, 36 insertions(+), 36 deletions(-)
diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c
index a09a72b4051..27b32faa445 100644
--- a/dlls/d3d8/device.c
+++ b/dlls/d3d8/device.c
@@ -301,7 +301,7 @@ static BOOL wined3d_swapchain_desc_from_present_parameters(struct wined3d_swapch
swapchain_desc->backbuffer_height = present_parameters->BackBufferHeight;
swapchain_desc->backbuffer_format = wined3dformat_from_d3dformat(present_parameters->BackBufferFormat);
swapchain_desc->backbuffer_count = max(1, present_parameters->BackBufferCount);
- swapchain_desc->backbuffer_usage = WINED3DUSAGE_RENDERTARGET;
+ swapchain_desc->backbuffer_bind_flags = WINED3D_BIND_RENDER_TARGET;
swapchain_desc->multisample_type = present_parameters->MultiSampleType;
swapchain_desc->multisample_quality = 0; /* d3d9 only */
swapchain_desc->swap_effect = wined3dswapeffect_from_d3dswapeffect(present_parameters->SwapEffect);
diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c
index fd92b563356..d4f5a4352ce 100644
--- a/dlls/d3d9/device.c
+++ b/dlls/d3d9/device.c
@@ -335,7 +335,7 @@ static BOOL wined3d_swapchain_desc_from_present_parameters(struct wined3d_swapch
swapchain_desc->backbuffer_height = present_parameters->BackBufferHeight;
swapchain_desc->backbuffer_format = wined3dformat_from_d3dformat(present_parameters->BackBufferFormat);
swapchain_desc->backbuffer_count = max(1, present_parameters->BackBufferCount);
- swapchain_desc->backbuffer_usage = WINED3DUSAGE_RENDERTARGET;
+ swapchain_desc->backbuffer_bind_flags = WINED3D_BIND_RENDER_TARGET;
swapchain_desc->multisample_type = present_parameters->MultiSampleType;
swapchain_desc->multisample_quality = present_parameters->MultiSampleQuality;
swapchain_desc->swap_effect = wined3dswapeffect_from_d3dswapeffect(present_parameters->SwapEffect);
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index 43bc36b80ca..e0aba7bd11a 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -631,7 +631,7 @@ static HRESULT ddraw_create_swapchain(struct ddraw *ddraw, HWND window, BOOL win
swapchain_desc.backbuffer_width = mode.width;
swapchain_desc.backbuffer_height = mode.height;
swapchain_desc.backbuffer_format = mode.format_id;
- swapchain_desc.backbuffer_usage = 0;
+ swapchain_desc.backbuffer_bind_flags = 0;
swapchain_desc.backbuffer_count = 1;
swapchain_desc.swap_effect = WINED3D_SWAP_EFFECT_DISCARD;
swapchain_desc.device_window = window;
diff --git a/dlls/dxgi/device.c b/dlls/dxgi/device.c
index 2c459ca2469..26f248800fa 100644
--- a/dlls/dxgi/device.c
+++ b/dlls/dxgi/device.c
@@ -186,12 +186,12 @@ static HRESULT STDMETHODCALLTYPE dxgi_device_CreateSurface(IWineDXGIDevice *ifac
surface_desc.format = wined3dformat_from_dxgi_format(desc->Format);
wined3d_sample_desc_from_dxgi(&surface_desc.multisample_type,
&surface_desc.multisample_quality, &desc->SampleDesc);
- surface_desc.usage = wined3d_usage_from_dxgi_usage(usage);
- surface_desc.bind_flags = 0;
- if (surface_desc.usage & WINED3DUSAGE_RENDERTARGET)
- surface_desc.bind_flags |= WINED3D_BIND_RENDER_TARGET;
- if (surface_desc.usage & WINED3DUSAGE_TEXTURE)
- surface_desc.bind_flags |= WINED3D_BIND_SHADER_RESOURCE;
+ surface_desc.bind_flags = wined3d_bind_flags_from_dxgi_usage(usage);
+ surface_desc.usage = 0;
+ if (surface_desc.bind_flags & WINED3D_BIND_SHADER_RESOURCE)
+ surface_desc.usage |= WINED3DUSAGE_TEXTURE;
+ if (surface_desc.bind_flags & WINED3D_BIND_RENDER_TARGET)
+ surface_desc.usage |= WINED3DUSAGE_RENDERTARGET;
surface_desc.access = WINED3D_RESOURCE_ACCESS_GPU;
surface_desc.width = desc->Width;
surface_desc.height = desc->Height;
diff --git a/dlls/dxgi/dxgi_private.h b/dlls/dxgi/dxgi_private.h
index 78f188634fc..1268a9ca648 100644
--- a/dlls/dxgi/dxgi_private.h
+++ b/dlls/dxgi/dxgi_private.h
@@ -91,8 +91,8 @@ void wined3d_sample_desc_from_dxgi(enum wined3d_multisample_type *wined3d_type,
unsigned int *wined3d_quality, const DXGI_SAMPLE_DESC *dxgi_desc) DECLSPEC_HIDDEN;
void wined3d_display_mode_from_dxgi(struct wined3d_display_mode *wined3d_mode,
const DXGI_MODE_DESC *mode) DECLSPEC_HIDDEN;
-DXGI_USAGE dxgi_usage_from_wined3d_usage(DWORD wined3d_usage) DECLSPEC_HIDDEN;
-DWORD wined3d_usage_from_dxgi_usage(DXGI_USAGE usage) DECLSPEC_HIDDEN;
+DXGI_USAGE dxgi_usage_from_wined3d_bind_flags(unsigned int wined3d_bind_flags) DECLSPEC_HIDDEN;
+unsigned int wined3d_bind_flags_from_dxgi_usage(DXGI_USAGE usage) DECLSPEC_HIDDEN;
unsigned int dxgi_swapchain_flags_from_wined3d(unsigned int wined3d_flags) DECLSPEC_HIDDEN;
unsigned int wined3d_swapchain_flags_from_dxgi(unsigned int flags) DECLSPEC_HIDDEN;
diff --git a/dlls/dxgi/swapchain.c b/dlls/dxgi/swapchain.c
index 3eefbe50df8..0d325cf61f9 100644
--- a/dlls/dxgi/swapchain.c
+++ b/dlls/dxgi/swapchain.c
@@ -381,7 +381,7 @@ static HRESULT STDMETHODCALLTYPE d3d11_swapchain_GetDesc(IDXGISwapChain1 *iface,
desc->BufferDesc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED;
dxgi_sample_desc_from_wined3d(&desc->SampleDesc,
wined3d_desc.multisample_type, wined3d_desc.multisample_quality);
- desc->BufferUsage = dxgi_usage_from_wined3d_usage(wined3d_desc.backbuffer_usage);
+ desc->BufferUsage = dxgi_usage_from_wined3d_bind_flags(wined3d_desc.backbuffer_bind_flags);
desc->BufferCount = wined3d_desc.backbuffer_count;
desc->OutputWindow = wined3d_desc.device_window;
desc->Windowed = wined3d_desc.windowed;
@@ -538,7 +538,7 @@ static HRESULT STDMETHODCALLTYPE d3d11_swapchain_GetDesc1(IDXGISwapChain1 *iface
desc->Stereo = FALSE;
dxgi_sample_desc_from_wined3d(&desc->SampleDesc,
wined3d_desc.multisample_type, wined3d_desc.multisample_quality);
- desc->BufferUsage = dxgi_usage_from_wined3d_usage(wined3d_desc.backbuffer_usage);
+ desc->BufferUsage = dxgi_usage_from_wined3d_bind_flags(wined3d_desc.backbuffer_bind_flags);
desc->BufferCount = wined3d_desc.backbuffer_count;
desc->Scaling = DXGI_SCALING_STRETCH;
desc->SwapEffect = dxgi_swap_effect_from_wined3d(wined3d_desc.swap_effect);
@@ -858,7 +858,7 @@ HRESULT d3d11_swapchain_create(IWineDXGIDevice *device, HWND window, const DXGI_
wined3d_desc.backbuffer_height = swapchain_desc->Height;
wined3d_desc.backbuffer_format = wined3dformat_from_dxgi_format(swapchain_desc->Format);
wined3d_desc.backbuffer_count = swapchain_desc->BufferCount;
- wined3d_desc.backbuffer_usage = wined3d_usage_from_dxgi_usage(swapchain_desc->BufferUsage);
+ wined3d_desc.backbuffer_bind_flags = wined3d_bind_flags_from_dxgi_usage(swapchain_desc->BufferUsage);
wined3d_sample_desc_from_dxgi(&wined3d_desc.multisample_type,
&wined3d_desc.multisample_quality, &swapchain_desc->SampleDesc);
wined3d_desc.device_window = window;
diff --git a/dlls/dxgi/utils.c b/dlls/dxgi/utils.c
index 73b37fda8b5..3a67cfededf 100644
--- a/dlls/dxgi/utils.c
+++ b/dlls/dxgi/utils.c
@@ -455,34 +455,34 @@ void wined3d_display_mode_from_dxgi(struct wined3d_display_mode *wined3d_mode,
wined3d_mode->scanline_ordering = wined3d_scanline_ordering_from_dxgi(mode->ScanlineOrdering);
}
-DXGI_USAGE dxgi_usage_from_wined3d_usage(DWORD wined3d_usage)
+DXGI_USAGE dxgi_usage_from_wined3d_bind_flags(unsigned int wined3d_bind_flags)
{
DXGI_USAGE dxgi_usage = 0;
- if (wined3d_usage & WINED3DUSAGE_TEXTURE)
+ if (wined3d_bind_flags & WINED3D_BIND_SHADER_RESOURCE)
dxgi_usage |= DXGI_USAGE_SHADER_INPUT;
- if (wined3d_usage & WINED3DUSAGE_RENDERTARGET)
+ if (wined3d_bind_flags & WINED3D_BIND_RENDER_TARGET)
dxgi_usage |= DXGI_USAGE_RENDER_TARGET_OUTPUT;
- wined3d_usage &= ~(WINED3DUSAGE_TEXTURE | WINED3DUSAGE_RENDERTARGET);
- if (wined3d_usage)
- FIXME("Unhandled wined3d usage %#x.\n", wined3d_usage);
+ wined3d_bind_flags &= ~(WINED3D_BIND_SHADER_RESOURCE | WINED3D_BIND_RENDER_TARGET);
+ if (wined3d_bind_flags)
+ FIXME("Unhandled wined3d bind flags %#x.\n", wined3d_bind_flags);
return dxgi_usage;
}
-DWORD wined3d_usage_from_dxgi_usage(DXGI_USAGE dxgi_usage)
+unsigned int wined3d_bind_flags_from_dxgi_usage(DXGI_USAGE dxgi_usage)
{
- DWORD wined3d_usage = 0;
+ unsigned int wined3d_bind_flags = 0;
if (dxgi_usage & DXGI_USAGE_SHADER_INPUT)
- wined3d_usage |= WINED3DUSAGE_TEXTURE;
+ wined3d_bind_flags |= WINED3D_BIND_SHADER_RESOURCE;
if (dxgi_usage & DXGI_USAGE_RENDER_TARGET_OUTPUT)
- wined3d_usage |= WINED3DUSAGE_RENDERTARGET;
+ wined3d_bind_flags |= WINED3D_BIND_RENDER_TARGET;
dxgi_usage &= ~(DXGI_USAGE_SHADER_INPUT | DXGI_USAGE_RENDER_TARGET_OUTPUT);
if (dxgi_usage)
FIXME("Unhandled DXGI usage %#x.\n", dxgi_usage);
- return wined3d_usage;
+ return wined3d_bind_flags;
}
#define DXGI_WINED3D_SWAPCHAIN_FLAGS \
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index 83b8bea9696..5515b27b069 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -1092,7 +1092,7 @@ HRESULT CDECL wined3d_device_init_3d(struct wined3d_device *device,
goto err_out;
}
- if (swapchain_desc->backbuffer_count && swapchain_desc->backbuffer_usage & WINED3DUSAGE_RENDERTARGET)
+ if (swapchain_desc->backbuffer_count && swapchain_desc->backbuffer_bind_flags & WINED3D_BIND_RENDER_TARGET)
{
struct wined3d_resource *back_buffer = &swapchain->back_buffers[0]->resource;
struct wined3d_view_desc view_desc;
@@ -4823,8 +4823,8 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
TRACE("refresh_rate %u\n", swapchain_desc->refresh_rate);
TRACE("auto_restore_display_mode %#x\n", swapchain_desc->auto_restore_display_mode);
- if (swapchain_desc->backbuffer_usage && swapchain_desc->backbuffer_usage != WINED3DUSAGE_RENDERTARGET)
- FIXME("Got unexpected backbuffer usage %#x.\n", swapchain_desc->backbuffer_usage);
+ if (swapchain_desc->backbuffer_bind_flags && swapchain_desc->backbuffer_bind_flags != WINED3D_BIND_RENDER_TARGET)
+ FIXME("Got unexpected backbuffer bind flags %#x.\n", swapchain_desc->backbuffer_bind_flags);
if (swapchain_desc->swap_effect != WINED3D_SWAP_EFFECT_DISCARD
&& swapchain_desc->swap_effect != WINED3D_SWAP_EFFECT_SEQUENTIAL
@@ -4939,7 +4939,7 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
wined3d_rendertarget_view_decref(device->back_buffer_view);
device->back_buffer_view = NULL;
}
- if (swapchain->desc.backbuffer_count && swapchain->desc.backbuffer_usage & WINED3DUSAGE_RENDERTARGET)
+ if (swapchain->desc.backbuffer_count && swapchain->desc.backbuffer_bind_flags & WINED3D_BIND_RENDER_TARGET)
{
struct wined3d_resource *back_buffer = &swapchain->back_buffers[0]->resource;
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
index 768d27fd674..91f96a47a03 100644
--- a/dlls/wined3d/swapchain.c
+++ b/dlls/wined3d/swapchain.c
@@ -917,14 +917,14 @@ static HRESULT swapchain_init(struct wined3d_swapchain *swapchain, struct wined3
goto err;
}
- texture_desc.usage = swapchain->desc.backbuffer_usage;
+ texture_desc.bind_flags = swapchain->desc.backbuffer_bind_flags;
+ texture_desc.usage = 0;
if (device->wined3d->flags & WINED3D_NO3D)
texture_desc.usage |= WINED3DUSAGE_OWNDC;
- texture_desc.bind_flags = 0;
- if (texture_desc.usage & WINED3DUSAGE_RENDERTARGET)
- texture_desc.bind_flags |= WINED3D_BIND_RENDER_TARGET;
- if (texture_desc.usage & WINED3DUSAGE_TEXTURE)
- texture_desc.bind_flags |= WINED3D_BIND_SHADER_RESOURCE;
+ if (texture_desc.bind_flags & WINED3D_BIND_RENDER_TARGET)
+ texture_desc.usage |= WINED3DUSAGE_RENDERTARGET;
+ if (texture_desc.bind_flags & WINED3D_BIND_SHADER_RESOURCE)
+ texture_desc.usage |= WINED3DUSAGE_TEXTURE;
for (i = 0; i < swapchain->desc.backbuffer_count; ++i)
{
TRACE("Creating back buffer %u.\n", i);
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index 7dc47e63d5a..15cbf0895ff 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -1747,7 +1747,7 @@ struct wined3d_swapchain_desc
unsigned int backbuffer_height;
enum wined3d_format_id backbuffer_format;
unsigned int backbuffer_count;
- DWORD backbuffer_usage;
+ unsigned int backbuffer_bind_flags;
enum wined3d_multisample_type multisample_type;
DWORD multisample_quality;
enum wined3d_swap_effect swap_effect;
--
2.11.0
More information about the wine-devel
mailing list