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
February 2007
----- 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
4 participants
839 discussions
Start a n
N
ew thread
Stefan Dösinger : wined3d: Load one bump mapping environment matrix into pixel shaders if needed.
by Alexandre Julliard
15 Feb '07
15 Feb '07
Module: wine Branch: master Commit: 49a49fcfec199ce6e972ee339fa28fbbe4643435 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=49a49fcfec199ce6e972ee339…
Author: Stefan Dösinger <stefan(a)codeweavers.com> Date: Thu Feb 15 03:05:17 2007 +0100 wined3d: Load one bump mapping environment matrix into pixel shaders if needed. --- dlls/wined3d/baseshader.c | 9 +++++++++ dlls/wined3d/directx.c | 9 ++++++++- dlls/wined3d/glsl_shader.c | 18 ++++++++++++++++-- dlls/wined3d/pixelshader.c | 2 ++ dlls/wined3d/state.c | 12 ++++++++++++ dlls/wined3d/wined3d_private.h | 5 +++++ 6 files changed, 52 insertions(+), 3 deletions(-) diff --git a/dlls/wined3d/baseshader.c b/dlls/wined3d/baseshader.c index f13d448..3bbdb45 100644 --- a/dlls/wined3d/baseshader.c +++ b/dlls/wined3d/baseshader.c @@ -344,6 +344,15 @@ HRESULT shader_get_registers_used( reg_maps->samplers[sampler_code] = (0x1 << 31) | WINED3DSTT_2D; } } + + /* texbem is only valid with < 1.4 pixel shaders */ + if(WINED3DSIO_TEXBEM == curOpcode->opcode) { + if(reg_maps->bumpmat != 0 && reg_maps->bumpmat != sampler_code) { + FIXME("Pixel shader uses texbem instruction on more than 1 sampler\n"); + } else { + reg_maps->bumpmat = sampler_code; + } + } } /* This will loop over all the registers and try to diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index 7e2fc05..398aca0 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -284,10 +284,17 @@ void select_shader_max_constants( switch (ps_selected_mode) { case SHADER_GLSL: - /* Subtract the other potential uniforms from the max available (bools & ints) */ + /* Subtract the other potential uniforms from the max available (bools & ints). + * In theory the texbem instruction may need one more shader constant too. But lets assume + * that a sm <= 1.3 shader does not need all the uniforms provided by a glsl-capable card, + * and lets not take away a uniform needlessly from all other shaders. + */ gl_info->max_pshader_constantsF = gl_info->ps_glsl_constantsF - MAX_CONST_B - MAX_CONST_I; break; case SHADER_ARB: + /* The arb shader only loads the bump mapping environment matrix into the shader if it finds + * a free constant to do that, so no need to reduce the number of available constants. + */ gl_info->max_pshader_constantsF = gl_info->ps_arb_constantsF; break; case SHADER_SW: diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 9722312..566442b 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -283,7 +283,8 @@ void shader_glsl_load_constants( GLhandleARB *constant_locations; struct list *constant_list; GLhandleARB programId; - + GLint pos; + if (!stateBlock->glsl_program) { /* No GLSL program set - nothing to do. */ return; @@ -336,11 +337,22 @@ void shader_glsl_load_constants( shader_glsl_load_constantsI(pshader, gl_info, programId, MAX_CONST_I, stateBlock->pixelShaderConstantI, stateBlock->set.pixelShaderConstantsI); - + /* Load DirectX 9 boolean constants/uniforms for pixel shader */ shader_glsl_load_constantsB(pshader, gl_info, programId, MAX_CONST_B, stateBlock->pixelShaderConstantB, stateBlock->set.pixelShaderConstantsB); + + /* Upload the environment bump map matrix if needed. The needsbumpmat member specifies the texture stage to load the matrix from. + * It can't be 0 for a valid texbem instruction. + */ + if(((IWineD3DPixelShaderImpl *) pshader)->needsbumpmat != 0) { + float *data = (float *) &stateBlock->textureState[(int) ((IWineD3DPixelShaderImpl *) pshader)->needsbumpmat][WINED3DTSS_BUMPENVMAT00]; + pos = GL_EXTCALL(glGetUniformLocationARB(programId, "bumpenvmat")); + checkGLcall("glGetUniformLocationARB"); + GL_EXTCALL(glUniform4fvARB(pos, 1, data)); + checkGLcall("glUniform4fvARB"); + } } } @@ -379,6 +391,8 @@ void shader_generate_glsl_declarations( if(!pshader) shader_addline(buffer, "uniform vec4 posFixup;\n"); + else if(reg_maps->bumpmat) + shader_addline(buffer, "uniform vec4 bumpenvmat;\n"); /* Declare texture samplers */ for (i = 0; i < This->baseShader.limits.sampler; i++) { diff --git a/dlls/wined3d/pixelshader.c b/dlls/wined3d/pixelshader.c index 8958ee0..e83cab1 100644 --- a/dlls/wined3d/pixelshader.c +++ b/dlls/wined3d/pixelshader.c @@ -914,6 +914,8 @@ inline static VOID IWineD3DPixelShaderImpl_GenerateShader( } } + This->needsbumpmat = reg_maps->bumpmat; + #if 1 /* if were using the data buffer of device then we don't need to free it */ HeapFree(GetProcessHeap(), 0, buffer.buffer); #endif diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c index 769f0d1..438f6f0 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -1951,6 +1951,18 @@ static void pixelshader(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3D } static void tex_bumpenvmat(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3DContext *context) { + DWORD stage = (state - STATE_TEXTURESTAGE(0, 0)) / WINED3D_HIGHEST_TEXTURE_STATE; + + if(stateblock->pixelShader && stage != 0 && + ((IWineD3DPixelShaderImpl *) stateblock->pixelShader)->needsbumpmat == stage) { + /* The pixel shader has to know the bump env matrix. Do a constants update if it isn't scheduled + * anyway + */ + if(!isStateDirty(context, STATE_PIXELSHADERCONSTANT) && + !isStateDirty(context, STATE_PIXELSHADER)) { + shaderconstant(STATE_PIXELSHADERCONSTANT, stateblock, context); + } + } } static void transform_world(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3DContext *context) { diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 6111f53..20c9072 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -1468,6 +1468,7 @@ typedef struct shader_reg_maps { /* Sampler usage tokens * Use 0 as default (bit 31 is always 1 on a valid token) */ DWORD samplers[MAX_SAMPLERS]; + char bumpmat; /* Whether or not a loop is used in this shader */ char loop; @@ -1834,6 +1835,10 @@ typedef struct IWineD3DPixelShaderImpl { /* run time data */ PSHADERDATA *data; + /* Some information about the shader behavior */ + char needsbumpmat; + UINT bumpenvmatconst; + #if 0 /* needs reworking */ PSHADERINPUTDATA input; PSHADEROUTPUTDATA output;
1
0
0
0
Stefan Dösinger : wined3d: Give the bump env matrices their own states.
by Alexandre Julliard
15 Feb '07
15 Feb '07
Module: wine Branch: master Commit: efbd6d6332c610af5d1a0ce62606b293414f30ab URL:
http://source.winehq.org/git/wine.git/?a=commit;h=efbd6d6332c610af5d1a0ce62…
Author: Stefan Dösinger <stefan(a)codeweavers.com> Date: Thu Feb 15 02:57:49 2007 +0100 wined3d: Give the bump env matrices their own states. --- dlls/wined3d/state.c | 67 ++++++++++++++++++++++++++------------------------ 1 files changed, 35 insertions(+), 32 deletions(-) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=efbd6d6332c610af5d1a0…
1
0
0
0
Dmitry Timoshkov : gdi32: Revert 1440eb5a35dc95dea1836d9035b51e2b15d83703 and add the test showing that the change was wrong .
by Alexandre Julliard
15 Feb '07
15 Feb '07
Module: wine Branch: master Commit: 37591409b28c2000e70bd0d3c654a3a7559a4a26 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=37591409b28c2000e70bd0d3c…
Author: Dmitry Timoshkov <dmitry(a)codeweavers.com> Date: Thu Feb 15 15:52:33 2007 +0800 gdi32: Revert 1440eb5a35dc95dea1836d9035b51e2b15d83703 and add the test showing that the change was wrong. --- dlls/gdi32/font.c | 79 ++++++++++++++++++++++++------- dlls/gdi32/tests/font.c | 121 +++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 179 insertions(+), 21 deletions(-) Diff:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=37591409b28c2000e70bd…
1
0
0
0
Jason Green : riched20: If outside of the richedit window, return earlier.
by Alexandre Julliard
15 Feb '07
15 Feb '07
Module: wine Branch: master Commit: 2aa8463a94586da94d9f4cab902f5ef68a5e6563 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=2aa8463a94586da94d9f4cab9…
Author: Jason Green <jave27(a)gmail.com> Date: Wed Feb 14 23:40:52 2007 -0500 riched20: If outside of the richedit window, return earlier. Prevents a crash when selecting text outside of a richedit control box. --- dlls/riched20/editor.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c index 783e91d..c9e9246 100644 --- a/dlls/riched20/editor.c +++ b/dlls/riched20/editor.c @@ -2597,6 +2597,8 @@ void ME_LinkNotify(ME_TextEditor *editor, UINT msg, WPARAM wParam, LPARAM lParam x = (short)LOWORD(lParam); y = (short)HIWORD(lParam); nCharOfs = ME_CharFromPos(editor, x, y); + if (nCharOfs < 0) return; + ME_CursorFromCharOfs(editor, nCharOfs, &tmpCursor); tmpRun = &tmpCursor.pRun->member.run;
1
0
0
0
H. Verbeet : wined3d: Use WINED3D_OK rather than D3D_OK.
by Alexandre Julliard
15 Feb '07
15 Feb '07
Module: wine Branch: master Commit: 34e74ffc2a085b51c64a89b9b63609aadd24139c URL:
http://source.winehq.org/git/wine.git/?a=commit;h=34e74ffc2a085b51c64a89b9b…
Author: H. Verbeet <hverbeet(a)gmail.com> Date: Wed Feb 14 23:30:40 2007 +0100 wined3d: Use WINED3D_OK rather than D3D_OK. --- dlls/wined3d/device.c | 8 ++++---- dlls/wined3d/surface_gdi.c | 10 +++++----- dlls/wined3d/vertexbuffer.c | 2 +- dlls/wined3d/vertexshader.c | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index f511108..a80c3e7 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -1667,7 +1667,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_Init3D(IWineD3DDevice *iface, WINED3DPR /* Setup the implicit swapchain */ TRACE("Creating implicit swapchain\n"); - if (D3D_OK != D3DCB_CreateAdditionalSwapChain((IUnknown *) This->parent, pPresentationParameters, (IWineD3DSwapChain **)&swapchain) || swapchain == NULL) { + if (FAILED(D3DCB_CreateAdditionalSwapChain((IUnknown *) This->parent, pPresentationParameters, (IWineD3DSwapChain **)&swapchain)) || !swapchain) { WARN("Failed to create implicit swapchain\n"); return WINED3DERR_INVALIDCALL; } @@ -1845,10 +1845,10 @@ static HRESULT WINAPI IWineD3DDeviceImpl_EnumDisplayModes(IWineD3DDevice *iface, TRACE("Enumerating %dx%d@%s\n", DevModeW.dmPelsWidth, DevModeW.dmPelsHeight, debug_d3dformat(pixelformat_for_depth(DevModeW.dmBitsPerPel))); if (callback((IUnknown *) This, (UINT) DevModeW.dmPelsWidth, (UINT) DevModeW.dmPelsHeight, pixelformat_for_depth(DevModeW.dmBitsPerPel), 60.0, context) == DDENUMRET_CANCEL) - return D3D_OK; + return WINED3D_OK; } - return D3D_OK; + return WINED3D_OK; } static HRESULT WINAPI IWineD3DDeviceImpl_SetDisplayMode(IWineD3DDevice *iface, UINT iSwapChain, WINED3DDISPLAYMODE* pMode) { @@ -1882,7 +1882,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetDisplayMode(IWineD3DDevice *iface, U (This->ddraw_height == pMode->Height) && (This->ddraw_format == pMode->Format) && (pMode->RefreshRate == 0) ) { - return D3D_OK; + return WINED3D_OK; } ret = ChangeDisplaySettingsExW(NULL, &devmode, NULL, CDS_FULLSCREEN, NULL); diff --git a/dlls/wined3d/surface_gdi.c b/dlls/wined3d/surface_gdi.c index 34d6bff..cd02007 100644 --- a/dlls/wined3d/surface_gdi.c +++ b/dlls/wined3d/surface_gdi.c @@ -243,7 +243,7 @@ IWineGDISurfaceImpl_LockRect(IWineD3DSurface *iface, TRACE("returning memory@%p, pitch(%d)\n", pLockedRect->pBits, pLockedRect->Pitch); This->Flags |= SFLAG_LOCKED; - return D3D_OK; + return WINED3D_OK; } /***************************************************************************** @@ -1206,7 +1206,7 @@ IWineGDISurfaceImpl_BltFast(IWineD3DSurface *iface, /* Lock the union of the two rectangles */ ret = IWineD3DSurface_LockRect(iface, &dlock, &lock_union, 0); - if(ret != D3D_OK) goto error; + if(ret != WINED3D_OK) goto error; pitch = dlock.Pitch; slock.Pitch = dlock.Pitch; @@ -1221,9 +1221,9 @@ IWineGDISurfaceImpl_BltFast(IWineD3DSurface *iface, else { ret = IWineD3DSurface_LockRect(Source, &slock, &lock_src, WINED3DLOCK_READONLY); - if(ret != D3D_OK) goto error; + if(ret != WINED3D_OK) goto error; ret = IWineD3DSurface_LockRect(iface, &dlock, &lock_dst, 0); - if(ret != D3D_OK) goto error; + if(ret != WINED3D_OK) goto error; sbuf = slock.pBits; dbuf = dlock.pBits; @@ -1497,7 +1497,7 @@ const char* filename) * avoid confusion in the shared surface code. * * Returns: - * D3D_OK on success + * WINED3D_OK on success * The return values of called methods on failure * *****************************************************************************/ diff --git a/dlls/wined3d/vertexbuffer.c b/dlls/wined3d/vertexbuffer.c index 84d0ca3..2e97c20 100644 --- a/dlls/wined3d/vertexbuffer.c +++ b/dlls/wined3d/vertexbuffer.c @@ -433,7 +433,7 @@ HRESULT WINAPI IWineD3DVertexBufferImpl_Unlock(IWineD3DVertexBuffer *iface) { if(lockcount > 0) { /* Delay loading the buffer until everything is unlocked */ TRACE("Ignoring the unlock\n"); - return D3D_OK; + return WINED3D_OK; } if(This->Flags & VBFLAG_HASDESC) { diff --git a/dlls/wined3d/vertexshader.c b/dlls/wined3d/vertexshader.c index 52101f2..eeeb743 100644 --- a/dlls/wined3d/vertexshader.c +++ b/dlls/wined3d/vertexshader.c @@ -1244,7 +1244,7 @@ static HRESULT WINAPI IWIneD3DVertexShaderImpl_SetLocalConstantsF(IWineD3DVertex list_add_head(&This->baseShader.constantsF, &lconst->entry); } - return D3D_OK; + return WINED3D_OK; } static HRESULT WINAPI IWineD3DVertexShaderImpl_CompileShader(IWineD3DVertexShader *iface) {
1
0
0
0
H. Verbeet : wined3d: Use WINED3DPRESENT_BACK_BUFFER_MAX rather than D3DPRESENT_BACK_BUFFER_MAX.
by Alexandre Julliard
15 Feb '07
15 Feb '07
Module: wine Branch: master Commit: 3e77ffc563e121991f890ea1e26353ae7ccc2eb3 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=3e77ffc563e121991f890ea1e…
Author: H. Verbeet <hverbeet(a)gmail.com> Date: Wed Feb 14 23:30:30 2007 +0100 wined3d: Use WINED3DPRESENT_BACK_BUFFER_MAX rather than D3DPRESENT_BACK_BUFFER_MAX. --- dlls/wined3d/device.c | 2 +- include/wine/wined3d_types.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 7031b7a..f511108 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -1247,7 +1247,7 @@ static HRESULT WINAPI IWineD3DDeviceImpl_CreateAdditionalSwapChain(IWineD3DDevic *******************************/ /* Check the params */ - if(*pPresentationParameters->BackBufferCount > D3DPRESENT_BACK_BUFFER_MAX) { + if(*pPresentationParameters->BackBufferCount > WINED3DPRESENT_BACK_BUFFER_MAX) { ERR("App requested %d back buffers, this is not supported for now\n", *pPresentationParameters->BackBufferCount); return WINED3DERR_INVALIDCALL; } else if (*pPresentationParameters->BackBufferCount > 1) { diff --git a/include/wine/wined3d_types.h b/include/wine/wined3d_types.h index 8c82c61..38622ae 100644 --- a/include/wine/wined3d_types.h +++ b/include/wine/wined3d_types.h @@ -621,6 +621,8 @@ typedef enum _WINED3DBACKBUFFER_TYPE { WINED3DBACKBUFFER_TYPE_FORCE_DWORD = 0x7fffffff } WINED3DBACKBUFFER_TYPE; +#define WINED3DPRESENT_BACK_BUFFER_MAX 3 + typedef enum _WINED3DSWAPEFFECT { WINED3DSWAPEFFECT_DISCARD = 1, WINED3DSWAPEFFECT_FLIP = 2,
1
0
0
0
H. Verbeet : wined3d: Use WINED3DUSAGE rather than D3DUSAGE.
by Alexandre Julliard
15 Feb '07
15 Feb '07
Module: wine Branch: master Commit: d4d165afd86daa16c9cb7f6d6cf800d121dc2187 URL:
http://source.winehq.org/git/wine.git/?a=commit;h=d4d165afd86daa16c9cb7f6d6…
Author: H. Verbeet <hverbeet(a)gmail.com> Date: Wed Feb 14 23:30:23 2007 +0100 wined3d: Use WINED3DUSAGE rather than D3DUSAGE. --- dlls/wined3d/device.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 7e6ef3e..7031b7a 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -358,13 +358,13 @@ static void CreateVBO(IWineD3DVertexBufferImpl *object) { * quite often even if they specify 0 usage. Because we always keep the local copy * we never read from the vbo and can create a write only opengl buffer. */ - switch(vboUsage & (D3DUSAGE_WRITEONLY | D3DUSAGE_DYNAMIC) ) { - case D3DUSAGE_WRITEONLY | D3DUSAGE_DYNAMIC: - case D3DUSAGE_DYNAMIC: + switch(vboUsage & (WINED3DUSAGE_WRITEONLY | WINED3DUSAGE_DYNAMIC) ) { + case WINED3DUSAGE_WRITEONLY | WINED3DUSAGE_DYNAMIC: + case WINED3DUSAGE_DYNAMIC: TRACE("Gl usage = GL_STREAM_DRAW\n"); glUsage = GL_STREAM_DRAW_ARB; break; - case D3DUSAGE_WRITEONLY: + case WINED3DUSAGE_WRITEONLY: default: TRACE("Gl usage = GL_DYNAMIC_DRAW\n"); glUsage = GL_DYNAMIC_DRAW_ARB;
1
0
0
0
H. Verbeet : wined3d: Use WINED3DSTREAMSOURCE_INSTANCEDATA rather than D3DSTREAMSOURCE_INSTANCEDATA .
by Alexandre Julliard
15 Feb '07
15 Feb '07
Module: wine Branch: master Commit: 498f9c507a1ab1d4179794aec3cde04dd44112bd URL:
http://source.winehq.org/git/wine.git/?a=commit;h=498f9c507a1ab1d4179794aec…
Author: H. Verbeet <hverbeet(a)gmail.com> Date: Wed Feb 14 23:30:16 2007 +0100 wined3d: Use WINED3DSTREAMSOURCE_INSTANCEDATA rather than D3DSTREAMSOURCE_INSTANCEDATA. --- dlls/wined3d/drawprim.c | 4 ++-- dlls/wined3d/state.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c index 1d2a66e..2cc3a15 100644 --- a/dlls/wined3d/drawprim.c +++ b/dlls/wined3d/drawprim.c @@ -1182,7 +1182,7 @@ inline void drawStridedInstanced(IWineD3DDevice *iface, WineDirect3DVertexStride /* First, figure out how many instances we have to draw */ for(i = 0; i < MAX_STREAMS; i++) { /* Look at all non-instanced streams */ - if(!(stateblock->streamFlags[i] & D3DSTREAMSOURCE_INSTANCEDATA) && + if(!(stateblock->streamFlags[i] & WINED3DSTREAMSOURCE_INSTANCEDATA) && stateblock->streamSource[i]) { int inst = stateblock->streamFreq[i]; @@ -1194,7 +1194,7 @@ inline void drawStridedInstanced(IWineD3DDevice *iface, WineDirect3DVertexStride } for(i = 0; i < sizeof(sd->u.input) / sizeof(sd->u.input[0]); i++) { - if(stateblock->streamFlags[sd->u.input[i].streamNo] & D3DSTREAMSOURCE_INSTANCEDATA) { + if(stateblock->streamFlags[sd->u.input[i].streamNo] & WINED3DSTREAMSOURCE_INSTANCEDATA) { instancedData[numInstancedAttribs] = i; numInstancedAttribs++; } diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c index a434000..5d4f21e 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -2155,7 +2155,7 @@ static inline void loadNumberedArrays(IWineD3DStateBlockImpl *stateblock, WineDi continue; /* Do not load instance data. It will be specified using glTexCoord by drawprim */ - if(stateblock->streamFlags[strided->u.input[i].streamNo] & D3DSTREAMSOURCE_INSTANCEDATA) { + if(stateblock->streamFlags[strided->u.input[i].streamNo] & WINED3DSTREAMSOURCE_INSTANCEDATA) { GL_EXTCALL(glDisableVertexAttribArrayARB(i)); stateblock->wineD3DDevice->instancedDraw = TRUE; continue;
1
0
0
0
Detlef Riekenberg : winspool: Do not access NULL when HeapAlloc failed.
by Alexandre Julliard
15 Feb '07
15 Feb '07
Module: wine Branch: master Commit: 055d8d461137ba00d8075526caeb07b4904d909d URL:
http://source.winehq.org/git/wine.git/?a=commit;h=055d8d461137ba00d8075526c…
Author: Detlef Riekenberg <wine.dev(a)web.de> Date: Wed Feb 14 22:54:19 2007 +0100 winspool: Do not access NULL when HeapAlloc failed. --- dlls/winspool.drv/info.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c index 73bd574..f730be2 100644 --- a/dlls/winspool.drv/info.c +++ b/dlls/winspool.drv/info.c @@ -1261,7 +1261,7 @@ static DWORD get_ports_from_all_monitors(DWORD level, LPBYTE pPorts, DWORD cbBuf needed += (level == 1) ? pm->pi1_needed : pm->pi2_needed; /* fill the buffer, if we have one */ - if (pPorts && (cbBuf >= needed )) { + if (pPorts && (cbBuf >= needed ) && pm->cache) { cacheindex = 0; cache = pm->cache; while (cacheindex < pm->returned) {
1
0
0
0
Louis Lenders : user32: Fix error return values in DialogBoxParam + simple test.
by Alexandre Julliard
15 Feb '07
15 Feb '07
Module: wine Branch: master Commit: ba7207cbc0d449e4e1b0fdc3fbe0251eb51a64da URL:
http://source.winehq.org/git/wine.git/?a=commit;h=ba7207cbc0d449e4e1b0fdc3f…
Author: Louis Lenders <xerox_xerox2000(a)yahoo.co.uk> Date: Wed Feb 14 20:32:35 2007 +0000 user32: Fix error return values in DialogBoxParam + simple test. --- dlls/user32/dialog.c | 12 ++++++------ dlls/user32/tests/dialog.c | 15 +++++++++++++++ dlls/user32/tests/resource.rc | 9 +++++++++ 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/dlls/user32/dialog.c b/dlls/user32/dialog.c index e70b33f..3acd37a 100644 --- a/dlls/user32/dialog.c +++ b/dlls/user32/dialog.c @@ -800,11 +800,11 @@ INT_PTR WINAPI DialogBoxParamA( HINSTANCE hInst, LPCSTR name, HRSRC hrsrc; LPCDLGTEMPLATEA ptr; - if (!(hrsrc = FindResourceA( hInst, name, (LPSTR)RT_DIALOG ))) return 0; - if (!(ptr = (LPCDLGTEMPLATEA)LoadResource(hInst, hrsrc))) return 0; + if (!(hrsrc = FindResourceA( hInst, name, (LPSTR)RT_DIALOG ))) return -1; + if (!(ptr = (LPCDLGTEMPLATEA)LoadResource(hInst, hrsrc))) return -1; hwnd = DIALOG_CreateIndirect( hInst, ptr, owner, dlgProc, param, FALSE, TRUE ); if (hwnd) return DIALOG_DoDialogBox( hwnd, owner ); - return -1; + return 0; } @@ -818,11 +818,11 @@ INT_PTR WINAPI DialogBoxParamW( HINSTANCE hInst, LPCWSTR name, HRSRC hrsrc; LPCDLGTEMPLATEW ptr; - if (!(hrsrc = FindResourceW( hInst, name, (LPWSTR)RT_DIALOG ))) return 0; - if (!(ptr = (LPCDLGTEMPLATEW)LoadResource(hInst, hrsrc))) return 0; + if (!(hrsrc = FindResourceW( hInst, name, (LPWSTR)RT_DIALOG ))) return -1; + if (!(ptr = (LPCDLGTEMPLATEW)LoadResource(hInst, hrsrc))) return -1; hwnd = DIALOG_CreateIndirect( hInst, ptr, owner, dlgProc, param, TRUE, TRUE ); if (hwnd) return DIALOG_DoDialogBox( hwnd, owner ); - return -1; + return 0; } diff --git a/dlls/user32/tests/dialog.c b/dlls/user32/tests/dialog.c index eeea474..fe8a0fd 100644 --- a/dlls/user32/tests/dialog.c +++ b/dlls/user32/tests/dialog.c @@ -861,6 +861,20 @@ static void test_GetDlgItemText(void) ok(string[0] == '\0', "string retrieved using GetDlgItemText should have been NULL terminated\n"); } +static void test_DialogBoxParamA(void) +{ + int ret; + HWND hwnd_invalid = (HWND)0x4444; + + SetLastError(0xdeadbeef); + ret = DialogBoxParamA(GetModuleHandle(NULL), "IDD_DIALOG" , hwnd_invalid, 0 , 0); + ok(0 == ret, "DialogBoxParamA returned %d, expected 0\n", ret); + ok(ERROR_INVALID_WINDOW_HANDLE == GetLastError(),"got %d, expected ERROR_INVALID_WINDOW_HANDLE\n",GetLastError()); + SetLastError(0xdeadbeef); + ret = DialogBoxParamA(GetModuleHandle(NULL), "RESOURCE_INVALID" , 0, 0, 0); + ok(-1 == ret, "DialogBoxParamA returned %d, expected -1\n", ret); + ok(ERROR_RESOURCE_NAME_NOT_FOUND == GetLastError(),"got %d, expected ERROR_RESOURCE_NAME_NOT_FOUND\n",GetLastError()); +} START_TEST(dialog) { @@ -873,4 +887,5 @@ START_TEST(dialog) WM_NEXTDLGCTLTest(); InitialFocusTest(); test_GetDlgItemText(); + test_DialogBoxParamA(); } diff --git a/dlls/user32/tests/resource.rc b/dlls/user32/tests/resource.rc index e882728..8434f61 100644 --- a/dlls/user32/tests/resource.rc +++ b/dlls/user32/tests/resource.rc @@ -80,6 +80,15 @@ FONT 8, "MS Shell Dlg" EDITTEXT 200,4,4,50,14 } +IDD_DIALOG DIALOG DISCARDABLE 0, 0, 186, 95 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Dialog" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,129,7,50,14 + PUSHBUTTON "Cancel",IDCANCEL,129,24,50,14 +END + /* BINRES test_mono.bmp */ 100 BITMAP test_mono.bmp /* {
1
0
0
0
← Newer
1
...
39
40
41
42
43
44
45
...
84
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
Results per page:
10
25
50
100
200