Commit 62e13708 authored by Akihiro Sagawa's avatar Akihiro Sagawa Committed by Alexandre Julliard

ddraw: Allow to create managed textures with DDSCAPS_TEXTURE|DDSCAPS_3DDEVICE caps.

parent 8bb3ebce
...@@ -6252,6 +6252,7 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_ ...@@ -6252,6 +6252,7 @@ HRESULT ddraw_surface_create(struct ddraw *ddraw, const DDSURFACEDESC2 *surface_
if (desc->ddsCaps.dwCaps2 & (DDSCAPS2_TEXTUREMANAGE | DDSCAPS2_D3DTEXTUREMANAGE)) if (desc->ddsCaps.dwCaps2 & (DDSCAPS2_TEXTUREMANAGE | DDSCAPS2_D3DTEXTUREMANAGE))
{ {
wined3d_desc.bind_flags &= ~WINED3D_BIND_RENDER_TARGET;
wined3d_desc.access = WINED3D_RESOURCE_ACCESS_GPU | WINED3D_RESOURCE_ACCESS_CPU wined3d_desc.access = WINED3D_RESOURCE_ACCESS_GPU | WINED3D_RESOURCE_ACCESS_CPU
| WINED3D_RESOURCE_ACCESS_MAP_R | WINED3D_RESOURCE_ACCESS_MAP_W; | WINED3D_RESOURCE_ACCESS_MAP_R | WINED3D_RESOURCE_ACCESS_MAP_W;
/* Managed textures have the system memory flag set. */ /* Managed textures have the system memory flag set. */
......
...@@ -6231,10 +6231,8 @@ static void test_rt_caps(void) ...@@ -6231,10 +6231,8 @@ static void test_rt_caps(void)
surface_desc.dwWidth = 640; surface_desc.dwWidth = 640;
surface_desc.dwHeight = 480; surface_desc.dwHeight = 480;
hr = IDirectDraw4_CreateSurface(ddraw, &surface_desc, &surface, NULL); hr = IDirectDraw4_CreateSurface(ddraw, &surface_desc, &surface, NULL);
todo_wine_if(i == 10 || i == 11)
ok(SUCCEEDED(hr), "Test %u: Failed to create surface with caps %#x and caps2 %#x, hr %#x.\n", ok(SUCCEEDED(hr), "Test %u: Failed to create surface with caps %#x and caps2 %#x, hr %#x.\n",
i, test_data[i].caps_in, test_data[i].caps2_in, hr); i, test_data[i].caps_in, test_data[i].caps2_in, hr);
if (FAILED(hr)) continue;
memset(&surface_desc, 0, sizeof(surface_desc)); memset(&surface_desc, 0, sizeof(surface_desc));
surface_desc.dwSize = sizeof(surface_desc); surface_desc.dwSize = sizeof(surface_desc);
......
...@@ -5968,10 +5968,8 @@ static void test_rt_caps(void) ...@@ -5968,10 +5968,8 @@ static void test_rt_caps(void)
surface_desc.dwWidth = 640; surface_desc.dwWidth = 640;
surface_desc.dwHeight = 480; surface_desc.dwHeight = 480;
hr = IDirectDraw7_CreateSurface(ddraw, &surface_desc, &surface, NULL); hr = IDirectDraw7_CreateSurface(ddraw, &surface_desc, &surface, NULL);
todo_wine_if(i == 10 || i == 11)
ok(SUCCEEDED(hr), "Test %u: Failed to create surface with caps %#x and caps2 %#x, hr %#x.\n", ok(SUCCEEDED(hr), "Test %u: Failed to create surface with caps %#x and caps2 %#x, hr %#x.\n",
i, test_data[i].caps_in, test_data[i].caps2_in, hr); i, test_data[i].caps_in, test_data[i].caps2_in, hr);
if (FAILED(hr)) continue;
memset(&surface_desc, 0, sizeof(surface_desc)); memset(&surface_desc, 0, sizeof(surface_desc));
surface_desc.dwSize = sizeof(surface_desc); surface_desc.dwSize = sizeof(surface_desc);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment