Commit ab86a4e9 authored by Stefan Dösinger's avatar Stefan Dösinger Committed by Alexandre Julliard

wined3d: Catch D3DUSAGE_AUTOGENMIPMAP and D3DUSAGE_RENDERTARGET combos.

parent 4066c2e2
...@@ -137,7 +137,7 @@ static void test_cube_texture_mipmap_gen(IDirect3DDevice9 *device_ptr) ...@@ -137,7 +137,7 @@ static void test_cube_texture_mipmap_gen(IDirect3DDevice9 *device_ptr)
hr = IDirect3DDevice9_CreateCubeTexture(device_ptr, 64, 0, (D3DUSAGE_RENDERTARGET | hr = IDirect3DDevice9_CreateCubeTexture(device_ptr, 64, 0, (D3DUSAGE_RENDERTARGET |
D3DUSAGE_AUTOGENMIPMAP), D3DFMT_X8R8G8B8, D3DUSAGE_AUTOGENMIPMAP), D3DFMT_X8R8G8B8,
D3DPOOL_MANAGED, &texture_ptr, 0); D3DPOOL_MANAGED, &texture_ptr, 0);
todo_wine ok(hr == D3DERR_INVALIDCALL, "IDirect3DDevice9_CreateTexture returned 0x%08x, expected 0x%08x\n", ok(hr == D3DERR_INVALIDCALL, "IDirect3DDevice9_CreateTexture returned 0x%08x, expected 0x%08x\n",
hr, D3DERR_INVALIDCALL); hr, D3DERR_INVALIDCALL);
if (texture_ptr) IDirect3DCubeTexture9_Release(texture_ptr); if (texture_ptr) IDirect3DCubeTexture9_Release(texture_ptr);
texture_ptr = NULL; texture_ptr = NULL;
...@@ -186,7 +186,7 @@ static void test_mipmap_gen(IDirect3DDevice9 *device) ...@@ -186,7 +186,7 @@ static void test_mipmap_gen(IDirect3DDevice9 *device)
hr = IDirect3DDevice9_CreateTexture(device, 64, 64, 0, (D3DUSAGE_RENDERTARGET | hr = IDirect3DDevice9_CreateTexture(device, 64, 64, 0, (D3DUSAGE_RENDERTARGET |
D3DUSAGE_AUTOGENMIPMAP), D3DFMT_X8R8G8B8, D3DUSAGE_AUTOGENMIPMAP), D3DFMT_X8R8G8B8,
D3DPOOL_MANAGED, &texture, 0); D3DPOOL_MANAGED, &texture, 0);
todo_wine ok(hr == D3DERR_INVALIDCALL, "IDirect3DDevice9_CreateTexture returned 0x%08x, expected 0x%08x\n", ok(hr == D3DERR_INVALIDCALL, "IDirect3DDevice9_CreateTexture returned 0x%08x, expected 0x%08x\n",
hr, D3DERR_INVALIDCALL); hr, D3DERR_INVALIDCALL);
if (texture) IDirect3DTexture9_Release(texture); if (texture) IDirect3DTexture9_Release(texture);
texture = NULL; texture = NULL;
......
...@@ -768,11 +768,16 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateTexture(IWineD3DDevice *iface, U ...@@ -768,11 +768,16 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateTexture(IWineD3DDevice *iface, U
const GlPixelFormatDesc *glDesc; const GlPixelFormatDesc *glDesc;
getFormatDescEntry(Format, &GLINFO_LOCATION, &glDesc); getFormatDescEntry(Format, &GLINFO_LOCATION, &glDesc);
TRACE("(%p) : Width %d, Height %d, Levels %d, Usage %#x\n", This, Width, Height, Levels, Usage); TRACE("(%p) : Width %d, Height %d, Levels %d, Usage %#x\n", This, Width, Height, Levels, Usage);
TRACE("Format %#x (%s), Pool %#x, ppTexture %p, pSharedHandle %p, parent %p\n", TRACE("Format %#x (%s), Pool %#x, ppTexture %p, pSharedHandle %p, parent %p\n",
Format, debug_d3dformat(Format), Pool, ppTexture, pSharedHandle, parent); Format, debug_d3dformat(Format), Pool, ppTexture, pSharedHandle, parent);
if((Usage & (WINED3DUSAGE_AUTOGENMIPMAP | WINED3DUSAGE_RENDERTARGET)) ==
(WINED3DUSAGE_AUTOGENMIPMAP | WINED3DUSAGE_RENDERTARGET)) {
WARN("Application requests both D3DUSAGE_AUTOGENMIPMAP and D3DUSAGE_RENDERTARGET, which are mutually exclusive\n");
return WINED3DERR_INVALIDCALL;
}
/* TODO: It should only be possible to create textures for formats /* TODO: It should only be possible to create textures for formats
that are reported as supported */ that are reported as supported */
if (WINED3DFMT_UNKNOWN >= Format) { if (WINED3DFMT_UNKNOWN >= Format) {
...@@ -1039,6 +1044,12 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateCubeTexture(IWineD3DDevice *iface ...@@ -1039,6 +1044,12 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateCubeTexture(IWineD3DDevice *iface
const GlPixelFormatDesc *glDesc; const GlPixelFormatDesc *glDesc;
getFormatDescEntry(Format, &GLINFO_LOCATION, &glDesc); getFormatDescEntry(Format, &GLINFO_LOCATION, &glDesc);
if((Usage & (WINED3DUSAGE_AUTOGENMIPMAP | WINED3DUSAGE_RENDERTARGET)) ==
(WINED3DUSAGE_AUTOGENMIPMAP | WINED3DUSAGE_RENDERTARGET)) {
WARN("Application requests both D3DUSAGE_AUTOGENMIPMAP and D3DUSAGE_RENDERTARGET, which are mutually exclusive\n");
return WINED3DERR_INVALIDCALL;
}
/* TODO: It should only be possible to create textures for formats /* TODO: It should only be possible to create textures for formats
that are reported as supported */ that are reported as supported */
if (WINED3DFMT_UNKNOWN >= Format) { if (WINED3DFMT_UNKNOWN >= Format) {
......
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