Mathias Kosch wrote:
> This path fixes Bug#13344.
> 
> The function "StretchDIBits" behaves odd in case of "top-down" bitmaps
> with values of zero for "xSrc" and "ySrc". Tests using Windows Server
> 2003 shew that in this particular case the source rectangle is
> selected starting at the upper left corner of the bitmap. In all other
> cases the rectangle is aligned to the bottom of the bitmap.
> 
> I provided a test case which tests several combinations, especially
> those with some of the values set to zero.
> It passes under "Windows Server 2003 R2 SP2" and Wine 1.1.5 (only)
> with this path applied.

General note - Wine uses 4-spaces indentation, tabs = 8 spaces. Use of tabs
discouraged. Mixing spaces and tabs highly not recommended.

> +#include <stdbool.h>
> +#include <inttypes.h>
Please use windows types instead

> +     struct PIXEL
> +     {
> +             uint8_t blue;
> +             uint8_t green;
> +             uint8_t red;
> +     } __attribute__ ((__packed__));
You should use RGBTRIPLE instead.

> +     HDC hDC = NULL, hMemDC = NULL;
> +     HBITMAP hBitmap = NULL, hOldBitmap = NULL;
What's the point initializing something you will overwrite anyway? Don't do
this, it hides bugs.

> 
> +     pBitmapData = (struct 
> PIXEL*)malloc(nBitmapWidth*nBitmapHeight*sizeof(struct PIXEL));
Malloc should not be used in winelib apps. Use HeapAlloc/HeapFree.

> +     if (!pBitmapData)
> +             ok(0, "Memory allocation failed.\n");
Don't do this. If allocation failed assert or skip the test entirely.

Vitaliy.


Reply via email to