Module: wine Branch: master Commit: 094f64c823ed65629ebbec78a4b1f5e4583c0142 URL: http://source.winehq.org/git/wine.git/?a=commit;h=094f64c823ed65629ebbec78a4...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Thu Nov 24 22:52:34 2011 +0100
wined3d: Handle changing the backbuffer format in wined3d_device_reset().
---
dlls/wined3d/device.c | 13 +++++++++---- 1 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index d165806..e12f48a 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -5241,6 +5241,8 @@ static HRESULT updateSurfaceDesc(struct wined3d_surface *surface, while (surface->pow2Height < pPresentationParameters->BackBufferHeight) surface->pow2Height <<= 1; }
+ if (!(surface->resource.usage & WINED3DUSAGE_DEPTHSTENCIL)) + surface->resource.format = wined3d_get_format(gl_info, pPresentationParameters->BackBufferFormat); surface->resource.multisample_type = pPresentationParameters->MultiSampleType; surface->resource.multisample_quality = pPresentationParameters->MultiSampleQuality;
@@ -5498,10 +5500,6 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, && present_parameters->BackBufferCount != swapchain->presentParms.BackBufferCount) FIXME("Cannot change the back buffer count yet.\n");
- if (present_parameters->BackBufferFormat != WINED3DFMT_UNKNOWN - && present_parameters->BackBufferFormat != swapchain->presentParms.BackBufferFormat) - FIXME("Cannot change the back buffer format yet.\n"); - if (present_parameters->hDeviceWindow && present_parameters->hDeviceWindow != swapchain->presentParms.hDeviceWindow) FIXME("Cannot change the device window yet.\n"); @@ -5572,6 +5570,13 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, update_desc = TRUE; }
+ if (present_parameters->BackBufferFormat != WINED3DFMT_UNKNOWN + && present_parameters->BackBufferFormat != swapchain->presentParms.BackBufferFormat) + { + swapchain->presentParms.BackBufferFormat = present_parameters->BackBufferFormat; + update_desc = TRUE; + } + if (present_parameters->MultiSampleType != swapchain->presentParms.MultiSampleType || present_parameters->MultiSampleQuality != swapchain->presentParms.MultiSampleQuality) {