[04/10] wined3d: Ignore SetTextureStageState on unsupported texture stages

H. Verbeet hverbeet at gmail.com
Mon Apr 16 14:44:27 CDT 2007


On 16/04/07, Stefan Dösinger <stefandoesinger at gmx.at> wrote:
> Wouldn't it be better to check against MAX_TEXTURES instead of the gl limit?
True, use the attached patch instead.
-------------- next part --------------
---

 dlls/wined3d/device.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index d4f8ddd..d19d773 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -3774,6 +3774,11 @@ static HRESULT WINAPI IWineD3DDeviceImpl_SetTextureStageState(IWineD3DDevice *if
 
     TRACE("(%p) : Stage=%d, Type=%s(%d), Value=%d\n", This, Stage, debug_d3dtexturestate(Type), Type, Value);
 
+    if (Stage >= MAX_TEXTURES) {
+        WARN("Attempting to set stage %u which is higher than the max stage %u, ignoring\n", Stage, MAX_TEXTURES - 1);
+        return WINED3D_OK;
+    }
+
     This->updateStateBlock->changed.textureState[Stage][Type] = TRUE;
     This->updateStateBlock->set.textureState[Stage][Type]     = TRUE;
     This->updateStateBlock->textureState[Stage][Type]         = Value;


More information about the wine-patches mailing list