Author: cwittich
Date: Sat Mar 6 17:24:37 2010
New Revision: 45957
URL:
http://svn.reactos.org/svn/reactos?rev=45957&view=rev
Log:
[GDIPLUS_WINETEST]
sync gdiplus_winetest to wine 1.1.40
Modified:
trunk/rostests/winetests/gdiplus/graphics.c
trunk/rostests/winetests/gdiplus/image.c
Modified: trunk/rostests/winetests/gdiplus/graphics.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/gdiplus/graphic…
==============================================================================
--- trunk/rostests/winetests/gdiplus/graphics.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/gdiplus/graphics.c [iso-8859-1] Sat Mar 6 17:24:37 2010
@@ -2270,6 +2270,158 @@
ReleaseDC(0, hdc);
}
+static void test_GdipGetNearestColor(void)
+{
+ GpStatus status;
+ GpGraphics *graphics;
+ GpBitmap *bitmap;
+ ARGB color = 0xdeadbeef;
+ HDC hdc = GetDC(0);
+
+ /* create a graphics object */
+ ok(hdc != NULL, "Expected HDC to be initialized\n");
+
+ status = GdipCreateFromHDC(hdc, &graphics);
+ expect(Ok, status);
+ ok(graphics != NULL, "Expected graphics to be initialized\n");
+
+ status = GdipGetNearestColor(graphics, NULL);
+ expect(InvalidParameter, status);
+
+ status = GdipGetNearestColor(NULL, &color);
+ expect(InvalidParameter, status);
+ GdipDeleteGraphics(graphics);
+
+ status = GdipCreateBitmapFromScan0(10, 10, 10, PixelFormat1bppIndexed, NULL,
&bitmap);
+ expect(Ok, status);
+ status = GdipGetImageGraphicsContext((GpImage*)bitmap, &graphics);
+ ok(broken(status == OutOfMemory) /* winver < Win7 */ || status == Ok,
"status=%u\n", status);
+ if (status == Ok)
+ {
+ status = GdipGetNearestColor(graphics, &color);
+ expect(Ok, status);
+ expect(0xdeadbeef, color);
+ GdipDeleteGraphics(graphics);
+ }
+ GdipDisposeImage((GpImage*)bitmap);
+
+ status = GdipCreateBitmapFromScan0(10, 10, 10, PixelFormat4bppIndexed, NULL,
&bitmap);
+ expect(Ok, status);
+ status = GdipGetImageGraphicsContext((GpImage*)bitmap, &graphics);
+ ok(broken(status == OutOfMemory) /* winver < Win7 */ || status == Ok,
"status=%u\n", status);
+ if (status == Ok)
+ {
+ status = GdipGetNearestColor(graphics, &color);
+ expect(Ok, status);
+ expect(0xdeadbeef, color);
+ GdipDeleteGraphics(graphics);
+ }
+ GdipDisposeImage((GpImage*)bitmap);
+
+ status = GdipCreateBitmapFromScan0(10, 10, 10, PixelFormat8bppIndexed, NULL,
&bitmap);
+ expect(Ok, status);
+ status = GdipGetImageGraphicsContext((GpImage*)bitmap, &graphics);
+ ok(broken(status == OutOfMemory) /* winver < Win7 */ || status == Ok,
"status=%u\n", status);
+ if (status == Ok)
+ {
+ status = GdipGetNearestColor(graphics, &color);
+ expect(Ok, status);
+ expect(0xdeadbeef, color);
+ GdipDeleteGraphics(graphics);
+ }
+ GdipDisposeImage((GpImage*)bitmap);
+
+ status = GdipCreateBitmapFromScan0(10, 10, 10, PixelFormat16bppGrayScale, NULL,
&bitmap);
+ expect(Ok, status);
+ status = GdipGetImageGraphicsContext((GpImage*)bitmap, &graphics);
+ todo_wine expect(OutOfMemory, status);
+ if (status == Ok)
+ GdipDeleteGraphics(graphics);
+ GdipDisposeImage((GpImage*)bitmap);
+
+ status = GdipCreateBitmapFromScan0(10, 10, 10, PixelFormat24bppRGB, NULL,
&bitmap);
+ expect(Ok, status);
+ status = GdipGetImageGraphicsContext((GpImage*)bitmap, &graphics);
+ expect(Ok, status);
+ status = GdipGetNearestColor(graphics, &color);
+ expect(Ok, status);
+ expect(0xdeadbeef, color);
+ GdipDeleteGraphics(graphics);
+ GdipDisposeImage((GpImage*)bitmap);
+
+ status = GdipCreateBitmapFromScan0(10, 10, 10, PixelFormat32bppRGB, NULL,
&bitmap);
+ expect(Ok, status);
+ status = GdipGetImageGraphicsContext((GpImage*)bitmap, &graphics);
+ expect(Ok, status);
+ status = GdipGetNearestColor(graphics, &color);
+ expect(Ok, status);
+ expect(0xdeadbeef, color);
+ GdipDeleteGraphics(graphics);
+ GdipDisposeImage((GpImage*)bitmap);
+
+ status = GdipCreateBitmapFromScan0(10, 10, 10, PixelFormat32bppARGB, NULL,
&bitmap);
+ expect(Ok, status);
+ status = GdipGetImageGraphicsContext((GpImage*)bitmap, &graphics);
+ expect(Ok, status);
+ status = GdipGetNearestColor(graphics, &color);
+ expect(Ok, status);
+ expect(0xdeadbeef, color);
+ GdipDeleteGraphics(graphics);
+ GdipDisposeImage((GpImage*)bitmap);
+
+ status = GdipCreateBitmapFromScan0(10, 10, 10, PixelFormat48bppRGB, NULL,
&bitmap);
+ expect(Ok, status);
+ status = GdipGetImageGraphicsContext((GpImage*)bitmap, &graphics);
+ expect(Ok, status);
+ status = GdipGetNearestColor(graphics, &color);
+ expect(Ok, status);
+ expect(0xdeadbeef, color);
+ GdipDeleteGraphics(graphics);
+ GdipDisposeImage((GpImage*)bitmap);
+
+ status = GdipCreateBitmapFromScan0(10, 10, 10, PixelFormat64bppARGB, NULL,
&bitmap);
+ expect(Ok, status);
+ status = GdipGetImageGraphicsContext((GpImage*)bitmap, &graphics);
+ expect(Ok, status);
+ status = GdipGetNearestColor(graphics, &color);
+ expect(Ok, status);
+ expect(0xdeadbeef, color);
+ GdipDeleteGraphics(graphics);
+ GdipDisposeImage((GpImage*)bitmap);
+
+ status = GdipCreateBitmapFromScan0(10, 10, 10, PixelFormat64bppPARGB, NULL,
&bitmap);
+ expect(Ok, status);
+ status = GdipGetImageGraphicsContext((GpImage*)bitmap, &graphics);
+ expect(Ok, status);
+ status = GdipGetNearestColor(graphics, &color);
+ expect(Ok, status);
+ expect(0xdeadbeef, color);
+ GdipDeleteGraphics(graphics);
+ GdipDisposeImage((GpImage*)bitmap);
+
+ status = GdipCreateBitmapFromScan0(10, 10, 10, PixelFormat16bppRGB565, NULL,
&bitmap);
+ expect(Ok, status);
+ status = GdipGetImageGraphicsContext((GpImage*)bitmap, &graphics);
+ expect(Ok, status);
+ status = GdipGetNearestColor(graphics, &color);
+ expect(Ok, status);
+ todo_wine expect(0xffa8bce8, color);
+ GdipDeleteGraphics(graphics);
+ GdipDisposeImage((GpImage*)bitmap);
+
+ status = GdipCreateBitmapFromScan0(10, 10, 10, PixelFormat16bppRGB555, NULL,
&bitmap);
+ expect(Ok, status);
+ status = GdipGetImageGraphicsContext((GpImage*)bitmap, &graphics);
+ expect(Ok, status);
+ status = GdipGetNearestColor(graphics, &color);
+ expect(Ok, status);
+ todo_wine expect(0xffa8b8e8, color);
+ GdipDeleteGraphics(graphics);
+ GdipDisposeImage((GpImage*)bitmap);
+
+ ReleaseDC(0, hdc);
+}
+
START_TEST(graphics)
{
struct GdiplusStartupInput gdiplusStartupInput;
@@ -2296,6 +2448,7 @@
test_GdipDrawLineI();
test_GdipDrawLinesI();
test_GdipDrawString();
+ test_GdipGetNearestColor();
test_GdipGetVisibleClipBounds();
test_GdipIsVisiblePoint();
test_GdipIsVisibleRect();
Modified: trunk/rostests/winetests/gdiplus/image.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/gdiplus/image.c…
==============================================================================
--- trunk/rostests/winetests/gdiplus/image.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/gdiplus/image.c [iso-8859-1] Sat Mar 6 17:24:37 2010
@@ -1625,6 +1625,191 @@
IStream_Release(stream);
}
+static void test_rotateflip(void)
+{
+ GpImage *bitmap;
+ GpStatus stat;
+ BYTE bits[24];
+ static const BYTE orig_bits[24] = {
+ 0,0,0xff, 0,0xff,0, 0xff,0,0, 23,23,23,
+ 0xff,0xff,0, 0xff,0,0xff, 0,0xff,0xff, 23,23,23};
+ UINT width, height;
+ ARGB color;
+
+ memcpy(bits, orig_bits, sizeof(bits));
+ stat = GdipCreateBitmapFromScan0(3, 2, 12, PixelFormat24bppRGB, bits,
(GpBitmap**)&bitmap);
+ expect(Ok, stat);
+
+ stat = GdipImageRotateFlip(bitmap, Rotate90FlipNone);
+ todo_wine expect(Ok, stat);
+
+ stat = GdipGetImageWidth(bitmap, &width);
+ expect(Ok, stat);
+ stat = GdipGetImageHeight(bitmap, &height);
+ expect(Ok, stat);
+ todo_wine expect(2, width);
+ todo_wine expect(3, height);
+
+ stat = GdipBitmapGetPixel((GpBitmap*)bitmap, 0, 0, &color);
+ expect(Ok, stat);
+ todo_wine expect(0xff00ffff, color);
+
+ stat = GdipBitmapGetPixel((GpBitmap*)bitmap, 1, 0, &color);
+ expect(Ok, stat);
+ todo_wine expect(0xffff0000, color);
+
+ stat = GdipBitmapGetPixel((GpBitmap*)bitmap, 0, 2, &color);
+ todo_wine expect(Ok, stat);
+ todo_wine expect(0xffffff00, color);
+
+ stat = GdipBitmapGetPixel((GpBitmap*)bitmap, 1, 2, &color);
+ todo_wine expect(Ok, stat);
+ todo_wine expect(0xff0000ff, color);
+
+ expect(0, bits[0]);
+ expect(0, bits[1]);
+ expect(0xff, bits[2]);
+
+ GdipDisposeImage(bitmap);
+
+ memcpy(bits, orig_bits, sizeof(bits));
+ stat = GdipCreateBitmapFromScan0(3, 2, 12, PixelFormat24bppRGB, bits,
(GpBitmap**)&bitmap);
+ expect(Ok, stat);
+
+ stat = GdipImageRotateFlip(bitmap, RotateNoneFlipX);
+ todo_wine expect(Ok, stat);
+
+ stat = GdipGetImageWidth(bitmap, &width);
+ expect(Ok, stat);
+ stat = GdipGetImageHeight(bitmap, &height);
+ expect(Ok, stat);
+ expect(3, width);
+ expect(2, height);
+
+ stat = GdipBitmapGetPixel((GpBitmap*)bitmap, 0, 0, &color);
+ expect(Ok, stat);
+ todo_wine expect(0xff0000ff, color);
+
+ stat = GdipBitmapGetPixel((GpBitmap*)bitmap, 2, 0, &color);
+ expect(Ok, stat);
+ todo_wine expect(0xffff0000, color);
+
+ stat = GdipBitmapGetPixel((GpBitmap*)bitmap, 0, 1, &color);
+ expect(Ok, stat);
+ todo_wine expect(0xffffff00, color);
+
+ stat = GdipBitmapGetPixel((GpBitmap*)bitmap, 2, 1, &color);
+ expect(Ok, stat);
+ todo_wine expect(0xff00ffff, color);
+
+ expect(0, bits[0]);
+ expect(0, bits[1]);
+ expect(0xff, bits[2]);
+
+ GdipDisposeImage(bitmap);
+
+ memcpy(bits, orig_bits, sizeof(bits));
+ stat = GdipCreateBitmapFromScan0(3, 2, 12, PixelFormat24bppRGB, bits,
(GpBitmap**)&bitmap);
+ expect(Ok, stat);
+
+ stat = GdipImageRotateFlip(bitmap, RotateNoneFlipY);
+ todo_wine expect(Ok, stat);
+
+ stat = GdipGetImageWidth(bitmap, &width);
+ expect(Ok, stat);
+ stat = GdipGetImageHeight(bitmap, &height);
+ expect(Ok, stat);
+ expect(3, width);
+ expect(2, height);
+
+ stat = GdipBitmapGetPixel((GpBitmap*)bitmap, 0, 0, &color);
+ expect(Ok, stat);
+ todo_wine expect(0xff00ffff, color);
+
+ stat = GdipBitmapGetPixel((GpBitmap*)bitmap, 2, 0, &color);
+ expect(Ok, stat);
+ todo_wine expect(0xffffff00, color);
+
+ stat = GdipBitmapGetPixel((GpBitmap*)bitmap, 0, 1, &color);
+ expect(Ok, stat);
+ todo_wine expect(0xffff0000, color);
+
+ stat = GdipBitmapGetPixel((GpBitmap*)bitmap, 2, 1, &color);
+ expect(Ok, stat);
+ todo_wine expect(0xff0000ff, color);
+
+ expect(0, bits[0]);
+ expect(0, bits[1]);
+ expect(0xff, bits[2]);
+
+ GdipDisposeImage(bitmap);
+}
+
+static void test_remaptable(void)
+{
+ GpStatus stat;
+ GpImageAttributes *imageattr;
+ GpBitmap *bitmap1, *bitmap2;
+ GpGraphics *graphics;
+ ARGB color;
+ ColorMap *map;
+
+ map = GdipAlloc(sizeof(ColorMap));
+
+ map->oldColor.Argb = 0xff00ff00;
+ map->newColor.Argb = 0xffff00ff;
+
+ stat = GdipSetImageAttributesRemapTable(NULL, ColorAdjustTypeDefault, TRUE, 1, map);
+ expect(InvalidParameter, stat);
+
+ stat = GdipCreateImageAttributes(&imageattr);
+ expect(Ok, stat);
+
+ stat = GdipSetImageAttributesRemapTable(imageattr, ColorAdjustTypeDefault, TRUE, 1,
NULL);
+ expect(InvalidParameter, stat);
+
+ stat = GdipSetImageAttributesRemapTable(imageattr, ColorAdjustTypeCount, TRUE, 1,
map);
+ expect(InvalidParameter, stat);
+
+ stat = GdipSetImageAttributesRemapTable(imageattr, ColorAdjustTypeAny, TRUE, 1,
map);
+ expect(InvalidParameter, stat);
+
+ stat = GdipSetImageAttributesRemapTable(imageattr, ColorAdjustTypeDefault, TRUE, 0,
map);
+ expect(InvalidParameter, stat);
+
+ stat = GdipSetImageAttributesRemapTable(imageattr, ColorAdjustTypeDefault, FALSE, 0,
NULL);
+ expect(Ok, stat);
+
+ stat = GdipSetImageAttributesRemapTable(imageattr, ColorAdjustTypeDefault, TRUE, 1,
map);
+ expect(Ok, stat);
+
+ stat = GdipCreateBitmapFromScan0(1, 1, 0, PixelFormat32bppRGB, NULL, &bitmap1);
+ expect(Ok, stat);
+
+ stat = GdipCreateBitmapFromScan0(1, 1, 0, PixelFormat32bppRGB, NULL, &bitmap2);
+ expect(Ok, stat);
+
+ stat = GdipBitmapSetPixel(bitmap1, 0, 0, 0xff00ff00);
+ expect(Ok, stat);
+
+ stat = GdipGetImageGraphicsContext((GpImage*)bitmap2, &graphics);
+ expect(Ok, stat);
+
+ stat = GdipDrawImageRectRectI(graphics, (GpImage*)bitmap1, 0,0,1,1, 0,0,1,1,
+ UnitPixel, imageattr, NULL, NULL);
+ expect(Ok, stat);
+
+ stat = GdipBitmapGetPixel(bitmap2, 0, 0, &color);
+ expect(Ok, stat);
+ todo_wine ok(color_match(0xffff00ff, color, 1), "Expected ffff00ff, got
%.8x\n", color);
+
+ GdipDeleteGraphics(graphics);
+ GdipDisposeImage((GpImage*)bitmap1);
+ GdipDisposeImage((GpImage*)bitmap2);
+ GdipDisposeImageAttributes(imageattr);
+ GdipFree(map);
+}
+
START_TEST(image)
{
struct GdiplusStartupInput gdiplusStartupInput;
@@ -1659,6 +1844,8 @@
test_colormatrix();
test_gamma();
test_multiframegif();
+ test_rotateflip();
+ test_remaptable();
GdiplusShutdown(gdiplusToken);
}