Zebediah Figura : quartz/vmr9: Check for D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES.
Alexandre Julliard
julliard at winehq.org
Tue May 12 16:59:27 CDT 2020
Module: wine
Branch: master
Commit: 32be179a9646292b79e5795c0bc3d8e34e0ec7a3
URL: https://source.winehq.org/git/wine.git/?a=commit;h=32be179a9646292b79e5795c0bc3d8e34e0ec7a3
Author: Zebediah Figura <z.figura12 at gmail.com>
Date: Mon May 11 22:30:14 2020 -0500
quartz/vmr9: Check for D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES.
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/quartz/vmr9.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/dlls/quartz/vmr9.c b/dlls/quartz/vmr9.c
index 32af06e5fa..5ff6346733 100644
--- a/dlls/quartz/vmr9.c
+++ b/dlls/quartz/vmr9.c
@@ -2551,7 +2551,9 @@ static UINT d3d9_adapter_from_hwnd(IDirect3D9 *d3d9, HWND hwnd, HMONITOR *mon_ou
static BOOL CreateRenderingWindow(struct default_presenter *This, VMR9AllocationInfo *info, DWORD *numbuffers)
{
D3DPRESENT_PARAMETERS d3dpp;
+ IDirect3DDevice9 *device;
DWORD d3d9_adapter;
+ D3DCAPS9 caps;
HWND window;
HRESULT hr;
@@ -2573,12 +2575,23 @@ static BOOL CreateRenderingWindow(struct default_presenter *This, VMR9Allocation
d3dpp.BackBufferWidth = info->dwWidth;
d3dpp.BackBufferHeight = info->dwHeight;
- hr = IDirect3D9_CreateDevice(This->d3d9_ptr, d3d9_adapter, D3DDEVTYPE_HAL, NULL, D3DCREATE_MIXED_VERTEXPROCESSING, &d3dpp, &This->d3d9_dev);
+ hr = IDirect3D9_CreateDevice(This->d3d9_ptr, d3d9_adapter, D3DDEVTYPE_HAL,
+ NULL, D3DCREATE_MIXED_VERTEXPROCESSING, &d3dpp, &device);
if (FAILED(hr))
{
ERR("Could not create device: %08x\n", hr);
return FALSE;
}
+
+ IDirect3DDevice9_GetDeviceCaps(device, &caps);
+ if (!(caps.DevCaps2 & D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES))
+ {
+ WARN("Device does not support blitting from textures.\n");
+ IDirect3DDevice9_Release(device);
+ return FALSE;
+ }
+
+ This->d3d9_dev = device;
IVMRSurfaceAllocatorNotify9_SetD3DDevice(This->SurfaceAllocatorNotify, This->d3d9_dev, This->hMon);
if (!(This->d3d9_surfaces = calloc(*numbuffers, sizeof(IDirect3DSurface9 *))))
More information about the wine-cvs
mailing list