2009/1/13 Stefan Dösinger <ste...@codeweavers.com>:
> -    This->baseShader.is_compiled = TRUE;
> -
This changes code in pixelshader.c, looks unrelated.

> +void find_vs_compile_args(IWineD3DVertexShaderImpl *shader, 
> IWineD3DStateBlockImpl *stateblock, struct vs_compile_args *args) {
> +    args->fog_src = stateblock->renderState[WINED3DRS_FOGTABLEMODE] == 
> WINED3DFOG_NONE ? VS_FOG_COORD : VS_FOG_Z;
> +    args->swizzle_map = ((IWineD3DDeviceImpl 
> *)shader->baseShader.device)->strided_streams.swizzle_map;
> +}
You need to mask swizzle_map with use_map like in the original code,
or you'll end up creating new shaders if an attribute that was
previously swizzled is undefined now.

> +        shader->gl_shaders = HeapReAlloc(GetProcessHeap(), 0, old_array,
> +                                         (shader->num_gl_shaders + 1) * 
> sizeof(*shader->gl_shaders));
Please don't grow arrays by a single element like that.
I noticed find_gl_pshader() does that as well, please fix.

> - *
> + *
You're adding a trailing space here.

Reply via email to