28 #define RGNDATA_RECT 0x10000000 29 #define RGNDATA_PATH 0x10000001 30 #define RGNDATA_EMPTY_RECT 0x10000002 31 #define RGNDATA_INFINITE_RECT 0x10000003 33 #define RGNDATA_MAGIC 0xdbc01001 34 #define RGNDATA_MAGIC2 0xdbc01002 36 #define expect(expected, got) ok((got) == (expected), "Expected %.8x, got %.8x\n", (expected), (got)) 37 #define expectf_(expected, got, precision) ok(fabs((expected) - (got)) < (precision), "Expected %f, got %f\n", (expected), (got)) 38 #define expectf(expected, got) expectf_((expected), (got), 0.001) 40 #define expect_magic(value) ok(broken(*(value) == RGNDATA_MAGIC) || *(value) == RGNDATA_MAGIC2, "Expected a known magic value, got %8x\n", *(value)) 41 #define expect_dword(value, expected) expect((expected), *(value)) 42 #define expect_float(value, expected) expectf((expected), *(FLOAT *)(value)) 62 ok(
ret ==
sizeof(rgn.data.rdh),
"expected sizeof(rdh), got %u\n",
ret);
64 ok(
ret ==
sizeof(rgn.data.rdh) +
sizeof(
RECT),
"expected sizeof(rgn), got %u\n",
ret);
70 ok(
ret ==
sizeof(rgn.data.rdh),
"expected sizeof(rdh), got %u\n",
ret);
72 ok(
ret ==
sizeof(rgn.data.rdh) +
sizeof(
RECT),
"expected sizeof(rgn), got %u\n",
ret);
74 trace(
"size %u, type %u, count %u, rgn size %u, bound %s\n",
75 rgn.data.rdh.dwSize, rgn.data.rdh.iType,
76 rgn.data.rdh.nCount, rgn.data.rdh.nRgnSize,
78 if (rgn.data.rdh.nCount != 0)
80 rect = (
const RECT *)rgn.data.Buffer;
86 ok(rgn.data.rdh.dwSize ==
sizeof(rgn.data.rdh),
"expected sizeof(rdh), got %u\n", rgn.data.rdh.dwSize);
87 ok(rgn.data.rdh.iType ==
RDH_RECTANGLES,
"expected RDH_RECTANGLES, got %u\n", rgn.data.rdh.iType);
90 ok(rgn.data.rdh.nCount == 0,
"expected 0, got %u\n", rgn.data.rdh.nCount);
91 ok(rgn.data.rdh.nRgnSize == 0,
"expected 0, got %u\n", rgn.data.rdh.nRgnSize);
95 ok(rgn.data.rdh.nCount == 1,
"expected 1, got %u\n", rgn.data.rdh.nCount);
96 ok(rgn.data.rdh.nRgnSize ==
sizeof(
RECT),
"expected sizeof(RECT), got %u\n", rgn.data.rdh.nRgnSize);
98 ok(
EqualRect(&rgn.data.rdh.rcBound, rc),
"expected %s, got %s\n",
133 ok_(__FILE__,
line)(needed ==
size,
"data size mismatch: %u != %u\n", needed,
size);
139 ok_(__FILE__,
line)(needed ==
size,
"data size mismatch: %u != %u\n", needed,
size);
144 if (
i == 1)
continue;
459 ok(*(
buf + 8) == 0x4000 || *(
buf + 8) == 0,
460 "expected 0x4000 or 0, got %08x\n", *(
buf + 8));
644 ok(*(
buf + 28) == 0x00000101 || *(
buf + 28) == 0x43050101 ,
645 "expected 00000101 or 43050101 got %08x\n", *(
buf + 28));
794 ok(*(
buf + 33) == 0x00030303 ||
795 *(
buf + 33) == 0x43030303 || *(
buf + 33) == 0x4c030303 ,
796 "expected 0x00030303 or 0x43030303 or 0x4c030303 got %08x\n", *(
buf + 33));
907 rectf.
X = rectf.
Y = 0.0;
1017 ok(region == (
GpRegion*)0xabcdef01,
"Expected region not to be created\n");
1092 "Got %.8x\n", needed);
1125 static const RECT empty_rect = {0,0,0,0};
1127 static const GpRectF test_rectF = {10.0, 11.0, 10.0, 10.0};
1128 static const RECT scaled_rect = {20, 22, 40, 42};
1130 static const GpRectF test_rect2F = {10.0, 21.0, 10.0, 10.0};
1132 static const GpRectF test_rect3F = {10.0, 11.0, 10.0, 20.0};
1308 ok(
res,
"Expected to be equal.\n");
1317 ok(
res,
"Expected to be equal.\n");
1324 ok(!
res,
"Expected to be unequal.\n");
1326 rectf.
X = rectf.
Y = 0.0;
1333 ok(!
res,
"Expected to be unequal.\n");
1339 ok(!
res,
"Expected to be unequal.\n");
1341 rectf.
X = rectf.
Y = 0.0;
1348 ok(
res,
"Expected to be equal.\n");
1350 rectf.
X = rectf.
Y = 0.0;
1357 ok(
res,
"Expected to be equal.\n");
1403 rectf.
X = 10.0; rectf.
Y = 0.0;
1407 rectf.
X = 15.0; rectf.
Y = -2.0;
1416 ok(
res,
"Expected to be equal.\n");
1433 ok(
res,
"Expected to be equal.\n");
1504 ok(
res,
"Expected to be equal.\n");
1520 ok(
res,
"Expected to be equal.\n");
1532 rectf.
Width = 200.0;
1541 ok(
res,
"Expected to be equal.\n");
1561 ok(
res,
"Expected to be equal.\n");
1643 expect(-0x400000, scansi[0].
X);
1644 expect(-0x400000, scansi[0].
Y);
1645 expect(0x800000, scansi[0].Width);
1646 expect(0x800000, scansi[0].Height);
1651 expectf((
double)-0x400000, scans[0].
X);
1652 expectf((
double)-0x400000, scans[0].
Y);
1653 expectf((
double)0x800000, scans[0].Width);
1654 expectf((
double)0x800000, scans[0].Height);
1669 rectf.
X = rectf.
Y = 0.0;
1684 expectf(5.0, scans[0].Height);
1687 rectf.
X = rectf.
Y = 5.0;
1697 scans[1].
X = scans[1].
Y = scans[1].
Width = scans[1].
Height = 8.0;
1705 expectf(5.0, scans[0].Height);
1709 expectf(5.0, scans[1].Height);
1716 expect(5, scansi[0].Width);
1717 expect(5, scansi[0].Height);
1720 expect(5, scansi[1].Width);
1721 expect(5, scansi[1].Height);
1750 rectf.
X = rectf.
Y = 0.0;
1754 ok(rectf.
X == -(
REAL)(1 << 22),
"Expected X = %.2f, got %.2f\n", -(
REAL)(1 << 22), rectf.
X);
1755 ok(rectf.
Y == -(
REAL)(1 << 22),
"Expected Y = %.2f, got %.2f\n", -(
REAL)(1 << 22), rectf.
Y);
1756 ok(rectf.
Width == (
REAL)(1 << 23),
"Expected width = %.2f, got %.2f\n", (
REAL)(1 << 23), rectf.
Width);
1759 rectf.
X = rectf.
Y = 0.0;
1765 ok(rectf.
X == 0.0,
"Expected X = 0.0, got %.2f\n", rectf.
X);
1766 ok(rectf.
Y == 0.0,
"Expected Y = 0.0, got %.2f\n", rectf.
Y);
1767 ok(rectf.
Width == 0.0,
"Expected width = 0.0, got %.2f\n", rectf.
Width);
1768 ok(rectf.
Height == 0.0,
"Expected height = 0.0, got %.2f\n", rectf.
Height);
1770 rectf.
X = 10.0; rectf.
Y = 0.0;
1774 rectf.
X = rectf.
Y = 0.0;
1778 ok(rectf.
X == 10.0,
"Expected X = 0.0, got %.2f\n", rectf.
X);
1779 ok(rectf.
Y == 0.0,
"Expected Y = 0.0, got %.2f\n", rectf.
Y);
1780 ok(rectf.
Width == 100.0,
"Expected width = 0.0, got %.2f\n", rectf.
Width);
1781 ok(rectf.
Height == 100.0,
"Expected height = 0.0, got %.2f\n", rectf.
Height);
1790 ok(rectf.
X == 10.0,
"Expected X = 0.0, got %.2f\n", rectf.
X);
1791 ok(rectf.
Y == 0.0,
"Expected Y = 0.0, got %.2f\n", rectf.
Y);
1792 ok(rectf.
Width == 100.0,
"Expected width = 0.0, got %.2f\n", rectf.
Width);
1794 rectf.
X = 10.0; rectf.
Y = 0.0;
1798 rectf.
X = rectf.
Y = 0.0;
1802 ok(rectf.
X == 10.0,
"Expected X = 0.0, got %.2f\n", rectf.
X);
1803 ok(rectf.
Y == 0.0,
"Expected Y = 0.0, got %.2f\n", rectf.
Y);
1804 ok(rectf.
Width == 100.0,
"Expected width = 0.0, got %.2f\n", rectf.
Width);
1805 ok(rectf.
Height == 100.0,
"Expected height = 0.0, got %.2f\n", rectf.
Height);
1850 ok(
res ==
TRUE,
"Region should be infinite\n");
1856 ok(
res ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
1865 ok(
res ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
1883 ok(
res ==
FALSE,
"Expected (%.2f, %.2f) not to be visible\n",
x,
y);
1892 ok(
res ==
FALSE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
1898 ok(
res ==
FALSE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
1904 ok(
res ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
1910 ok(
res ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
1916 ok(
res ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
1922 ok(
res ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
1931 ok(
res ==
FALSE,
"Expected (%.2f, %.2f) not to be visible\n",
x,
y);
1946 ok(
res ==
FALSE,
"Expected (%.2f, %.2f) not to be visible\n",
x,
y);
1955 ok(
res ==
FALSE,
"Expected (%.2f, %.2f) not to be visible\n",
x,
y);
1964 ok(
res ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
1987 ok(
res ==
FALSE,
"Expected (%.2f, %.2f) not to be visible\n",
x,
y);
1996 ok(
res ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
2005 ok(
res ==
FALSE,
"Expected (%.2f, %.2f) not to be visible\n",
x,
y);
2053 ok(
res ==
TRUE,
"Region should be infinite\n");
2059 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) to be visible\n",
x,
y,
w,
h);
2065 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) to be visible\n",
x,
y,
w,
h);
2081 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) to be visible\n",
x,
y,
w,
h);
2091 ok(
res ==
FALSE,
"Expected (%.2f, %.2f, %.2f, %.2f) not to be visible\n",
x,
y,
w,
h);
2101 ok(
res ==
FALSE,
"Expected (%.2f, %.2f, %.2f, %.2f) not to be visible\n",
x,
y,
w,
h);
2107 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) to be visible\n",
x,
y,
w,
h);
2113 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) to be visible\n",
x,
y,
w,
h);
2119 ok(
res ==
FALSE,
"Expected (%.2f, %.2f, %.2f, %.2f) not to be visible\n",
x,
y,
w,
h);
2126 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) to be visible\n",
x,
y,
w,
h);
2132 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) to be visible\n",
x,
y,
w,
h);
2138 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) to be visible\n",
x,
y,
w,
h);
2150 ok(
res ==
FALSE,
"Expected (%.2f, %.2f, %.2f, %.2f) not to be visible\n",
x,
y,
w,
h);
2159 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) to be visible\n",
x,
y,
w,
h);
2182 ok(
res ==
FALSE,
"Expected (%.2f, %.2f, %.2f, %.2f) not to be visible\n",
x,
y,
w,
h);
2191 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) to be visible\n",
x,
y,
w,
h);
2200 ok(
res ==
FALSE,
"Expected (%.2f, %.2f, %.2f, %.2f) not to be visible\n",
x,
y,
w,
h);
2209 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) to be visible\n",
x,
y,
w,
h);
2228 static const RectF rect_exclude = {0.0, 0.0, 1.0, 1.0};
2249 expectf(8388608.0, scans[0].Width);
2250 expectf(4194304.0, scans[0].Height);
2254 expectf(4194304.0, scans[1].Width);
2255 expectf(1.0, scans[1].Height);
2259 expectf(4194303.0, scans[2].Width);
2260 expectf(1.0, scans[2].Height);
2264 expectf(8388608.0, scans[3].Width);
2265 expectf(4194303.0, scans[3].Height);
GpStatus WINGDIPAPI GdipIsEmptyRegion(GpRegion *region, GpGraphics *graphics, BOOL *res)
GpStatus WINGDIPAPI GdipCombineRegionRect(GpRegion *region, GDIPCONST GpRectF *rect, CombineMode mode)
struct _RGNDATAHEADER RGNDATAHEADER
#define RGNDATA_EMPTY_RECT
GpStatus WINGDIPAPI GdipSetWorldTransform(GpGraphics *graphics, GpMatrix *matrix)
static void test_isequal(void)
#define RGNDATA_INFINITE_RECT
BOOL WINAPI SetViewportOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
static DWORD get_region_type(GpRegion *region)
GpStatus WINGDIPAPI GdipCreateMatrix2(REAL m11, REAL m12, REAL m21, REAL m22, REAL dx, REAL dy, GpMatrix **matrix)
static void test_gethrgn(void)
GLubyte GLubyte GLubyte GLubyte w
static void test_isvisiblerect(void)
GpStatus WINGDIPAPI GdipCombineRegionRectI(GpRegion *region, GDIPCONST GpRect *rect, CombineMode mode)
GpStatus WINGDIPAPI GdipScaleWorldTransform(GpGraphics *graphics, REAL sx, REAL sy, GpMatrixOrder order)
struct RegionDataPoint RegionDataPoint
GpStatus WINGDIPAPI GdipGetRegionData(GpRegion *region, BYTE *buffer, UINT size, UINT *needed)
HDC WINAPI GetDC(_In_opt_ HWND)
GLsizei const GLchar ** path
static void test_getbounds(void)
GpStatus WINGDIPAPI GdipGetRegionScansI(GpRegion *region, GpRect *scans, INT *count, GpMatrix *matrix)
static void test_transform(void)
GpStatus WINGDIPAPI GdipGetRegionHRgn(GpRegion *region, GpGraphics *graphics, HRGN *hrgn)
GLuint GLuint GLsizei count
GpStatus WINGDIPAPI GdipCreateMatrix(GpMatrix **matrix)
GpStatus WINGDIPAPI GdipIsVisibleRegionPoint(GpRegion *region, REAL x, REAL y, GpGraphics *graphics, BOOL *res)
GpStatus WINGDIPAPI GdipIsEqualRegion(GpRegion *region, GpRegion *region2, GpGraphics *graphics, BOOL *res)
void WINGDIPAPI GdipFree(void *ptr)
GpStatus WINGDIPAPI GdipAddPathRectangleI(GpPath *path, INT x, INT y, INT width, INT height)
GpStatus WINGDIPAPI GdipCreateRegionHrgn(HRGN hrgn, GpRegion **region)
BOOL WINAPI DeleteObject(_In_ HGDIOBJ)
static void test_region_data(DWORD *data, UINT size, INT line)
GLint GLint GLint GLint GLint x
GpStatus WINGDIPAPI GdipCombineRegionPath(GpRegion *region, GpPath *path, CombineMode mode)
static void test_translate(void)
GpStatus WINGDIPAPI GdipSetInfinite(GpRegion *region)
static void test_combinereplace(void)
GpStatus WINGDIPAPI GdipSetEmpty(GpRegion *region)
GpStatus WINGDIPAPI GdipDeletePath(GpPath *path)
#define expect_dword(value, expected)
GLfloat GLfloat GLfloat GLfloat h
GpStatus WINGDIPAPI GdipIsInfiniteRegion(GpRegion *region, GpGraphics *graphics, BOOL *res)
GLenum GLuint GLenum GLsizei const GLchar * buf
static void verify_region(HRGN hrgn, const RECT *rc)
GpStatus WINGDIPAPI GdipAddPathArc(GpPath *path, REAL x1, REAL y1, REAL x2, REAL y2, REAL startAngle, REAL sweepAngle)
GpStatus WINGDIPAPI GdipGetRegionScansCount(GpRegion *region, UINT *count, GpMatrix *matrix)
GpStatus WINGDIPAPI GdipCreateRegionRectI(GDIPCONST GpRect *rect, GpRegion **region)
GpStatus WINGDIPAPI GdipSetPageUnit(GpGraphics *graphics, GpUnit unit)
GpStatus WINGDIPAPI GdipDeleteGraphics(GpGraphics *graphics)
#define expect(expected, got)
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
HRGN WINAPI CreateEllipticRgn(_In_ int, _In_ int, _In_ int, _In_ int)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
BOOL WINAPI IsRectEmpty(_In_ LPCRECT)
static void test_excludeinfinite(void)
#define expect_float(value, expected)
static void test_GdipCreateRegionRgnData(void)
int CDECL _controlfp_s(unsigned int *cur, unsigned int newval, unsigned int mask)
static void test_isempty(void)
GpStatus WINGDIPAPI GdipCreateRegion(GpRegion **region)
GpStatus WINGDIPAPI GdipIsVisibleRegionPointI(GpRegion *region, INT x, INT y, GpGraphics *graphics, BOOL *res)
GpStatus WINGDIPAPI GdipGetRegionDataSize(GpRegion *region, UINT *needed)
void WINAPI GdiplusShutdown(ULONG_PTR)
static const struct d3drm_matrix identity
const char * wine_dbgstr_rect(const RECT *rect)
Status WINAPI GdiplusStartup(ULONG_PTR *token, const struct GdiplusStartupInput *input, struct GdiplusStartupOutput *output)
GpStatus WINGDIPAPI GdipRotateMatrix(GpMatrix *matrix, REAL angle, GpMatrixOrder order)
GpStatus WINGDIPAPI GdipClosePathFigure(GpPath *path)
GpStatus WINGDIPAPI GdipAddPathRectangle(GpPath *path, REAL x, REAL y, REAL width, REAL height)
GpStatus WINGDIPAPI GdipIsVisibleRegionRectI(GpRegion *region, INT x, INT y, INT w, INT h, GpGraphics *graphics, BOOL *res)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
#define expectf(expected, got)
GpStatus WINGDIPAPI GdipDeleteMatrix(GpMatrix *matrix)
GpStatus WINGDIPAPI GdipTranslateRegion(GpRegion *region, REAL dx, REAL dy)
GpStatus WINGDIPAPI GdipTransformRegion(GpRegion *region, GpMatrix *matrix)
HRGN WINAPI CreateRectRgn(int x1, int y1, int x2, int y2)
GpStatus WINGDIPAPI GdipCreatePath(GpFillMode fill, GpPath **path)
GpStatus WINGDIPAPI GdipScaleMatrix(GpMatrix *matrix, REAL scaleX, REAL scaleY, GpMatrixOrder order)
static const RECT test_rect2
GpStatus WINGDIPAPI GdipGetRegionBounds(GpRegion *region, GpGraphics *graphics, GpRectF *rect)
static void test_rect(void)
Gdiplus::GdiplusStartupInput gdiplusStartupInput
BOOL WINAPI EqualRect(_In_ LPCRECT, _In_ LPCRECT)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GpStatus WINGDIPAPI GdipCreateRegionRgnData(GDIPCONST BYTE *data, INT size, GpRegion **region)
INT WINAPI GetRgnBox(HRGN hrgn, LPRECT prcOut)
GpStatus WINGDIPAPI GdipCreateRegionPath(GpPath *path, GpRegion **region)
static void test_isvisiblepoint(void)
GpStatus WINGDIPAPI GdipAddPathLine(GpPath *path, REAL x1, REAL y1, REAL x2, REAL y2)
GpStatus WINGDIPAPI GdipResetPath(GpPath *path)
DWORD WINAPI GetRegionData(HRGN hrgn, DWORD nCount, LPRGNDATA lpRgnData)
GpStatus WINGDIPAPI GdipCreateFromHDC(HDC hdc, GpGraphics **graphics)
GpStatus WINGDIPAPI GdipIsVisibleRegionRect(GpRegion *region, REAL x, REAL y, REAL w, REAL h, GpGraphics *graphics, BOOL *res)
GLint GLint GLint GLint GLint GLint y
static const RECT test_rect3
GpStatus WINGDIPAPI GdipCombineRegionRegion(GpRegion *region1, GpRegion *region2, CombineMode mode)
static void test_scans(void)
static void test_getregiondata(void)
#define GetProcAddress(x, y)
void *WINGDIPAPI GdipAlloc(SIZE_T size)
static void test_isinfinite(void)
GLuint GLuint GLsizei GLenum type
GpStatus WINGDIPAPI GdipSetPageScale(GpGraphics *graphics, REAL scale)
GpStatus WINGDIPAPI GdipTranslateWorldTransform(GpGraphics *graphics, REAL dx, REAL dy, GpMatrixOrder order)
GpStatus WINGDIPAPI GdipGetRegionScans(GpRegion *region, GpRectF *scans, INT *count, GpMatrix *matrix)
static SERVICE_STATUS status
GpStatus WINGDIPAPI GdipAddPathEllipse(GpPath *path, REAL x, REAL y, REAL width, REAL height)
GpStatus WINGDIPAPI GdipDeleteRegion(GpRegion *region)
static void test_fromhrgn(void)
GpStatus WINGDIPAPI GdipCreateRegionRect(GDIPCONST GpRectF *rect, GpRegion **region)
#define expect_magic(value)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *