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) expect_(__LINE__, expected, got)
41#define expectf_(expected, got, precision) ok(fabs((expected) - (got)) < (precision), "Expected %f, got %f\n", (expected), (got))
42#define expectf(expected, got) expectf_((expected), (got), 0.001)
44#define expect_magic(value) ok(broken(*(value) == RGNDATA_MAGIC) || *(value) == RGNDATA_MAGIC2, "Expected a known magic value, got %8lx\n", *(value))
45#define expect_dword(value, expected) expect((expected), *(value))
46#define expect_float(value, expected) expectf((expected), *(FLOAT *)(value))
66 ok(
ret ==
sizeof(rgn.data.rdh),
"expected sizeof(rdh), got %lu\n",
ret);
68 ok(
ret ==
sizeof(rgn.data.rdh) +
sizeof(
RECT),
"expected sizeof(rgn), got %lu\n",
ret);
74 ok(
ret ==
sizeof(rgn.data.rdh),
"expected sizeof(rdh), got %lu\n",
ret);
76 ok(
ret ==
sizeof(rgn.data.rdh) +
sizeof(
RECT),
"expected sizeof(rgn), got %lu\n",
ret);
78 trace(
"size %lu, type %lu, count %lu, rgn size %lu, bound %s\n",
79 rgn.data.rdh.dwSize, rgn.data.rdh.iType,
80 rgn.data.rdh.nCount, rgn.data.rdh.nRgnSize,
82 if (rgn.data.rdh.nCount != 0)
84 rect = (
const RECT *)rgn.data.Buffer;
90 ok(rgn.data.rdh.dwSize ==
sizeof(rgn.data.rdh),
"expected sizeof(rdh), got %lu\n", rgn.data.rdh.dwSize);
91 ok(rgn.data.rdh.iType ==
RDH_RECTANGLES,
"expected RDH_RECTANGLES, got %lu\n", rgn.data.rdh.iType);
94 ok(rgn.data.rdh.nCount == 0,
"expected 0, got %lu\n", rgn.data.rdh.nCount);
95 ok(rgn.data.rdh.nRgnSize == 0,
"expected 0, got %lu\n", rgn.data.rdh.nRgnSize);
99 ok(rgn.data.rdh.nCount == 1,
"expected 1, got %lu\n", rgn.data.rdh.nCount);
100 ok(rgn.data.rdh.nRgnSize ==
sizeof(
RECT),
"expected sizeof(RECT), got %lu\n", rgn.data.rdh.nRgnSize);
102 ok(
EqualRect(&rgn.data.rdh.rcBound, rc),
"expected %s, got %s\n",
137 ok_(__FILE__,
line)(needed ==
size,
"data size mismatch: %u != %u\n", needed,
size);
143 ok_(__FILE__,
line)(needed ==
size,
"data size mismatch: %u != %u\n", needed,
size);
148 if (
i == 1)
continue;
463 ok(*(
buf + 8) == 0x4000 || *(
buf + 8) == 0,
464 "expected 0x4000 or 0, got %08lx\n", *(
buf + 8));
648 ok((*(
buf + 28) & 0xffff) == 0x0101,
649 "expected ????0101 got %08lx\n", *(
buf + 28));
798 ok((*(
buf + 33) & 0xffffff) == 0x030303,
799 "expected 0x??030303 got %08lx\n", *(
buf + 33));
910 rectf.
X = rectf.
Y = 0.0;
1020 ok(region == (
GpRegion*)0xabcdef01,
"Expected region not to be created\n");
1095 "Got %.8x\n", needed);
1128 static const RECT empty_rect = {0,0,0,0};
1130 static const GpRectF test_rectF = {10.0, 11.0, 10.0, 10.0};
1131 static const RECT scaled_rect = {20, 22, 40, 42};
1133 static const GpRectF test_rect2F = {10.0, 21.0, 10.0, 10.0};
1135 static const GpRectF test_rect3F = {10.0, 11.0, 10.0, 20.0};
1311 ok(
res,
"Expected to be equal.\n");
1320 ok(
res,
"Expected to be equal.\n");
1327 ok(!
res,
"Expected to be unequal.\n");
1329 rectf.
X = rectf.
Y = 0.0;
1336 ok(!
res,
"Expected to be unequal.\n");
1342 ok(!
res,
"Expected to be unequal.\n");
1344 rectf.
X = rectf.
Y = 0.0;
1351 ok(
res,
"Expected to be equal.\n");
1353 rectf.
X = rectf.
Y = 0.0;
1360 ok(
res,
"Expected to be equal.\n");
1406 rectf.
X = 10.0; rectf.
Y = 0.0;
1410 rectf.
X = 15.0; rectf.
Y = -2.0;
1419 ok(
res,
"Expected to be equal.\n");
1436 ok(
res,
"Expected to be equal.\n");
1507 ok(
res,
"Expected to be equal.\n");
1523 ok(
res,
"Expected to be equal.\n");
1535 rectf.
Width = 200.0;
1544 ok(
res,
"Expected to be equal.\n");
1564 ok(
res,
"Expected to be equal.\n");
1646 expect(-0x400000, scansi[0].
X);
1647 expect(-0x400000, scansi[0].
Y);
1654 expectf((
double)-0x400000, scans[0].
X);
1655 expectf((
double)-0x400000, scans[0].
Y);
1672 rectf.
X = rectf.
Y = 0.0;
1690 rectf.
X = rectf.
Y = 5.0;
1700 scans[1].
X = scans[1].
Y = scans[1].
Width = scans[1].
Height = 8.0;
1754 rectf.
X = rectf.
Y = 0.0;
1758 ok(rectf.
X == -(
REAL)(1 << 22),
"Expected X = %.2f, got %.2f\n", -(
REAL)(1 << 22), rectf.
X);
1759 ok(rectf.
Y == -(
REAL)(1 << 22),
"Expected Y = %.2f, got %.2f\n", -(
REAL)(1 << 22), rectf.
Y);
1760 ok(rectf.
Width == (
REAL)(1 << 23),
"Expected width = %.2f, got %.2f\n", (
REAL)(1 << 23), rectf.
Width);
1763 rectf.
X = rectf.
Y = 0.0;
1769 ok(rectf.
X == 0.0,
"Expected X = 0.0, got %.2f\n", rectf.
X);
1770 ok(rectf.
Y == 0.0,
"Expected Y = 0.0, got %.2f\n", rectf.
Y);
1771 ok(rectf.
Width == 0.0,
"Expected width = 0.0, got %.2f\n", rectf.
Width);
1772 ok(rectf.
Height == 0.0,
"Expected height = 0.0, got %.2f\n", rectf.
Height);
1774 rectf.
X = 10.0; rectf.
Y = 0.0;
1778 rectf.
X = rectf.
Y = 0.0;
1782 ok(rectf.
X == 10.0,
"Expected X = 0.0, got %.2f\n", rectf.
X);
1783 ok(rectf.
Y == 0.0,
"Expected Y = 0.0, got %.2f\n", rectf.
Y);
1784 ok(rectf.
Width == 100.0,
"Expected width = 0.0, got %.2f\n", rectf.
Width);
1785 ok(rectf.
Height == 100.0,
"Expected height = 0.0, got %.2f\n", rectf.
Height);
1794 ok(rectf.
X == 10.0,
"Expected X = 0.0, got %.2f\n", rectf.
X);
1795 ok(rectf.
Y == 0.0,
"Expected Y = 0.0, got %.2f\n", rectf.
Y);
1796 ok(rectf.
Width == 100.0,
"Expected width = 0.0, got %.2f\n", rectf.
Width);
1798 rectf.
X = 10.0; rectf.
Y = 0.0;
1802 rectf.
X = rectf.
Y = 0.0;
1806 ok(rectf.
X == 10.0,
"Expected X = 0.0, got %.2f\n", rectf.
X);
1807 ok(rectf.
Y == 0.0,
"Expected Y = 0.0, got %.2f\n", rectf.
Y);
1808 ok(rectf.
Width == 100.0,
"Expected width = 0.0, got %.2f\n", rectf.
Width);
1809 ok(rectf.
Height == 100.0,
"Expected height = 0.0, got %.2f\n", rectf.
Height);
1818 rectf.
Width = 2.125;
1822 rectf.
X = rectf.
Y = 0.0;
1826 ok(rectf.
X == 0.125,
"Expected X = 0.0, got %.2f\n", rectf.
X);
1827 ok(rectf.
Y == 1.125,
"Expected Y = 0.0, got %.2f\n", rectf.
Y);
1828 ok(rectf.
Width == 2.125,
"Expected width = 0.0, got %.2f\n", rectf.
Width);
1829 ok(rectf.
Height == 3.125,
"Expected height = 0.0, got %.2f\n", rectf.
Height);
1840 rectf.
X = rectf.
Y = 0.0;
1844 ok(rectf.
X == 0.125,
"Expected X = 0.0, got %.2f\n", rectf.
X);
1845 ok(rectf.
Y == 1.125,
"Expected Y = 0.0, got %.2f\n", rectf.
Y);
1846 ok(rectf.
Width == 2.125,
"Expected width = 0.0, got %.2f\n", rectf.
Width);
1847 ok(rectf.
Height == 3.125,
"Expected height = 0.0, got %.2f\n", rectf.
Height);
1892 ok(
res ==
TRUE,
"Region should be infinite\n");
1898 ok(
res ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
1907 ok(
res ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
1925 ok(
res ==
FALSE,
"Expected (%.2f, %.2f) not to be visible\n",
x,
y);
1934 ok(
res ==
FALSE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
1940 ok(
res ==
FALSE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
1946 ok(
res ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
1952 ok(
res ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
1958 ok(
res ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
1964 ok(
res ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
1973 ok(
res ==
FALSE,
"Expected (%.2f, %.2f) not to be visible\n",
x,
y);
1988 ok(
res ==
FALSE,
"Expected (%.2f, %.2f) not to be visible\n",
x,
y);
1997 ok(
res ==
FALSE,
"Expected (%.2f, %.2f) not to be visible\n",
x,
y);
2006 ok(
res ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
2029 ok(
res ==
FALSE,
"Expected (%.2f, %.2f) not to be visible\n",
x,
y);
2038 ok(
res ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
2047 ok(
res ==
FALSE,
"Expected (%.2f, %.2f) not to be visible\n",
x,
y);
2095 ok(
res ==
TRUE,
"Region should be infinite\n");
2101 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) 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);
2123 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) to be visible\n",
x,
y,
w,
h);
2133 ok(
res ==
FALSE,
"Expected (%.2f, %.2f, %.2f, %.2f) not to be visible\n",
x,
y,
w,
h);
2143 ok(
res ==
FALSE,
"Expected (%.2f, %.2f, %.2f, %.2f) not to be visible\n",
x,
y,
w,
h);
2149 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) to be visible\n",
x,
y,
w,
h);
2155 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) to be visible\n",
x,
y,
w,
h);
2161 ok(
res ==
FALSE,
"Expected (%.2f, %.2f, %.2f, %.2f) not to be visible\n",
x,
y,
w,
h);
2168 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) to be visible\n",
x,
y,
w,
h);
2174 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) to be visible\n",
x,
y,
w,
h);
2180 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) to be visible\n",
x,
y,
w,
h);
2192 ok(
res ==
FALSE,
"Expected (%.2f, %.2f, %.2f, %.2f) not to be visible\n",
x,
y,
w,
h);
2201 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) to be visible\n",
x,
y,
w,
h);
2224 ok(
res ==
FALSE,
"Expected (%.2f, %.2f, %.2f, %.2f) not to be visible\n",
x,
y,
w,
h);
2233 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) to be visible\n",
x,
y,
w,
h);
2242 ok(
res ==
FALSE,
"Expected (%.2f, %.2f, %.2f, %.2f) not to be visible\n",
x,
y,
w,
h);
2251 ok(
res ==
TRUE,
"Expected (%.2f, %.2f, %.2f, %.2f) to be visible\n",
x,
y,
w,
h);
2270 static const RectF rect_exclude = {0.0, 0.0, 1.0, 1.0};
2380 BOOL origin_in_region;
2384 struct testrgn test_regions[] = {
2385 {
"infinite region",
TRUE },
2386 {
"infinite region inverted",
FALSE },
2387 {
"empty region",
FALSE },
2388 {
"empty region inverted",
TRUE },
2389 {
"inside rectangle",
TRUE },
2390 {
"inside rectangle inverted",
FALSE },
2391 {
"outside rectangle",
FALSE },
2392 {
"outside rectangle inverted",
TRUE },
2393 {
"inside path",
TRUE },
2394 {
"inside path inverted",
FALSE },
2395 {
"outside path but in bounding rect",
FALSE },
2396 {
"outside path but in bounding rect inverted",
TRUE },
2397 {
"outside path",
FALSE },
2398 {
"outside path inverted",
TRUE },
2403 const GpPointF inside_path_points[] = { { -1, -2 }, { 2, 1 }, { -1, 1 } };
2404 const GpPointF outside_path_bounding_points[] = { { -2, -1 }, { 1, 2 }, { -2, 2 } };
2405 const GpPointF outside_path_points[] = { { 5, 5 }, { 5, 10 }, { 10, 10 } };
2490 expect(test_regions[
i].origin_in_region, in_region);
2513 expected_result = test_regions[
i].origin_in_region & test_regions[
j].origin_in_region;
2524 expected_result = test_regions[
i].origin_in_region | test_regions[
j].origin_in_region;
2535 expected_result = test_regions[
i].origin_in_region ^ test_regions[
j].origin_in_region;
2546 expected_result = test_regions[
i].origin_in_region & !test_regions[
j].origin_in_region;
2557 expected_result = (!test_regions[
i].origin_in_region) & test_regions[
j].origin_in_region;
static const char * wine_dbgstr_rect(const RECT *prc)
struct _RGNDATAHEADER RGNDATAHEADER
#define GetProcAddress(x, y)
GpStatus WINGDIPAPI GdipCreateFromHDC(HDC hdc, GpGraphics **graphics)
GpStatus WINGDIPAPI GdipDeleteGraphics(GpGraphics *graphics)
GpStatus WINGDIPAPI GdipResetPageTransform(GpGraphics *graphics)
GpStatus WINGDIPAPI GdipScaleWorldTransform(GpGraphics *graphics, REAL sx, REAL sy, GpMatrixOrder order)
GpStatus WINGDIPAPI GdipTranslateWorldTransform(GpGraphics *graphics, REAL dx, REAL dy, GpMatrixOrder order)
GpStatus WINGDIPAPI GdipSetWorldTransform(GpGraphics *graphics, GpMatrix *matrix)
GpStatus WINGDIPAPI GdipSetPageUnit(GpGraphics *graphics, GpUnit unit)
GpStatus WINGDIPAPI GdipResetWorldTransform(GpGraphics *graphics)
GpStatus WINGDIPAPI GdipSetPageScale(GpGraphics *graphics, REAL scale)
GpStatus WINGDIPAPI GdipAddPathRectangleI(GpPath *path, INT x, INT y, INT width, INT height)
GpStatus WINGDIPAPI GdipCreatePath(GpFillMode fill, GpPath **path)
GpStatus WINGDIPAPI GdipDeletePath(GpPath *path)
GpStatus WINGDIPAPI GdipAddPathLine(GpPath *path, REAL x1, REAL y1, REAL x2, REAL y2)
GpStatus WINGDIPAPI GdipAddPathRectangle(GpPath *path, REAL x, REAL y, REAL width, REAL height)
GpStatus WINGDIPAPI GdipResetPath(GpPath *path)
GpStatus WINGDIPAPI GdipClosePathFigure(GpPath *path)
GpStatus WINGDIPAPI GdipAddPathPolygon(GpPath *path, GDIPCONST GpPointF *points, INT count)
GpStatus WINGDIPAPI GdipAddPathArc(GpPath *path, REAL x, REAL y, REAL width, REAL height, REAL startAngle, REAL sweepAngle)
GpStatus WINGDIPAPI GdipAddPathEllipse(GpPath *path, REAL x, REAL y, REAL width, REAL height)
GpStatus WINGDIPAPI GdipScaleMatrix(GpMatrix *matrix, REAL scaleX, REAL scaleY, GpMatrixOrder order)
GpStatus WINGDIPAPI GdipCreateMatrix2(REAL m11, REAL m12, REAL m21, REAL m22, REAL dx, REAL dy, GpMatrix **matrix)
GpStatus WINGDIPAPI GdipRotateMatrix(GpMatrix *matrix, REAL angle, GpMatrixOrder order)
GpStatus WINGDIPAPI GdipDeleteMatrix(GpMatrix *matrix)
GpStatus WINGDIPAPI GdipCreateMatrix(GpMatrix **matrix)
GpStatus WINGDIPAPI GdipIsVisibleRegionRect(GpRegion *region, REAL x, REAL y, REAL w, REAL h, GpGraphics *graphics, BOOL *res)
GpStatus WINGDIPAPI GdipCombineRegionPath(GpRegion *region, GpPath *path, CombineMode mode)
GpStatus WINGDIPAPI GdipIsEmptyRegion(GpRegion *region, GpGraphics *graphics, BOOL *res)
GpStatus WINGDIPAPI GdipIsInfiniteRegion(GpRegion *region, GpGraphics *graphics, BOOL *res)
GpStatus WINGDIPAPI GdipSetInfinite(GpRegion *region)
GpStatus WINGDIPAPI GdipSetEmpty(GpRegion *region)
GpStatus WINGDIPAPI GdipGetRegionHRgn(GpRegion *region, GpGraphics *graphics, HRGN *hrgn)
GpStatus WINGDIPAPI GdipTransformRegion(GpRegion *region, GpMatrix *matrix)
GpStatus WINGDIPAPI GdipCreateRegionRect(GDIPCONST GpRectF *rect, GpRegion **region)
GpStatus WINGDIPAPI GdipIsVisibleRegionPoint(GpRegion *region, REAL x, REAL y, GpGraphics *graphics, BOOL *res)
GpStatus WINGDIPAPI GdipCreateRegionRgnData(GDIPCONST BYTE *data, INT size, GpRegion **region)
GpStatus WINGDIPAPI GdipIsVisibleRegionRectI(GpRegion *region, INT x, INT y, INT w, INT h, GpGraphics *graphics, BOOL *res)
GpStatus WINGDIPAPI GdipTranslateRegion(GpRegion *region, REAL dx, REAL dy)
GpStatus WINGDIPAPI GdipGetRegionScans(GpRegion *region, GpRectF *scans, INT *count, GpMatrix *matrix)
GpStatus WINGDIPAPI GdipIsEqualRegion(GpRegion *region, GpRegion *region2, GpGraphics *graphics, BOOL *res)
GpStatus WINGDIPAPI GdipCombineRegionRectI(GpRegion *region, GDIPCONST GpRect *rect, CombineMode mode)
GpStatus WINGDIPAPI GdipCreateRegion(GpRegion **region)
GpStatus WINGDIPAPI GdipGetRegionDataSize(GpRegion *region, UINT *needed)
GpStatus WINGDIPAPI GdipCombineRegionRect(GpRegion *region, GDIPCONST GpRectF *rect, CombineMode mode)
GpStatus WINGDIPAPI GdipGetRegionScansCount(GpRegion *region, UINT *count, GpMatrix *matrix)
GpStatus WINGDIPAPI GdipCreateRegionHrgn(HRGN hrgn, GpRegion **region)
GpStatus WINGDIPAPI GdipCombineRegionRegion(GpRegion *region1, GpRegion *region2, CombineMode mode)
GpStatus WINGDIPAPI GdipIsVisibleRegionPointI(GpRegion *region, INT x, INT y, GpGraphics *graphics, BOOL *res)
GpStatus WINGDIPAPI GdipGetRegionData(GpRegion *region, BYTE *buffer, UINT size, UINT *needed)
GpStatus WINGDIPAPI GdipGetRegionScansI(GpRegion *region, GpRect *scans, INT *count, GpMatrix *matrix)
GpStatus WINGDIPAPI GdipGetRegionBounds(GpRegion *region, GpGraphics *graphics, GpRectF *rect)
GpStatus WINGDIPAPI GdipCreateRegionPath(GpPath *path, GpRegion **region)
GpStatus WINGDIPAPI GdipDeleteRegion(GpRegion *region)
GpStatus WINGDIPAPI GdipCreateRegionRectI(GDIPCONST GpRect *rect, GpRegion **region)
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
_ACRTIMP errno_t __cdecl _controlfp_s(unsigned int *, unsigned int, unsigned int)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
void WINGDIPAPI GdipFree(void *ptr)
Status WINAPI GdiplusStartup(ULONG_PTR *token, const struct GdiplusStartupInput *input, struct GdiplusStartupOutput *output)
void *WINGDIPAPI GdipAlloc(SIZE_T size)
void WINAPI GdiplusShutdown(ULONG_PTR)
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLuint GLenum GLsizei const GLchar * buf
GLubyte GLubyte GLubyte GLubyte w
GLfloat GLfloat GLfloat GLfloat h
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
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 GLint GLint j
void __cdecl void __cdecl void __cdecl void __cdecl void __cdecl void winetest_pop_context(void)
void __cdecl void __cdecl void __cdecl void __cdecl void __cdecl winetest_push_context(const char *fmt,...) __WINE_PRINTF_ATTR(1
D3D11_SHADER_VARIABLE_DESC desc
#define expect_(expected, got, precision)
static void test_rect(void)
static void test_incombinedregion(void)
static void test_isempty(void)
static void test_GdipCreateRegionRgnData(void)
static void test_gethrgn(void)
static DWORD get_region_type(GpRegion *region)
static void test_combinereplace(void)
static void test_region_data(DWORD *data, UINT size, INT line)
static void test_translate(void)
static void test_fromhrgn(void)
static void test_getregiondata(void)
static void test_isvisiblepoint(void)
#define expect_dword(value, expected)
static void test_getbounds(void)
#define expect(expected, got)
#define RGNDATA_INFINITE_RECT
static void test_isvisiblerect(void)
#define RGNDATA_EMPTY_RECT
static void test_isinfinite(void)
#define expect_float(value, expected)
#define expect_magic(value)
static void test_isequal(void)
#define expectf(expected, got)
static void verify_region(HRGN hrgn, const RECT *rc)
static void test_excludeinfinite(void)
static void test_scans(void)
static void test_transform(void)
const char * expected_result
static const RECT test_rect2
static const RECT test_rect3
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
_In_ HFONT _Out_ PUINT Height
HRGN WINAPI CreateRectRgn(_In_ int, _In_ int, _In_ int, _In_ int)
BOOL WINAPI SetViewportOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
HRGN WINAPI CreateEllipticRgn(_In_ int, _In_ int, _In_ int, _In_ int)
DWORD WINAPI GetRegionData(_In_ HRGN hrgn, _In_ DWORD nCount, _Out_writes_bytes_to_opt_(nCount, return) LPRGNDATA lpRgnData)
int WINAPI GetRgnBox(_In_ HRGN, _Out_ LPRECT)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
BOOL WINAPI IsRectEmpty(_In_ LPCRECT)
HDC WINAPI GetDC(_In_opt_ HWND)
BOOL WINAPI EqualRect(_In_ LPCRECT, _In_ LPCRECT)