wined3d: universal surface convertor function for unsigned integer color formats

Stefan Dösinger stefan at codeweavers.com
Mon Jul 14 09:21:19 CDT 2008


There's a pixelformat table that describes bitmasks and sizes in utils.c, you can access it with a function that is next to it. I think you can infer the shifting information from this table, if not please add it there instead of creating your own table.

Also please do not use C++ comments("//"), and watch out regarding tabs and spaces

Your patch still adds the x8r8g8b8_to_x5r6g5 function, and I think it is a bit ugly to bypass the existing format conversion table entirely and add the convert_unsigned_pixels function. I think it would be better to access this function using the conversion table. One reason is that we could use the table in directx.c in CheckDeviceFormatConversion, so the information is all in one place.

> -----Original Message-----
> From: wine-patches-bounces at winehq.org [mailto:wine-patches-
> bounces at winehq.org] On Behalf Of Victor Eremin
> Sent: Sunday, July 13, 2008 5:52 PM
> To: wine-patches at winehq.org
> Subject: wined3d: universal surface convertor function for unsigned
> integer color formats
> 
> 
> Converter function supports conversion between most of "unsigned color"
> argb/xrgb surface formats (like D3DFMT_A8R8G8B8, D3DFMT_A8R3G3B2, and
> so on), and between "luminosity" color formats  (D3DFMT_L8, etc),
> excluding D3DFMT_A16R16G16B16, D3DFMT_A8P8,
> D3DFMT_P8 and D3DFMT_A1.
> 
> Conversion from rgba to luminosity (and vice versa) is not currently
> implemented.
> 
> The patch removes "Cannot find coverter" FIXMEs from "Ancient Evil" and
> "Stranded 2" games.
> 
> Patch also fixes water glitches in "Stranded 2" game.
> ---
>  dlls/wined3d/surface_base.c |  215
> +++++++++++++++++++++++++++++++++++++++++-
>  1 files changed, 209 insertions(+), 6 deletions(-)




More information about the wine-devel mailing list