Module: wine Branch: master Commit: cc447eac55a5c54535d9a5196b27592ac73808aa URL: http://source.winehq.org/git/wine.git/?a=commit;h=cc447eac55a5c54535d9a5196b...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Thu Jan 8 10:19:16 2009 +0100
wined3d: Move position_transformed out of u.s in struct WineDirect3DVertexStridedData.
---
dlls/ddraw/device.c | 8 ++++---- dlls/wined3d/drawprim.c | 12 ++++++------ dlls/wined3d/pixelshader.c | 5 +++-- dlls/wined3d/state.c | 8 +++----- dlls/wined3d/wined3d_private.h | 2 +- include/wine/wined3d.idl | 3 ++- 6 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c index ab6623a..d35a297 100644 --- a/dlls/ddraw/device.c +++ b/dlls/ddraw/device.c @@ -4003,9 +4003,9 @@ IDirect3DDeviceImpl_7_DrawPrimitiveStrided(IDirect3DDevice7 *iface, if (VertexType & D3DFVF_XYZRHW) { WineD3DStrided.u.s.position.dwType = WINED3DDECLTYPE_FLOAT4; - WineD3DStrided.u.s.position_transformed = TRUE; + WineD3DStrided.position_transformed = TRUE; } else - WineD3DStrided.u.s.position_transformed = FALSE; + WineD3DStrided.position_transformed = FALSE; }
if(VertexType & D3DFVF_NORMAL) @@ -4181,9 +4181,9 @@ IDirect3DDeviceImpl_7_DrawIndexedPrimitiveStrided(IDirect3DDevice7 *iface, if (VertexType & D3DFVF_XYZRHW) { WineD3DStrided.u.s.position.dwType = WINED3DDECLTYPE_FLOAT4; - WineD3DStrided.u.s.position_transformed = TRUE; + WineD3DStrided.position_transformed = TRUE; } else - WineD3DStrided.u.s.position_transformed = FALSE; + WineD3DStrided.position_transformed = FALSE; }
if(VertexType & D3DFVF_NORMAL) diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c index fbeb3e8..7d87ca1 100644 --- a/dlls/wined3d/drawprim.c +++ b/dlls/wined3d/drawprim.c @@ -152,7 +152,7 @@ void primitiveDeclarationConvertToStridedData( const DWORD *streams = vertexDeclaration->streams;
/* Check for transformed vertices, disable vertex shader if present */ - strided->u.s.position_transformed = vertexDeclaration->position_transformed; + strided->position_transformed = vertexDeclaration->position_transformed; if(vertexDeclaration->position_transformed) { useVertexShaderFunction = FALSE; } @@ -861,8 +861,9 @@ void drawPrimitive(IWineD3DDevice *iface, int PrimitiveType, long NumPrimitives,
if (!use_vs(This->stateBlock)) { - if(!This->strided_streams.u.s.position_transformed && This->activeContext->num_untracked_materials && - This->stateBlock->renderState[WINED3DRS_LIGHTING]) { + if (!This->strided_streams.position_transformed && This->activeContext->num_untracked_materials + && This->stateBlock->renderState[WINED3DRS_LIGHTING]) + { static BOOL warned; if (!warned) { FIXME("Using software emulation because not all material properties could be tracked\n"); @@ -1027,9 +1028,8 @@ HRESULT tesselate_rectpatch(IWineD3DDeviceImpl *This, vtxStride * info->StartVertexOffsetWidth;
/* Not entirely sure about what happens with transformed vertices */ - if(strided.u.s.position_transformed) { - FIXME("Transformed position in rectpatch generation\n"); - } + if (strided.position_transformed) FIXME("Transformed position in rectpatch generation\n"); + if(vtxStride % sizeof(GLfloat)) { /* glMap2f reads vertex sizes in GLfloats, the d3d stride is in bytes. * I don't see how the stride could not be a multiple of 4, but make sure diff --git a/dlls/wined3d/pixelshader.c b/dlls/wined3d/pixelshader.c index 1a337ca..9f96c59 100644 --- a/dlls/wined3d/pixelshader.c +++ b/dlls/wined3d/pixelshader.c @@ -477,7 +477,8 @@ void find_ps_compile_args(IWineD3DPixelShaderImpl *shader, IWineD3DStateBlockImp } if (shader->baseShader.reg_maps.shader_version >= WINED3DPS_VERSION(3,0)) { - if(((IWineD3DDeviceImpl *) shader->baseShader.device)->strided_streams.u.s.position_transformed) { + if (((IWineD3DDeviceImpl *)shader->baseShader.device)->strided_streams.position_transformed) + { args->vp_mode = pretransformed; } else if (use_vs(stateblock)) @@ -492,7 +493,7 @@ void find_ps_compile_args(IWineD3DPixelShaderImpl *shader, IWineD3DStateBlockImp if(stateblock->renderState[WINED3DRS_FOGENABLE]) { switch(stateblock->renderState[WINED3DRS_FOGTABLEMODE]) { case WINED3DFOG_NONE: - if (((IWineD3DDeviceImpl *)shader->baseShader.device)->strided_streams.u.s.position_transformed + if (((IWineD3DDeviceImpl *)shader->baseShader.device)->strided_streams.position_transformed || use_vs(stateblock)) { args->fog = FOG_LINEAR; diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c index de4e332..7258ed3 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -95,7 +95,7 @@ static void state_lighting(DWORD state, IWineD3DStateBlockImpl *stateblock, Wine
transformed = ((stateblock->wineD3DDevice->strided_streams.u.s.position.lpData != NULL || stateblock->wineD3DDevice->strided_streams.u.s.position.VBO != 0) && - stateblock->wineD3DDevice->strided_streams.u.s.position_transformed) ? TRUE : FALSE; + stateblock->wineD3DDevice->strided_streams.position_transformed) ? TRUE : FALSE;
if (stateblock->renderState[WINED3DRS_LIGHTING] && !transformed) { glEnable(GL_LIGHTING); @@ -4321,9 +4321,7 @@ static void streamsrc(DWORD state, IWineD3DStateBlockImpl *stateblock, WineD3DCo useVertexShaderFunction, dataLocations, &fixup); }
- if (dataLocations->u.s.position_transformed) { - useVertexShaderFunction = FALSE; - } + if (dataLocations->position_transformed) useVertexShaderFunction = FALSE;
if(useVertexShaderFunction) { if(((IWineD3DVertexDeclarationImpl *) stateblock->vertexDecl)->half_float_conv_needed && !fixup) { @@ -4403,7 +4401,7 @@ static void vertexdeclaration(DWORD state, IWineD3DStateBlockImpl *stateblock, W updateFog = TRUE; }
- transformed = device->strided_streams.u.s.position_transformed; + transformed = device->strided_streams.position_transformed; if(transformed != context->last_was_rhw && !useVertexShaderFunction) { updateFog = TRUE; } diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 516cd9f..cab2b20 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -2454,7 +2454,7 @@ const StaticPixelFormatDesc *getFormatDescEntry(WINED3DFORMAT fmt, static inline BOOL use_vs(IWineD3DStateBlockImpl *stateblock) { return (stateblock->vertexShader - && !stateblock->wineD3DDevice->strided_streams.u.s.position_transformed + && !stateblock->wineD3DDevice->strided_streams.position_transformed && stateblock->wineD3DDevice->vs_selected_mode != SHADER_NONE); }
diff --git a/include/wine/wined3d.idl b/include/wine/wined3d.idl index 324f5a2..0ee7b1f 100644 --- a/include/wine/wined3d.idl +++ b/include/wine/wined3d.idl @@ -1879,10 +1879,11 @@ typedef struct WineDirect3DVertexStridedData WineDirect3DStridedData sample;
/* Add fields here */ - BOOL position_transformed; } s; WineDirect3DStridedData input[16]; /* Indexed by constants in D3DVSDE_REGISTER */ } u; + + BOOL position_transformed; } WineDirect3DVertexStridedData;
typedef struct _WINED3DVSHADERCAPS2_0