The patch looks fine to me. There is just one comment opn these lines :
if (SameSurface)
{
static BOOL WarnSurface = FALSE;
if (!WarnSurface)
{
FIXME("\tSame source and destination could cause display problems\n");
WarnSurface = TRUE;
}
- }
Why did you add this ? If you verified your patch and it's working, why add additionnal debug informations that will only confuse people :-) ?
Moreover, I do not know the performance hit between a 'memcpy' and a 'memmove', but well, one could have put the old code in a if (!SameSurface) to have the fastest path available to the most common case.
A part from these nitpicks, the patch looks fine and I will test it this evening on FalloutTactics to see if it fixes the screen corruption :-)
Lionel
Lionel Ulmer wrote:
The patch looks fine to me. There is just one comment opn these lines :
if (SameSurface)
{
static BOOL WarnSurface = FALSE;
if (!WarnSurface)
{
FIXME("\tSame source and destination could cause display problems\n");
WarnSurface = TRUE;
}
- }
Why did you add this ? If you verified your patch and it's working, why add additionnal debug informations that will only confuse people :-) ?
The thing here is that I only fixed it for when the areas are the same size and no other flags are set. There are possible situations where flags are set and/or stretching is involved that this "fix" does not solve. This may confusing but it is a warning and it only prints once. Perhaps a little comment along with the warning might be in order.
Moreover, I do not know the performance hit between a 'memcpy' and a 'memmove', but well, one could have put the old code in a if (!SameSurface) to have the fastest path available to the most common case.
I think you are right that the fall through would be faster, I will change the code and resubmit.
A part from these nitpicks, the patch looks fine and I will test it this evening on FalloutTactics to see if it fixes the screen corruption :-)
Lionel
I would like to know if this works for FalloutTactics. Thank you for your help.
Tony Lambregts