Author: akhaldi
Date: Thu May 23 17:23:10 2013
New Revision: 59074
URL:
http://svn.reactos.org/svn/reactos?rev=59074&view=rev
Log:
[GDIPLUS_WINETEST]
* Sync with Wine 1.5.26.
Modified:
trunk/rostests/winetests/gdiplus/brush.c
trunk/rostests/winetests/gdiplus/customlinecap.c
trunk/rostests/winetests/gdiplus/font.c
trunk/rostests/winetests/gdiplus/graphics.c
trunk/rostests/winetests/gdiplus/graphicspath.c
trunk/rostests/winetests/gdiplus/image.c
trunk/rostests/winetests/gdiplus/matrix.c
trunk/rostests/winetests/gdiplus/metafile.c
trunk/rostests/winetests/gdiplus/pathiterator.c
trunk/rostests/winetests/gdiplus/pen.c
trunk/rostests/winetests/gdiplus/region.c
trunk/rostests/winetests/gdiplus/stringformat.c
trunk/rostests/winetests/gdiplus/testlist.c
Modified: trunk/rostests/winetests/gdiplus/brush.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/gdiplus/brush.c…
==============================================================================
--- trunk/rostests/winetests/gdiplus/brush.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/gdiplus/brush.c [iso-8859-1] Thu May 23 17:23:10 2013
@@ -18,9 +18,15 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#include "windows.h"
-#include "gdiplus.h"
-#include "wine/test.h"
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+
+//#include "windows.h"
+#include <wine/test.h>
+#include <wingdi.h>
+#include <objbase.h>
+#include <gdiplus.h>
#include <math.h>
#define expect(expected, got) ok(got == expected, "Expected %.8x, got %.8x\n",
expected, got)
Modified: trunk/rostests/winetests/gdiplus/customlinecap.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/gdiplus/customl…
==============================================================================
--- trunk/rostests/winetests/gdiplus/customlinecap.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/gdiplus/customlinecap.c [iso-8859-1] Thu May 23 17:23:10
2013
@@ -18,9 +18,15 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#include "windows.h"
-#include "gdiplus.h"
-#include "wine/test.h"
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+
+//#include "windows.h"
+#include <wine/test.h>
+#include <wingdi.h>
+#include <objbase.h>
+#include <gdiplus.h>
#define expect(expected, got) ok(got == expected, "Expected %.8x, got %.8x\n",
expected, got)
#define expectf(expected, got) ok(got == expected, "Expected %.2f, got %.2f\n",
expected, got)
Modified: trunk/rostests/winetests/gdiplus/font.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/gdiplus/font.c?…
==============================================================================
--- trunk/rostests/winetests/gdiplus/font.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/gdiplus/font.c [iso-8859-1] Thu May 23 17:23:10 2013
@@ -21,9 +21,16 @@
#include <math.h>
-#include "windows.h"
-#include "gdiplus.h"
-#include "wine/test.h"
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+
+//#include "windows.h"
+#include <wine/test.h>
+#include <wingdi.h>
+#include <winnls.h>
+#include <objbase.h>
+#include <gdiplus.h>
#define expect(expected, got) ok(got == expected, "Expected %d, got %d\n",
expected, got)
#define expect_(expected, got, precision) ok(abs((expected) - (got)) <= (precision),
"Expected %d, got %d\n", (expected), (got))
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] Thu May 23 17:23:10 2013
@@ -22,10 +22,15 @@
#include <math.h>
#include <assert.h>
-#include "windows.h"
-#include "gdiplus.h"
-#include "wingdi.h"
-#include "wine/test.h"
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+
+//#include "windows.h"
+#include <wine/test.h>
+#include <wingdi.h>
+#include <objbase.h>
+#include <gdiplus.h>
#define expect(expected, got) ok((got) == (expected), "Expected %d, got %d\n",
(INT)(expected), (INT)(got))
#define expectf_(expected, got, precision) ok(fabs((expected) - (got)) <= (precision),
"Expected %f, got %f\n", (expected), (got))
@@ -3056,7 +3061,7 @@
expect(3, linesfilled);
/* Cut off everything including the first space. */
- rc.Width = char_bounds.Width + char_width * 1.5;
+ rc.Width = char_bounds.Width + char_width * 1.7;
status = GdipMeasureString(graphics, teststring, 6, font, &rc, NULL, &bounds,
&codepointsfitted, &linesfilled);
expect(Ok, status);
@@ -3068,14 +3073,14 @@
expect(3, linesfilled);
/* Cut off everything after the first character. */
- rc.Width = char_bounds.Width + char_width * 0.5;
+ rc.Width = char_bounds.Width + char_width * 0.8;
status = GdipMeasureString(graphics, teststring, 6, font, &rc, NULL, &bounds,
&codepointsfitted, &linesfilled);
expect(Ok, status);
expectf(0.0, bounds.X);
expectf(0.0, bounds.Y);
expectf_(char_bounds.Width, bounds.Width, 0.01);
- todo_wine expectf_(char_bounds.Height + char_height * 3, bounds.Height, 0.05);
+ expectf_(char_bounds.Height + char_height * 3, bounds.Height, 0.05);
expect(6, codepointsfitted);
todo_wine expect(4, linesfilled);
@@ -3911,15 +3916,22 @@
static const WCHAR string[] = { 'A','0','1',0 };
HDC hdc;
GpStringFormat *format;
+ CharacterRange range;
+ GpRegion *region;
GpGraphics *graphics;
GpFontFamily *family;
GpFont *font;
GpStatus status;
RectF bounds, rect;
REAL width, height, width_1, width_2;
+ REAL margin_x, margin_y, width_rgn, height_rgn;
int lines, glyphs;
status = GdipCreateStringFormat(StringFormatFlagsNoWrap, LANG_NEUTRAL, &format);
+ expect(Ok, status);
+ expect(Ok, status);
+
+ status = GdipCreateRegion(®ion);
expect(Ok, status);
status = GdipCreateFontFamilyFromName(tahomaW, NULL, &family);
@@ -3930,6 +3942,9 @@
status = GdipCreateFont(family, 20, FontStyleRegular, UnitPixel, &font);
expect(Ok, status);
+
+ margin_x = 20.0 / 6.0;
+ margin_y = 20.0 / 8.0;
set_rect_empty(&rect);
set_rect_empty(&bounds);
@@ -3937,6 +3952,8 @@
expect(Ok, status);
expect(3, glyphs);
expect(1, lines);
+ expectf(0.0, bounds.X);
+ expectf(0.0, bounds.Y);
width = bounds.Width;
height = bounds.Height;
@@ -3947,16 +3964,139 @@
expect(Ok, status);
expect(3, glyphs);
expect(1, lines);
+ expectf(0.0, bounds.X);
+ expectf(0.0, bounds.Y);
expectf(width, bounds.Width);
todo_wine
expectf(height / 2.0, bounds.Height);
+ range.First = 0;
+ range.Length = lstrlenW(string);
+ status = GdipSetStringFormatMeasurableCharacterRanges(format, 1, &range);
+ expect(Ok, status);
+
+ rect.X = 5.0;
+ rect.Y = 5.0;
+ rect.Width = 32000.0;
+ rect.Height = 32000.0;
+ status = GdipMeasureCharacterRanges(graphics, string, -1, font, &rect, format, 1,
®ion);
+ expect(Ok, status);
+ set_rect_empty(&bounds);
+ status = GdipGetRegionBounds(region, graphics, &bounds);
+ expect(Ok, status);
+ expectf_(5.0 + margin_x, bounds.X, 1.0);
+ expectf(5.0, bounds.Y);
+ expectf_(width - margin_x*2.0, bounds.Width, 1.0);
+todo_wine
+ expectf_(height - margin_y, bounds.Height, 1.0);
+
+ width_rgn = bounds.Width;
+ height_rgn = bounds.Height;
+
+ range.First = 0;
+ range.Length = 1;
+ status = GdipSetStringFormatMeasurableCharacterRanges(format, 1, &range);
+ expect(Ok, status);
+
+ set_rect_empty(&rect);
+ rect.Width = 32000.0;
+ rect.Height = 32000.0;
+ status = GdipMeasureCharacterRanges(graphics, string, 1, font, &rect, format, 1,
®ion);
+ expect(Ok, status);
+ set_rect_empty(&bounds);
+ status = GdipGetRegionBounds(region, graphics, &bounds);
+ expect(Ok, status);
+ expectf_(margin_x, bounds.X, 1.0);
+ expectf(0.0, bounds.Y);
+ ok(bounds.Width < width_rgn / 2.0, "width of 1 glyph is wrong\n");
+ expectf(height_rgn, bounds.Height);
+ width_1 = bounds.Width;
+
+ range.First = 0;
+ range.Length = lstrlenW(string);
+ status = GdipSetStringFormatMeasurableCharacterRanges(format, 1, &range);
+ expect(Ok, status);
+
+ rect.X = 5.0;
+ rect.Y = 5.0;
+ rect.Width = 0.0;
+ rect.Height = 0.0;
+ status = GdipMeasureCharacterRanges(graphics, string, -1, font, &rect, format, 1,
®ion);
+ expect(Ok, status);
+ set_rect_empty(&bounds);
+ status = GdipGetRegionBounds(region, graphics, &bounds);
+ expect(Ok, status);
+ expectf(0.0, bounds.X);
+ expectf(0.0, bounds.Y);
+ expectf(0.0, bounds.Width);
+ expectf(0.0, bounds.Height);
+
+ rect.X = 5.0;
+ rect.Y = 5.0;
+ rect.Width = width_rgn / 2.0;
+ rect.Height = 32000.0;
+ status = GdipMeasureCharacterRanges(graphics, string, -1, font, &rect, format, 1,
®ion);
+ expect(Ok, status);
+ set_rect_empty(&bounds);
+ status = GdipGetRegionBounds(region, graphics, &bounds);
+ expect(Ok, status);
+ expectf_(5.0 + margin_x, bounds.X, 1.0);
+ expectf(5.0, bounds.Y);
+ expectf_(width_1, bounds.Width, 1.0);
+todo_wine
+ expectf_(height - margin_y, bounds.Height, 1.0);
+
+ status = GdipSetStringFormatFlags(format, StringFormatFlagsNoWrap |
StringFormatFlagsNoClip);
+
+ rect.X = 5.0;
+ rect.Y = 5.0;
+ rect.Width = 0.0;
+ rect.Height = 0.0;
+ status = GdipMeasureCharacterRanges(graphics, string, -1, font, &rect, format, 1,
®ion);
+ expect(Ok, status);
+ set_rect_empty(&bounds);
+ status = GdipGetRegionBounds(region, graphics, &bounds);
+ expect(Ok, status);
+ expectf_(5.0 + margin_x, bounds.X, 1.0);
+ expectf(5.0, bounds.Y);
+ expectf(width_rgn, bounds.Width);
+ expectf(height_rgn, bounds.Height);
+
+ rect.X = 5.0;
+ rect.Y = 5.0;
+ rect.Width = width_rgn / 2.0;
+ rect.Height = 32000.0;
+ status = GdipMeasureCharacterRanges(graphics, string, -1, font, &rect, format, 1,
®ion);
+ expect(Ok, status);
+ set_rect_empty(&bounds);
+ status = GdipGetRegionBounds(region, graphics, &bounds);
+ expect(Ok, status);
+ expectf_(5.0 + margin_x, bounds.X, 1.0);
+ expectf(5.0, bounds.Y);
+ expectf_(width_1, bounds.Width, 1.0);
+ expectf(height_rgn, bounds.Height);
+
+ set_rect_empty(&rect);
+ rect.Height = height / 2.0;
+ set_rect_empty(&bounds);
+ status = GdipMeasureString(graphics, string, -1, font, &rect, format,
&bounds, &glyphs, &lines);
+ expect(Ok, status);
+ expect(3, glyphs);
+ expect(1, lines);
+ expectf(0.0, bounds.X);
+ expectf(0.0, bounds.Y);
+ expectf_(width, bounds.Width, 0.01);
+todo_wine
+ expectf(height, bounds.Height);
+
set_rect_empty(&rect);
set_rect_empty(&bounds);
status = GdipMeasureString(graphics, string, 1, font, &rect, format, &bounds,
&glyphs, &lines);
expect(Ok, status);
expect(1, glyphs);
expect(1, lines);
+ expectf(0.0, bounds.X);
+ expectf(0.0, bounds.Y);
ok(bounds.Width < width / 2.0, "width of 1 glyph is wrong\n");
expectf(height, bounds.Height);
width_1 = bounds.Width;
@@ -3967,6 +4107,8 @@
expect(Ok, status);
expect(2, glyphs);
expect(1, lines);
+ expectf(0.0, bounds.X);
+ expectf(0.0, bounds.Y);
ok(bounds.Width < width, "width of 2 glyphs is wrong\n");
ok(bounds.Width > width_1, "width of 2 glyphs is wrong\n");
expectf(height, bounds.Height);
@@ -3979,6 +4121,8 @@
expect(Ok, status);
expect(1, glyphs);
expect(1, lines);
+ expectf(0.0, bounds.X);
+ expectf(0.0, bounds.Y);
expectf_(width_1, bounds.Width, 0.01);
expectf(height, bounds.Height);
@@ -3990,6 +4134,8 @@
expect(Ok, status);
expect(2, glyphs);
expect(1, lines);
+ expectf(0.0, bounds.X);
+ expectf(0.0, bounds.Y);
expectf_(width_2, bounds.Width, 0.01);
expectf(height, bounds.Height);
@@ -4001,9 +4147,180 @@
expect(Ok, status);
expect(1, glyphs);
expect(1, lines);
+ expectf(0.0, bounds.X);
+ expectf(0.0, bounds.Y);
expectf_(width_1, bounds.Width, 0.01);
expectf(height, bounds.Height);
+ /* Default (Near) alignment */
+ rect.X = 5.0;
+ rect.Y = 5.0;
+ rect.Width = width * 2.0;
+ rect.Height = height * 2.0;
+ set_rect_empty(&bounds);
+ status = GdipMeasureString(graphics, string, -1, font, &rect, format,
&bounds, &glyphs, &lines);
+ expect(Ok, status);
+ expect(3, glyphs);
+ expect(1, lines);
+ expectf(5.0, bounds.X);
+ expectf(5.0, bounds.Y);
+ expectf_(width, bounds.Width, 0.01);
+ expectf(height, bounds.Height);
+
+ rect.X = 5.0;
+ rect.Y = 5.0;
+ rect.Width = 32000.0;
+ rect.Height = 32000.0;
+ status = GdipMeasureCharacterRanges(graphics, string, -1, font, &rect, format, 1,
®ion);
+ expect(Ok, status);
+ set_rect_empty(&bounds);
+ status = GdipGetRegionBounds(region, graphics, &bounds);
+ expect(Ok, status);
+ expectf_(5.0 + margin_x, bounds.X, 1.0);
+ expectf(5.0, bounds.Y);
+ expectf_(width - margin_x*2.0, bounds.Width, 1.0);
+todo_wine
+ expectf_(height - margin_y, bounds.Height, 1.0);
+
+ width_rgn = bounds.Width;
+ height_rgn = bounds.Height;
+
+ /* Center alignment */
+ GdipSetStringFormatAlign(format, StringAlignmentCenter);
+ GdipSetStringFormatLineAlign(format, StringAlignmentCenter);
+
+ rect.X = 5.0;
+ rect.Y = 5.0;
+ rect.Width = width * 2.0;
+ rect.Height = height * 2.0;
+ set_rect_empty(&bounds);
+ status = GdipMeasureString(graphics, string, -1, font, &rect, format,
&bounds, &glyphs, &lines);
+ expect(Ok, status);
+ expect(3, glyphs);
+ expect(1, lines);
+todo_wine
+ expectf_(5.0 + width/2.0, bounds.X, 0.01);
+todo_wine
+ expectf(5.0 + height/2.0, bounds.Y);
+ expectf_(width, bounds.Width, 0.01);
+ expectf(height, bounds.Height);
+
+ rect.X = 5.0;
+ rect.Y = 5.0;
+ rect.Width = 0.0;
+ rect.Height = 0.0;
+ set_rect_empty(&bounds);
+ status = GdipMeasureString(graphics, string, -1, font, &rect, format,
&bounds, &glyphs, &lines);
+ expect(Ok, status);
+ expect(3, glyphs);
+ expect(1, lines);
+todo_wine
+ expectf_(5.0 - width/2.0, bounds.X, 0.01);
+todo_wine
+ expectf(5.0 - height/2.0, bounds.Y);
+ expectf_(width, bounds.Width, 0.01);
+ expectf(height, bounds.Height);
+
+ rect.X = 5.0;
+ rect.Y = 5.0;
+ rect.Width = width_rgn * 2.0;
+ rect.Height = height_rgn * 2.0;
+ status = GdipMeasureCharacterRanges(graphics, string, -1, font, &rect, format, 1,
®ion);
+ expect(Ok, status);
+ set_rect_empty(&bounds);
+ status = GdipGetRegionBounds(region, graphics, &bounds);
+ expect(Ok, status);
+todo_wine
+ expectf_(5.0 + width_rgn/2.0, bounds.X, 1.0);
+todo_wine
+ expectf_(5.0 + height_rgn/2.0, bounds.Y, 1.0);
+ expectf_(width_rgn, bounds.Width, 1.0);
+ expectf_(height_rgn, bounds.Height, 1.0);
+
+ rect.X = 5.0;
+ rect.Y = 5.0;
+ rect.Width = 0.0;
+ rect.Height = 0.0;
+ status = GdipMeasureCharacterRanges(graphics, string, -1, font, &rect, format, 1,
®ion);
+ expect(Ok, status);
+ set_rect_empty(&bounds);
+ status = GdipGetRegionBounds(region, graphics, &bounds);
+ expect(Ok, status);
+todo_wine
+ expectf_(5.0 - width_rgn/2.0, bounds.X, 1.0);
+todo_wine
+ expectf_(5.0 - height_rgn/2.0, bounds.Y, 1.0);
+ expectf_(width_rgn, bounds.Width, 1.0);
+ expectf_(height_rgn, bounds.Height, 1.0);
+
+ /* Far alignment */
+ GdipSetStringFormatAlign(format, StringAlignmentFar);
+ GdipSetStringFormatLineAlign(format, StringAlignmentFar);
+
+ rect.X = 5.0;
+ rect.Y = 5.0;
+ rect.Width = width * 2.0;
+ rect.Height = height * 2.0;
+ set_rect_empty(&bounds);
+ status = GdipMeasureString(graphics, string, -1, font, &rect, format,
&bounds, &glyphs, &lines);
+ expect(Ok, status);
+ expect(3, glyphs);
+ expect(1, lines);
+todo_wine
+ expectf_(5.0 + width, bounds.X, 0.01);
+todo_wine
+ expectf(5.0 + height, bounds.Y);
+ expectf_(width, bounds.Width, 0.01);
+ expectf(height, bounds.Height);
+
+ rect.X = 5.0;
+ rect.Y = 5.0;
+ rect.Width = 0.0;
+ rect.Height = 0.0;
+ set_rect_empty(&bounds);
+ status = GdipMeasureString(graphics, string, -1, font, &rect, format,
&bounds, &glyphs, &lines);
+ expect(Ok, status);
+ expect(3, glyphs);
+ expect(1, lines);
+todo_wine
+ expectf_(5.0 - width, bounds.X, 0.01);
+todo_wine
+ expectf(5.0 - height, bounds.Y);
+ expectf_(width, bounds.Width, 0.01);
+ expectf(height, bounds.Height);
+
+ rect.X = 5.0;
+ rect.Y = 5.0;
+ rect.Width = width_rgn * 2.0;
+ rect.Height = height_rgn * 2.0;
+ status = GdipMeasureCharacterRanges(graphics, string, -1, font, &rect, format, 1,
®ion);
+ expect(Ok, status);
+ set_rect_empty(&bounds);
+ status = GdipGetRegionBounds(region, graphics, &bounds);
+ expect(Ok, status);
+todo_wine
+ expectf_(5.0 + width_rgn, bounds.X, 2.0);
+todo_wine
+ expectf_(5.0 + height_rgn, bounds.Y, 1.0);
+ expectf_(width_rgn, bounds.Width, 1.0);
+ expectf_(height_rgn, bounds.Height, 1.0);
+
+ rect.X = 5.0;
+ rect.Y = 5.0;
+ rect.Width = 0.0;
+ rect.Height = 0.0;
+ status = GdipMeasureCharacterRanges(graphics, string, -1, font, &rect, format, 1,
®ion);
+ expect(Ok, status);
+ set_rect_empty(&bounds);
+ status = GdipGetRegionBounds(region, graphics, &bounds);
+ expect(Ok, status);
+todo_wine
+ expectf_(5.0 - width_rgn, bounds.X, 2.0);
+todo_wine
+ expectf_(5.0 - height_rgn, bounds.Y, 1.0);
+ expectf_(width_rgn, bounds.Width, 1.0);
+ expectf_(height_rgn, bounds.Height, 1.0);
+
status = GdipDeleteFont(font);
expect(Ok, status);
@@ -4012,6 +4329,7 @@
DeleteDC(hdc);
GdipDeleteFontFamily(family);
+ GdipDeleteRegion(region);
GdipDeleteStringFormat(format);
}
@@ -4140,6 +4458,58 @@
DeleteObject(hbm);
DeleteDC(hdc);
+}
+
+static void test_bitmapfromgraphics(void)
+{
+ GpStatus stat;
+ GpGraphics *graphics = NULL;
+ HDC hdc = GetDC( hwnd );
+ GpBitmap *bitmap = NULL;
+ PixelFormat format;
+ REAL imageres, graphicsres;
+ UINT width, height;
+
+ stat = GdipCreateFromHDC(hdc, &graphics);
+ expect(Ok, stat);
+
+ stat = GdipCreateBitmapFromGraphics(12, 13, NULL, &bitmap);
+ expect(InvalidParameter, stat);
+
+ stat = GdipCreateBitmapFromGraphics(12, 13, graphics, NULL);
+ expect(InvalidParameter, stat);
+
+ stat = GdipCreateBitmapFromGraphics(12, 13, graphics, &bitmap);
+ expect(Ok, stat);
+
+ stat = GdipGetImagePixelFormat((GpImage*)bitmap, &format);
+ expect(Ok, stat);
+ expect(PixelFormat32bppPARGB, format);
+
+ stat = GdipGetDpiX(graphics, &graphicsres);
+ expect(Ok, stat);
+
+ stat = GdipGetImageHorizontalResolution((GpImage*)bitmap, &imageres);
+ expect(Ok, stat);
+ expectf(graphicsres, imageres);
+
+ stat = GdipGetDpiY(graphics, &graphicsres);
+ expect(Ok, stat);
+
+ stat = GdipGetImageVerticalResolution((GpImage*)bitmap, &imageres);
+ expect(Ok, stat);
+ expectf(graphicsres, imageres);
+
+ stat = GdipGetImageWidth((GpImage*)bitmap, &width);
+ expect(Ok, stat);
+ expect(12, width);
+
+ stat = GdipGetImageHeight((GpImage*)bitmap, &height);
+ expect(Ok, stat);
+ expect(13, height);
+
+ GdipDeleteGraphics(graphics);
+ GdipDisposeImage((GpImage*)bitmap);
}
START_TEST(graphics)
@@ -4211,6 +4581,7 @@
test_get_set_textrenderinghint();
test_getdc_scaled();
test_alpha_hdc();
+ test_bitmapfromgraphics();
GdiplusShutdown(gdiplusToken);
DestroyWindow( hwnd );
Modified: trunk/rostests/winetests/gdiplus/graphicspath.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/gdiplus/graphic…
==============================================================================
--- trunk/rostests/winetests/gdiplus/graphicspath.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/gdiplus/graphicspath.c [iso-8859-1] Thu May 23 17:23:10 2013
@@ -18,9 +18,15 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#include "windows.h"
-#include "gdiplus.h"
-#include "wine/test.h"
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+
+//#include "windows.h"
+#include <wine/test.h>
+#include <wingdi.h>
+#include <objbase.h>
+#include <gdiplus.h>
#include <math.h>
#define expect(expected, got) ok(got == expected, "Expected %.8x, got %.8x\n",
expected, got)
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] Thu May 23 17:23:10 2013
@@ -25,10 +25,17 @@
#include <assert.h>
#include <stdio.h>
-#include "initguid.h"
-#include "windows.h"
-#include "gdiplus.h"
-#include "wine/test.h"
+#include <initguid.h>
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+
+//#include "windows.h"
+#include <wine/test.h>
+#include <wingdi.h>
+#include <winnls.h>
+#include <ole2.h>
+#include <gdiplus.h>
#define expect(expected, got) ok((got) == (expected), "Expected %d, got %d\n",
(UINT)(expected), (UINT)(got))
#define expectf(expected, got) ok(fabs((expected) - (got)) < 0.0001, "Expected
%f, got %f\n", (expected), (got))
@@ -3106,8 +3113,11 @@
PropertyItem *prop_item;
image = load_image((const BYTE *)&TIFF_data, sizeof(TIFF_data));
- ok(image != 0, "Failed to load TIFF image data\n");
- if (!image) return;
+ if (!image)
+ {
+ win_skip("Failed to load TIFF image data. Might not be supported.
Skipping.\n");
+ return;
+ }
status = GdipImageGetFrameDimensionsCount(image, &dim_count);
expect(Ok, status);
@@ -3361,8 +3371,11 @@
/* 1bpp TIFF without palette */
image = load_image((const BYTE *)&TIFF_data, sizeof(TIFF_data));
- ok(image != 0, "Failed to load TIFF image data\n");
- if (!image) return;
+ if (!image)
+ {
+ win_skip("Failed to load TIFF image data. Might not be supported.
Skipping.\n");
+ return;
+ }
status = GdipGetImagePixelFormat(image, &format);
expect(Ok, status);
@@ -4108,6 +4121,76 @@
GdipDisposeImage(image);
}
+static void test_ARGB_conversion(void)
+{
+ BYTE argb[8] = { 0x11,0x22,0x33,0x80, 0xff,0xff,0xff,0 };
+ BYTE pargb[8] = { 0x09,0x11,0x1a,0x80, 0,0,0,0 };
+ BYTE rgb32_xp[8] = { 0x11,0x22,0x33,0xff, 0xff,0xff,0xff,0xff };
+ BYTE rgb24[6] = { 0x11,0x22,0x33, 0xff,0xff,0xff };
+ BYTE *bits;
+ GpBitmap *bitmap;
+ BitmapData data;
+ GpStatus status;
+ int match;
+
+ status = GdipCreateBitmapFromScan0(2, 1, 8, PixelFormat32bppARGB, argb,
&bitmap);
+ expect(Ok, status);
+
+ status = GdipBitmapLockBits(bitmap, NULL, ImageLockModeRead, PixelFormat32bppPARGB,
&data);
+ expect(Ok, status);
+ ok(data.Width == 2, "expected 2, got %d\n", data.Width);
+ ok(data.Height == 1, "expected 1, got %d\n", data.Height);
+ ok(data.Stride == 8, "expected 8, got %d\n", data.Stride);
+ ok(data.PixelFormat == PixelFormat32bppPARGB, "expected PixelFormat32bppPARGB,
got %d\n", data.PixelFormat);
+ match = !memcmp(data.Scan0, pargb, sizeof(pargb));
+ ok(match, "bits don't match\n");
+ if (!match)
+ {
+ bits = data.Scan0;
+ trace("format %#x, bits %02x,%02x,%02x,%02x %02x,%02x,%02x,%02x\n",
PixelFormat32bppPARGB,
+ bits[0], bits[1], bits[2], bits[3], bits[4], bits[5], bits[6], bits[7]);
+ }
+ status = GdipBitmapUnlockBits(bitmap, &data);
+ expect(Ok, status);
+
+ status = GdipBitmapLockBits(bitmap, NULL, ImageLockModeRead, PixelFormat32bppRGB,
&data);
+ expect(Ok, status);
+ ok(data.Width == 2, "expected 2, got %d\n", data.Width);
+ ok(data.Height == 1, "expected 1, got %d\n", data.Height);
+ ok(data.Stride == 8, "expected 8, got %d\n", data.Stride);
+ ok(data.PixelFormat == PixelFormat32bppRGB, "expected PixelFormat32bppRGB, got
%d\n", data.PixelFormat);
+ match = !memcmp(data.Scan0, argb, sizeof(argb)) ||
+ !memcmp(data.Scan0, rgb32_xp, sizeof(rgb32_xp));
+ ok(match, "bits don't match\n");
+ if (!match)
+ {
+ bits = data.Scan0;
+ trace("format %#x, bits %02x,%02x,%02x,%02x %02x,%02x,%02x,%02x\n",
PixelFormat32bppRGB,
+ bits[0], bits[1], bits[2], bits[3], bits[4], bits[5], bits[6], bits[7]);
+ }
+ status = GdipBitmapUnlockBits(bitmap, &data);
+ expect(Ok, status);
+
+ status = GdipBitmapLockBits(bitmap, NULL, ImageLockModeRead, PixelFormat24bppRGB,
&data);
+ expect(Ok, status);
+ ok(data.Width == 2, "expected 2, got %d\n", data.Width);
+ ok(data.Height == 1, "expected 1, got %d\n", data.Height);
+ ok(data.Stride == 8, "expected 8, got %d\n", data.Stride);
+ ok(data.PixelFormat == PixelFormat24bppRGB, "expected PixelFormat24bppRGB, got
%d\n", data.PixelFormat);
+ match = !memcmp(data.Scan0, rgb24, sizeof(rgb24));
+ ok(match, "bits don't match\n");
+ if (!match)
+ {
+ bits = data.Scan0;
+ trace("format %#x, bits %02x,%02x,%02x,%02x %02x,%02x,%02x,%02x\n",
PixelFormat24bppRGB,
+ bits[0], bits[1], bits[2], bits[3], bits[4], bits[5], bits[6], bits[7]);
+ }
+ status = GdipBitmapUnlockBits(bitmap, &data);
+ expect(Ok, status);
+
+ GdipDisposeImage((GpImage *)bitmap);
+}
+
START_TEST(image)
{
struct GdiplusStartupInput gdiplusStartupInput;
@@ -4120,6 +4203,7 @@
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
+ test_ARGB_conversion();
test_DrawImage_scale();
test_image_format();
test_DrawImage();
Modified: trunk/rostests/winetests/gdiplus/matrix.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/gdiplus/matrix.…
==============================================================================
--- trunk/rostests/winetests/gdiplus/matrix.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/gdiplus/matrix.c [iso-8859-1] Thu May 23 17:23:10 2013
@@ -20,10 +20,16 @@
#include <math.h>
-#include "windows.h"
-#include <stdio.h>
-#include "gdiplus.h"
-#include "wine/test.h"
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+
+//#include "windows.h"
+#include <wine/test.h>
+#include <wingdi.h>
+#include <objbase.h>
+#include <gdiplus.h>
+#include <wine/test.h>
#define expect(expected, got) ok(got == expected, "Expected %.8x, got %.8x\n",
expected, got)
#define expectf(expected, got) ok(fabs(expected - got) < 0.0001, "Expected %.2f,
got %.2f\n", expected, got)
Modified: trunk/rostests/winetests/gdiplus/metafile.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/gdiplus/metafil…
==============================================================================
--- trunk/rostests/winetests/gdiplus/metafile.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/gdiplus/metafile.c [iso-8859-1] Thu May 23 17:23:10 2013
@@ -18,10 +18,15 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#include "windows.h"
-#include <stdio.h>
-#include "gdiplus.h"
-#include "wine/test.h"
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+
+//#include "windows.h"
+#include <wine/test.h>
+#include <wingdi.h>
+#include <objbase.h>
+#include <gdiplus.h>
#define expect(expected, got) ok(got == expected, "Expected %.8x, got %.8x\n",
expected, got)
Modified: trunk/rostests/winetests/gdiplus/pathiterator.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/gdiplus/pathite…
==============================================================================
--- trunk/rostests/winetests/gdiplus/pathiterator.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/gdiplus/pathiterator.c [iso-8859-1] Thu May 23 17:23:10 2013
@@ -18,9 +18,15 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#include "windows.h"
-#include "gdiplus.h"
-#include "wine/test.h"
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+
+//#include "windows.h"
+#include <wine/test.h>
+#include <wingdi.h>
+#include <objbase.h>
+#include <gdiplus.h>
#define expect(expected, got) ok(got == expected, "Expected %.8x, got %.8x\n",
expected, got)
Modified: trunk/rostests/winetests/gdiplus/pen.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/gdiplus/pen.c?r…
==============================================================================
--- trunk/rostests/winetests/gdiplus/pen.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/gdiplus/pen.c [iso-8859-1] Thu May 23 17:23:10 2013
@@ -20,9 +20,15 @@
#include <math.h>
-#include "windows.h"
-#include "gdiplus.h"
-#include "wine/test.h"
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+
+//#include "windows.h"
+#include <wine/test.h>
+#include <wingdi.h>
+#include <objbase.h>
+#include <gdiplus.h>
#define expect(expected, got) ok(got == expected, "Expected %.8x, got %.8x\n",
expected, got)
#define expectf(expected, got) ok(fabs(got - expected) < 0.1, "Expected %.2f, got
%.2f\n", expected, got)
Modified: trunk/rostests/winetests/gdiplus/region.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/gdiplus/region.…
==============================================================================
--- trunk/rostests/winetests/gdiplus/region.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/gdiplus/region.c [iso-8859-1] Thu May 23 17:23:10 2013
@@ -18,10 +18,15 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#include "windows.h"
-#include "gdiplus.h"
-#include "wingdi.h"
-#include "wine/test.h"
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+
+//#include "windows.h"
+#include <wine/test.h>
+#include <wingdi.h>
+#include <objbase.h>
+#include <gdiplus.h>
#include <math.h>
#define RGNDATA_RECT 0x10000000
Modified: trunk/rostests/winetests/gdiplus/stringformat.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/gdiplus/stringf…
==============================================================================
--- trunk/rostests/winetests/gdiplus/stringformat.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/gdiplus/stringformat.c [iso-8859-1] Thu May 23 17:23:10 2013
@@ -18,9 +18,15 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#include "windows.h"
-#include "gdiplus.h"
-#include "wine/test.h"
+#define WIN32_NO_STATUS
+#define _INC_WINDOWS
+#define COM_NO_WINDOWS_H
+
+//#include "windows.h"
+#include <wine/test.h>
+#include <wingdi.h>
+#include <objbase.h>
+#include <gdiplus.h>
#define expect(expected, got) ok(got == expected, "Expected %.8x, got %.8x\n",
expected, got)
#define expectf(expected, got) ok(got == expected, "Expected %.2f, got %.2f\n",
expected, got)
Modified: trunk/rostests/winetests/gdiplus/testlist.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/gdiplus/testlis…
==============================================================================
--- trunk/rostests/winetests/gdiplus/testlist.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/gdiplus/testlist.c [iso-8859-1] Thu May 23 17:23:10 2013
@@ -1,7 +1,4 @@
/* Automatically generated file; DO NOT EDIT!! */
-
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
#define STANDALONE
#include "wine/test.h"