[PATCH 3/5] wined3d: Remove the useless "changed" and "enabledChanged" fields from struct wined3d_light_info.
Henri Verbeet
hverbeet at codeweavers.com
Wed Oct 14 03:55:17 CDT 2009
---
dlls/wined3d/device.c | 2 -
dlls/wined3d/stateblock.c | 52 ++++++++++++++-------------------------
dlls/wined3d/wined3d_private.h | 2 -
3 files changed, 19 insertions(+), 37 deletions(-)
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index a94c4bb..33c15ec 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -2485,7 +2485,6 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetLight(IWineD3DDevice *iface, DWORD I
list_add_head(&This->updateStateBlock->lightMap[Hi], &object->entry);
object->glIndex = -1;
object->OriginalIndex = Index;
- object->changed = TRUE;
}
/* Initialize the object */
@@ -2636,7 +2635,6 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetLightEnable(IWineD3DDevice *iface, D
}
}
- lightInfo->enabledChanged = TRUE;
if(!Enable) {
if(lightInfo->glIndex != -1) {
if(!This->isRecordingState) {
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
index 74a9f3a..862eb66 100644
--- a/dlls/wined3d/stateblock.c
+++ b/dlls/wined3d/stateblock.c
@@ -447,8 +447,6 @@ static void stateblock_init_lights(IWineD3DStateBlockImpl *stateblock, struct li
struct wined3d_light_info *dst_light = HeapAlloc(GetProcessHeap(), 0, sizeof(*dst_light));
*dst_light = *src_light;
- dst_light->changed = TRUE;
- dst_light->enabledChanged = TRUE;
list_add_tail(&stateblock->lightMap[i], &dst_light->entry);
}
}
@@ -561,42 +559,34 @@ static void record_lights(IWineD3DStateBlockImpl *This, const IWineD3DStateBlock
LIST_FOR_EACH(e, &This->lightMap[i]) {
BOOL updated = FALSE;
struct wined3d_light_info *src = LIST_ENTRY(e, struct wined3d_light_info, entry), *realLight;
- if (!src->changed && !src->enabledChanged) continue;
/* Look up the light in the destination */
LIST_FOR_EACH(f, &targetStateBlock->lightMap[i]) {
realLight = LIST_ENTRY(f, struct wined3d_light_info, entry);
- if(realLight->OriginalIndex == src->OriginalIndex) {
- if(src->changed) {
- src->OriginalParms = realLight->OriginalParms;
+ if (realLight->OriginalIndex == src->OriginalIndex)
+ {
+ src->OriginalParms = realLight->OriginalParms;
+
+ if (realLight->glIndex == -1 && src->glIndex != -1)
+ {
+ /* Light disabled */
+ This->activeLights[src->glIndex] = NULL;
}
- if(src->enabledChanged) {
- /* Need to double check because enabledChanged does not catch enabled -> disabled -> enabled
- * or disabled -> enabled -> disabled changes
- */
- if(realLight->glIndex == -1 && src->glIndex != -1) {
- /* Light disabled */
- This->activeLights[src->glIndex] = NULL;
- } else if(realLight->glIndex != -1 && src->glIndex == -1){
- /* Light enabled */
- This->activeLights[realLight->glIndex] = src;
- }
- src->glIndex = realLight->glIndex;
+ else if (realLight->glIndex != -1 && src->glIndex == -1)
+ {
+ /* Light enabled */
+ This->activeLights[realLight->glIndex] = src;
}
+ src->glIndex = realLight->glIndex;
updated = TRUE;
break;
}
}
- if(updated) {
- /* Found a light, all done, proceed with next hash entry */
- continue;
- } else if(src->changed) {
- /* Otherwise assign defaul params */
- src->OriginalParms = WINED3D_default_light;
- } else {
- /* Not enabled by default */
- src->glIndex = -1;
+ if (!updated)
+ {
+ ERR("Light %u in stateblock %p does not exist in device stateblock %p.\n",
+ src->OriginalIndex, This, targetStateBlock);
}
}
}
@@ -987,12 +977,8 @@ static void apply_lights(IWineD3DDevice *pDevice, const IWineD3DStateBlockImpl *
{
const struct wined3d_light_info *light = LIST_ENTRY(e, struct wined3d_light_info, entry);
- if(light->changed) {
- IWineD3DDevice_SetLight(pDevice, light->OriginalIndex, &light->OriginalParms);
- }
- if(light->enabledChanged) {
- IWineD3DDevice_SetLightEnable(pDevice, light->OriginalIndex, light->glIndex != -1);
- }
+ IWineD3DDevice_SetLight(pDevice, light->OriginalIndex, &light->OriginalParms);
+ IWineD3DDevice_SetLightEnable(pDevice, light->OriginalIndex, light->glIndex != -1);
}
}
}
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 4077d81..69467e0 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1208,8 +1208,6 @@ struct wined3d_light_info
WINED3DLIGHT OriginalParms; /* Note D3D8LIGHT == D3D9LIGHT */
DWORD OriginalIndex;
LONG glIndex;
- BOOL changed;
- BOOL enabledChanged;
BOOL enabled;
/* Converted parms to speed up swapping lights */
--
1.6.4.4
More information about the wine-patches
mailing list