winehq.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2025
February
January
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
January
2003
December
November
October
September
August
July
June
May
April
March
February
January
2002
December
November
October
September
August
July
June
May
April
March
February
January
2001
December
November
October
September
August
July
June
May
April
March
February
List overview
wine-commits
April 2013
----- 2025 -----
February 2025
January 2025
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
----- 2003 -----
December 2003
November 2003
October 2003
September 2003
August 2003
July 2003
June 2003
May 2003
April 2003
March 2003
February 2003
January 2003
----- 2002 -----
December 2002
November 2002
October 2002
September 2002
August 2002
July 2002
June 2002
May 2002
April 2002
March 2002
February 2002
January 2002
----- 2001 -----
December 2001
November 2001
October 2001
September 2001
August 2001
July 2001
June 2001
May 2001
April 2001
March 2001
February 2001
wine-commits@winehq.org
2 participants
579 discussions
Start a n
N
ew thread
Stefan Dösinger : d3d9/tests: Fix a test failure on cards that don't support mipmapped cube textures.
by Alexandre Julliard
16 Apr '13
16 Apr '13
Module: wine Branch: master Commit: 6c031274c3f2f4db4d1125465b111ec143e6168d URL:
http://source.winehq.org/git/wine.git/?a=commit;h=6c031274c3f2f4db4d1125465…
Author: Stefan Dösinger <stefan(a)codeweavers.com> Date: Tue Apr 16 14:48:35 2013 +0200 d3d9/tests: Fix a test failure on cards that don't support mipmapped cube textures. --- dlls/d3d9/tests/device.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c index 310f47a..3283a6e 100644 --- a/dlls/d3d9/tests/device.c +++ b/dlls/d3d9/tests/device.c @@ -4653,7 +4653,10 @@ static void test_cube_texture_levels(IDirect3DDevice9 *device) D3DSURFACE_DESC desc; DWORD levels; HRESULT hr; + D3DCAPS9 caps; + hr = IDirect3DDevice9_GetDeviceCaps(device, &caps); + ok(SUCCEEDED(hr), "Failed to get device caps, hr %#x.\n", hr); if (FAILED(IDirect3DDevice9_CreateCubeTexture(device, 64, 0, 0, D3DFMT_X8R8G8B8, D3DPOOL_DEFAULT, &texture, NULL))) { @@ -4662,7 +4665,10 @@ static void test_cube_texture_levels(IDirect3DDevice9 *device) } levels = IDirect3DCubeTexture9_GetLevelCount(texture); - ok(levels == 7, "Got unexpected levels %u.\n", levels); + if (caps.TextureCaps & D3DPTEXTURECAPS_MIPCUBEMAP) + ok(levels == 7, "Got unexpected levels %u.\n", levels); + else + ok(levels == 1, "Got unexpected levels %u.\n", levels); hr = IDirect3DCubeTexture9_GetLevelDesc(texture, levels - 1, &desc); ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
1
0
0
0
Stefan Dösinger : d3d8/tests: Test NPOT texture creation.
by Alexandre Julliard
16 Apr '13
16 Apr '13
Module: wine Branch: master Commit: a18cffb4de203b035ae56d8099ca2e2ab4e5cd06 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=a18cffb4de203b035ae56d809…
Author: Stefan Dösinger <stefan(a)codeweavers.com> Date: Fri Apr 12 10:50:36 2013 +0200 d3d8/tests: Test NPOT texture creation. --- dlls/d3d8/tests/device.c | 124 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 124 insertions(+), 0 deletions(-) diff --git a/dlls/d3d8/tests/device.c b/dlls/d3d8/tests/device.c index 2f281d2..28dce38 100644 --- a/dlls/d3d8/tests/device.c +++ b/dlls/d3d8/tests/device.c @@ -4768,6 +4768,129 @@ static void test_rtpatch(void) DestroyWindow(window); } +static void test_npot_textures(void) +{ + IDirect3DDevice8 *device = NULL; + IDirect3D8 *d3d8; + ULONG refcount; + HWND window = NULL; + HRESULT hr; + D3DCAPS8 caps; + IDirect3DTexture8 *texture; + IDirect3DCubeTexture8 *cube_texture; + IDirect3DVolumeTexture8 *volume_texture; + struct + { + D3DPOOL pool; + const char *pool_name; + HRESULT hr; + } + pools[] = + { + { D3DPOOL_DEFAULT, "D3DPOOL_DEFAULT", D3DERR_INVALIDCALL }, + { D3DPOOL_MANAGED, "D3DPOOL_MANAGED", D3DERR_INVALIDCALL }, + { D3DPOOL_SYSTEMMEM, "D3DPOOL_SYSTEMMEM", D3DERR_INVALIDCALL }, + { D3DPOOL_SCRATCH, "D3DPOOL_SCRATCH", D3D_OK }, + }; + unsigned int i, levels; + BOOL tex_pow2, cube_pow2, vol_pow2; + + if (!(d3d8 = pDirect3DCreate8(D3D_SDK_VERSION))) + { + skip("Failed to create IDirect3D8 object, skipping tests.\n"); + return; + } + + window = CreateWindowA("static", "d3d8_test", WS_OVERLAPPEDWINDOW, + 0, 0, 640, 480, 0, 0, 0, 0); + if (!(device = create_device(d3d8, window, window, TRUE))) + { + skip("Failed to create a D3D device, skipping tests.\n"); + goto done; + } + + hr = IDirect3DDevice8_GetDeviceCaps(device, &caps); + ok(SUCCEEDED(hr), "Failed to get caps, hr %#x.\n", hr); + tex_pow2 = !!(caps.TextureCaps & D3DPTEXTURECAPS_POW2); + cube_pow2 = !!(caps.TextureCaps & D3DPTEXTURECAPS_CUBEMAP_POW2); + vol_pow2 = !!(caps.TextureCaps & D3DPTEXTURECAPS_VOLUMEMAP_POW2); + ok(cube_pow2 == tex_pow2, "Cube texture and 2d texture pow2 restrictions mismatch.\n"); + ok(vol_pow2 == tex_pow2, "Volume texture and 2d texture pow2 restrictions mismatch.\n"); + + for (i = 0; i < sizeof(pools) / sizeof(*pools); i++) + { + for (levels = 0; levels <= 2; levels++) + { + HRESULT expected; + + hr = IDirect3DDevice8_CreateTexture(device, 10, 10, levels, 0, D3DFMT_X8R8G8B8, + pools[i].pool, &texture); + if (!tex_pow2) + { + expected = D3D_OK; + } + else if (caps.TextureCaps & D3DPTEXTURECAPS_NONPOW2CONDITIONAL) + { + if (levels == 1) + expected = D3D_OK; + else + expected = pools[i].hr; + } + else + { + expected = pools[i].hr; + } + ok(hr == expected, "CreateTexture(w=h=10, %s, levels=%u) returned hr %#x, expected %#x.\n", + pools[i].pool_name, levels, hr, expected); + + if (SUCCEEDED(hr)) + IDirect3DTexture8_Release(texture); + } + + hr = IDirect3DDevice8_CreateCubeTexture(device, 3, 1, 0, D3DFMT_X8R8G8B8, + pools[i].pool, &cube_texture); + if (tex_pow2) + { + ok(hr == pools[i].hr, "CreateCubeTexture(EdgeLength=3, %s) returned hr %#x, expected %#x.\n", + pools[i].pool_name, hr, pools[i].hr); + } + else + { + ok(SUCCEEDED(hr), "CreateCubeTexture(EdgeLength=3, %s) returned hr %#x, expected %#x.\n", + pools[i].pool_name, hr, D3D_OK); + } + + if (SUCCEEDED(hr)) + IDirect3DCubeTexture8_Release(cube_texture); + + hr = IDirect3DDevice8_CreateVolumeTexture(device, 2, 2, 3, 1, 0, D3DFMT_X8R8G8B8, + pools[i].pool, &volume_texture); + if (tex_pow2) + { + ok(hr == pools[i].hr, "CreateVolumeTextur(Depth=3, %s) returned hr %#x, expected %#x.\n", + pools[i].pool_name, hr, pools[i].hr); + } + else + { + ok(SUCCEEDED(hr), "CreateVolumeTextur(Depth=3, %s) returned hr %#x, expected %#x.\n", + pools[i].pool_name, hr, D3D_OK); + } + + if (SUCCEEDED(hr)) + IDirect3DVolumeTexture8_Release(volume_texture); + } + +done: + if (device) + { + refcount = IDirect3DDevice8_Release(device); + ok(!refcount, "Device has %u references left.\n", refcount); + } + IDirect3D8_Release(d3d8); + DestroyWindow(window); + +} + START_TEST(device) { HMODULE d3d8_handle = LoadLibraryA( "d3d8.dll" ); @@ -4844,6 +4967,7 @@ START_TEST(device) test_set_palette(); test_swvp_buffer(); test_rtpatch(); + test_npot_textures(); } UnregisterClassA("d3d8_test_wc", GetModuleHandleA(NULL)); }
1
0
0
0
Stefan Dösinger : wined3d: Refuse to create NPOT textures without GL support.
by Alexandre Julliard
16 Apr '13
16 Apr '13
Module: wine Branch: master Commit: c6ed62735d02bd168e435a3911da2b56ea2fa37a URL:
http://source.winehq.org/git/wine.git/?a=commit;h=c6ed62735d02bd168e435a391…
Author: Stefan Dösinger <stefan(a)codeweavers.com> Date: Tue Apr 16 14:48:32 2013 +0200 wined3d: Refuse to create NPOT textures without GL support. --- dlls/wined3d/texture.c | 90 +++++++++++++++++++++++++++++++++--------------- 1 files changed, 62 insertions(+), 28 deletions(-) diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c index 5b83d4a..dc23e14 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c @@ -2,7 +2,7 @@ * Copyright 2002-2005 Jason Edmeades * Copyright 2002-2005 Raphael Junqueira * Copyright 2005 Oliver Stieber - * Copyright 2007-2008 Stefan Dösinger for CodeWeavers + * Copyright 2007-2009, 2013 Stefan Dösinger for CodeWeavers * Copyright 2009-2011 Henri Verbeet for CodeWeavers * * This library is free software; you can redistribute it and/or @@ -760,7 +760,6 @@ static HRESULT cubetexture_init(struct wined3d_texture *texture, UINT edge_lengt { const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; const struct wined3d_format *format = wined3d_get_format(gl_info, format_id); - UINT pow2_edge_length; unsigned int i, j; UINT tmp_w; HRESULT hr; @@ -802,6 +801,27 @@ static HRESULT cubetexture_init(struct wined3d_texture *texture, UINT edge_lengt TRACE("Calculated levels = %u.\n", levels); } + if (!gl_info->supported[ARB_TEXTURE_NON_POWER_OF_TWO]) + { + UINT pow2_edge_length = 1; + while (pow2_edge_length < edge_length) pow2_edge_length <<= 1; + + if (edge_length != pow2_edge_length) + { + if (pool == WINED3D_POOL_SCRATCH) + { + /* SCRATCH textures cannot be used for texturing */ + WARN("Creating a scratch NPOT cube texture despite lack of HW support.\n"); + } + else + { + WARN("Attempted to create a NPOT cube texture (edge_length=%u) without GL support.\n", + edge_length); + return WINED3DERR_INVALIDCALL; + } + } + } + hr = wined3d_texture_init(texture, &texture2d_ops, 6, levels, WINED3D_RTYPE_CUBE_TEXTURE, device, usage, format, pool, parent, parent_ops, &texture2d_resource_ops); @@ -811,27 +831,10 @@ static HRESULT cubetexture_init(struct wined3d_texture *texture, UINT edge_lengt return hr; } - /* Find the nearest pow2 match. */ - pow2_edge_length = 1; - while (pow2_edge_length < edge_length) pow2_edge_length <<= 1; - - if (gl_info->supported[ARB_TEXTURE_NON_POWER_OF_TWO] || (edge_length == pow2_edge_length)) - { - /* Precalculated scaling for 'faked' non power of two texture coords. */ - texture->pow2_matrix[0] = 1.0f; - texture->pow2_matrix[5] = 1.0f; - texture->pow2_matrix[10] = 1.0f; - texture->pow2_matrix[15] = 1.0f; - } - else - { - /* Precalculated scaling for 'faked' non power of two texture coords. */ - texture->pow2_matrix[0] = ((float)edge_length) / ((float)pow2_edge_length); - texture->pow2_matrix[5] = ((float)edge_length) / ((float)pow2_edge_length); - texture->pow2_matrix[10] = ((float)edge_length) / ((float)pow2_edge_length); - texture->pow2_matrix[15] = 1.0f; - texture->flags &= ~WINED3D_TEXTURE_POW2_MAT_IDENT; - } + texture->pow2_matrix[0] = 1.0f; + texture->pow2_matrix[5] = 1.0f; + texture->pow2_matrix[10] = 1.0f; + texture->pow2_matrix[15] = 1.0f; texture->target = GL_TEXTURE_CUBE_MAP_ARB; /* Generate all the surfaces. */ @@ -906,12 +909,19 @@ static HRESULT texture_init(struct wined3d_texture *texture, UINT width, UINT he if (pow2_width != width || pow2_height != height) { - if (levels > 1) + /* levels == 0 returns an error as well */ + if (levels != 1) { - WARN("Attempted to create a mipmapped np2 texture without unconditional np2 support.\n"); - return WINED3DERR_INVALIDCALL; + if (pool == WINED3D_POOL_SCRATCH) + { + WARN("Creating a scratch mipmapped NPOT texture despite lack of HW support.\n"); + } + else + { + WARN("Attempted to create a mipmapped NPOT texture without unconditional NPOT support.\n"); + return WINED3DERR_INVALIDCALL; + } } - levels = 1; } } @@ -1186,6 +1196,31 @@ static HRESULT volumetexture_init(struct wined3d_texture *texture, UINT width, U TRACE("Calculated levels = %u.\n", levels); } + if (!gl_info->supported[ARB_TEXTURE_NON_POWER_OF_TWO]) + { + UINT pow2_w, pow2_h, pow2_d; + pow2_w = 1; + while (pow2_w < width) pow2_w <<= 1; + pow2_h = 1; + while (pow2_h < height) pow2_h <<= 1; + pow2_d = 1; + while (pow2_d < depth) pow2_d <<= 1; + + if (pow2_w != width || pow2_h != height || pow2_d != depth) + { + if (pool == WINED3D_POOL_SCRATCH) + { + WARN("Creating a scratch NPOT volume texture despite lack of HW support.\n"); + } + else + { + WARN("Attempted to create a NPOT volume texture (%u,%u,%u) without GL support.\n", + width, height, depth); + return WINED3DERR_INVALIDCALL; + } + } + } + hr = wined3d_texture_init(texture, &texture3d_ops, 1, levels, WINED3D_RTYPE_VOLUME_TEXTURE, device, usage, format, pool, parent, parent_ops, &texture3d_resource_ops); @@ -1195,7 +1230,6 @@ static HRESULT volumetexture_init(struct wined3d_texture *texture, UINT width, U return hr; } - /* Is NP2 support for volumes needed? */ texture->pow2_matrix[0] = 1.0f; texture->pow2_matrix[5] = 1.0f; texture->pow2_matrix[10] = 1.0f;
1
0
0
0
Stefan Dösinger : d3d9/tests: Test NPOT texture creation.
by Alexandre Julliard
16 Apr '13
16 Apr '13
Module: wine Branch: master Commit: 39e7248d71df4031d755aa5439aeded7643db842 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=39e7248d71df4031d755aa543…
Author: Stefan Dösinger <stefan(a)codeweavers.com> Date: Fri Apr 12 10:47:59 2013 +0200 d3d9/tests: Test NPOT texture creation. --- dlls/d3d9/tests/device.c | 124 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 124 insertions(+), 0 deletions(-) diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c index e1f3c63..310f47a 100644 --- a/dlls/d3d9/tests/device.c +++ b/dlls/d3d9/tests/device.c @@ -6267,6 +6267,129 @@ static void test_rtpatch(void) DestroyWindow(window); } +static void test_npot_textures(void) +{ + IDirect3DDevice9 *device = NULL; + IDirect3D9 *d3d9; + ULONG refcount; + HWND window = NULL; + HRESULT hr; + D3DCAPS9 caps; + IDirect3DTexture9 *texture; + IDirect3DCubeTexture9 *cube_texture; + IDirect3DVolumeTexture9 *volume_texture; + struct + { + D3DPOOL pool; + const char *pool_name; + HRESULT hr; + } + pools[] = + { + { D3DPOOL_DEFAULT, "D3DPOOL_DEFAULT", D3DERR_INVALIDCALL }, + { D3DPOOL_MANAGED, "D3DPOOL_MANAGED", D3DERR_INVALIDCALL }, + { D3DPOOL_SYSTEMMEM, "D3DPOOL_SYSTEMMEM", D3DERR_INVALIDCALL }, + { D3DPOOL_SCRATCH, "D3DPOOL_SCRATCH", D3D_OK }, + }; + unsigned int i, levels; + BOOL tex_pow2, cube_pow2, vol_pow2; + + if (!(d3d9 = pDirect3DCreate9(D3D_SDK_VERSION))) + { + skip("Failed to create IDirect3D9 object, skipping tests.\n"); + return; + } + + window = CreateWindowA("static", "d3d9_test", WS_OVERLAPPEDWINDOW, + 0, 0, 640, 480, 0, 0, 0, 0); + if (!(device = create_device(d3d9, window, window, TRUE))) + { + skip("Failed to create a D3D device, skipping tests.\n"); + goto done; + } + + hr = IDirect3DDevice9_GetDeviceCaps(device, &caps); + ok(SUCCEEDED(hr), "Failed to get caps, hr %#x.\n", hr); + tex_pow2 = !!(caps.TextureCaps & D3DPTEXTURECAPS_POW2); + cube_pow2 = !!(caps.TextureCaps & D3DPTEXTURECAPS_CUBEMAP_POW2); + vol_pow2 = !!(caps.TextureCaps & D3DPTEXTURECAPS_VOLUMEMAP_POW2); + ok(cube_pow2 == tex_pow2, "Cube texture and 2d texture pow2 restrictions mismatch.\n"); + ok(vol_pow2 == tex_pow2, "Volume texture and 2d texture pow2 restrictions mismatch.\n"); + + for (i = 0; i < sizeof(pools) / sizeof(*pools); i++) + { + for (levels = 0; levels <= 2; levels++) + { + HRESULT expected; + + hr = IDirect3DDevice9_CreateTexture(device, 10, 10, levels, 0, D3DFMT_X8R8G8B8, + pools[i].pool, &texture, NULL); + if (!tex_pow2) + { + expected = D3D_OK; + } + else if (caps.TextureCaps & D3DPTEXTURECAPS_NONPOW2CONDITIONAL) + { + if (levels == 1) + expected = D3D_OK; + else + expected = pools[i].hr; + } + else + { + expected = pools[i].hr; + } + ok(hr == expected, "CreateTexture(w=h=10, %s, levels=%u) returned hr %#x, expected %#x.\n", + pools[i].pool_name, levels, hr, expected); + + if (SUCCEEDED(hr)) + IDirect3DTexture9_Release(texture); + } + + hr = IDirect3DDevice9_CreateCubeTexture(device, 3, 1, 0, D3DFMT_X8R8G8B8, pools[i].pool, + &cube_texture, NULL); + if (tex_pow2) + { + ok(hr == pools[i].hr, "CreateCubeTexture(EdgeLength=3, %s) returned hr %#x, expected %#x.\n", + pools[i].pool_name, hr, pools[i].hr); + } + else + { + ok(SUCCEEDED(hr), "CreateCubeTexture(EdgeLength=3, %s) returned hr %#x, expected %#x.\n", + pools[i].pool_name, hr, D3D_OK); + } + + if (SUCCEEDED(hr)) + IDirect3DCubeTexture9_Release(cube_texture); + + hr = IDirect3DDevice9_CreateVolumeTexture(device, 2, 2, 3, 1, 0, D3DFMT_X8R8G8B8, pools[i].pool, + &volume_texture, NULL); + if (tex_pow2) + { + ok(hr == pools[i].hr, "CreateVolumeTextur(Depth=3, %s) returned hr %#x, expected %#x.\n", + pools[i].pool_name, hr, pools[i].hr); + } + else + { + ok(SUCCEEDED(hr), "CreateVolumeTextur(Depth=3, %s) returned hr %#x, expected %#x.\n", + pools[i].pool_name, hr, D3D_OK); + } + + if (SUCCEEDED(hr)) + IDirect3DVolumeTexture9_Release(volume_texture); + } + +done: + if (device) + { + refcount = IDirect3DDevice9_Release(device); + ok(!refcount, "Device has %u references left.\n", refcount); + } + IDirect3D9_Release(d3d9); + DestroyWindow(window); + +} + START_TEST(device) { HMODULE d3d9_handle = LoadLibraryA( "d3d9.dll" ); @@ -6355,6 +6478,7 @@ START_TEST(device) test_set_palette(); test_swvp_buffer(); test_rtpatch(); + test_npot_textures(); } out:
1
0
0
0
Gurmail Bassi : dinput: Update existing joystick values after setting the range property.
by Alexandre Julliard
16 Apr '13
16 Apr '13
Module: wine Branch: master Commit: 37169522f62f85048900cf3329fb54800cbb8f3e URL:
http://source.winehq.org/git/wine.git/?a=commit;h=37169522f62f85048900cf332…
Author: Gurmail Bassi <Gurmail.Bassi(a)mottmac.com> Date: Sun Apr 14 22:25:03 2013 +0100 dinput: Update existing joystick values after setting the range property. --- dlls/dinput/joystick.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 47 insertions(+), 0 deletions(-) diff --git a/dlls/dinput/joystick.c b/dlls/dinput/joystick.c index 73ded55..7da8aac 100644 --- a/dlls/dinput/joystick.c +++ b/dlls/dinput/joystick.c @@ -94,6 +94,7 @@ HRESULT WINAPI JoystickWGenericImpl_SetProperty(LPDIRECTINPUTDEVICE8W iface, REF { JoystickGenericImpl *This = impl_from_IDirectInputDevice8W(iface); DWORD i; + ObjProps remap_props; TRACE("(%p,%s,%p)\n",This,debugstr_guid(rguid),ph); @@ -112,6 +113,28 @@ HRESULT WINAPI JoystickWGenericImpl_SetProperty(LPDIRECTINPUTDEVICE8W iface, REF if (ph->dwHow == DIPH_DEVICE) { TRACE("proprange(%d,%d) all\n", pr->lMin, pr->lMax); for (i = 0; i < This->base.data_format.wine_df->dwNumObjs; i++) { + + remap_props.lDevMin = This->props[i].lMin; + remap_props.lDevMax = This->props[i].lMax; + + remap_props.lDeadZone = This->props[i].lDeadZone; + remap_props.lSaturation = This->props[i].lSaturation; + + remap_props.lMin = pr->lMin; + remap_props.lMax = pr->lMax; + + switch (This->base.data_format.offsets[i]) { + case DIJOFS_X : This->js.lX = joystick_map_axis(&remap_props, This->js.lX); break; + case DIJOFS_Y : This->js.lY = joystick_map_axis(&remap_props, This->js.lY); break; + case DIJOFS_Z : This->js.lZ = joystick_map_axis(&remap_props, This->js.lZ); break; + case DIJOFS_RX : This->js.lRx = joystick_map_axis(&remap_props, This->js.lRx); break; + case DIJOFS_RY : This->js.lRy = joystick_map_axis(&remap_props, This->js.lRy); break; + case DIJOFS_RZ : This->js.lRz = joystick_map_axis(&remap_props, This->js.lRz); break; + case DIJOFS_SLIDER(0): This->js.rglSlider[0] = joystick_map_axis(&remap_props, This->js.rglSlider[0]); break; + case DIJOFS_SLIDER(1): This->js.rglSlider[1] = joystick_map_axis(&remap_props, This->js.rglSlider[1]); break; + default: break; + } + This->props[i].lMin = pr->lMin; This->props[i].lMax = pr->lMax; } @@ -120,6 +143,30 @@ HRESULT WINAPI JoystickWGenericImpl_SetProperty(LPDIRECTINPUTDEVICE8W iface, REF TRACE("proprange(%d,%d) obj=%d\n", pr->lMin, pr->lMax, obj); if (obj >= 0) { + + /*ePSXe polls the joystick immediately after setting the range for calibration purposes, so the old values need to be remapped to the new range before it does so*/ + + remap_props.lDevMin = This->props[obj].lMin; + remap_props.lDevMax = This->props[obj].lMax; + + remap_props.lDeadZone = This->props[obj].lDeadZone; + remap_props.lSaturation = This->props[obj].lSaturation; + + remap_props.lMin = pr->lMin; + remap_props.lMax = pr->lMax; + + switch (ph->dwObj) { + case DIJOFS_X : This->js.lX = joystick_map_axis(&remap_props, This->js.lX); break; + case DIJOFS_Y : This->js.lY = joystick_map_axis(&remap_props, This->js.lY); break; + case DIJOFS_Z : This->js.lZ = joystick_map_axis(&remap_props, This->js.lZ); break; + case DIJOFS_RX : This->js.lRx = joystick_map_axis(&remap_props, This->js.lRx); break; + case DIJOFS_RY : This->js.lRy = joystick_map_axis(&remap_props, This->js.lRy); break; + case DIJOFS_RZ : This->js.lRz = joystick_map_axis(&remap_props, This->js.lRz); break; + case DIJOFS_SLIDER(0): This->js.rglSlider[0] = joystick_map_axis(&remap_props, This->js.rglSlider[0]); break; + case DIJOFS_SLIDER(1): This->js.rglSlider[1] = joystick_map_axis(&remap_props, This->js.rglSlider[1]); break; + default: break; + } + This->props[obj].lMin = pr->lMin; This->props[obj].lMax = pr->lMax; return DI_OK;
1
0
0
0
Alistair Leslie-Hughes : oledb32: Implement DataConvert DBTYPE_BSTR-> DBTYPE_I8.
by Alexandre Julliard
16 Apr '13
16 Apr '13
Module: wine Branch: master Commit: e06cdb62071ec74857c9d6dfff97d092b09f6746 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=e06cdb62071ec74857c9d6dff…
Author: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Date: Tue Apr 16 11:23:59 2013 +1000 oledb32: Implement DataConvert DBTYPE_BSTR->DBTYPE_I8. --- dlls/oledb32/convert.c | 1 + dlls/oledb32/tests/convert.c | 13 +++++++++++++ 2 files changed, 14 insertions(+), 0 deletions(-) diff --git a/dlls/oledb32/convert.c b/dlls/oledb32/convert.c index 9a82956..d23c944 100644 --- a/dlls/oledb32/convert.c +++ b/dlls/oledb32/convert.c @@ -292,6 +292,7 @@ static HRESULT WINAPI convert_DataConvert(IDataConvert* iface, LONGLONG *d = dst; switch(src_type) { + case DBTYPE_BSTR: hr = VarI8FromStr(*(WCHAR**)src, LOCALE_USER_DEFAULT, 0, d); break; case DBTYPE_I8: *d = *(LONGLONG*)src; hr = S_OK; break; default: FIXME("Unimplemented conversion %04x -> I8\n", src_type); return E_NOTIMPL; } diff --git a/dlls/oledb32/tests/convert.c b/dlls/oledb32/tests/convert.c index ef05c40..a2b1366 100644 --- a/dlls/oledb32/tests/convert.c +++ b/dlls/oledb32/tests/convert.c @@ -925,6 +925,8 @@ static void test_converttoi8(void) BYTE src[20]; DBSTATUS dst_status; DBLENGTH dst_len; + static const WCHAR ten[] = {'1','0',0}; + BSTR b; hr = CoCreateInstance(&CLSID_OLEDB_CONVERSIONLIBRARY, NULL, CLSCTX_INPROC_SERVER, &IID_IDataConvert, (void**)&convert); if(FAILED(hr)) @@ -942,6 +944,17 @@ static void test_converttoi8(void) ok(dst_len == sizeof(dst), "got %ld\n", dst_len); ok(dst.QuadPart == 1234, "got %d\n", (int)dst.QuadPart); + dst.QuadPart = 0xcc; + ((ULARGE_INTEGER*)src)->QuadPart = 1234; + b = SysAllocString(ten); + *(BSTR *)src = b; + hr = IDataConvert_DataConvert(convert, DBTYPE_BSTR, DBTYPE_I8, 0, &dst_len, src, &dst, sizeof(dst), 0, &dst_status, 0, 0, 0); + ok(hr == S_OK, "got %08x\n", hr); + ok(dst_status == DBSTATUS_S_OK, "got %08x\n", dst_status); + ok(dst_len == sizeof(dst), "got %ld\n", dst_len); + ok(dst.QuadPart == 10, "got %d\n", (int)dst.QuadPart); + SysFreeString(b); + IDataConvert_Release(convert); }
1
0
0
0
Alistair Leslie-Hughes : oledb32: Implement DataConvert DBTYPE_I8-> DBTYPE_I8.
by Alexandre Julliard
16 Apr '13
16 Apr '13
Module: wine Branch: master Commit: 975f1dcd7a1a5bfa5cb58c5f88d7e372da6793d9 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=975f1dcd7a1a5bfa5cb58c5f8…
Author: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Date: Tue Apr 16 10:34:52 2013 +1000 oledb32: Implement DataConvert DBTYPE_I8->DBTYPE_I8. --- dlls/oledb32/convert.c | 11 +++++++++++ dlls/oledb32/tests/convert.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 0 deletions(-) diff --git a/dlls/oledb32/convert.c b/dlls/oledb32/convert.c index 1cce07a..9a82956 100644 --- a/dlls/oledb32/convert.c +++ b/dlls/oledb32/convert.c @@ -287,6 +287,17 @@ static HRESULT WINAPI convert_DataConvert(IDataConvert* iface, break; } + case DBTYPE_I8: + { + LONGLONG *d = dst; + switch(src_type) + { + case DBTYPE_I8: *d = *(LONGLONG*)src; hr = S_OK; break; + default: FIXME("Unimplemented conversion %04x -> I8\n", src_type); return E_NOTIMPL; + } + break; + } + case DBTYPE_R4: { FLOAT *d = dst; diff --git a/dlls/oledb32/tests/convert.c b/dlls/oledb32/tests/convert.c index 4623825..ef05c40 100644 --- a/dlls/oledb32/tests/convert.c +++ b/dlls/oledb32/tests/convert.c @@ -917,6 +917,34 @@ todo_wine IDataConvert_Release(convert); } +static void test_converttoi8(void) +{ + IDataConvert *convert; + HRESULT hr; + LARGE_INTEGER dst; + BYTE src[20]; + DBSTATUS dst_status; + DBLENGTH dst_len; + + hr = CoCreateInstance(&CLSID_OLEDB_CONVERSIONLIBRARY, NULL, CLSCTX_INPROC_SERVER, &IID_IDataConvert, (void**)&convert); + if(FAILED(hr)) + { + win_skip("Unable to load oledb conversion library\n"); + return; + } + + dst.QuadPart = 0xcc; + ((ULARGE_INTEGER*)src)->QuadPart = 1234; + dst_len = 0x1234; + hr = IDataConvert_DataConvert(convert, DBTYPE_I8, DBTYPE_I8, 0, &dst_len, src, &dst, sizeof(dst), 0, &dst_status, 0, 0, 0); + ok(hr == S_OK, "got %08x\n", hr); + ok(dst_status == DBSTATUS_S_OK, "got %08x\n", dst_status); + ok(dst_len == sizeof(dst), "got %ld\n", dst_len); + ok(dst.QuadPart == 1234, "got %d\n", (int)dst.QuadPart); + + IDataConvert_Release(convert); +} + static void test_converttobstr(void) { IDataConvert *convert; @@ -2530,6 +2558,7 @@ START_TEST(convert) test_canconvert(); test_converttoi2(); test_converttoi4(); + test_converttoi8(); test_converttostr(); test_converttobstr(); test_converttowstr();
1
0
0
0
Alistair Leslie-Hughes : oledb32: Improve fixme in GetConversionSize.
by Alexandre Julliard
16 Apr '13
16 Apr '13
Module: wine Branch: master Commit: faba70adfee4b2a8ccf5fa7539939c8926682f6c URL:
http://source.winehq.org/git/wine.git/?a=commit;h=faba70adfee4b2a8ccf5fa753…
Author: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Date: Tue Apr 16 09:28:04 2013 +1000 oledb32: Improve fixme in GetConversionSize. --- dlls/oledb32/convert.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/dlls/oledb32/convert.c b/dlls/oledb32/convert.c index f4002fb..1cce07a 100644 --- a/dlls/oledb32/convert.c +++ b/dlls/oledb32/convert.c @@ -1074,7 +1074,7 @@ static HRESULT WINAPI convert_GetConversionSize(IDataConvert* iface, } break; default: - FIXME("unimplemented for destination type %d\n", dst_type); + FIXME("unimplemented for conversion %d->%d\n", src_type, dst_type); return E_NOTIMPL; }
1
0
0
0
Alexandre Julliard : include: Use gcc atomic builtins to implement interlocked inlines on non-i386.
by Alexandre Julliard
16 Apr '13
16 Apr '13
Module: wine Branch: master Commit: bfaf23bf8f6eabe03ecb0fa532730db304be8251 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=bfaf23bf8f6eabe03ecb0fa53…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Tue Apr 16 13:23:49 2013 +0200 include: Use gcc atomic builtins to implement interlocked inlines on non-i386. --- include/winbase.h | 155 ++++++++++++++++++++--------------------------------- 1 files changed, 59 insertions(+), 96 deletions(-) diff --git a/include/winbase.h b/include/winbase.h index 902af92..ad51af3 100644 --- a/include/winbase.h +++ b/include/winbase.h @@ -2501,146 +2501,109 @@ static FORCEINLINE PVOID WINAPI InterlockedExchangePointer( PVOID volatile *dest WINBASEAPI LONGLONG WINAPI InterlockedCompareExchange64(LONGLONG volatile*,LONGLONG,LONGLONG); -#else /* __i386__ */ +#elif defined(_MSC_VER) -#if defined(__x86_64__) && defined(_MSC_VER) #pragma intrinsic(_InterlockedCompareExchange) -#endif +#pragma intrinsic(_InterlockedCompareExchangePointer) +#pragma intrinsic(_InterlockedCompareExchange64) +#pragma intrinsic(_InterlockedExchange) +#pragma intrinsic(_InterlockedExchangePointer) +#pragma intrinsic(_InterlockedExchangeAdd) +#pragma intrinsic(_InterlockedIncrement) +#pragma intrinsic(_InterlockedDecrement) static FORCEINLINE LONG WINAPI InterlockedCompareExchange( LONG volatile *dest, LONG xchg, LONG compare ) { -#if defined(__x86_64__) && defined(__GNUC__) - LONG ret; - __asm__ __volatile__( "lock; cmpxchgl %2,(%1)" - : "=a" (ret) : "r" (dest), "r" (xchg), "0" (compare) : "memory" ); - return ret; -#elif defined(__x86_64__) && defined(_MSC_VER) return _InterlockedCompareExchange( dest, xchg, compare ); -#else - extern int interlocked_cmpxchg( int *dest, int xchg, int compare ); - return interlocked_cmpxchg( (int *)dest, xchg, compare ); -#endif } -#if defined(__x86_64__) && defined(_MSC_VER) -#pragma intrinsic(_InterlockedCompareExchangePointer) -#endif - static FORCEINLINE PVOID WINAPI InterlockedCompareExchangePointer( PVOID volatile *dest, PVOID xchg, PVOID compare ) { -#if defined(__x86_64__) && defined(__GNUC__) - PVOID ret; - __asm__ __volatile__( "lock; cmpxchgq %2,(%1)" - : "=a" (ret) : "r" (dest), "r" (xchg), "0" (compare) : "memory" ); - return ret; -#elif defined(__x86_64__) && defined(_MSC_VER) return _InterlockedCompareExchangePointer( dest, xchg, compare ); -#else - extern void *interlocked_cmpxchg_ptr( void **dest, void *xchg, void *compare ); - return interlocked_cmpxchg_ptr( (void **)dest, xchg, compare ); -#endif } -#if defined(__x86_64__) && defined(_MSC_VER) -#pragma intrinsic(_InterlockedCompareExchange64) -#endif - static FORCEINLINE LONGLONG WINAPI InterlockedCompareExchange64( LONGLONG volatile *dest, LONGLONG xchg, LONGLONG compare ) { -#if defined(__x86_64__) && defined(__GNUC__) - LONGLONG ret; - __asm__ __volatile__( "lock; cmpxchgq %2,(%1)" - : "=a" (ret) : "r" (dest), "r" (xchg), "0" (compare) : "memory" ); - return ret; -#elif defined(__x86_64__) && defined(_MSC_VER) return _InterlockedCompareExchange64( dest, xchg, compare ); -#else - extern __int64 interlocked_cmpxchg64( __int64 *dest, __int64 xchg, __int64 compare ); - return interlocked_cmpxchg64( (__int64 *)dest, xchg, compare ); -#endif } -#if defined(__x86_64__) && defined(_MSC_VER) -#pragma intrinsic(_InterlockedExchange) -#endif - static FORCEINLINE LONG WINAPI InterlockedExchange( LONG volatile *dest, LONG val ) { -#if defined(__x86_64__) && defined(__GNUC__) - LONG ret; - __asm__ __volatile__( "lock; xchgl %0,(%1)" - : "=r" (ret) :"r" (dest), "0" (val) : "memory" ); - return ret; -#elif defined(__x86_64__) && defined(_MSC_VER) return _InterlockedExchange( dest, val ); -#else - extern int interlocked_xchg( int *dest, int val ); - return interlocked_xchg( (int *)dest, val ); -#endif } -#if defined(__x86_64__) && defined(_MSC_VER) -#pragma intrinsic(_InterlockedExchangePointer) -#endif - static FORCEINLINE PVOID WINAPI InterlockedExchangePointer( PVOID volatile *dest, PVOID val ) { -#if defined(__x86_64__) && defined(__GNUC__) - PVOID ret; - __asm__ __volatile__( "lock; xchgq %0,(%1)" - : "=r" (ret) :"r" (dest), "0" (val) : "memory" ); - return ret; -#elif defined(__x86_64__) && defined(_MSC_VER) return _InterlockedExchangePointer( dest, val ); -#else - extern void *interlocked_xchg_ptr( void **dest, void *val ); - return interlocked_xchg_ptr( (void **)dest, val ); -#endif } -#if defined(__x86_64__) && defined(_MSC_VER) -#pragma intrinsic(_InterlockedExchangeAdd) -#endif - static FORCEINLINE LONG WINAPI InterlockedExchangeAdd( LONG volatile *dest, LONG incr ) { -#if defined(__x86_64__) && defined(__GNUC__) - LONG ret; - __asm__ __volatile__( "lock; xaddl %0,(%1)" - : "=r" (ret) : "r" (dest), "0" (incr) : "memory" ); - return ret; -#elif defined(__x86_64__) && defined(_MSC_VER) return _InterlockedExchangeAdd( dest, incr ); -#else - extern int interlocked_xchg_add( int *dest, int incr ); - return interlocked_xchg_add( (int *)dest, incr ); -#endif } -#if defined(__x86_64__) && defined(_MSC_VER) -#pragma intrinsic(_InterlockedIncrement) -#endif - static FORCEINLINE LONG WINAPI InterlockedIncrement( LONG volatile *dest ) { -#if defined(__x86_64__) && defined(_MSC_VER) return _InterlockedIncrement( dest ); +} + +static FORCEINLINE LONG WINAPI InterlockedDecrement( LONG volatile *dest ) +{ + return _InterlockedDecrement( dest ); +} + +#elif defined(__GNUC__) + +static FORCEINLINE LONG WINAPI InterlockedCompareExchange( LONG volatile *dest, LONG xchg, LONG compare ) +{ + return __sync_val_compare_and_swap( dest, compare, xchg ); +} + +static FORCEINLINE PVOID WINAPI InterlockedCompareExchangePointer( PVOID volatile *dest, PVOID xchg, PVOID compare ) +{ + return __sync_val_compare_and_swap( dest, compare, xchg ); +} + +static FORCEINLINE LONGLONG WINAPI InterlockedCompareExchange64( LONGLONG volatile *dest, LONGLONG xchg, LONGLONG compare ) +{ + return __sync_val_compare_and_swap( dest, compare, xchg ); +} + +static FORCEINLINE LONG WINAPI InterlockedExchange( LONG volatile *dest, LONG val ) +{ + LONG ret; +#ifdef __x86_64__ + __asm__ __volatile__( "lock; xchgl %0,(%1)" : "=r" (ret) :"r" (dest), "0" (val) : "memory" ); #else - return InterlockedExchangeAdd( dest, 1 ) + 1; + do ret = *dest; while (!__sync_bool_compare_and_swap( dest, ret, val )); #endif + return ret; } -#if defined(__x86_64__) && defined(_MSC_VER) -#pragma intrinsic(_InterlockedDecrement) +static FORCEINLINE PVOID WINAPI InterlockedExchangePointer( PVOID volatile *dest, PVOID val ) +{ + PVOID ret; +#ifdef __x86_64__ + __asm__ __volatile__( "lock; xchgq %0,(%1)" : "=r" (ret) :"r" (dest), "0" (val) : "memory" ); +#else + do ret = *dest; while (!__sync_bool_compare_and_swap( dest, ret, val )); #endif + return ret; +} + +static FORCEINLINE LONG WINAPI InterlockedExchangeAdd( LONG volatile *dest, LONG incr ) +{ + return __sync_fetch_and_add( dest, incr ); +} + +static FORCEINLINE LONG WINAPI InterlockedIncrement( LONG volatile *dest ) +{ + return __sync_add_and_fetch( dest, 1 ); +} static FORCEINLINE LONG WINAPI InterlockedDecrement( LONG volatile *dest ) { -#if defined(__x86_64__) && defined(_MSC_VER) - return _InterlockedDecrement( dest ); -#else - return InterlockedExchangeAdd( dest, -1 ) - 1; -#endif + return __sync_add_and_fetch( dest, -1 ); } #endif /* __i386__ */
1
0
0
0
Henri Verbeet : d3drm/tests: Avoid LPDIRECT3DRM3.
by Alexandre Julliard
16 Apr '13
16 Apr '13
Module: wine Branch: master Commit: 1ce059d6929810b22aeb4e1177fac5afc58d93ef URL:
http://source.winehq.org/git/wine.git/?a=commit;h=1ce059d6929810b22aeb4e117…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Tue Apr 16 08:13:46 2013 +0200 d3drm/tests: Avoid LPDIRECT3DRM3. --- dlls/d3drm/tests/d3drm.c | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dlls/d3drm/tests/d3drm.c b/dlls/d3drm/tests/d3drm.c index 1f90119..9110efa 100644 --- a/dlls/d3drm/tests/d3drm.c +++ b/dlls/d3drm/tests/d3drm.c @@ -527,7 +527,7 @@ static void test_MeshBuilder3(void) { HRESULT hr; IDirect3DRM *d3drm; - LPDIRECT3DRM3 pD3DRM3; + IDirect3DRM3 *d3drm3; LPDIRECT3DRMMESHBUILDER3 pMeshBuilder3; D3DRMLOADMEMORY info; int val; @@ -539,14 +539,14 @@ static void test_MeshBuilder3(void) hr = pDirect3DRMCreate(&d3drm); ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface (hr = %x)\n", hr); - if (FAILED(hr = IDirect3DRM_QueryInterface(d3drm, &IID_IDirect3DRM3, (void **)&pD3DRM3))) + if (FAILED(hr = IDirect3DRM_QueryInterface(d3drm, &IID_IDirect3DRM3, (void **)&d3drm3))) { win_skip("Cannot get IDirect3DRM3 interface (hr = %x), skipping tests\n", hr); IDirect3DRM_Release(d3drm); return; } - hr = IDirect3DRM3_CreateMeshBuilder(pD3DRM3, &pMeshBuilder3); + hr = IDirect3DRM3_CreateMeshBuilder(d3drm3, &pMeshBuilder3); ok(hr == D3DRM_OK, "Cannot get IDirect3DRMMeshBuilder3 interface (hr = %x)\n", hr); hr = IDirect3DRMMeshBuilder3_GetClassName(pMeshBuilder3, NULL, cname); @@ -630,7 +630,7 @@ static void test_MeshBuilder3(void) ok(valv == 3.21f, "Wrong coordinate %f (must be 3.21)\n", valv); IDirect3DRMMeshBuilder3_Release(pMeshBuilder3); - IDirect3DRM3_Release(pD3DRM3); + IDirect3DRM3_Release(d3drm3); IDirect3DRM_Release(d3drm); } @@ -1118,7 +1118,7 @@ static void test_Material2(void) { HRESULT hr; IDirect3DRM *d3drm; - LPDIRECT3DRM3 pD3DRM3; + IDirect3DRM3 *d3drm3; LPDIRECT3DRMMATERIAL2 pMaterial2; D3DVALUE r, g, b; DWORD size; @@ -1127,14 +1127,14 @@ static void test_Material2(void) hr = pDirect3DRMCreate(&d3drm); ok(hr == D3DRM_OK, "Cannot get IDirect3DRM interface (hr = %x)\n", hr); - if (FAILED(hr = IDirect3DRM_QueryInterface(d3drm, &IID_IDirect3DRM3, (void **)&pD3DRM3))) + if (FAILED(hr = IDirect3DRM_QueryInterface(d3drm, &IID_IDirect3DRM3, (void **)&d3drm3))) { win_skip("Cannot get IDirect3DRM3 interface (hr = %x), skipping tests\n", hr); IDirect3DRM_Release(d3drm); return; } - hr = IDirect3DRM3_CreateMaterial(pD3DRM3, 18.5f, &pMaterial2); + hr = IDirect3DRM3_CreateMaterial(d3drm3, 18.5f, &pMaterial2); ok(hr == D3DRM_OK, "Cannot get IDirect3DRMMaterial2 interface (hr = %x)\n", hr); hr = IDirect3DRMMaterial2_GetClassName(pMaterial2, NULL, cname); @@ -1190,7 +1190,7 @@ static void test_Material2(void) IDirect3DRMMaterial2_Release(pMaterial2); - IDirect3DRM3_Release(pD3DRM3); + IDirect3DRM3_Release(d3drm3); IDirect3DRM_Release(d3drm); }
1
0
0
0
← Newer
1
...
22
23
24
25
26
27
28
...
58
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Results per page:
10
25
50
100
200