How many different conversions do the two games need? One of my concerns is that this generic code is way slower than a separate conversion function for each pair of color formats. On the other hand, one function for each pair gives a whole lot more of code, and if we run into the conversion function during rendering we can kiss the framerate goodbye anyway
-----Original Message----- From: wine-patches-bounces@winehq.org [mailto:wine-patches- bounces@winehq.org] On Behalf Of Victor Eremin Sent: Thursday, July 17, 2008 11:02 AM To: wine-patches@winehq.org Subject: wined3d: universal surface convertor function for unsigned integer color formats(2nd attempt)
Supports conversion between most of "unsigned color" argb/xrgb surface formats (D3DFMT_A8R8G8B8, D3DFMT_A8R3G3B2, etc), and "luminosity" color formats (D3DFMT_L8, etc), excluding D3DFMT_A16R16G16B16, D3DFMT_A8P8, D3DFMT_P8 and D3DFMT_A1. luminosity to argb/xrgb (and vice versa) conversions are not supported
Removes "Cannot find coverter" FIXMEs from "Ancient Evil" and "Stranded 2" games.
Fixes water glitches in "Stranded 2" game.
dlls/wined3d/surface_base.c | 203 ++++++++++++++++++++++++++++++++++++++-- dlls/wined3d/utils.c | 126 ++++++++++++------------ dlls/wined3d/wined3d_private.h | 2 +- 3 files changed, 260 insertions(+), 71 deletions(-)