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
September 2010
----- 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
852 discussions
Start a n
N
ew thread
Owen Rudge : d3dx9: Implement D3DXLoadSurfaceFromFileInMemory.
by Alexandre Julliard
01 Sep '10
01 Sep '10
Module: wine Branch: master Commit: 258dba1a521cff3226db523b012ef3de2599e578 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=258dba1a521cff3226db523b0…
Author: Owen Rudge <orudge(a)codeweavers.com> Date: Tue Aug 31 10:43:35 2010 -0500 d3dx9: Implement D3DXLoadSurfaceFromFileInMemory. --- dlls/d3dx9_36/surface.c | 125 +++++++++++++++++++++++++++++++++++++++- dlls/d3dx9_36/tests/surface.c | 18 +++--- 2 files changed, 129 insertions(+), 14 deletions(-) diff --git a/dlls/d3dx9_36/surface.c b/dlls/d3dx9_36/surface.c index 199209f..f82f1b1 100644 --- a/dlls/d3dx9_36/surface.c +++ b/dlls/d3dx9_36/surface.c @@ -304,11 +304,128 @@ HRESULT WINAPI D3DXLoadSurfaceFromFileInMemory(LPDIRECT3DSURFACE9 pDestSurface, D3DCOLOR Colorkey, D3DXIMAGE_INFO *pSrcInfo) { - FIXME("(%p, %p, %p, %p, %d, %p, %d, %x, %p): stub\n", pDestSurface, pDestPalette, - pDestRect, pSrcData, SrcDataSize, pSrcRect, dwFilter, Colorkey, pSrcInfo); + D3DXIMAGE_INFO imginfo; + HRESULT hr; + + TRACE("(%p, %p, %p, %p, %d, %p, %d, %x, %p)\n", pDestSurface, pDestPalette, pDestRect, pSrcData, + SrcDataSize, pSrcRect, dwFilter, Colorkey, pSrcInfo); + + if (!pDestSurface || !pSrcData | !SrcDataSize) + return D3DERR_INVALIDCALL; + + hr = D3DXGetImageInfoFromFileInMemory(pSrcData, SrcDataSize, &imginfo); + + if (FAILED(hr)) + return hr; + + switch (imginfo.ImageFileFormat) + { + case D3DXIFF_BMP: + case D3DXIFF_PNG: + case D3DXIFF_JPG: + { + IWICImagingFactory *factory; + IWICBitmapDecoder *decoder; + IWICBitmapFrameDecode *bitmapframe; + IWICStream *stream; + + const PixelFormatDesc *formatdesc; + WICRect wicrect; + RECT rect; + + CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); + + if (FAILED(CoCreateInstance(&CLSID_WICImagingFactory, NULL, CLSCTX_INPROC_SERVER, &IID_IWICImagingFactory, (void**)&factory))) + goto cleanup_err; + + if (FAILED(IWICImagingFactory_CreateStream(factory, &stream))) + { + IWICImagingFactory_Release(factory); + goto cleanup_err; + } + + IWICStream_InitializeFromMemory(stream, (BYTE*)pSrcData, SrcDataSize); + + hr = IWICImagingFactory_CreateDecoderFromStream(factory, (IStream*)stream, NULL, 0, &decoder); + + IStream_Release(stream); + IWICImagingFactory_Release(factory); + + if (FAILED(hr)) + goto cleanup_err; + + hr = IWICBitmapDecoder_GetFrame(decoder, 0, &bitmapframe); + + if (FAILED(hr)) + goto cleanup_bmp; + + if (pSrcRect) + { + wicrect.X = pSrcRect->left; + wicrect.Y = pSrcRect->top; + wicrect.Width = pSrcRect->right - pSrcRect->left; + wicrect.Height = pSrcRect->bottom - pSrcRect->top; + } + else + { + wicrect.X = 0; + wicrect.Y = 0; + wicrect.Width = imginfo.Width; + wicrect.Height = imginfo.Height; + } + + SetRect(&rect, 0, 0, wicrect.Width, wicrect.Height); + + formatdesc = get_format_info(imginfo.Format); + + if (formatdesc->format == D3DFMT_UNKNOWN) + { + FIXME("Unsupported pixel format\n"); + hr = D3DXERR_INVALIDDATA; + } + else + { + BYTE *buffer; + DWORD pitch; + + pitch = formatdesc->bytes_per_pixel * wicrect.Width; + buffer = HeapAlloc(GetProcessHeap(), 0, pitch * wicrect.Height); + + hr = IWICBitmapFrameDecode_CopyPixels(bitmapframe, &wicrect, pitch, + pitch * wicrect.Height, buffer); + + if (SUCCEEDED(hr)) + { + hr = D3DXLoadSurfaceFromMemory(pDestSurface, pDestPalette, pDestRect, + buffer, imginfo.Format, pitch, + NULL, &rect, dwFilter, Colorkey); + } + + HeapFree(GetProcessHeap(), 0, buffer); + } - if( !pDestSurface || !pSrcData | !SrcDataSize ) return D3DERR_INVALIDCALL; - return E_NOTIMPL; +cleanup_bmp: + IWICBitmapFrameDecode_Release(bitmapframe); + IWICBitmapDecoder_Release(decoder); + +cleanup_err: + CoUninitialize(); + + if (FAILED(hr)) + return D3DXERR_INVALIDDATA; + + break; + } + + default: + FIXME("Unsupported image file format\n"); + return E_NOTIMPL; + } + + if (pSrcInfo) + *pSrcInfo = imginfo; + + return D3D_OK; } /************************************************************ diff --git a/dlls/d3dx9_36/tests/surface.c b/dlls/d3dx9_36/tests/surface.c index a996e6d..ab47c6f 100644 --- a/dlls/d3dx9_36/tests/surface.c +++ b/dlls/d3dx9_36/tests/surface.c @@ -252,10 +252,8 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device) } else skip("Couldn't create \"testbitmap.bmp\"\n"); if(testdummy_ok) { - todo_wine { - hr = D3DXLoadSurfaceFromFileA(surf, NULL, NULL, "testdummy.bmp", NULL, D3DX_DEFAULT, 0, NULL); - ok(hr == D3DXERR_INVALIDDATA, "D3DXLoadSurfaceFromFile returned %#x, expected %#x\n", hr, D3DXERR_INVALIDDATA); - } + hr = D3DXLoadSurfaceFromFileA(surf, NULL, NULL, "testdummy.bmp", NULL, D3DX_DEFAULT, 0, NULL); + ok(hr == D3DXERR_INVALIDDATA, "D3DXLoadSurfaceFromFile returned %#x, expected %#x\n", hr, D3DXERR_INVALIDDATA); } else skip("Couldn't create \"testdummy.bmp\"\n"); hr = D3DXLoadSurfaceFromFileA(surf, NULL, NULL, NULL, NULL, D3DX_DEFAULT, 0, NULL); @@ -269,11 +267,11 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device) todo_wine { hr = D3DXLoadSurfaceFromResourceA(surf, NULL, NULL, NULL, MAKEINTRESOURCE(IDB_BITMAP_1x1), NULL, D3DX_DEFAULT, 0, NULL); ok(hr == D3D_OK, "D3DXLoadSurfaceFromResource returned %#x, expected %#x\n", hr, D3D_OK); - - hr = D3DXLoadSurfaceFromResourceA(surf, NULL, NULL, NULL, MAKEINTRESOURCE(IDD_BITMAPDATA_1x1), NULL, D3DX_DEFAULT, 0, NULL); - ok(hr == D3D_OK, "D3DXLoadSurfaceFromResource returned %#x, expected %#x\n", hr, D3D_OK); } + hr = D3DXLoadSurfaceFromResourceA(surf, NULL, NULL, NULL, MAKEINTRESOURCE(IDD_BITMAPDATA_1x1), NULL, D3DX_DEFAULT, 0, NULL); + ok(hr == D3D_OK, "D3DXLoadSurfaceFromResource returned %#x, expected %#x\n", hr, D3D_OK); + hr = D3DXLoadSurfaceFromResourceA(surf, NULL, NULL, NULL, NULL, NULL, D3DX_DEFAULT, 0, NULL); ok(hr == D3DXERR_INVALIDDATA, "D3DXLoadSurfaceFromResource returned %#x, expected %#x\n", hr, D3DXERR_INVALIDDATA); @@ -288,11 +286,11 @@ static void test_D3DXLoadSurface(IDirect3DDevice9 *device) todo_wine { hr = D3DXLoadSurfaceFromFileInMemory(surf, NULL, NULL, bmp01, sizeof(bmp01), NULL, D3DX_DEFAULT, 0, NULL); ok(hr == D3D_OK, "D3DXLoadSurfaceFromFileInMemory returned %#x, expected %#x\n", hr, D3D_OK); - - hr = D3DXLoadSurfaceFromFileInMemory(surf, NULL, NULL, noimage, sizeof(noimage), NULL, D3DX_DEFAULT, 0, NULL); - ok(hr == D3DXERR_INVALIDDATA, "D3DXLoadSurfaceFromFileInMemory returned %#x, expected %#x\n", hr, D3DXERR_INVALIDDATA); } + hr = D3DXLoadSurfaceFromFileInMemory(surf, NULL, NULL, noimage, sizeof(noimage), NULL, D3DX_DEFAULT, 0, NULL); + ok(hr == D3DXERR_INVALIDDATA, "D3DXLoadSurfaceFromFileInMemory returned %#x, expected %#x\n", hr, D3DXERR_INVALIDDATA); + hr = D3DXLoadSurfaceFromFileInMemory(surf, NULL, NULL, bmp01, 0, NULL, D3DX_DEFAULT, 0, NULL); ok(hr == D3DERR_INVALIDCALL, "D3DXLoadSurfaceFromFileInMemory returned %#x, expected %#x\n", hr, D3DERR_INVALIDCALL);
1
0
0
0
Owen Rudge : d3dx9: Implement D3DXCreateTextureFromFileInMemoryEx.
by Alexandre Julliard
01 Sep '10
01 Sep '10
Module: wine Branch: master Commit: 3604671a3af6ed1ab3190f1068609f0d9575bdfe URL:
http://source.winehq.org/git/wine.git/?a=commit;h=3604671a3af6ed1ab3190f106…
Author: Owen Rudge <orudge(a)codeweavers.com> Date: Tue Aug 31 10:43:25 2010 -0500 d3dx9: Implement D3DXCreateTextureFromFileInMemoryEx. --- dlls/d3dx9_36/texture.c | 143 ++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 141 insertions(+), 2 deletions(-) diff --git a/dlls/d3dx9_36/texture.c b/dlls/d3dx9_36/texture.c index 4c4bc91..36843e4 100644 --- a/dlls/d3dx9_36/texture.c +++ b/dlls/d3dx9_36/texture.c @@ -284,10 +284,149 @@ HRESULT WINAPI D3DXCreateTextureFromFileInMemoryEx(LPDIRECT3DDEVICE9 device, PALETTEENTRY* palette, LPDIRECT3DTEXTURE9* texture) { - FIXME("(%p, %p, %u, %u, %u, %u, %x, %x, %x, %u, %u, %x, %p, %p, %p): stub\n", device, srcdata, srcdatasize, width, + IDirect3DTexture9 **texptr; + IDirect3DTexture9 *buftex; + IDirect3DSurface9 *surface; + BOOL file_width = FALSE, file_height = FALSE; + BOOL file_format = FALSE, file_miplevels = FALSE; + D3DXIMAGE_INFO imginfo; + D3DCAPS9 caps; + HRESULT hr; + + TRACE("(%p, %p, %u, %u, %u, %u, %x, %x, %x, %u, %u, %x, %p, %p, %p)\n", device, srcdata, srcdatasize, width, height, miplevels, usage, format, pool, filter, mipfilter, colorkey, srcinfo, palette, texture); - return E_NOTIMPL; + /* check for invalid parameters */ + if (!device || !texture || !srcdata || !srcdatasize) + return D3DERR_INVALIDCALL; + + hr = D3DXGetImageInfoFromFileInMemory(srcdata, srcdatasize, &imginfo); + + if (FAILED(hr)) + { + *texture = NULL; + return hr; + } + + /* handle default values */ + if (width == 0 || width == D3DX_DEFAULT_NONPOW2) + width = imginfo.Width; + + if (height == 0 || height == D3DX_DEFAULT_NONPOW2) + height = imginfo.Height; + + if (width == D3DX_DEFAULT) + width = make_pow2(imginfo.Width); + + if (height == D3DX_DEFAULT) + height = make_pow2(imginfo.Height); + + if (format == D3DFMT_UNKNOWN || format == D3DX_DEFAULT) + format = imginfo.Format; + + if (width == D3DX_FROM_FILE) + { + file_width = TRUE; + width = imginfo.Width; + } + + if (height == D3DX_FROM_FILE) + { + file_height = TRUE; + height = imginfo.Height; + } + + if (format == D3DFMT_FROM_FILE) + { + file_format = TRUE; + format = imginfo.Format; + } + + if (miplevels == D3DX_FROM_FILE) + { + file_miplevels = TRUE; + miplevels = imginfo.MipLevels; + } + + /* fix texture creation parameters */ + hr = D3DXCheckTextureRequirements(device, &width, &height, &miplevels, usage, &format, pool); + + if (FAILED(hr)) + { + *texture = NULL; + return hr; + } + + if (((file_width) && (width != imginfo.Width)) || + ((file_height) && (height != imginfo.Height)) || + ((file_format) && (format != imginfo.Format)) || + ((file_miplevels) && (miplevels != imginfo.MipLevels))) + { + return D3DERR_NOTAVAILABLE; + } + + if (FAILED(IDirect3DDevice9_GetDeviceCaps(device, &caps))) + return D3DERR_INVALIDCALL; + + /* Create the to-be-filled texture */ + if ((caps.Caps2 & D3DCAPS2_DYNAMICTEXTURES) && (pool != D3DPOOL_DEFAULT) && (usage != D3DUSAGE_DYNAMIC)) + { + hr = D3DXCreateTexture(device, width, height, miplevels, usage, format, pool, texture); + texptr = texture; + } + else + { + hr = D3DXCreateTexture(device, width, height, miplevels, usage, format, D3DPOOL_SYSTEMMEM, &buftex); + texptr = &buftex; + } + + if (FAILED(hr)) + { + *texture = NULL; + return hr; + } + + /* Load the file */ + IDirect3DTexture9_GetSurfaceLevel(*texptr, 0, &surface); + hr = D3DXLoadSurfaceFromFileInMemory(surface, palette, NULL, srcdata, srcdatasize, NULL, filter, colorkey, NULL); + IDirect3DSurface9_Release(surface); + + if (FAILED(hr)) + { + IDirect3DTexture9_Release(*texptr); + *texture = NULL; + return hr; + } + + hr = D3DXFilterTexture((IDirect3DBaseTexture9*) *texptr, palette, 0, mipfilter); + + if (FAILED(hr)) + { + IDirect3DTexture9_Release(*texptr); + *texture = NULL; + return hr; + } + + /* Move the data to the actual texture if necessary */ + if (texptr == &buftex) + { + hr = D3DXCreateTexture(device, width, height, miplevels, usage, format, pool, texture); + + if (FAILED(hr)) + { + IDirect3DTexture9_Release(buftex); + *texture = NULL; + return hr; + } + + IDirect3DDevice9_UpdateTexture(device, (IDirect3DBaseTexture9*)buftex, (IDirect3DBaseTexture9*)(*texture)); + IDirect3DTexture9_Release(buftex); + } + + if (srcinfo) + *srcinfo = imginfo; + + return D3D_OK; } HRESULT WINAPI D3DXCreateTextureFromFileInMemory(LPDIRECT3DDEVICE9 device,
1
0
0
0
Piotr Caban : msvcp90: Fix incorrect export.
by Alexandre Julliard
01 Sep '10
01 Sep '10
Module: wine Branch: master Commit: e91dae7897bb11011cdda53a9a89866b4e3e4d23 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=e91dae7897bb11011cdda53a9…
Author: Piotr Caban <piotr(a)codeweavers.com> Date: Tue Aug 31 22:50:35 2010 +0200 msvcp90: Fix incorrect export. --- dlls/msvcp80/msvcp80.spec | 4 ++-- dlls/msvcp90/msvcp90.spec | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dlls/msvcp80/msvcp80.spec b/dlls/msvcp80/msvcp80.spec index b5731bb..a3e490e 100644 --- a/dlls/msvcp80/msvcp80.spec +++ b/dlls/msvcp80/msvcp80.spec @@ -801,11 +801,11 @@ @ stub -arch=win32 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_W@Z @ stub -arch=win64 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W0@Z @ stub -arch=win32 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_WABV?$allocator@_W@1@@Z -@ stub -arch=win64 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W@Z +@ cdecl -arch=win64 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W@Z(ptr wstr) msvcp90.??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z @ stub -arch=win32 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W0@Z @ stub -arch=win64 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_WAEBV?$allocator@_W@1@@Z @ thiscall -arch=win32 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z(ptr wstr) msvcp90.??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z -@ cdecl -arch=win64 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_K@Z(ptr wstr) msvcp90.??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_K@Z +@ stub -arch=win64 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_K@Z @ stub -arch=win32 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WABV?$allocator@_W@1@@Z @ stub -arch=win64 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_KAEBV?$allocator@_W@1@@Z @ stub -arch=win32 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WI@Z diff --git a/dlls/msvcp90/msvcp90.spec b/dlls/msvcp90/msvcp90.spec index 0b24240..0c522c5 100644 --- a/dlls/msvcp90/msvcp90.spec +++ b/dlls/msvcp90/msvcp90.spec @@ -795,11 +795,11 @@ @ stub -arch=win32 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_W@Z @ stub -arch=win64 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W0@Z @ stub -arch=win32 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@I_WABV?$allocator@_W@1@@Z -@ stub -arch=win64 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W@Z +@ cdecl -arch=win64 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W@Z(ptr wstr) MSVCP_basic_string_wchar_ctor_cstr @ stub -arch=win32 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W0@Z @ stub -arch=win64 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_WAEBV?$allocator@_W@1@@Z @ thiscall -arch=win32 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_W@Z(ptr wstr) MSVCP_basic_string_wchar_ctor_cstr -@ cdecl -arch=win64 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_K@Z(ptr wstr) MSVCP_basic_string_wchar_ctor_cstr +@ stub -arch=win64 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_K@Z @ stub -arch=win32 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WABV?$allocator@_W@1@@Z @ stub -arch=win64 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@PEB_W_KAEBV?$allocator@_W@1@@Z @ stub -arch=win32 ??0?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@PB_WI@Z
1
0
0
0
Henri Verbeet : d3d9: Move device functions to device.c.
by Alexandre Julliard
01 Sep '10
01 Sep '10
Module: wine Branch: master Commit: 2465b4cf01a19af9dfda4b417a8608f6bcc834b9 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=2465b4cf01a19af9dfda4b417…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Tue Aug 31 18:41:41 2010 +0200 d3d9: Move device functions to device.c. --- dlls/d3d9/d3d9_private.h | 45 ----- dlls/d3d9/device.c | 364 +++++++++++++++++++++++++++++++++++++++++ dlls/d3d9/pixelshader.c | 135 --------------- dlls/d3d9/swapchain.c | 40 ----- dlls/d3d9/vertexdeclaration.c | 43 ----- dlls/d3d9/vertexshader.c | 144 ---------------- 6 files changed, 364 insertions(+), 407 deletions(-) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=2465b4cf01a19af9dfda4…
1
0
0
0
Henri Verbeet : wined3d: Don' t require wined3d object parents to be COM objects.
by Alexandre Julliard
01 Sep '10
01 Sep '10
Module: wine Branch: master Commit: 6c4c351791f70fe055301afc1d89c8f093c1ef2c URL:
http://source.winehq.org/git/wine.git/?a=commit;h=6c4c351791f70fe055301afc1…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Tue Aug 31 18:41:40 2010 +0200 wined3d: Don't require wined3d object parents to be COM objects. --- dlls/d3d10core/inputlayout.c | 4 +- dlls/d3d10core/shader.c | 15 ++-- dlls/d3d10core/texture2d.c | 7 +- dlls/d3d10core/view.c | 12 +--- dlls/d3d8/cubetexture.c | 23 +++-- dlls/d3d8/device.c | 162 ++++++++++++++++++++++--------------- dlls/d3d8/indexbuffer.c | 5 +- dlls/d3d8/pixelshader.c | 5 +- dlls/d3d8/surface.c | 5 +- dlls/d3d8/swapchain.c | 21 +++-- dlls/d3d8/texture.c | 18 +++-- dlls/d3d8/vertexbuffer.c | 5 +- dlls/d3d8/vertexdeclaration.c | 10 +-- dlls/d3d8/vertexshader.c | 5 +- dlls/d3d8/volume.c | 2 +- dlls/d3d8/volumetexture.c | 22 +++-- dlls/d3d9/cubetexture.c | 25 ++++--- dlls/d3d9/device.c | 124 +++++++++++++++++++---------- dlls/d3d9/indexbuffer.c | 5 +- dlls/d3d9/pixelshader.c | 23 +++--- dlls/d3d9/surface.c | 5 +- dlls/d3d9/swapchain.c | 39 ++++++--- dlls/d3d9/texture.c | 20 +++-- dlls/d3d9/vertexbuffer.c | 5 +- dlls/d3d9/vertexdeclaration.c | 41 +++++----- dlls/d3d9/vertexshader.c | 24 +++--- dlls/d3d9/volume.c | 2 +- dlls/d3d9/volumetexture.c | 20 +++-- dlls/ddraw/ddraw.c | 46 +++++------ dlls/ddraw/device.c | 55 ++++--------- dlls/ddraw/palette.c | 2 +- dlls/ddraw/surface.c | 36 ++------- dlls/ddraw/vertexbuffer.c | 2 +- dlls/dxgi/device.c | 11 +-- dlls/dxgi/factory.c | 8 +-- dlls/dxgi/swapchain.c | 12 +-- dlls/wined3d/basetexture.c | 2 +- dlls/wined3d/buffer.c | 9 +- dlls/wined3d/cubetexture.c | 9 ++- dlls/wined3d/device.c | 71 +++++++++-------- dlls/wined3d/directx.c | 12 ++-- dlls/wined3d/palette.c | 12 +-- dlls/wined3d/resource.c | 12 +--- dlls/wined3d/shader.c | 39 +++------ dlls/wined3d/surface.c | 2 +- dlls/wined3d/surface_base.c | 12 ++- dlls/wined3d/swapchain.c | 2 +- dlls/wined3d/swapchain_base.c | 11 +-- dlls/wined3d/texture.c | 9 ++- dlls/wined3d/vertexdeclaration.c | 12 +-- dlls/wined3d/view.c | 11 +-- dlls/wined3d/volume.c | 9 ++- dlls/wined3d/volumetexture.c | 9 ++- dlls/wined3d/wined3d_main.c | 2 +- dlls/wined3d/wined3d_private.h | 52 ++++++------ include/wine/wined3d.idl | 93 +++++++++++----------- 56 files changed, 613 insertions(+), 603 deletions(-) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=6c4c351791f70fe055301…
1
0
0
0
Henri Verbeet : wined3d: Clippers don't need parents.
by Alexandre Julliard
01 Sep '10
01 Sep '10
Module: wine Branch: master Commit: b84d1ce5f7614a2378fc38af14c2e36f450146c5 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=b84d1ce5f7614a2378fc38af1…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Tue Aug 31 18:41:39 2010 +0200 wined3d: Clippers don't need parents. --- dlls/ddraw/clipper.c | 2 +- dlls/wined3d/clipper.c | 18 +++--------------- dlls/wined3d/wined3d.spec | 2 +- dlls/wined3d/wined3d_private.h | 1 - include/wine/wined3d.idl | 4 ++-- 5 files changed, 7 insertions(+), 20 deletions(-) diff --git a/dlls/ddraw/clipper.c b/dlls/ddraw/clipper.c index 11ba667..be03b99 100644 --- a/dlls/ddraw/clipper.c +++ b/dlls/ddraw/clipper.c @@ -309,7 +309,7 @@ HRESULT ddraw_clipper_init(IDirectDrawClipperImpl *clipper) { clipper->lpVtbl = &ddraw_clipper_vtbl; clipper->ref = 1; - clipper->wineD3DClipper = pWineDirect3DCreateClipper((IUnknown *)clipper); + clipper->wineD3DClipper = pWineDirect3DCreateClipper(); if (!clipper->wineD3DClipper) { WARN("Failed to create wined3d clipper.\n"); diff --git a/dlls/wined3d/clipper.c b/dlls/wined3d/clipper.c index 8be3a95..5423cea 100644 --- a/dlls/wined3d/clipper.c +++ b/dlls/wined3d/clipper.c @@ -33,7 +33,6 @@ static HRESULT WINAPI IWineD3DClipperImpl_QueryInterface(IWineD3DClipper *iface, TRACE("iface %p, riid %s, object %p.\n", iface, debugstr_guid(riid), object); if (IsEqualGUID(riid, &IID_IWineD3DClipper) - || IsEqualGUID(riid, &IID_IWineD3DBase) || IsEqualGUID(riid, &IID_IUnknown)) { IUnknown_AddRef(iface); @@ -72,16 +71,6 @@ static ULONG WINAPI IWineD3DClipperImpl_Release(IWineD3DClipper *iface) else return ref; } -static HRESULT WINAPI IWineD3DClipperImpl_GetParent(IWineD3DClipper *iface, IUnknown **Parent) -{ - IWineD3DClipperImpl *This = (IWineD3DClipperImpl *)iface; - TRACE("(%p)->(%p)\n", This, Parent); - - *Parent = This->Parent; - IUnknown_AddRef(*Parent); - return WINED3D_OK; -} - static HRESULT WINAPI IWineD3DClipperImpl_SetHwnd(IWineD3DClipper *iface, DWORD Flags, HWND hWnd) { IWineD3DClipperImpl *This = (IWineD3DClipperImpl *)iface; @@ -176,7 +165,6 @@ static const IWineD3DClipperVtbl IWineD3DClipper_Vtbl = IWineD3DClipperImpl_QueryInterface, IWineD3DClipperImpl_AddRef, IWineD3DClipperImpl_Release, - IWineD3DClipperImpl_GetParent, IWineD3DClipperImpl_GetClipList, IWineD3DClipperImpl_GetHwnd, IWineD3DClipperImpl_IsClipListChanged, @@ -184,11 +172,12 @@ static const IWineD3DClipperVtbl IWineD3DClipper_Vtbl = IWineD3DClipperImpl_SetHwnd }; -IWineD3DClipper* WINAPI WineDirect3DCreateClipper(IUnknown *Parent) +IWineD3DClipper * WINAPI WineDirect3DCreateClipper(void) { IWineD3DClipperImpl *obj; - TRACE("Creating clipper, parent %p\n", Parent); + TRACE("\n"); + obj = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*obj)); if(!obj) { @@ -197,7 +186,6 @@ IWineD3DClipper* WINAPI WineDirect3DCreateClipper(IUnknown *Parent) } obj->lpVtbl = &IWineD3DClipper_Vtbl; - obj->Parent = Parent; IWineD3DClipper_AddRef((IWineD3DClipper *)obj); return (IWineD3DClipper *) obj; diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec index f65ee31..c375b38 100644 --- a/dlls/wined3d/wined3d.spec +++ b/dlls/wined3d/wined3d.spec @@ -1,4 +1,4 @@ @ stdcall WineDirect3DCreate(long ptr) -@ stdcall WineDirect3DCreateClipper(ptr) +@ stdcall WineDirect3DCreateClipper() @ stdcall wined3d_mutex_lock() @ stdcall wined3d_mutex_unlock() diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index a153f3c..66f2182 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -2001,7 +2001,6 @@ typedef struct IWineD3DClipperImpl const IWineD3DClipperVtbl *lpVtbl; LONG ref; - IUnknown *Parent; HWND hWnd; } IWineD3DClipperImpl; diff --git a/include/wine/wined3d.idl b/include/wine/wined3d.idl index 001bc8a..c46b04f 100644 --- a/include/wine/wined3d.idl +++ b/include/wine/wined3d.idl @@ -2344,7 +2344,7 @@ interface IWineD3DPalette : IWineD3DBase local, uuid(8f2bceb1-d338-488c-ab7f-0ec980bf5d2d) ] -interface IWineD3DClipper : IWineD3DBase +interface IWineD3DClipper : IUnknown { HRESULT GetClipList( [in] const RECT *rect, @@ -3389,6 +3389,6 @@ interface IWineD3DDevice : IUnknown } IWineD3D * __stdcall WineDirect3DCreate(UINT dxVersion, IUnknown *parent); -IWineD3DClipper * __stdcall WineDirect3DCreateClipper(IUnknown *parent); +IWineD3DClipper * __stdcall WineDirect3DCreateClipper(void); void __stdcall wined3d_mutex_lock(void); void __stdcall wined3d_mutex_unlock(void);
1
0
0
0
Henri Verbeet : wined3d: Queries don't need parents.
by Alexandre Julliard
01 Sep '10
01 Sep '10
Module: wine Branch: master Commit: 7c675b522a6c52a9d8e587e07a6a28bf69522645 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=7c675b522a6c52a9d8e587e07…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Tue Aug 31 18:41:38 2010 +0200 wined3d: Queries don't need parents. --- dlls/d3d9/query.c | 2 +- dlls/wined3d/device.c | 6 ++-- dlls/wined3d/query.c | 49 +++++++++------------------------------ dlls/wined3d/wined3d_private.h | 4 +-- include/wine/wined3d.idl | 5 +-- 5 files changed, 19 insertions(+), 47 deletions(-) diff --git a/dlls/d3d9/query.c b/dlls/d3d9/query.c index a38dc9d..4a58696 100644 --- a/dlls/d3d9/query.c +++ b/dlls/d3d9/query.c @@ -158,7 +158,7 @@ HRESULT query_init(IDirect3DQuery9Impl *query, IDirect3DDevice9Impl *device, D3D query->ref = 1; wined3d_mutex_lock(); - hr = IWineD3DDevice_CreateQuery(device->WineD3DDevice, type, &query->wineD3DQuery, (IUnknown *)query); + hr = IWineD3DDevice_CreateQuery(device->WineD3DDevice, type, &query->wineD3DQuery); wined3d_mutex_unlock(); if (FAILED(hr)) { diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index caf332f..ce1910f 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -1230,13 +1230,13 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateCubeTexture(IWineD3DDevice *iface } static HRESULT WINAPI IWineD3DDeviceImpl_CreateQuery(IWineD3DDevice *iface, - WINED3DQUERYTYPE type, IWineD3DQuery **query, IUnknown *parent) + WINED3DQUERYTYPE type, IWineD3DQuery **query) { IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface; IWineD3DQueryImpl *object; HRESULT hr; - TRACE("iface %p, type %#x, query %p, parent %p.\n", iface, type, query, parent); + TRACE("iface %p, type %#x, query %p.\n", iface, type, query); object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*object)); if (!object) @@ -1245,7 +1245,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateQuery(IWineD3DDevice *iface, return E_OUTOFMEMORY; } - hr = query_init(object, This, type, parent); + hr = query_init(object, This, type); if (FAILED(hr)) { WARN("Failed to initialize query, hr %#x.\n", hr); diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c index b3c77ea..b3c7a40 100644 --- a/dlls/wined3d/query.c +++ b/dlls/wined3d/query.c @@ -230,27 +230,21 @@ void wined3d_event_query_issue(struct wined3d_event_query *query, IWineD3DDevice context_release(context); } -/* - * Occlusion Queries: - *
http://www.gris.uni-tuebingen.de/~bartz/Publications/paper/hww98.pdf
- *
http://oss.sgi.com/projects/ogl-sample/registry/ARB/occlusion_query.txt
- */ - -/* ******************************************* - IWineD3DQuery IUnknown parts follow - ******************************************* */ -static HRESULT WINAPI IWineD3DQueryImpl_QueryInterface(IWineD3DQuery *iface, REFIID riid, LPVOID *ppobj) +static HRESULT WINAPI IWineD3DQueryImpl_QueryInterface(IWineD3DQuery *iface, REFIID riid, void **object) { - IWineD3DQueryImpl *This = (IWineD3DQueryImpl *)iface; - TRACE("(%p)->(%s,%p)\n",This,debugstr_guid(riid),ppobj); - if (IsEqualGUID(riid, &IID_IUnknown) - || IsEqualGUID(riid, &IID_IWineD3DBase) - || IsEqualGUID(riid, &IID_IWineD3DQuery)) { + TRACE("iface %p, riid %s, object %p.\n", iface, debugstr_guid(riid), object); + + if (IsEqualGUID(riid, &IID_IWineD3DQuery) + || IsEqualGUID(riid, &IID_IUnknown)) + { IUnknown_AddRef(iface); - *ppobj = This; + *object = iface; return S_OK; } - *ppobj = NULL; + + WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid)); + + *object = NULL; return E_NOINTERFACE; } @@ -288,21 +282,6 @@ static ULONG WINAPI IWineD3DQueryImpl_Release(IWineD3DQuery *iface) { return ref; } -/* ******************************************* - IWineD3DQuery IWineD3DQuery parts follow - ******************************************* */ -static HRESULT WINAPI IWineD3DQueryImpl_GetParent(IWineD3DQuery *iface, IUnknown **parent) -{ - TRACE("iface %p, parent %p.\n", iface, parent); - - *parent = (IUnknown *)parent; - IUnknown_AddRef(*parent); - - TRACE("Returning %p.\n", *parent); - - return WINED3D_OK; -} - static HRESULT WINAPI IWineD3DOcclusionQueryImpl_GetData(IWineD3DQuery* iface, void* pData, DWORD dwSize, DWORD dwGetDataFlags) { IWineD3DQueryImpl *This = (IWineD3DQueryImpl *) iface; struct wined3d_occlusion_query *query = This->extendedData; @@ -554,7 +533,6 @@ static const IWineD3DQueryVtbl IWineD3DEventQuery_Vtbl = IWineD3DQueryImpl_AddRef, IWineD3DQueryImpl_Release, /*** IWineD3Dquery methods ***/ - IWineD3DQueryImpl_GetParent, IWineD3DEventQueryImpl_GetData, IWineD3DEventQueryImpl_GetDataSize, IWineD3DQueryImpl_GetType, @@ -568,15 +546,13 @@ static const IWineD3DQueryVtbl IWineD3DOcclusionQuery_Vtbl = IWineD3DQueryImpl_AddRef, IWineD3DQueryImpl_Release, /*** IWineD3Dquery methods ***/ - IWineD3DQueryImpl_GetParent, IWineD3DOcclusionQueryImpl_GetData, IWineD3DOcclusionQueryImpl_GetDataSize, IWineD3DQueryImpl_GetType, IWineD3DOcclusionQueryImpl_Issue }; -HRESULT query_init(IWineD3DQueryImpl *query, IWineD3DDeviceImpl *device, - WINED3DQUERYTYPE type, IUnknown *parent) +HRESULT query_init(IWineD3DQueryImpl *query, IWineD3DDeviceImpl *device, WINED3DQUERYTYPE type) { const struct wined3d_gl_info *gl_info = &device->adapter->gl_info; @@ -638,7 +614,6 @@ HRESULT query_init(IWineD3DQueryImpl *query, IWineD3DDeviceImpl *device, query->type = type; query->state = QUERY_CREATED; query->device = device; - query->parent = parent; query->ref = 1; return WINED3D_OK; diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 7c81754..a153f3c 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -2442,7 +2442,6 @@ typedef struct IWineD3DQueryImpl const IWineD3DQueryVtbl *lpVtbl; LONG ref; /* Note: Ref counting not required */ - IUnknown *parent; IWineD3DDeviceImpl *device; /* IWineD3DQuery fields */ @@ -2452,8 +2451,7 @@ typedef struct IWineD3DQueryImpl void *extendedData; } IWineD3DQueryImpl; -HRESULT query_init(IWineD3DQueryImpl *query, IWineD3DDeviceImpl *device, - WINED3DQUERYTYPE type, IUnknown *parent) DECLSPEC_HIDDEN; +HRESULT query_init(IWineD3DQueryImpl *query, IWineD3DDeviceImpl *device, WINED3DQUERYTYPE type) DECLSPEC_HIDDEN; /* IWineD3DBuffer */ diff --git a/include/wine/wined3d.idl b/include/wine/wined3d.idl index f10c35f..001bc8a 100644 --- a/include/wine/wined3d.idl +++ b/include/wine/wined3d.idl @@ -2658,7 +2658,7 @@ interface IWineD3DStateBlock : IUnknown local, uuid(905ddbac-6f30-11d9-c687-00046142c14f) ] -interface IWineD3DQuery : IWineD3DBase +interface IWineD3DQuery : IUnknown { HRESULT GetData( [out] void *data, @@ -2888,8 +2888,7 @@ interface IWineD3DDevice : IUnknown ); HRESULT CreateQuery( [in] WINED3DQUERYTYPE type, - [out] IWineD3DQuery **query, - [in] IUnknown *parent + [out] IWineD3DQuery **query ); HRESULT CreateSwapChain( [in] WINED3DPRESENT_PARAMETERS *present_parameters,
1
0
0
0
Henri Verbeet : wined3d: Devices don't need parents.
by Alexandre Julliard
01 Sep '10
01 Sep '10
Module: wine Branch: master Commit: 2ef400901dccccaba631a2f73831167c442afcd5 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=2ef400901dccccaba631a2f73…
Author: Henri Verbeet <hverbeet(a)codeweavers.com> Date: Tue Aug 31 18:41:37 2010 +0200 wined3d: Devices don't need parents. --- dlls/d3d8/device.c | 2 +- dlls/d3d9/device.c | 2 +- dlls/ddraw/ddraw.c | 2 +- dlls/dxgi/device.c | 2 +- dlls/wined3d/device.c | 32 +++++++++++--------------------- dlls/wined3d/directx.c | 13 +++++-------- dlls/wined3d/wined3d_private.h | 3 +-- include/wine/wined3d.idl | 3 +-- 8 files changed, 22 insertions(+), 37 deletions(-) diff --git a/dlls/d3d8/device.c b/dlls/d3d8/device.c index 6d89a48..9572199 100644 --- a/dlls/d3d8/device.c +++ b/dlls/d3d8/device.c @@ -2796,7 +2796,7 @@ HRESULT device_init(IDirect3DDevice8Impl *device, IWineD3D *wined3d, UINT adapte if (!(flags & D3DCREATE_FPU_PRESERVE)) setup_fpu(); wined3d_mutex_lock(); - hr = IWineD3D_CreateDevice(wined3d, adapter, device_type, focus_window, flags, (IUnknown *)device, + hr = IWineD3D_CreateDevice(wined3d, adapter, device_type, focus_window, flags, (IWineD3DDeviceParent *)&device->device_parent_vtbl, &device->WineD3DDevice); if (FAILED(hr)) { diff --git a/dlls/d3d9/device.c b/dlls/d3d9/device.c index 7fab981..87cc65c 100644 --- a/dlls/d3d9/device.c +++ b/dlls/d3d9/device.c @@ -2857,7 +2857,7 @@ HRESULT device_init(IDirect3DDevice9Impl *device, IWineD3D *wined3d, UINT adapte if (!(flags & D3DCREATE_FPU_PRESERVE)) setup_fpu(); wined3d_mutex_lock(); - hr = IWineD3D_CreateDevice(wined3d, adapter, device_type, focus_window, flags, (IUnknown *)device, + hr = IWineD3D_CreateDevice(wined3d, adapter, device_type, focus_window, flags, (IWineD3DDeviceParent *)&device->device_parent_vtbl, &device->WineD3DDevice); if (FAILED(hr)) { diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c index d250fb5..451298c 100644 --- a/dlls/ddraw/ddraw.c +++ b/dlls/ddraw/ddraw.c @@ -5722,7 +5722,7 @@ HRESULT ddraw_init(IDirectDrawImpl *ddraw, WINED3DDEVTYPE device_type) return E_OUTOFMEMORY; } - hr = IWineD3D_CreateDevice(ddraw->wineD3D, WINED3DADAPTER_DEFAULT, device_type, NULL, 0, (IUnknown *)ddraw, + hr = IWineD3D_CreateDevice(ddraw->wineD3D, WINED3DADAPTER_DEFAULT, device_type, NULL, 0, (IWineD3DDeviceParent *)&ddraw->device_parent_vtbl, &ddraw->wineD3DDevice); if (FAILED(hr)) { diff --git a/dlls/dxgi/device.c b/dlls/dxgi/device.c index 616be6a..2478063 100644 --- a/dlls/dxgi/device.c +++ b/dlls/dxgi/device.c @@ -394,7 +394,7 @@ HRESULT dxgi_device_init(struct dxgi_device *device, struct dxgi_device_layer *l FIXME("Ignoring adapter type.\n"); EnterCriticalSection(&dxgi_cs); hr = IWineD3D_CreateDevice(wined3d, adapter_ordinal, WINED3DDEVTYPE_HAL, NULL, 0, - (IUnknown *)device, wined3d_device_parent, &device->wined3d_device); + wined3d_device_parent, &device->wined3d_device); IWineD3DDeviceParent_Release(wined3d_device_parent); IWineD3D_Release(wined3d); LeaveCriticalSection(&dxgi_cs); diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 9b2cf93..caf332f 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -815,19 +815,21 @@ HRESULT device_clear_render_targets(IWineD3DDeviceImpl *device, UINT rt_count, I * IUnknown parts follows **********************************************************/ -static HRESULT WINAPI IWineD3DDeviceImpl_QueryInterface(IWineD3DDevice *iface,REFIID riid,LPVOID *ppobj) +static HRESULT WINAPI IWineD3DDeviceImpl_QueryInterface(IWineD3DDevice *iface, REFIID riid, void **object) { - IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface; + TRACE("iface %p, riid %s, object %p.\n", iface, debugstr_guid(riid), object); - TRACE("(%p)->(%s,%p)\n",This,debugstr_guid(riid),ppobj); - if (IsEqualGUID(riid, &IID_IUnknown) - || IsEqualGUID(riid, &IID_IWineD3DBase) - || IsEqualGUID(riid, &IID_IWineD3DDevice)) { + if (IsEqualGUID(riid, &IID_IWineD3DDevice) + || IsEqualGUID(riid, &IID_IUnknown)) + { IUnknown_AddRef(iface); - *ppobj = This; + *object = iface; return S_OK; } - *ppobj = NULL; + + WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(riid)); + + *object = NULL; return E_NOINTERFACE; } @@ -883,16 +885,6 @@ static ULONG WINAPI IWineD3DDeviceImpl_Release(IWineD3DDevice *iface) { return refCount; } -/********************************************************** - * IWineD3DDevice implementation follows - **********************************************************/ -static HRESULT WINAPI IWineD3DDeviceImpl_GetParent(IWineD3DDevice *iface, IUnknown **pParent) { - IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface; - *pParent = This->parent; - IUnknown_AddRef(This->parent); - return WINED3D_OK; -} - static HRESULT WINAPI IWineD3DDeviceImpl_CreateBuffer(IWineD3DDevice *iface, struct wined3d_buffer_desc *desc, const void *data, IUnknown *parent, const struct wined3d_parent_ops *parent_ops, IWineD3DBuffer **buffer) { @@ -6646,7 +6638,6 @@ static const IWineD3DDeviceVtbl IWineD3DDevice_Vtbl = IWineD3DDeviceImpl_AddRef, IWineD3DDeviceImpl_Release, /*** IWineD3DDevice methods ***/ - IWineD3DDeviceImpl_GetParent, /*** Creation methods**/ IWineD3DDeviceImpl_CreateBuffer, IWineD3DDeviceImpl_CreateVertexBuffer, @@ -6791,7 +6782,7 @@ static const IWineD3DDeviceVtbl IWineD3DDevice_Vtbl = HRESULT device_init(IWineD3DDeviceImpl *device, IWineD3DImpl *wined3d, UINT adapter_idx, WINED3DDEVTYPE device_type, HWND focus_window, DWORD flags, - IUnknown *parent, IWineD3DDeviceParent *device_parent) + IWineD3DDeviceParent *device_parent) { struct wined3d_adapter *adapter = &wined3d->adapters[adapter_idx]; const struct fragment_pipeline *fragment_pipeline; @@ -6806,7 +6797,6 @@ HRESULT device_init(IWineD3DDeviceImpl *device, IWineD3DImpl *wined3d, device->wined3d = (IWineD3D *)wined3d; IWineD3D_AddRef(device->wined3d); device->adapter = wined3d->adapter_count ? adapter : NULL; - device->parent = parent; device->device_parent = device_parent; list_init(&device->resources); list_init(&device->shaders); diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index 01b4e46..2960c2a 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -4831,18 +4831,15 @@ static HRESULT WINAPI IWineD3DImpl_GetDeviceCaps(IWineD3D *iface, UINT Adapter, return WINED3D_OK; } -static HRESULT WINAPI IWineD3DImpl_CreateDevice(IWineD3D *iface, UINT adapter_idx, - WINED3DDEVTYPE device_type, HWND focus_window, DWORD flags, IUnknown *parent, - IWineD3DDeviceParent *device_parent, IWineD3DDevice **device) +static HRESULT WINAPI IWineD3DImpl_CreateDevice(IWineD3D *iface, UINT adapter_idx, WINED3DDEVTYPE device_type, + HWND focus_window, DWORD flags, IWineD3DDeviceParent *device_parent, IWineD3DDevice **device) { IWineD3DImpl *This = (IWineD3DImpl *)iface; IWineD3DDeviceImpl *object; HRESULT hr; - TRACE("iface %p, adapter_idx %u, device_type %#x, focus_window %p, flags %#x.\n" - "parent %p, device_parent %p, device %p.\n", - iface, adapter_idx, device_type, focus_window, flags, - parent, device_parent, device); + TRACE("iface %p, adapter_idx %u, device_type %#x, focus_window %p, flags %#x, device_parent %p, device %p.\n", + iface, adapter_idx, device_type, focus_window, flags, device_parent, device); /* Validate the adapter number. If no adapters are available(no GL), ignore the adapter * number and create a device without a 3D adapter for 2D only operation. */ @@ -4858,7 +4855,7 @@ static HRESULT WINAPI IWineD3DImpl_CreateDevice(IWineD3D *iface, UINT adapter_id return E_OUTOFMEMORY; } - hr = device_init(object, This, adapter_idx, device_type, focus_window, flags, parent, device_parent); + hr = device_init(object, This, adapter_idx, device_type, focus_window, flags, device_parent); if (FAILED(hr)) { WARN("Failed to initialize device, hr %#x.\n", hr); diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 914814d..7c81754 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -1567,7 +1567,6 @@ struct IWineD3DDeviceImpl LONG ref; /* Note: Ref counting not required */ /* WineD3D Information */ - IUnknown *parent; IWineD3DDeviceParent *device_parent; IWineD3D *wined3d; struct wined3d_adapter *adapter; @@ -1702,7 +1701,7 @@ void device_context_remove(IWineD3DDeviceImpl *device, struct wined3d_context *c void device_get_draw_rect(IWineD3DDeviceImpl *device, RECT *rect) DECLSPEC_HIDDEN; HRESULT device_init(IWineD3DDeviceImpl *device, IWineD3DImpl *wined3d, UINT adapter_idx, WINED3DDEVTYPE device_type, HWND focus_window, DWORD flags, - IUnknown *parent, IWineD3DDeviceParent *device_parent) DECLSPEC_HIDDEN; + IWineD3DDeviceParent *device_parent) DECLSPEC_HIDDEN; void device_preload_textures(IWineD3DDeviceImpl *device) DECLSPEC_HIDDEN; LRESULT device_process_message(IWineD3DDeviceImpl *device, HWND window, UINT message, WPARAM wparam, LPARAM lparam, WNDPROC proc) DECLSPEC_HIDDEN; diff --git a/include/wine/wined3d.idl b/include/wine/wined3d.idl index bff4012..f10c35f 100644 --- a/include/wine/wined3d.idl +++ b/include/wine/wined3d.idl @@ -2264,7 +2264,6 @@ interface IWineD3D : IWineD3DBase [in] WINED3DDEVTYPE device_type, [in] HWND focus_window, [in] DWORD behaviour_flags, - [in] IUnknown *parent, [in] IWineD3DDeviceParent *device_parent, [out] IWineD3DDevice **device ); @@ -2793,7 +2792,7 @@ interface IWineD3DPixelShader : IWineD3DBaseShader local, uuid(6d10a2ce-09d0-4a53-a427-11388f9f8ca5) ] -interface IWineD3DDevice : IWineD3DBase +interface IWineD3DDevice : IUnknown { HRESULT CreateBuffer( [in] struct wined3d_buffer_desc *desc,
1
0
0
0
Alexandre Julliard : opengl32: Use float type where appropriate in the spec file.
by Alexandre Julliard
01 Sep '10
01 Sep '10
Module: wine Branch: master Commit: 658b048940e837e988487a64a4be3d4c6ebd9331 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=658b048940e837e988487a64a…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Tue Aug 31 22:22:01 2010 +0200 opengl32: Use float type where appropriate in the spec file. --- dlls/opengl32/make_opengl | 5 +- dlls/opengl32/opengl32.spec | 88 +++++++++++++++++++++--------------------- 2 files changed, 46 insertions(+), 47 deletions(-) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=658b048940e837e988487…
1
0
0
0
Alexandre Julliard : opengl32: Update to the latest GL spec.
by Alexandre Julliard
01 Sep '10
01 Sep '10
Module: wine Branch: master Commit: abef41a9835e5bac1badb1f3d7dbcda577fe03b5 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=abef41a9835e5bac1badb1f3d…
Author: Alexandre Julliard <julliard(a)winehq.org> Date: Tue Aug 31 22:19:54 2010 +0200 opengl32: Update to the latest GL spec. --- dlls/opengl32/make_opengl | 14 +- dlls/opengl32/opengl_ext.c | 2164 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 2134 insertions(+), 44 deletions(-) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=abef41a9835e5bac1badb…
1
0
0
0
← Newer
1
...
82
83
84
85
86
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
Results per page:
10
25
50
100
200