On Tue, May 18, 2010 at 9:56 AM, Henri Verbeet hverbeet@gmail.com wrote:
On 18 May 2010 09:30, Roderick Colenbrander thunderbird2k@gmail.com wrote:
- arbfp_blit_set((IWineD3DDevice *)device, src_surface);
- if (is_complex_fixup(src_surface->resource.format_desc->color_fixup) &&
- !is_complex_fixup(dst_surface->resource.format_desc->color_fixup))
- arbfp_blit_set((IWineD3DDevice *)device, src_surface);
- This doesn't do what your subject line says it does.
Correct, it should be using is_identity_fixup for the destination check.
- Why do you think this patch makes sense?
All 'set_shader' calls perform similar checks to figure out whether the shader should be set or not. The call only has information on the source surface (though if you really want I could you could get more from the device or swapchain). Since 'blit_surface' has all the knowledge I thought it was nicer to avoid the unneeded call but it isn't right since set_shader does useful things as well like glEnable(tex_type). I could pass in the destination surface but have to think what to do about swapchain_blit which doesn't fit into the new design.
Roderick