diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index f1217d9..509aa00 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -38,7 +38,7 @@ static void d3dfmt_p8_init_palette(IWineD3DSurfaceImpl *This, BYTE table[256][4] static inline void clear_unused_channels(IWineD3DSurfaceImpl *This); static void surface_bind_and_dirtify(IWineD3DSurfaceImpl *This) { - GLint active_texture; + GLint active_texture = 0; /* We don't need a specific texture unit, but after binding the texture the current unit is dirty. * Read the unit back instead of switching to 0, this avoids messing around with the state manager's @@ -48,7 +48,8 @@ static void surface_bind_and_dirtify(IWineD3DSurfaceImpl *This) { */ if (GL_SUPPORT(ARB_MULTITEXTURE)) { glGetIntegerv(GL_ACTIVE_TEXTURE, &active_texture); - active_texture -= GL_TEXTURE0_ARB; + if (active_texture == 0) ERR("GL_ACTIVE_TEXTURE cannot be read! Defaulting to 0. \n"); + else active_texture -= GL_TEXTURE0_ARB; } else { active_texture = 0; }