On Tue, May 18, 2010 at 9:56 AM, Henri Verbeet <hverbeet(a)gmail.com> wrote:
On 18 May 2010 09:30, Roderick Colenbrander <thunderbird2k(a)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