[4/5] WineD3D: Manage SFLAG_CLIENT separately for RGB and SRGB textures

Stefan Dösinger stefan at codeweavers.com
Mon Jun 15 08:47:55 CDT 2009


Am Montag, 15. Juni 2009 09:16:07 schrieb Henri Verbeet:
> 2009/6/14 Stefan Dösinger <stefan at codeweavers.com>:
> > +static void surface_allocate_surface(IWineD3DSurfaceImpl *This, GLenum
> > internal, GLsizei width, GLsizei height, GLenum format, GLenum type, +   
> >                                  DWORD client_store_flag) {
>
> I think that's ugly.
Suggestions?

> More importantly, I don't see how client storage can be enabled for
> one texture but not the other.
In the current code, we don't do that, because only via ddraw.dll the use of 
client storage can change, and only d3d9 can use sRGB textures. What made me 
write this patch was the hack that disables client storage on sRGB 
textures(causes a crash on Leopard, fixed in Snow Leopard), but there are 
other situations which are tricky with one client storage flag, like 
unsetting the flag when the texture is deleted. I also don't want to rely on 
the exclusiveness of sRGB and client storage switching factors.



More information about the wine-devel mailing list