29#define expect(expected, got) ok((got) == (expected), "Expected %d, got %d\n", (INT)(expected), (INT)(got))
30#define expectf_(expected, got, precision) ok(fabs((expected) - (got)) <= (precision), "Expected %f, got %f\n", (expected), (got))
31#define expectf(expected, got) expectf_((expected), (got), 0.001)
67 ok(0,
"Unsupported unit: %d\n",
unit);
89 ok(0,
"Unsupported unit: %d\n",
unit);
231 state_a = state_b = state_c = 0xdeadbeef;
420 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
424 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
491 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
495 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
543 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
547 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
551 ok(pen !=
NULL,
"Expected pen to be initialized\n");
587 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
591 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
595 ok(pen !=
NULL,
"Expected pen to be initialized\n");
627 REAL defClip[] = {5, 10, 15, 20};
628 REAL elems[6], defTrans[] = {1, 2, 3, 4, 5, 6};
637 UINT contrast, defContrast = 5;
644 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
648 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
688 ok(defCompmode == compmode,
"Expected Compositing Mode to be restored to %d, got %d\n", defCompmode, compmode);
691 ok(defCompqual == compqual,
"Expected Compositing Quality to be restored to %d, got %d\n", defCompqual, compqual);
694 ok(defInterp ==
interp,
"Expected Interpolation Mode to be restored to %d, got %d\n", defInterp,
interp);
697 ok(
fabs(defScale -
scale) < 0.0001,
"Expected Page Scale to be restored to %f, got %f\n", defScale,
scale);
700 ok(defUnit ==
unit,
"Expected Page Unit to be restored to %d, got %d\n", defUnit,
unit);
703 ok(defOffsetmode == offsetmode,
"Expected Pixel Offset Mode to be restored to %d, got %d\n", defOffsetmode, offsetmode);
706 ok(defSmoothmode == smoothmode,
"Expected Smoothing Mode to be restored to %d, got %d\n", defSmoothmode, smoothmode);
709 ok(defContrast == contrast,
"Expected Text Contrast to be restored to %d, got %d\n", defContrast, contrast);
713 ok(defTexthint == texthint,
"Expected Text Hint to be restored to %d, got %d\n", defTexthint, texthint);
745 ok(
fabs(defTrans[0] - elems[0]) < 0.0001 &&
746 fabs(defTrans[1] - elems[1]) < 0.0001 &&
747 fabs(defTrans[2] - elems[2]) < 0.0001 &&
748 fabs(defTrans[3] - elems[3]) < 0.0001 &&
749 fabs(defTrans[4] - elems[4]) < 0.0001 &&
750 fabs(defTrans[5] - elems[5]) < 0.0001,
751 "Expected World Transform Matrix to be restored to [%f, %f, %f, %f, %f, %f], got [%f, %f, %f, %f, %f, %f]\n",
752 defTrans[0], defTrans[1], defTrans[2], defTrans[3], defTrans[4], defTrans[5],
753 elems[0], elems[1], elems[2], elems[3], elems[4], elems[5]);
779 ok(
fabs(defClip[0] - clip.
X) < 0.0001 &&
780 fabs(defClip[1] - clip.
Y) < 0.0001 &&
781 fabs(defClip[2] - clip.
Width) < 0.0001 &&
783 "Expected Clipping Rectangle to be restored to [%f, %f, %f, %f], got [%f, %f, %f, %f]\n",
784 defClip[0], defClip[1], defClip[2], defClip[3],
829 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
833 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
837 ok(pen !=
NULL,
"Expected pen to be initialized\n");
877 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
881 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
885 ok(pen !=
NULL,
"Expected pen to be initialized\n");
957 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
961 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
965 ok(pen !=
NULL,
"Expected pen to be initialized\n");
1037 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
1041 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
1045 ok(pen !=
NULL,
"Expected pen to be initialized\n");
1104 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
1108 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
1112 ok(pen !=
NULL,
"Expected pen to be initialized\n");
1171 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
1175 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
1179 ok(pen !=
NULL,
"Expected pen to be initialized\n");
1232 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
1236 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
1240 ok(pen !=
NULL,
"Expected pen to be initialized\n");
1283 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
1287 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
1291 ok(pen !=
NULL,
"Expected pen to be initialized\n");
1324 if (!pGdipDrawImageFX)
1326 win_skip(
"GdipDrawImageFX() is not supported.\n");
1329#define GdipDrawImageFX pGdipDrawImageFX
1338 ok(
NULL != bm,
"Expected bitmap to be initialized\n");
1386 memset(&bmihdr, 0,
sizeof(bmihdr));
1395 ok(
NULL != bm,
"Expected bitmap to be initialized\n");
1406 status =
GdipDrawImagePointsRect(graphics, (
GpImage*)bm, ptf, 4, 0, 0, 10, 10,
UnitPixel,
NULL,
NULL,
NULL);
1408 status =
GdipDrawImagePointsRect(graphics, (
GpImage*)bm, ptf, 5, 0, 0, 10, 10,
UnitPixel,
NULL,
NULL,
NULL);
1410 status =
GdipDrawImagePointsRect(graphics, (
GpImage*)bm, ptf, 2, 0, 0, 10, 10,
UnitPixel,
NULL,
NULL,
NULL);
1412 status =
GdipDrawImagePointsRect(graphics, (
GpImage*)bm, ptf, 3, 0, 0, 10, 10,
UnitPixel,
NULL,
NULL,
NULL);
1414 status =
GdipDrawImagePointsRect(graphics,
NULL, ptf, 3, 0, 0, 10, 10,
UnitPixel,
NULL,
NULL,
NULL);
1416 status =
GdipDrawImagePointsRect(graphics, (
GpImage*)bm,
NULL, 3, 0, 0, 10, 10,
UnitPixel,
NULL,
NULL,
NULL);
1418 status =
GdipDrawImagePointsRect(graphics, (
GpImage*)bm, ptf, 3, 0, 0, 0, 0,
UnitPixel,
NULL,
NULL,
NULL);
1420 memset(ptf, 0,
sizeof(ptf));
1421 status =
GdipDrawImagePointsRect(graphics, (
GpImage*)bm, ptf, 3, 0, 0, 10, 10,
UnitPixel,
NULL,
NULL,
NULL);
1438 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
1442 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
1446 ok(pen !=
NULL,
"Expected pen to be initialized\n");
1499 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
1503 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
1570 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
1574 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
1622 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
1625 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
1628 ok(brush !=
NULL,
"Expected brush to be initialized\n");
1631 ok(
path !=
NULL,
"Expected path to be initialized\n");
1700 for(
i = 0;
i < 5;
i++){
1708 rect[0].Height = 70;
1712 rect[1].Height = 20;
1714 for(
i = 0;
i < 2;
i++){
1732 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
1758 ok(retdc ==
hdc,
"Invalid HDC returned\n");
2192 UINT region_data_size;
2219 expect(36, region_data_size);
2220 expect(28, region_data.size);
2221 expect(0, region_data.num_children);
2222 expect(0x10000000 , region_data.element_type);
2225 expectf(10.0, region_data.width);
2226 expectf(10.0, region_data.height);
2258 expect(36, region_data_size);
2259 expect(28, region_data.size);
2260 expect(0, region_data.num_children);
2261 expect(0x10000000 , region_data.element_type);
2264 expectf(5.0, region_data.width);
2265 expectf(5.0, region_data.height);
2352 static const WCHAR string[] =
L"Test";
2353 static const PointF positions[4] = {{0,0}, {1,1}, {2,2}, {3,3}};
2356 memset(&logfont,0,
sizeof(logfont));
2367 skip(
"Arial not installed.\n");
2407 ok(temp_hdc !=
NULL,
"got NULL temp_hdc\n");
2459 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
2463 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
2477 "Expected clip bounds (%0.f, %0.f, %0.f, %0.f) to be the size of "
2478 "the screen (%0.f, %0.f, %0.f, %0.f)\n",
2483 exp.X = clipr.
X = 10;
2484 exp.Y = clipr.
Y = 12;
2497 "Expected clip bounds (%0.f, %0.f, %0.f, %0.f) to be the size of "
2498 "the clipping rect (%0.f, %0.f, %0.f, %0.f)\n",
2522 "Expected clip bounds (%0.f, %0.f, %0.f, %0.f) to be the size of "
2523 "the visible clipping rect (%0.f, %0.f, %0.f, %0.f)\n",
2533 "Expected clip bounds (%d, %d, %d, %d) to be the size of "
2534 "the visible clipping rect (%0.f, %0.f, %0.f, %0.f)\n",
2563 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
2571 "Expected clip bounds (%0.f, %0.f, %0.f, %0.f) to be the size of "
2572 "the window (%0.f, %0.f, %0.f, %0.f)\n",
2577 exp.X = clipr.
X = 20;
2578 exp.Y = clipr.
Y = 8;
2591 "Expected clip bounds (%0.f, %0.f, %0.f, %0.f) to be the size of "
2592 "the clipping rect (%0.f, %0.f, %0.f, %0.f)\n",
2616 "Expected clip bounds (%0.f, %0.f, %0.f, %0.f) to be the size of "
2617 "the visible clipping rect (%0.f, %0.f, %0.f, %0.f)\n",
2627 "Expected clip bounds (%d, %d, %d, %d) to be the size of "
2628 "the visible clipping rect (%0.f, %0.f, %0.f, %0.f)\n",
2650 "Expected clip bounds (%0.f, %0.f, %0.f, %0.f) to be "
2651 "twice the window size (%0.f, %0.f, %0.f, %0.f)\n",
2669 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
2790 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
2794 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
2813 ok(
val ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
2819 ok(
val ==
FALSE,
"Expected (%.2f, %.2f) not to be visible\n",
x,
y);
2825 ok(
val ==
FALSE,
"Expected (%.2f, %.2f) not to be visible\n",
x,
y);
2831 ok(
val ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
2840 ok(
val ==
FALSE,
"After clipping, expected (%.2f, %.2f) not to be visible\n",
x,
y);
2846 ok(
val ==
TRUE,
"After clipping, expected (%.2f, %.2f) to be visible\n",
x,
y);
2855 ok(
val ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
2861 ok(
val ==
FALSE,
"Expected (%.2f, %.2f) not to be visible\n",
x,
y);
2870 ok(
val ==
FALSE,
"After clipping, expected (%.2f, %.2f) not to be visible\n",
x,
y);
2876 ok(
val ==
FALSE,
"After clipping, expected (%.2f, %.2f) not to be visible\n",
x,
y);
2882 ok(
val ==
TRUE,
"After clipping, expected (%.2f, %.2f) to be visible\n",
x,
y);
2888 ok(
val ==
TRUE,
"After clipping, expected (%.2f, %.2f) to be visible\n",
x,
y);
2894 ok(
val ==
TRUE,
"After clipping, expected (%.2f, %.2f) to be visible\n",
x,
y);
2900 ok(
val ==
FALSE,
"After clipping, expected (%.2f, %.2f) not to be visible\n",
x,
y);
2906 ok(
val ==
TRUE,
"After clipping, expected (%.2f, %.2f) to be visible\n",
x,
y);
2912 ok(
val ==
TRUE,
"After clipping, expected (%.2f, %.2f) to be visible\n",
x,
y);
2918 ok(
val ==
FALSE,
"After clipping, expected (%.2f, %.2f) not to be visible\n",
x,
y);
2924 ok(
val ==
FALSE,
"After clipping, expected (%.2f, %.2f) not to be visible\n",
x,
y);
2930 ok(
val ==
FALSE,
"After clipping, expected (%.2f, %.2f) not to be visible\n",
x,
y);
2936 ok(
val ==
FALSE,
"After clipping, expected (%.2f, %.2f) not to be visible\n",
x,
y);
2942 ok(
val ==
FALSE,
"After clipping, expected (%.2f, %.2f) not to be visible\n",
x,
y);
2949 ok(
val ==
TRUE,
"After clipping, expected (%.2f, %.2f) to be visible\n",
x,
y);
2955 ok(
val ==
FALSE,
"After clipping, expected (%.2f, %.2f) not to be visible\n",
x,
y);
2969 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
2973 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
3132 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
3136 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
3280 "Expected ffa8b8e8, got %.8lx\n",
color);
3293 RectF rc, char_bounds, bounds;
3297 const WCHAR teststring[] =
L"MM M\nM";
3298 const WCHAR teststring2[] =
L"j";
3299 const WCHAR teststring3[] =
L"MM M\r\nM\0";
3300 REAL char_width, char_height;
3301 INT codepointsfitted, linesfilled;
3305 BOOL region_isempty[4];
3310 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
3313 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
3374 expect(7, codepointsfitted);
3381 ok(char_bounds.
Width > 0,
"got %0.2f\n", bounds.
Width);
3383 expect(1, codepointsfitted);
3390 ok(bounds.
Width > char_bounds.
Width,
"got %0.2f, expected at least %0.2f\n", bounds.
Width, char_bounds.
Width);
3392 expect(2, codepointsfitted);
3394 char_width = bounds.
Width - char_bounds.
Width;
3400 ok(bounds.
Width > char_bounds.
Width + char_width * 2,
"got %0.2f, expected at least %0.2f\n",
3401 bounds.
Width, char_bounds.
Width + char_width * 2);
3403 expect(6, codepointsfitted);
3412 expect(4, codepointsfitted);
3425 rc.
Width = char_bounds.
Width + char_width * 2.1;
3433 expect(6, codepointsfitted);
3437 rc.
Width = char_bounds.
Width + char_width * 1.7;
3445 expect(6, codepointsfitted);
3449 rc.
Width = char_bounds.
Width + char_width * 0.8;
3457 expect(6, codepointsfitted);
3460 for (
i = 0;
i < 4;
i++)
3466 for (
i = 0;
i < 4;
i++)
3467 ok(regions[
i] == (
GpRegion *)0xdeadbeef,
"expected 0xdeadbeef, got %p\n", regions[
i]);
3472 for (
i = 0;
i < 4;
i++)
3473 ok(regions[
i] == (
GpRegion *)0xdeadbeef,
"expected 0xdeadbeef, got %p\n", regions[
i]);
3516 for (
i = 0;
i < 4;
i++)
3522 ok(region_isempty[0],
"region should be empty\n");
3523 ok(region_isempty[1],
"region should be empty\n");
3524 ok(region_isempty[2],
"region should be empty\n");
3525 ok(region_isempty[3],
"region should be empty\n");
3539 ok(!region_isempty[0],
"region shouldn't be empty\n");
3540 ok(!region_isempty[1],
"region shouldn't be empty\n");
3541 ok(!region_isempty[2],
"region shouldn't be empty\n");
3542 ok(region_isempty[3],
"region should be empty\n");
3545 rc.
Width = char_bounds.
Width + char_width * 2.1;
3557 ok(!region_isempty[0],
"region shouldn't be empty\n");
3558 ok(!region_isempty[1],
"region shouldn't be empty\n");
3559 ok(region_isempty[2],
"region should be empty\n");
3560 ok(region_isempty[3],
"region should be empty\n");
3572 memset(positions, 0,
sizeof(positions));
3617 ok(rc.
Y < 0.0,
"unexpected Y %0.2f\n", rc.
Y);
3618 ok(rc.
Width > 0.0,
"unexpected Width %0.2f\n", rc.
Width);
3619 ok(rc.
Height > 0.0,
"unexpected Y %0.2f\n", rc.
Y);
3621 char_width = rc.
Width;
3634 ok(rc.
Y < 0.0,
"unexpected Y %0.2f\n", rc.
Y);
3635 ok(rc.
Width < char_width,
"got Width %0.2f, expecting less than %0.2f\n", rc.
Width, char_width);
3648 ok(rc.
Y < 0.0,
"unexpected Y %0.2f\n", rc.
Y);
3649 ok(rc.
Width > 0,
"unexpected Width %0.2f\n", rc.
Width);
3669 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
3672 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
3738 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
3741 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
3785 HBRUSH
hbrush, holdbrush;
3831 REAL res_x, res_y, page_scale;
3852 static const WCHAR string[] =
L"1234567";
3896 height = font_size + 2.0 * font_size / 6.0;
3905 base_cx = bounds.
Width;
3918 bounds.
Width += 1.0;
3982 height = (font_size + 2.0 * font_size / 6.0) * unit_scale;
3994 base_cx = bounds.
Width;
4007 bounds.
Width += 1.0;
4047 REAL expected_width, expected_height;
4073 base_cx = bounds.
Width;
4084 expected_width = base_cx *
pt.Y;
4085 expected_height = base_cy *
pt.Y;
4088 ok(
fabs(expected_width - bounds.
Width) <= 0.001,
"%u: expected %f, got %f\n",
i, expected_width, bounds.
Width);
4089 ok(
fabs(expected_height - bounds.
Height) <= 0.001,
"%u: expected %f, got %f\n",
i, expected_height, bounds.
Height);
4110 { { 100.0, 0.0 }, { 0.0, 100.0 } }, { { 100.0, 0.0 }, { 0.0, 100.0 } } },
4112 { { 100.0, 0.0 }, { 0.0, 100.0 } }, { { 100.0, 0.0 }, { 0.0, 100.0 } } },
4114 { { 100.0, 0.0 }, { 0.0, 100.0 } }, { { 9600.0, 0.0 }, { 0.0, 9600.0 } } },
4116 { { 100.0, 0.0 }, { 0.0, 100.0 } }, { { 170.833313, 0.0 }, { 0.0, 633.333252 } } },
4118 { { 100.0, 0.0 }, { 0.0, 100.0 } }, { { 40.999996, 0.0 }, { 0.0, 151.999985 } } },
4120 { { 100.0, 0.0 }, { 0.0, 100.0 } }, { { 968.503845, 0.0 }, { 0.0, 3590.550781 } } },
4122 { { 100.0, 0.0 }, { 0.0, 100.0 } }, { { 100.0, 0.0 }, { 0.0, 100.0 } } },
4124 { { 100.0, 0.0 }, { 0.0, 100.0 } }, { { 100.0, 0.0 }, { 0.0, 100.0 } } },
4135 ptf[0].
X = td[
i].in[0].X;
4136 ptf[0].
Y = td[
i].in[0].Y;
4137 ptf[1].
X = td[
i].in[1].X;
4138 ptf[1].
Y = td[
i].in[1].Y;
4175 static const struct {
4248 GpUnit pen_unit, page_unit;
4253 { 10.0, 10.0, 1.0,
UnitPixel,
UnitPixel, 1.0, 1, 1, 1, 1 },
4254 { 10.0, 10.0, 1.0,
UnitPixel,
UnitPixel, 0.0, 0, 0, 1, 1 },
4255 { 10.0, 10.0, 1.0,
UnitPixel,
UnitPixel, 0.1, 1, 1, 1, 1 },
4256 { 10.0, 10.0, 3.0,
UnitPixel,
UnitPixel, 2.0, 2, 2, 2, 2 },
4257 { 10.0, 10.0, 30.0,
UnitPixel,
UnitInch, 1.0, 1, 1, 1, 1 },
4258 { 10.0, 10.0, 1.0,
UnitWorld,
UnitPixel, 1.0, 1, 1, 1, 1 },
4259 { 10.0, 10.0, 1.0,
UnitWorld,
UnitPixel, 0.0, 1, 1, 1, 1 },
4260 { 10.0, 10.0, 3.0,
UnitWorld,
UnitPixel, 2.0, 6, 6, 6, 6 },
4261 { 10.0, 10.0, 2.0,
UnitWorld,
UnitInch, 1.0, 20, 20, 20, 20 },
4297 corner.
X = corner.
Y = 100.0;
4313 for (
j=0;
j<100;
j++)
4322 for (
j=99;
j>=0;
j--)
4338 for (
j=0;
j<100;
j++)
4347 for (
j=99;
j>=0;
j--)
4389 for (
j=0;
j<100;
j++)
4398 for (
j=99;
j>=0;
j--)
4409 ok(
size == td[
i].path_cx,
"%u: expected %d, got %d\n",
i, td[
i].path_cx,
size);
4414 for (
j=0;
j<100;
j++)
4423 for (
j=99;
j>=0;
j--)
4434 ok(
size == td[
i].path_cy,
"%u: expected %d, got %d\n",
i, td[
i].path_cy,
size);
4451 static const WCHAR string[] =
L"1234567";
4463 GpUnit gfx_unit, font_unit;
4505 trace(
"test bounds: %f,%f,%f,%f\n", bounds.
X, bounds.
Y, bounds.
Width, bounds.
Height);
4508 rect.Width = 32000.0;
4509 rect.Height = 32000.0;
4523 win_skip(
"GdipGetRegionBounds is broken, scale %f (should be near 1.0)\n",
scale);
4533 for (font_unit = 3; font_unit <= 6; font_unit++)
4549 for (gfx_unit = 2; gfx_unit <= 6; gfx_unit++)
4551 RectF bounds_1, bounds_2;
4552 REAL margin, margin_y, font_height;
4578 ok(
match,
"Expected 100.0, got %f\n", ptf.
Y);
4585 ok(
match,
"Expected 100.0, got %f\n", ptf.
Y);
4599 margin = bounds_1.
Width - bounds_2.
Width / 2.0;
4601 ok(margin > 0.0,
"wrong margin %f\n", margin);
4604 rect.Width = 320000.0;
4605 rect.Height = 320000.0;
4612 ok(
rect.X > 0.0,
"wrong rect.X %f\n",
rect.X);
4615 ok(
match,
"Expected %f, got %f\n", margin,
rect.X);
4617 ok(
match,
"Expected %f, got %f\n", font_height,
rect.Height);
4619 ok(
match,
"Expected %f, got %f\n", bounds.
Width,
rect.Width + margin * 2.0);
4637 static const WCHAR string[] =
L"A01";
4649 REAL margin_x, margin_y, width_rgn, height_rgn;
4668 margin_x = 20.0 / 6.0;
4669 margin_y = 20.0 / 8.0;
4701 rect.Width = 32000.0;
4702 rect.Height = 32000.0;
4708 expectf_(5.0 + margin_x, bounds.
X, 1.0);
4714 width_rgn = bounds.
Width;
4715 height_rgn = bounds.
Height;
4723 rect.Width = 32000.0;
4724 rect.Height = 32000.0;
4732 ok(bounds.
Width < width_rgn / 2.0,
"width of 1 glyph is wrong\n");
4734 width_1 = bounds.
Width;
4757 rect.Width = width_rgn / 2.0;
4758 rect.Height = 32000.0;
4764 expectf_(5.0 + margin_x, bounds.
X, 1.0);
4781 expectf_(5.0 + margin_x, bounds.
X, 1.0);
4788 rect.Width = width_rgn / 2.0;
4789 rect.Height = 32000.0;
4795 expectf_(5.0 + margin_x, bounds.
X, 1.0);
4821 ok(bounds.
Width <
width / 2.0,
"width of 1 glyph is wrong\n");
4823 width_1 = bounds.
Width;
4833 ok(bounds.
Width <
width,
"width of 2 glyphs is wrong\n");
4834 ok(bounds.
Width > width_1,
"width of 2 glyphs is wrong\n");
4836 width_2 = bounds.
Width;
4865 rect.Width = width_2 - 0.006;
4878 rect.Width = width_2 - 0.004;
4906 rect.Width = 32000.0;
4907 rect.Height = 32000.0;
4913 expectf_(5.0 + margin_x, bounds.
X, 1.0);
4919 width_rgn = bounds.
Width;
4920 height_rgn = bounds.
Height;
4959 rect.Width = width_rgn * 2.0;
4960 rect.Height = height_rgn * 2.0;
4967 expectf_(5.0 + width_rgn/2.0, bounds.
X, 1.0);
4969 expectf_(5.0 + height_rgn/2.0, bounds.
Y, 1.0);
4983 expectf_(5.0 - width_rgn/2.0, bounds.
X, 1.0);
4985 expectf_(5.0 - height_rgn/2.0, bounds.
Y, 1.0);
5026 rect.Width = width_rgn * 2.0;
5027 rect.Height = height_rgn * 2.0;
5034 expectf_(5.0 + width_rgn, bounds.
X, 2.0);
5036 expectf_(5.0 + height_rgn, bounds.
Y, 1.0);
5050 expectf_(5.0 - width_rgn, bounds.
X, 2.0);
5052 expectf_(5.0 - height_rgn, bounds.
Y, 1.0);
5059 rect.Width = 32000.0;
5060 rect.Height = 32000.0;
5065 width_MM = bounds.
Width;
5070 rect.Width = 32000.0;
5071 rect.Height = 32000.0;
5076 width_M_M = bounds.
Width;
5081 rect.Width = width_M_M;
5082 rect.Height = 32000.0;
5095 rect.Width = width_M_M;
5096 rect.Height = 32000.0;
5124 GpUnit gfx_unit, font_unit;
5142 for (font_unit = 3; font_unit <= 6; font_unit++)
5153 for (gfx_unit = 2; gfx_unit <= 6; gfx_unit++)
5172 expectf_(font_size / 6.0, margin, font_size / 100.0);
5196 ok(
hdc !=
NULL,
"CreateCompatibleDC failed\n");
5206 ok(
hbm !=
NULL,
"CreateDIBSection failed\n");
5220 bits[0] = 0xdeadbeef;
5227 bits[0] = 0xdeadbeef;
5233 expect(0xefbead, colorref);
5244 bits[0] = 0xdeadbeef;
5264 REAL imageres, graphicsres;
5288 expectf(graphicsres, imageres);
5295 expectf(graphicsres, imageres);
5351 ok(
rect.X == 100.0 &&
rect.Y == 100.0 &&
rect.Width == 100.0 &&
rect.Height == 100.0,
5352 "expected 100.0,100.0-100.0,100.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5356 ok(recti.
X == 100 && recti.
Y == 100 && recti.
Width == 100 && recti.
Height == 100,
5357 "expected 100,100-100,100, got %i,%i-%i,%i\n", recti.
X, recti.
Y, recti.
Width, recti.
Height);
5364 ok(
rect.X == 100.0 &&
rect.Y == 100.0 &&
rect.Width == 100.0 &&
rect.Height == 100.0,
5365 "expected 100.0,100.0-100.0,100.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5375 ok(
rect.X == 100.0 &&
rect.Y == 100.0 &&
rect.Width == 100.0 &&
rect.Height == 100.0,
5376 "expected 100.0,100.0-100.0,100.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5384 ok(ptf[0].
X == 100.0 && ptf[0].
Y == 100.0 && ptf[1].
X == 200.0 && ptf[1].
Y == 200.0,
5385 "expected 100.0,100.0-200.0,200.0, got %f,%f-%f,%f\n", ptf[0].
X, ptf[0].
Y, ptf[1].
X, ptf[1].
Y);
5399 "expected 45.0,20.0-50.0,25.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5403 ok(recti.
X == 45 && recti.
Y == 20 && recti.
Width == 50 && recti.
Height == 25,
5404 "expected 45,20-50,25, got %i,%i-%i,%i\n", recti.
X, recti.
Y, recti.
Width, recti.
Height);
5413 "expected 45.0,20.0-50.0,25.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5417 ok(
rect.X == 100.0 &&
rect.Y == 100.0 &&
rect.Width == 100.0 &&
rect.Height == 100.0,
5418 "expected 100.0,100.0-100.0,100.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5442 ok(ptf[0].
X == 45.0 && ptf[0].
Y == 20.0 && ptf[1].
X == 95.0 && ptf[1].
Y == 45.0,
5443 "expected 45.0,20.0-95.0,45.0, got %f,%f-%f,%f\n", ptf[0].
X, ptf[0].
Y, ptf[1].
X, ptf[1].
Y);
5467 ok(ptf[0].
X == 100.0 && ptf[0].
Y == 100.0 && ptf[1].
X == 200.0 && ptf[1].
Y == 200.0,
5468 "expected 100.0,100.0-200.0,200.0, got %f,%f-%f,%f\n", ptf[0].
X, ptf[0].
Y, ptf[1].
X, ptf[1].
Y);
5476 "expected 45.0,20.0-50.0,25.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5485 "expected 45.0,20.0-50.0,25.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5489 ok(
rect.X == 100.0 &&
rect.Y == 100.0 &&
rect.Width == 100.0 &&
rect.Height == 100.0,
5490 "expected 100.0,100.0-100.0,100.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5514 ok(ptf[0].
X == 45.0 && ptf[0].
Y == 20.0 && ptf[1].
X == 95.0 && ptf[1].
Y == 45.0,
5515 "expected 45.0,20.0-95.0,45.0, got %f,%f-%f,%f\n", ptf[0].
X, ptf[0].
Y, ptf[1].
X, ptf[1].
Y);
5539 ok(ptf[0].
X == 100.0 && ptf[0].
Y == 100.0 && ptf[1].
X == 200.0 && ptf[1].
Y == 200.0,
5540 "expected 100.0,100.0-200.0,200.0, got %f,%f-%f,%f\n", ptf[0].
X, ptf[0].
Y, ptf[1].
X, ptf[1].
Y);
5547 ok((
rect.X == 13.75 &&
rect.Y == 4.375 &&
rect.Width == 18.75 &&
rect.Height == 9.375) ||
5549 (
rect.X == 14.0 &&
rect.Y == 4.0 &&
rect.Width == 19.0 &&
rect.Height == 10.0) ||
5551 "expected 13.75,4.375-18.75,9.375, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5559 ok((
rect.X == 13.75 &&
rect.Y == 4.375 &&
rect.Width == 18.75 &&
rect.Height == 9.375) ||
5561 (
rect.X == 14.0 &&
rect.Y == 4.0 &&
rect.Width == 19.0 &&
rect.Height == 10.0) ||
5563 "expected 13.75,4.375-18.75,9.375, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5567 ok(
rect.X == 100.0 &&
rect.Y == 100.0 &&
rect.Width == 100.0 &&
rect.Height == 100.0,
5568 "expected 100.0,100.0-100.0,100.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5596 ok((ptf[0].
X == 13.75 && ptf[0].
Y == 4.375 && ptf[1].
X == 32.5 && ptf[1].
Y == 13.75) ||
5597 broken(ptf[0].
X == 45.0 && ptf[0].
Y == 20.0 && ptf[1].
X == 95.0 && ptf[1].
Y == 45.0) ,
5598 "expected 13.75,4.375-32.5,13.75, got %f,%f-%f,%f\n", ptf[0].
X, ptf[0].
Y, ptf[1].
X, ptf[1].
Y);
5624 if (
fabs(ptf[0].
X - 100.0) < 0.001)
5633 ok(
broken(
fabs(ptf[0].
X - 275.0) < 0.001),
"expected 275.0, got %f\n", ptf[0].
X);
5634 ok(
broken(
fabs(ptf[0].
Y - 275.0) < 0.001),
"expected 275.0, got %f\n", ptf[0].
Y);
5635 ok(
broken(
fabs(ptf[1].
X - 542.0) < 0.001),
"expected 542.0, got %f\n", ptf[1].
X);
5636 ok(
broken(
fabs(ptf[1].
Y - 541.75) < 0.001),
"expected 541.75, got %f\n", ptf[1].
Y);
5644 ok(
rect.X == 210.0 &&
rect.Y == 420.0 &&
rect.Width == 200.0 &&
rect.Height == 400.0,
5645 "expected 210.0,420.0-200.0,400.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5671 if (
fabs(ptf[0].
X - 210.0625) < 0.001)
5680 ok(
broken(
fabs(ptf[0].
X - 568.5) < 0.001),
"expected 568.5, got %f\n", ptf[0].
X);
5681 ok(
broken(
fabs(ptf[0].
Y - 1128.5) < 0.001),
"expected 1128.5, got %f\n", ptf[0].
Y);
5682 ok(
broken(
fabs(ptf[1].
X - 1102.0) < 0.001),
"expected 1102.0, got %f\n", ptf[1].
X);
5683 ok(
broken(
fabs(ptf[1].
Y - 2195.0) < 0.001),
"expected 2195.0, got %f\n", ptf[1].
Y);
5712 ok(
rect.X == 210.0 &&
rect.Y == 420.0 &&
rect.Width == 200.0 &&
rect.Height == 400.0,
5713 "expected 210.0,420.0-200.0,400.0, got %f,%f-%f,%f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5815 ok(
rect.X == 210.0 &&
rect.Y == 420.0 &&
rect.Width == 200.0 &&
rect.Height == 400.0,
5816 "expected 210.0,420.0-200.0,400.0, got %f,%f-%f,%f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5990 if (
fabs(ptf[0].
X - 7200.0) < 0.001)
5991 ok(ptf[0].
X == 7200.0 && ptf[0].
Y == 7200.0 && ptf[1].
X == 14400.0 && ptf[1].
Y == 14400.0,
5992 "expected 7200.0,7200.0-14400.0,14400.0, got %f,%f-%f,%f\n", ptf[0].
X, ptf[0].
Y, ptf[1].
X, ptf[1].
Y);
5995 ok(
broken(
fabs(ptf[0].
X - 100.0) < 0.001),
"expected 100.0, got %f\n", ptf[0].
X);
5996 ok(
broken(
fabs(ptf[0].
Y - 100.0) < 0.001),
"expected 100.0, got %f\n", ptf[0].
Y);
5997 ok(
broken(
fabs(ptf[1].
X - 200.0) < 0.001),
"expected 200.0, got %f\n", ptf[1].
X);
5998 ok(
broken(
fabs(ptf[1].
Y - 200.0) < 0.001),
"expected 200.0, got %f\n", ptf[1].
Y);
6041 if (
fabs(ptf[0].
X - 100.0) < 0.001)
6042 ok(ptf[0].
X == 100.0 && ptf[0].
Y == 100.0 && ptf[1].
X == 200.0 && ptf[1].
Y == 200.0,
6043 "expected 100.0,100.0-200.0,200.0, got %f,%f-%f,%f\n", ptf[0].
X, ptf[0].
Y, ptf[1].
X, ptf[1].
Y);
6046 ok(
broken(
fabs(ptf[0].
X - 1.041667) < 0.001),
"expected 1.041667, got %f\n", ptf[0].
X);
6047 ok(
broken(
fabs(ptf[0].
Y - 1.041667) < 0.001),
"expected 1.041667, got %f\n", ptf[0].
Y);
6048 ok(
broken(
fabs(ptf[1].
X - 2.083333) < 0.001),
"expected 2.083333, got %f\n", ptf[1].
X);
6049 ok(
broken(
fabs(ptf[1].
Y - 2.083333) < 0.001),
"expected 2.083333, got %f\n", ptf[1].
Y);
6079 if (
fabs(ptf[0].
X - 75.0) < 0.001)
6080 ok(ptf[0].
X == 75.0 && ptf[0].
Y == 75.0 && ptf[1].
X == 150.0 && ptf[1].
Y == 150.0,
6081 "expected 75.0,75.0-150.0,150.0, got %f,%f-%f,%f\n", ptf[0].
X, ptf[0].
Y, ptf[1].
X, ptf[1].
Y);
6084 ok(
broken(
fabs(ptf[0].
X - 1.041667) < 0.001),
"expected 1.041667, got %f\n", ptf[0].
X);
6085 ok(
broken(
fabs(ptf[0].
Y - 1.041667) < 0.001),
"expected 1.041667, got %f\n", ptf[0].
Y);
6086 ok(
broken(
fabs(ptf[1].
X - 2.083333) < 0.001),
"expected 2.083333, got %f\n", ptf[1].
X);
6087 ok(
broken(
fabs(ptf[1].
Y - 2.083333) < 0.001),
"expected 2.083333, got %f\n", ptf[1].
Y);
6190 if (
fabs(ptf[0].
X - 150.0) < 0.001)
6199 ok(
broken(
fabs(ptf[0].
X - 300.0) < 0.001),
"expected 300.0, got %f\n", ptf[0].
X);
6200 ok(
broken(
fabs(ptf[0].
Y - 150.0) < 0.001),
"expected 150.0, got %f\n", ptf[0].
Y);
6201 ok(
broken(
fabs(ptf[1].
X - 600.0) < 0.001),
"expected 600.0, got %f\n", ptf[1].
X);
6202 ok(
broken(
fabs(ptf[1].
Y - 300.0) < 0.001),
"expected 300.0, got %f\n", ptf[1].
Y);
6309 GpRectF rects[2] = {{0,0,10,10}, {10,10,10,10}};
6311 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
6315 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
6319 ok(brush !=
NULL,
"Expected brush to be initialized\n");
6382 boundRect.
Height==
height,
"Expected GdipGetVisibleClipBoundsI ok\n");
6393 boundRect.
Height==
height-10,
"Expected GdipGetVisibleClipBoundsI ok\n");
6410 static const GpPointF test_points[3] = {{0.0,0.0}, {1.0,0.0}, {0.0,1.0}};
6419 dstrect.
Width = 1.0;
6581 if (!pGdipGraphicsSetAbort)
6583 win_skip(
"GdipGraphicsSetAbort() is not supported.\n");
6595 status = pGdipGraphicsSetAbort(graphics,
NULL);
6603#define BLUE_COLOR (0xff0000ff)
6604#define is_blue_color(color) ( ((color) & 0x00ffffff) == 0xff )
6605#define get_bitmap_pixel(x,y) pixel[(y)*(width) + (x)]
6678 "Expected GdipFillRectangleI take effect!\n" );
6711 BYTE *src_img_data =
GdipAlloc(src_img_width*src_img_height*4);
6713 ok(pixel !=
NULL,
"Expected src_img_data is valid\n");
6719 for(
y = 0;
y < src_img_height; ++
y)
6721 for(
x = 0;
x < src_img_width; ++
x)
6726 pixel += src_img_width;
6763 "Expected GdipFillRectangleI take effect!\n" );
6797 BYTE *src_img_data =
GdipAlloc(src_img_width*src_img_height*4);
6799 ok(pixel !=
NULL,
"Expected src_img_data is valid\n");
6806 for(
y = 0;
y < src_img_height; ++
y)
6808 for(
x = 0;
x < src_img_width; ++
x)
6813 pixel += src_img_width;
6850 "Expected GdipFillRectangleI take effect!\n" );
6880 BYTE *src_img_data =
GdipAlloc(src_img_width*src_img_height*4);
6882 ok(pixel !=
NULL,
"Expected src_img_data is valid\n");
6888 for(
y = 0;
y < src_img_height; ++
y)
6890 for(
x = 0;
x < src_img_width; ++
x)
6895 pixel += src_img_width;
6926 "Expected GdipDrawImageRectRectI take effect!\n" );
6992 ok(
hdc !=
NULL,
"CreateCompatibleDC failed\n");
7002 ok(
hbm !=
NULL,
"CreateDIBSection failed\n");
7057 HBRUSH
hbrush, holdbrush;
7148 HBRUSH
hbrush, holdbrush;
7152 XFORM xform = { 1.0, 0.0, 0.0, 1.0, 0.0, 0.0 };
7155 ok(src_hdc !=
NULL,
"CreateCompatibleDC failed\n");
7167 ok(
hbm !=
NULL,
"CreateDIBSection failed\n");
7192 ok( gdi_hdc == src_hdc,
"wrong dc\n" );
7290 pGetDefaultPrinterA = (
void *)
GetProcAddress(winspool,
"GetDefaultPrinterA");
7291 pOpenPrinterA = (
void *)
GetProcAddress(winspool,
"OpenPrinterA");
7293 pGetPrinterDriverA = (
void *)
GetProcAddress(winspool,
"GetPrinterDriverA");
7294 pClosePrinter = (
void *)
GetProcAddress(winspool,
"ClosePrinter");
7296 if (!pGetDefaultPrinterA || !pOpenPrinterA || !pGetPrinterA || !pGetPrinterDriverA || !pClosePrinter)
7300 if (!pGetDefaultPrinterA(
buffer, &
len))
goto done;
7301 if (!pOpenPrinterA(
buffer, &hprn,
NULL))
goto done;
7303 pGetPrinterA(hprn, 2,
NULL, 0, &
len);
7309 if (!pGetPrinterDriverA(hprn,
NULL, 3, (
LPBYTE)dbuf,
len, &
len))
goto done;
7312 trace(
"hdc %p for driver '%s' printer '%s' port '%s'\n",
hdc,
7317 if (hprn) pClosePrinter(hprn);
7358 REAL dpi_x, dpi_y, pixel_per_unit_x, pixel_per_unit_y;
7371 skip(
"could not create a DC for the default printer\n");
7391 pixel_per_unit_x = dpi_x / 100.0;
7392 pixel_per_unit_y = dpi_y / 100.0;
7405 rect.Width = pixel_per_unit_x;
7406 rect.Height = pixel_per_unit_y;
7408 ok(
match,
"Expected pixel (%u, %u) to be %08x, got %08lx\n",
7412 rect.X = pixel_per_unit_x;
7413 rect.Y = pixel_per_unit_y;
7414 rect.Width = pixel_per_unit_x;
7415 rect.Height = pixel_per_unit_y;
7417 ok(
match,
"Expected pixel (%u, %u) to be %08x, got %08lx\n",
7433 GpRect bounds = {0, 0, 10, 10};
7440 INT expected_stride;
7486 ok(locked_data.
Scan0 == scan0,
"got %p, expected %p\n", locked_data.
Scan0, scan0);
7512 pGdipGraphicsSetAbort = (
void*)
GetProcAddress(gdiplus_mod,
"GdipGraphicsSetAbort");
7514 pGdipDrawImageFX = (
void*)
GetProcAddress(gdiplus_mod,
"GdipDrawImageFX");
7517 memset( &
class, 0,
sizeof(
class) );
7518 class.lpszClassName =
"gdiplus_test";
7528 ok(
hwnd !=
NULL,
"Expected window to be created\n");
VOID SetPixel(_In_ ULONG Left, _In_ ULONG Top, _In_ UCHAR Color)
static const char * wine_dbgstr_rect(const RECT *prc)
DWORD GetPixel(LPDIRECTDRAWSURFACE7 Surface, UINT x, UINT y)
static cab_ULONG checksum(const cab_UBYTE *data, cab_UWORD bytes, cab_ULONG csum)
#define GetProcAddress(x, y)
GpStatus WINGDIPAPI GdipDeleteBrush(GpBrush *brush)
GpStatus WINGDIPAPI GdipCreateSolidFill(ARGB color, GpSolidFill **sf)
GpStatus WINGDIPAPI GdipCreateTexture(GpImage *image, GpWrapMode wrapmode, GpTexture **texture)
GpStatus WINGDIPAPI GdipGetFontSize(GpFont *font, REAL *size)
GpStatus WINGDIPAPI GdipGetFontHeight(GDIPCONST GpFont *font, GDIPCONST GpGraphics *graphics, REAL *height)
GpStatus WINGDIPAPI GdipDeleteFontFamily(GpFontFamily *FontFamily)
GpStatus WINGDIPAPI GdipDeleteFont(GpFont *font)
GpStatus WINGDIPAPI GdipCreateFontFromLogfontA(HDC hdc, GDIPCONST LOGFONTA *lfa, GpFont **font)
GpStatus WINGDIPAPI GdipGetLogFontW(GpFont *font, GpGraphics *graphics, LOGFONTW *lf)
GpStatus WINGDIPAPI GdipCreateFont(GDIPCONST GpFontFamily *fontFamily, REAL emSize, INT style, Unit unit, GpFont **font)
GpStatus WINGDIPAPI GdipGetFontUnit(GpFont *font, Unit *unit)
GpStatus WINGDIPAPI GdipCreateFontFamilyFromName(GDIPCONST WCHAR *name, GpFontCollection *collection, GpFontFamily **family)
GpStatus WINGDIPAPI GdipGetDpiX(GpGraphics *graphics, REAL *dpi)
GpStatus WINGDIPAPI GdipDrawCurve(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points, INT count)
GpStatus WINGDIPAPI GdipDrawImageFX(GpGraphics *graphics, GpImage *image, GpRectF *src_rect, GpMatrix *transform, CGpEffect *effect, GpImageAttributes *imageattr, GpUnit src_unit)
GpStatus WINGDIPAPI GdipDrawClosedCurve(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points, INT count)
GpStatus WINGDIPAPI GdipFillClosedCurve(GpGraphics *graphics, GpBrush *brush, GDIPCONST GpPointF *points, INT count)
GpStatus WINGDIPAPI GdipFillRectangles(GpGraphics *graphics, GpBrush *brush, GDIPCONST GpRectF *rects, INT count)
GpStatus WINGDIPAPI GdipDrawBezierI(GpGraphics *graphics, GpPen *pen, INT x1, INT y1, INT x2, INT y2, INT x3, INT y3, INT x4, INT y4)
GpStatus WINGDIPAPI GdipFillPolygon2I(GpGraphics *graphics, GpBrush *brush, GDIPCONST GpPoint *points, INT count)
GpStatus WINGDIPAPI GdipBeginContainer(GpGraphics *graphics, GDIPCONST GpRectF *dstrect, GDIPCONST GpRectF *srcrect, GpUnit unit, GraphicsContainer *state)
GpStatus WINGDIPAPI GdipCreateFromHDC(HDC hdc, GpGraphics **graphics)
GpStatus WINGDIPAPI GdipDrawCurve2I(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPoint *points, INT count, REAL tension)
GpStatus WINGDIPAPI GdipFillRectangleI(GpGraphics *graphics, GpBrush *brush, INT x, INT y, INT width, INT height)
GpStatus WINGDIPAPI GdipGetTextRenderingHint(GpGraphics *graphics, TextRenderingHint *hint)
GpStatus WINGDIPAPI GdipDrawEllipseI(GpGraphics *graphics, GpPen *pen, INT x, INT y, INT width, INT height)
GpStatus WINGDIPAPI GdipDrawCurve3(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points, INT count, INT offset, INT numberOfSegments, REAL tension)
GpStatus WINGDIPAPI GdipFillRegion(GpGraphics *graphics, GpBrush *brush, GpRegion *region)
GpStatus WINGDIPAPI GdipFillPolygonI(GpGraphics *graphics, GpBrush *brush, GDIPCONST GpPoint *points, INT count, GpFillMode fillMode)
GpStatus WINGDIPAPI GdipGetDpiY(GpGraphics *graphics, REAL *dpi)
GpStatus WINGDIPAPI GdipGetNearestColor(GpGraphics *graphics, ARGB *argb)
GpStatus WINGDIPAPI GdipDrawLine(GpGraphics *graphics, GpPen *pen, REAL x1, REAL y1, REAL x2, REAL y2)
GpStatus WINGDIPAPI GdipDrawBeziersI(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPoint *points, INT count)
GpStatus WINGDIPAPI GdipSetClipHrgn(GpGraphics *graphics, HRGN hrgn, CombineMode mode)
GpStatus WINGDIPAPI GdipDeleteGraphics(GpGraphics *graphics)
GpStatus WINGDIPAPI GdipFlush(GpGraphics *graphics, GpFlushIntention intention)
GpStatus WINGDIPAPI GdipFillRectanglesI(GpGraphics *graphics, GpBrush *brush, GDIPCONST GpRect *rects, INT count)
GpStatus WINGDIPAPI GdipTranslateClip(GpGraphics *graphics, REAL dx, REAL dy)
GpStatus WINGDIPAPI GdipResetPageTransform(GpGraphics *graphics)
GpStatus WINGDIPAPI GdipScaleWorldTransform(GpGraphics *graphics, REAL sx, REAL sy, GpMatrixOrder order)
GpStatus WINGDIPAPI GdipFillClosedCurve2I(GpGraphics *graphics, GpBrush *brush, GDIPCONST GpPoint *points, INT count, REAL tension, GpFillMode fill)
GpStatus WINGDIPAPI GdipRotateWorldTransform(GpGraphics *graphics, REAL angle, GpMatrixOrder order)
GpStatus WINGDIPAPI GdipFillEllipse(GpGraphics *graphics, GpBrush *brush, REAL x, REAL y, REAL width, REAL height)
GpStatus WINGDIPAPI GdipGetClip(GpGraphics *graphics, GpRegion *region)
GpStatus WINGDIPAPI GdipTranslateWorldTransform(GpGraphics *graphics, REAL dx, REAL dy, GpMatrixOrder order)
GpStatus WINGDIPAPI GdipSetCompositingMode(GpGraphics *graphics, CompositingMode mode)
GpStatus WINGDIPAPI GdipTranslateClipI(GpGraphics *graphics, INT dx, INT dy)
GpStatus WINGDIPAPI GdipFillClosedCurve2(GpGraphics *graphics, GpBrush *brush, GDIPCONST GpPointF *points, INT count, REAL tension, GpFillMode fill)
GpStatus WINGDIPAPI GdipDrawPolygonI(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPoint *points, INT count)
GpStatus WINGDIPAPI GdipDrawPie(GpGraphics *graphics, GpPen *pen, REAL x, REAL y, REAL width, REAL height, REAL startAngle, REAL sweepAngle)
GpStatus WINGDIPAPI GdipDrawPolygon(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points, INT count)
GpStatus WINGDIPAPI GdipResetClip(GpGraphics *graphics)
GpStatus WINGDIPAPI GdipGetSmoothingMode(GpGraphics *graphics, SmoothingMode *mode)
GpStatus WINGDIPAPI GdipGetPixelOffsetMode(GpGraphics *graphics, PixelOffsetMode *mode)
GpStatus WINGDIPAPI GdipDrawLines(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points, INT count)
GpStatus WINGDIPAPI GdipGetTextContrast(GpGraphics *graphics, UINT *contrast)
GpStatus WINGDIPAPI GdipGetDC(GpGraphics *graphics, HDC *hdc)
GpStatus WINGDIPAPI GdipGetPageScale(GpGraphics *graphics, REAL *scale)
GpStatus WINGDIPAPI GdipGraphicsClear(GpGraphics *graphics, ARGB color)
GpStatus WINGDIPAPI GdipSetClipRectI(GpGraphics *graphics, INT x, INT y, INT width, INT height, CombineMode mode)
GpStatus WINGDIPAPI GdipDrawBeziers(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points, INT count)
GpStatus WINGDIPAPI GdipDrawRectangles(GpGraphics *graphics, GpPen *pen, GDIPCONST GpRectF *rects, INT count)
GpStatus WINGDIPAPI GdipFillPie(GpGraphics *graphics, GpBrush *brush, REAL x, REAL y, REAL width, REAL height, REAL startAngle, REAL sweepAngle)
GpStatus WINGDIPAPI GdipSetTextRenderingHint(GpGraphics *graphics, TextRenderingHint hint)
GpStatus WINGDIPAPI GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UINT16 *text, INT length, GDIPCONST GpFont *font, GDIPCONST GpBrush *brush, GDIPCONST PointF *positions, INT flags, GDIPCONST GpMatrix *matrix)
GpStatus WINGDIPAPI GdipMeasureString(GpGraphics *graphics, GDIPCONST WCHAR *string, INT length, GDIPCONST GpFont *font, GDIPCONST RectF *rect, GDIPCONST GpStringFormat *format, RectF *bounds, INT *codepointsfitted, INT *linesfilled)
GpStatus WINGDIPAPI GdipGetClipBounds(GpGraphics *graphics, GpRectF *rect)
GpStatus WINGDIPAPI GdipGetCompositingMode(GpGraphics *graphics, CompositingMode *mode)
GpStatus WINGDIPAPI GdipSetWorldTransform(GpGraphics *graphics, GpMatrix *matrix)
GpStatus WINGDIPAPI GdipDrawClosedCurveI(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPoint *points, INT count)
GpStatus WINGDIPAPI GdipDrawBezier(GpGraphics *graphics, GpPen *pen, REAL x1, REAL y1, REAL x2, REAL y2, REAL x3, REAL y3, REAL x4, REAL y4)
GpStatus WINGDIPAPI GdipGetCompositingQuality(GpGraphics *graphics, CompositingQuality *quality)
GpStatus WINGDIPAPI GdipDrawRectanglesI(GpGraphics *graphics, GpPen *pen, GDIPCONST GpRect *rects, INT count)
GpStatus WINGDIPAPI GdipDrawImageRectRectI(GpGraphics *graphics, GpImage *image, INT dstx, INT dsty, INT dstwidth, INT dstheight, INT srcx, INT srcy, INT srcwidth, INT srcheight, GpUnit srcUnit, GDIPCONST GpImageAttributes *imageAttributes, DrawImageAbort callback, VOID *callbackData)
GpStatus WINGDIPAPI GdipFillPolygon2(GpGraphics *graphics, GpBrush *brush, GDIPCONST GpPointF *points, INT count)
GpStatus WINGDIPAPI GdipGetVisibleClipBoundsI(GpGraphics *graphics, GpRect *rect)
GpStatus WINGDIPAPI GdipTransformPointsI(GpGraphics *graphics, GpCoordinateSpace dst_space, GpCoordinateSpace src_space, GpPoint *points, INT count)
GpStatus WINGDIPAPI GdipSetClipRegion(GpGraphics *graphics, GpRegion *region, CombineMode mode)
GpStatus WINGDIPAPI GdipIsVisiblePoint(GpGraphics *graphics, REAL x, REAL y, BOOL *result)
GpStatus WINGDIPAPI GdipDrawCurveI(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPoint *points, INT count)
GpStatus WINGDIPAPI GdipFillClosedCurveI(GpGraphics *graphics, GpBrush *brush, GDIPCONST GpPoint *points, INT count)
GpStatus WINGDIPAPI GdipMultiplyWorldTransform(GpGraphics *graphics, GDIPCONST GpMatrix *matrix, GpMatrixOrder order)
GpStatus WINGDIPAPI GdipSetClipRect(GpGraphics *graphics, REAL x, REAL y, REAL width, REAL height, CombineMode mode)
GpStatus WINGDIPAPI GdipGetVisibleClipBounds(GpGraphics *graphics, GpRectF *rect)
GpStatus WINGDIPAPI GdipDrawLineI(GpGraphics *graphics, GpPen *pen, INT x1, INT y1, INT x2, INT y2)
GpStatus WINGDIPAPI GdipDrawLinesI(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPoint *points, INT count)
GpStatus WINGDIPAPI GdipIsVisiblePointI(GpGraphics *graphics, INT x, INT y, BOOL *result)
GpStatus WINGDIPAPI GdipMeasureDriverString(GpGraphics *graphics, GDIPCONST UINT16 *text, INT length, GDIPCONST GpFont *font, GDIPCONST PointF *positions, INT flags, GDIPCONST GpMatrix *matrix, RectF *boundingBox)
GpStatus WINGDIPAPI GdipSaveGraphics(GpGraphics *graphics, GraphicsState *state)
GpStatus WINGDIPAPI GdipDrawPath(GpGraphics *graphics, GpPen *pen, GpPath *path)
GpStatus WINGDIPAPI GdipEndContainer(GpGraphics *graphics, GraphicsContainer state)
GpStatus WINGDIPAPI GdipIsClipEmpty(GpGraphics *graphics, BOOL *res)
GpStatus WINGDIPAPI GdipSetCompositingQuality(GpGraphics *graphics, CompositingQuality quality)
GpStatus WINGDIPAPI GdipSetInterpolationMode(GpGraphics *graphics, InterpolationMode mode)
GpStatus WINGDIPAPI GdipIsVisibleRect(GpGraphics *graphics, REAL x, REAL y, REAL width, REAL height, BOOL *result)
GpStatus WINGDIPAPI GdipDrawImagePointsRect(GpGraphics *graphics, GpImage *image, GDIPCONST GpPointF *points, INT count, REAL srcx, REAL srcy, REAL srcwidth, REAL srcheight, GpUnit srcUnit, GDIPCONST GpImageAttributes *imageAttributes, DrawImageAbort callback, VOID *callbackData)
GpStatus WINGDIPAPI GdipDrawEllipse(GpGraphics *graphics, GpPen *pen, REAL x, REAL y, REAL width, REAL height)
GpStatus WINGDIPAPI GdipGetInterpolationMode(GpGraphics *graphics, InterpolationMode *mode)
GpStatus WINGDIPAPI GdipDrawRectangle(GpGraphics *graphics, GpPen *pen, REAL x, REAL y, REAL width, REAL height)
GpStatus WINGDIPAPI GdipFillPath(GpGraphics *graphics, GpBrush *brush, GpPath *path)
GpStatus WINGDIPAPI GdipFillRectangle(GpGraphics *graphics, GpBrush *brush, REAL x, REAL y, REAL width, REAL height)
GpStatus WINGDIPAPI GdipFillPolygon(GpGraphics *graphics, GpBrush *brush, GDIPCONST GpPointF *points, INT count, GpFillMode fillMode)
GpStatus WINGDIPAPI GdipMeasureCharacterRanges(GpGraphics *graphics, GDIPCONST WCHAR *string, INT length, GDIPCONST GpFont *font, GDIPCONST RectF *layoutRect, GDIPCONST GpStringFormat *stringFormat, INT regionCount, GpRegion **regions)
GpStatus WINGDIPAPI GdipDrawPieI(GpGraphics *graphics, GpPen *pen, INT x, INT y, INT width, INT height, REAL startAngle, REAL sweepAngle)
GpStatus WINGDIPAPI GdipIsVisibleRectI(GpGraphics *graphics, INT x, INT y, INT width, INT height, BOOL *result)
GpStatus WINGDIPAPI GdipCreateFromHWNDICM(HWND hwnd, GpGraphics **graphics)
GpStatus WINGDIPAPI GdipDrawClosedCurve2(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points, INT count, REAL tension)
GpStatus WINGDIPAPI GdipReleaseDC(GpGraphics *graphics, HDC hdc)
GpStatus WINGDIPAPI GdipCreateFromHWND(HWND hwnd, GpGraphics **graphics)
GpStatus WINGDIPAPI GdipDrawCurve2(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points, INT count, REAL tension)
GpStatus WINGDIPAPI GdipDrawArc(GpGraphics *graphics, GpPen *pen, REAL x, REAL y, REAL width, REAL height, REAL startAngle, REAL sweepAngle)
GpStatus WINGDIPAPI GdipDrawArcI(GpGraphics *graphics, GpPen *pen, INT x, INT y, INT width, INT height, REAL startAngle, REAL sweepAngle)
GpStatus WINGDIPAPI GdipGetClipBoundsI(GpGraphics *graphics, GpRect *rect)
GpStatus WINGDIPAPI GdipTransformPoints(GpGraphics *graphics, GpCoordinateSpace dst_space, GpCoordinateSpace src_space, GpPointF *points, INT count)
GpStatus WINGDIPAPI GdipFillPieI(GpGraphics *graphics, GpBrush *brush, INT x, INT y, INT width, INT height, REAL startAngle, REAL sweepAngle)
GpStatus WINGDIPAPI GdipSetClipPath(GpGraphics *graphics, GpPath *path, CombineMode mode)
GpStatus WINGDIPAPI GdipDrawString(GpGraphics *graphics, GDIPCONST WCHAR *string, INT length, GDIPCONST GpFont *font, GDIPCONST RectF *rect, GDIPCONST GpStringFormat *format, GDIPCONST GpBrush *brush)
GpStatus WINGDIPAPI GdipRestoreGraphics(GpGraphics *graphics, GraphicsState state)
GpStatus WINGDIPAPI GdipSetPageUnit(GpGraphics *graphics, GpUnit unit)
GpStatus WINGDIPAPI GdipDrawRectangleI(GpGraphics *graphics, GpPen *pen, INT x, INT y, INT width, INT height)
GpStatus WINGDIPAPI GdipGetPageUnit(GpGraphics *graphics, GpUnit *unit)
GpStatus WINGDIPAPI GdipSetSmoothingMode(GpGraphics *graphics, SmoothingMode mode)
GpStatus WINGDIPAPI GdipFillEllipseI(GpGraphics *graphics, GpBrush *brush, INT x, INT y, INT width, INT height)
GpStatus WINGDIPAPI GdipGetWorldTransform(GpGraphics *graphics, GpMatrix *matrix)
GpStatus WINGDIPAPI GdipSetPixelOffsetMode(GpGraphics *graphics, PixelOffsetMode mode)
GpStatus WINGDIPAPI GdipSetTextContrast(GpGraphics *graphics, UINT contrast)
GpStatus WINGDIPAPI GdipResetWorldTransform(GpGraphics *graphics)
GpStatus WINGDIPAPI GdipDrawClosedCurve2I(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPoint *points, INT count, REAL tension)
GpStatus WINGDIPAPI GdipSetPageScale(GpGraphics *graphics, REAL scale)
GpStatus WINGDIPAPI GdipDrawCurve3I(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPoint *points, INT count, INT offset, INT numberOfSegments, REAL tension)
GpStatus WINGDIPAPI GdipBeginContainer2(GpGraphics *graphics, GraphicsContainer *state)
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 GdipAddPathLineI(GpPath *path, INT x1, INT y1, INT x2, INT y2)
GpStatus WINGDIPAPI GdipGetImageVerticalResolution(GpImage *image, REAL *res)
GpStatus WINGDIPAPI GdipGetImageWidth(GpImage *image, UINT *width)
GpStatus WINGDIPAPI GdipGetImageHeight(GpImage *image, UINT *height)
GpStatus WINGDIPAPI GdipCreateBitmapFromScan0(INT width, INT height, INT stride, PixelFormat format, BYTE *scan0, GpBitmap **bitmap)
GpStatus WINGDIPAPI GdipGetImageGraphicsContext(GpImage *image, GpGraphics **graphics)
GpStatus WINGDIPAPI GdipCreateBitmapFromGraphics(INT width, INT height, GpGraphics *target, GpBitmap **bitmap)
GpStatus WINGDIPAPI GdipBitmapSetResolution(GpBitmap *bitmap, REAL xdpi, REAL ydpi)
GpStatus WINGDIPAPI GdipCreateBitmapFromGdiDib(GDIPCONST BITMAPINFO *info, VOID *bits, GpBitmap **bitmap)
GpStatus WINGDIPAPI GdipBitmapLockBits(GpBitmap *bitmap, GDIPCONST GpRect *rect, UINT flags, PixelFormat format, BitmapData *lockeddata)
GpStatus WINGDIPAPI GdipDisposeImage(GpImage *image)
GpStatus WINGDIPAPI GdipGetImagePixelFormat(GpImage *image, PixelFormat *format)
GpStatus WINGDIPAPI GdipBitmapGetPixel(GpBitmap *bitmap, INT x, INT y, ARGB *color)
GpStatus WINGDIPAPI GdipGetImageHorizontalResolution(GpImage *image, REAL *res)
GpStatus WINGDIPAPI GdipBitmapUnlockBits(GpBitmap *bitmap, BitmapData *lockeddata)
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 GdipTranslateMatrix(GpMatrix *matrix, REAL offsetX, REAL offsetY, GpMatrixOrder order)
GpStatus WINGDIPAPI GdipGetMatrixElements(GDIPCONST GpMatrix *matrix, REAL *out)
GpStatus WINGDIPAPI GdipSetMatrixElements(GpMatrix *matrix, REAL m11, REAL m12, REAL m21, REAL m22, REAL dx, REAL dy)
GpStatus WINGDIPAPI GdipRotateMatrix(GpMatrix *matrix, REAL angle, GpMatrixOrder order)
GpStatus WINGDIPAPI GdipDeleteMatrix(GpMatrix *matrix)
GpStatus WINGDIPAPI GdipCreateMatrix(GpMatrix **matrix)
GpStatus WINGDIPAPI GdipCreatePen1(ARGB color, REAL width, GpUnit unit, GpPen **pen)
GpStatus WINGDIPAPI GdipDeletePen(GpPen *pen)
GpStatus WINGDIPAPI GdipIsEmptyRegion(GpRegion *region, GpGraphics *graphics, BOOL *res)
GpStatus WINGDIPAPI GdipIsInfiniteRegion(GpRegion *region, GpGraphics *graphics, BOOL *res)
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 GdipCreateRegion(GpRegion **region)
GpStatus WINGDIPAPI GdipCombineRegionRect(GpRegion *region, GDIPCONST GpRectF *rect, CombineMode mode)
GpStatus WINGDIPAPI GdipGetRegionData(GpRegion *region, BYTE *buffer, UINT size, UINT *needed)
GpStatus WINGDIPAPI GdipGetRegionBounds(GpRegion *region, GpGraphics *graphics, GpRectF *rect)
GpStatus WINGDIPAPI GdipDeleteRegion(GpRegion *region)
static void cleanup(void)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
_ACRTIMP errno_t __cdecl _controlfp_s(unsigned int *, unsigned int, unsigned int)
_ACRTIMP double __cdecl fabs(double)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
static unsigned char buff[32768]
void WINGDIPAPI GdipFree(void *ptr)
Status WINAPI GdiplusStartup(ULONG_PTR *token, const struct GdiplusStartupInput *input, struct GdiplusStartupOutput *output)
REAL units_to_pixels(REAL units, GpUnit unit, REAL dpi, BOOL printer_display)
void *WINGDIPAPI GdipAlloc(SIZE_T size)
REAL units_scale(GpUnit from, GpUnit to, REAL dpi, BOOL printer_display)
@ CompositingModeSourceOver
@ CompositingModeSourceCopy
@ PixelOffsetModeHighSpeed
@ CompositingQualityDefault
@ CompositingQualityHighSpeed
@ CompositingQualityHighQuality
@ TextRenderingHintAntiAlias
@ TextRenderingHintAntiAliasGridFit
@ TextRenderingHintClearTypeGridFit
@ TextRenderingHintSystemDefault
@ StringFormatFlagsNoWrap
@ StringFormatFlagsNoClip
@ DriverStringOptionsRealizedAdvance
@ DriverStringOptionsCmapLookup
@ InterpolationModeHighQualityBicubic
@ InterpolationModeBicubic
@ InterpolationModeHighQualityBilinear
@ InterpolationModeInvalid
@ InterpolationModeHighQuality
@ InterpolationModeDefault
@ InterpolationModeBilinear
@ InterpolationModeNearestNeighbor
@ InterpolationModeLowQuality
void WINAPI GdiplusShutdown(ULONG_PTR)
struct GdiplusAbort GdiplusAbort
GLint GLint GLint GLint GLint x
GLint GLint GLsizei GLsizei GLsizei GLint GLenum GLenum const GLvoid * pixels
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei GLsizei height
GLdouble GLdouble GLdouble r
GLint GLint GLsizei width
GLuint GLenum GLenum transform
GLenum GLenum GLenum GLenum GLenum scale
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
GLsizei const GLfloat * points
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 * u
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
#define todo_wine_if(is_todo)
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
#define memcpy(s1, s2, n)
static void test_GdipDrawCurveI(void)
static void test_clear(void)
static GpGraphics * create_graphics(REAL res_x, REAL res_y, GpUnit unit, REAL scale, GpImage **image)
void test_bitmap_stride(void)
static void log_state(GraphicsState data, node **log)
#define expectf_(expected, got, precision)
static void test_GdipDrawImagePointsRectOnMemoryDC(void)
static void test_clipping(void)
static void test_fromMemoryBitmap(void)
static void test_isempty(void)
static void check_no_duplicates(node *log)
static void test_GdipDrawCurve2(void)
static void test_gdi_interop_bitmap(void)
static void test_GdipGetVisibleClipBounds_window(void)
static void test_GdipGetVisibleClipBounds_memoryDC(void)
static void test_GdipFillClosedCurve2I(void)
static void test_clipping_2(void)
static void test_set_page_transform(void)
static void test_GdipDrawCurve3I(void)
static HDC create_printer_dc(void)
static void test_GdipIsVisiblePoint(void)
static void test_string_functions(void)
static void test_GdipDrawCurve(void)
static void test_font_height_scaling(void)
static void test_save_restore(void)
static REAL pixels_to_units(REAL pixels, GpUnit unit, REAL dpi)
static void test_GdipFillClosedCurveI(void)
static void test_GdipGetVisibleClipBounds_screen(void)
static void test_GdipDrawImageFX(void)
static void test_GdipDrawLinesI(void)
static void test_GdipFillRectanglesOnMemoryDCSolidBrush(void)
static void test_pen_thickness(void)
static void test_measure_string(void)
static void test_GdipFillClosedCurve(void)
static void test_get_set_interpolation(void)
static void test_bitmapfromgraphics(void)
static GdiplusAbort *static const REAL mm_per_inch
static void test_GdipDrawCurve2I(void)
static void test_GdipIsVisibleRect(void)
static void set_rect_empty(RectF *rc)
static void test_GdipFillRectangles(void)
static void test_printer_dc(void)
static void test_clip_xform(void)
static void test_GdipGetNearestColor(void)
static void test_get_set_textrenderinghint(void)
static void test_GdipDrawArc(void)
#define get_bitmap_pixel(x, y)
static void test_GdipFillClosedCurve2(void)
static void test_GdipDrawArcI(void)
static void test_GdipDrawLineI(void)
static void test_container_rects(void)
#define expect(expected, got)
static void test_measured_extra_space(void)
static void test_textcontrast(void)
static void test_cliphrgn_transform(void)
static void test_GdipFillRectanglesOnMemoryDCTextureBrush(void)
static DWORD * GetBitmapPixelBuffer(HDC hdc, HBITMAP hbmp, int width, int height)
#define expectf(expected, got)
static const REAL point_per_inch
static void test_Get_Release_DC(void)
static void test_GdipDrawImagePointsRect(void)
static void test_GdipDrawBezierI(void)
static void test_GdipFillPath(void)
static void test_get_set_clip(void)
static void test_getdc_scaled(void)
static void test_GdipDrawString(void)
static void test_GdipMeasureString(void)
static void test_gdi_interop_hdc(void)
static void test_transformpoints(void)
static void test_constructor_destructor(void)
static void test_alpha_hdc(void)
static void test_GdipGraphicsSetAbort(void)
static void test_GdipFillRectanglesOnBitmapTextureBrush(void)
static void test_GdipDrawCurve3(void)
#define is_blue_color(color)
static void test_GdipGetVisibleClipBounds(void)
static void test_BeginContainer2(void)
static BOOL check_rect_pixels(const DWORD *pixel, const RectF *rect, UINT width, DWORD expected, Point *failed)
static void test_hdc_caching(void)
static void test_transform(void)
static IHTMLWindow2 * window
static CHAR string2[MAX_PATH]
#define WS_OVERLAPPEDWINDOW
png_const_structrp png_const_inforp int * unit
_Out_opt_ int _Out_opt_ int * cy
CHAR lfFaceName[LF_FACESIZE]
BITMAPINFOHEADER bmiHeader
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
_In_ HFONT _Out_ PUINT Height
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
HBITMAP WINAPI CreateDIBSection(HDC hDC, CONST BITMAPINFO *BitmapInfo, UINT Usage, VOID **Bits, HANDLE hSection, DWORD dwOffset)
DWORD WINAPI GetLastError(void)
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
int WINAPI SetGraphicsMode(_In_ HDC, _In_ int)
HRGN WINAPI CreateRectRgn(_In_ int, _In_ int, _In_ int, _In_ int)
int WINAPI GetDIBits(_In_ HDC hdc, _In_ HBITMAP hbm, _In_ UINT start, _In_ UINT cLines, _Out_opt_ LPVOID lpvBits, _At_((LPBITMAPINFOHEADER) lpbmi, _Inout_) LPBITMAPINFO lpbmi, _In_ UINT usage)
BOOL WINAPI SetWindowOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
HDC WINAPI CreateDCA(_In_opt_ LPCSTR pszDriver, _In_opt_ LPCSTR pszDevice, _In_opt_ LPCSTR pszOutput, _In_opt_ const DEVMODEA *pdmInit)
BOOL WINAPI SetViewportOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
BOOL WINAPI GetWorldTransform(_In_ HDC, _Out_ LPXFORM)
HBITMAP WINAPI CreateCompatibleBitmap(_In_ HDC hdc, _In_ INT cx, _In_ INT cy)
BOOL WINAPI Rectangle(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int)
int WINAPI OffsetClipRgn(_In_ HDC, _In_ int, _In_ int)
BOOL WINAPI SetWorldTransform(_In_ HDC, _In_ const XFORM *)
HBRUSH WINAPI CreateSolidBrush(_In_ COLORREF)
BOOL WINAPI DeleteDC(_In_ HDC)
int WINAPI SelectClipRgn(_In_ HDC, _In_opt_ HRGN)
int WINAPI GetRgnBox(_In_ HRGN, _Out_ LPRECT)
struct _PRINTER_DEFAULTSA * LPPRINTER_DEFAULTSA
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
BOOL WINAPI RedrawWindow(_In_opt_ HWND, _In_opt_ LPCRECT, _In_opt_ HRGN, _In_ UINT)
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
ATOM WINAPI RegisterClassA(_In_ CONST WNDCLASSA *)
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
HICON WINAPI LoadIconA(_In_opt_ HINSTANCE hInstance, _In_ LPCSTR lpIconName)
HDC WINAPI GetDC(_In_opt_ HWND)
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
BOOL WINAPI DestroyWindow(_In_ HWND)
HCURSOR WINAPI LoadCursorA(_In_opt_ HINSTANCE, _In_ LPCSTR)