On Sunday 09 October 2011 16:40:11 Henri Verbeet wrote:
I thought you asked me not to look at these patches yet because you still had some issues to fix. Regardless, I gave this a cursory look:
Yeah, those were the ones that implemented blitting in a different way in wined3d and had issues with palette changes and SFLAG_CONVERTED. The patches I sent to wine-devel have this fixed, and the patches I sent to wine-patches aren't affected by this.
- I can't say I find e.g. sprinkling d3dformat_is_palettized() over
the code particularly elegant.
I suppose I could check for it in IDirect3DDevice8Impl_CreateSurface(and the d3d9 equivalent), if all calls that create surfaces run through it.
- Do you have tests for the D3DERR_INVALIDCALL returns?
I tested that and Windows returns D3D_OK. Windows also allows creating P8 offscreen plain surfaces, and it allows StretchRect operations between those surfaces. It doesn't allow StretchRect operations between P8 and non- Palettized surfaces. In the end I could not find any way to make use of those surfaces I could create.
I prefer to return INVALIDCALL over the half-baked implementation Windows has to find applications that try to use P8 surfaces in a way I may have missed.
- In patch 5 you remove wined3d_device_get_current_texture_palette()
from the spec but not from the public header.
Oops, thanks for catching that.