28#define expect(expected, got) ok((got) == (expected), "Expected %d, got %d\n", (INT)(expected), (INT)(got))
29#define expectf_(expected, got, precision) ok(fabs((expected) - (got)) <= (precision), "Expected %f, got %f\n", (expected), (got))
30#define expectf(expected, got) expectf_((expected), (got), 0.001)
63 ok(0,
"Unsupported unit: %d\n",
unit);
85 ok(0,
"Unsupported unit: %d\n",
unit);
227 state_a = state_b = state_c = 0xdeadbeef;
416 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
420 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
487 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
491 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
539 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
543 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
547 ok(pen !=
NULL,
"Expected pen to be initialized\n");
583 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
587 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
591 ok(pen !=
NULL,
"Expected pen to be initialized\n");
623 REAL defClip[] = {5, 10, 15, 20};
624 REAL elems[6], defTrans[] = {1, 2, 3, 4, 5, 6};
633 UINT contrast, defContrast = 5;
640 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
644 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
684 ok(defCompmode == compmode,
"Expected Compositing Mode to be restored to %d, got %d\n", defCompmode, compmode);
687 ok(defCompqual == compqual,
"Expected Compositing Quality to be restored to %d, got %d\n", defCompqual, compqual);
690 ok(defInterp ==
interp,
"Expected Interpolation Mode to be restored to %d, got %d\n", defInterp,
interp);
693 ok(
fabs(defScale -
scale) < 0.0001,
"Expected Page Scale to be restored to %f, got %f\n", defScale,
scale);
696 ok(defUnit ==
unit,
"Expected Page Unit to be restored to %d, got %d\n", defUnit,
unit);
699 ok(defOffsetmode == offsetmode,
"Expected Pixel Offset Mode to be restored to %d, got %d\n", defOffsetmode, offsetmode);
702 ok(defSmoothmode == smoothmode,
"Expected Smoothing Mode to be restored to %d, got %d\n", defSmoothmode, smoothmode);
705 ok(defContrast == contrast,
"Expected Text Contrast to be restored to %d, got %d\n", defContrast, contrast);
709 ok(defTexthint == texthint,
"Expected Text Hint to be restored to %d, got %d\n", defTexthint, texthint);
741 ok(
fabs(defTrans[0] - elems[0]) < 0.0001 &&
742 fabs(defTrans[1] - elems[1]) < 0.0001 &&
743 fabs(defTrans[2] - elems[2]) < 0.0001 &&
744 fabs(defTrans[3] - elems[3]) < 0.0001 &&
745 fabs(defTrans[4] - elems[4]) < 0.0001 &&
746 fabs(defTrans[5] - elems[5]) < 0.0001,
747 "Expected World Transform Matrix to be restored to [%f, %f, %f, %f, %f, %f], got [%f, %f, %f, %f, %f, %f]\n",
748 defTrans[0], defTrans[1], defTrans[2], defTrans[3], defTrans[4], defTrans[5],
749 elems[0], elems[1], elems[2], elems[3], elems[4], elems[5]);
775 ok(
fabs(defClip[0] - clip.
X) < 0.0001 &&
776 fabs(defClip[1] - clip.
Y) < 0.0001 &&
777 fabs(defClip[2] - clip.
Width) < 0.0001 &&
779 "Expected Clipping Rectangle to be restored to [%f, %f, %f, %f], got [%f, %f, %f, %f]\n",
780 defClip[0], defClip[1], defClip[2], defClip[3],
825 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
829 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
833 ok(pen !=
NULL,
"Expected pen to be initialized\n");
873 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
877 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
881 ok(pen !=
NULL,
"Expected pen to be initialized\n");
953 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
957 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
961 ok(pen !=
NULL,
"Expected pen to be initialized\n");
1033 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
1037 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
1041 ok(pen !=
NULL,
"Expected pen to be initialized\n");
1100 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
1104 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
1108 ok(pen !=
NULL,
"Expected pen to be initialized\n");
1167 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
1171 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
1175 ok(pen !=
NULL,
"Expected pen to be initialized\n");
1228 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
1232 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
1236 ok(pen !=
NULL,
"Expected pen to be initialized\n");
1279 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
1283 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
1287 ok(pen !=
NULL,
"Expected pen to be initialized\n");
1322 memset(rbmi, 0,
sizeof(rbmi));
1331 ok(
NULL != bm,
"Expected bitmap to be initialized\n");
1342 status =
GdipDrawImagePointsRect(graphics, (
GpImage*)bm, ptf, 4, 0, 0, 10, 10,
UnitPixel,
NULL,
NULL,
NULL);
1344 status =
GdipDrawImagePointsRect(graphics, (
GpImage*)bm, ptf, 2, 0, 0, 10, 10,
UnitPixel,
NULL,
NULL,
NULL);
1346 status =
GdipDrawImagePointsRect(graphics, (
GpImage*)bm, ptf, 3, 0, 0, 10, 10,
UnitPixel,
NULL,
NULL,
NULL);
1348 status =
GdipDrawImagePointsRect(graphics,
NULL, ptf, 3, 0, 0, 10, 10,
UnitPixel,
NULL,
NULL,
NULL);
1350 status =
GdipDrawImagePointsRect(graphics, (
GpImage*)bm,
NULL, 3, 0, 0, 10, 10,
UnitPixel,
NULL,
NULL,
NULL);
1352 status =
GdipDrawImagePointsRect(graphics, (
GpImage*)bm, ptf, 3, 0, 0, 0, 0,
UnitPixel,
NULL,
NULL,
NULL);
1354 memset(ptf, 0,
sizeof(ptf));
1355 status =
GdipDrawImagePointsRect(graphics, (
GpImage*)bm, ptf, 3, 0, 0, 10, 10,
UnitPixel,
NULL,
NULL,
NULL);
1372 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
1376 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
1380 ok(pen !=
NULL,
"Expected pen to be initialized\n");
1433 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
1437 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
1504 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
1508 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
1556 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
1559 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
1562 ok(brush !=
NULL,
"Expected brush to be initialized\n");
1565 ok(
path !=
NULL,
"Expected path to be initialized\n");
1634 for(
i = 0;
i < 5;
i++){
1642 rect[0].Height = 70;
1646 rect[1].Height = 20;
1648 for(
i = 0;
i < 2;
i++){
1666 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
1692 ok(retdc ==
hdc,
"Invalid HDC returned\n");
2122 UINT region_data_size;
2149 expect(36, region_data_size);
2150 expect(28, region_data.size);
2151 expect(0, region_data.num_children);
2152 expect(0x10000000 , region_data.element_type);
2155 expectf(10.0, region_data.width);
2156 expectf(10.0, region_data.height);
2188 expect(36, region_data_size);
2189 expect(28, region_data.size);
2190 expect(0, region_data.num_children);
2191 expect(0x10000000 , region_data.element_type);
2194 expectf(5.0, region_data.width);
2195 expectf(5.0, region_data.height);
2282 static const WCHAR string[] = {
'T',
'e',
's',
't',0};
2283 static const PointF positions[4] = {{0,0}, {1,1}, {2,2}, {3,3}};
2286 memset(&logfont,0,
sizeof(logfont));
2297 skip(
"Arial not installed.\n");
2360 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
2364 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
2378 "Expected clip bounds (%0.f, %0.f, %0.f, %0.f) to be the size of "
2379 "the screen (%0.f, %0.f, %0.f, %0.f)\n",
2384 exp.X = clipr.
X = 10;
2385 exp.Y = clipr.
Y = 12;
2398 "Expected clip bounds (%0.f, %0.f, %0.f, %0.f) to be the size of "
2399 "the clipping rect (%0.f, %0.f, %0.f, %0.f)\n",
2423 "Expected clip bounds (%0.f, %0.f, %0.f, %0.f) to be the size of "
2424 "the visible clipping rect (%0.f, %0.f, %0.f, %0.f)\n",
2434 "Expected clip bounds (%d, %d, %d, %d) to be the size of "
2435 "the visible clipping rect (%0.f, %0.f, %0.f, %0.f)\n",
2464 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
2472 "Expected clip bounds (%0.f, %0.f, %0.f, %0.f) to be the size of "
2473 "the window (%0.f, %0.f, %0.f, %0.f)\n",
2478 exp.X = clipr.
X = 20;
2479 exp.Y = clipr.
Y = 8;
2492 "Expected clip bounds (%0.f, %0.f, %0.f, %0.f) to be the size of "
2493 "the clipping rect (%0.f, %0.f, %0.f, %0.f)\n",
2517 "Expected clip bounds (%0.f, %0.f, %0.f, %0.f) to be the size of "
2518 "the visible clipping rect (%0.f, %0.f, %0.f, %0.f)\n",
2528 "Expected clip bounds (%d, %d, %d, %d) to be the size of "
2529 "the visible clipping rect (%0.f, %0.f, %0.f, %0.f)\n",
2551 "Expected clip bounds (%0.f, %0.f, %0.f, %0.f) to be "
2552 "twice the window size (%0.f, %0.f, %0.f, %0.f)\n",
2570 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
2691 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
2695 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
2714 ok(
val ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
2720 ok(
val ==
FALSE,
"Expected (%.2f, %.2f) not to be visible\n",
x,
y);
2726 ok(
val ==
FALSE,
"Expected (%.2f, %.2f) not to be visible\n",
x,
y);
2732 ok(
val ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
2741 ok(
val ==
FALSE,
"After clipping, expected (%.2f, %.2f) not to be visible\n",
x,
y);
2747 ok(
val ==
TRUE,
"After clipping, expected (%.2f, %.2f) to be visible\n",
x,
y);
2756 ok(
val ==
TRUE,
"Expected (%.2f, %.2f) to be visible\n",
x,
y);
2762 ok(
val ==
FALSE,
"Expected (%.2f, %.2f) not to be visible\n",
x,
y);
2771 ok(
val ==
FALSE,
"After clipping, expected (%.2f, %.2f) not to be visible\n",
x,
y);
2777 ok(
val ==
FALSE,
"After clipping, expected (%.2f, %.2f) not to be visible\n",
x,
y);
2783 ok(
val ==
TRUE,
"After clipping, expected (%.2f, %.2f) to be visible\n",
x,
y);
2789 ok(
val ==
TRUE,
"After clipping, expected (%.2f, %.2f) to be visible\n",
x,
y);
2795 ok(
val ==
TRUE,
"After clipping, expected (%.2f, %.2f) to be visible\n",
x,
y);
2801 ok(
val ==
FALSE,
"After clipping, expected (%.2f, %.2f) not to be visible\n",
x,
y);
2807 ok(
val ==
TRUE,
"After clipping, expected (%.2f, %.2f) to be visible\n",
x,
y);
2813 ok(
val ==
TRUE,
"After clipping, expected (%.2f, %.2f) to be visible\n",
x,
y);
2819 ok(
val ==
FALSE,
"After clipping, expected (%.2f, %.2f) not to be visible\n",
x,
y);
2825 ok(
val ==
FALSE,
"After clipping, expected (%.2f, %.2f) not to be visible\n",
x,
y);
2831 ok(
val ==
FALSE,
"After clipping, expected (%.2f, %.2f) not to be visible\n",
x,
y);
2837 ok(
val ==
FALSE,
"After clipping, expected (%.2f, %.2f) not to be visible\n",
x,
y);
2843 ok(
val ==
FALSE,
"After clipping, expected (%.2f, %.2f) not to be visible\n",
x,
y);
2850 ok(
val ==
TRUE,
"After clipping, expected (%.2f, %.2f) to be visible\n",
x,
y);
2856 ok(
val ==
FALSE,
"After clipping, expected (%.2f, %.2f) not to be visible\n",
x,
y);
2870 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
2874 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
3033 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
3037 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
3181 "Expected ffa8b8e8, got %.8x\n",
color);
3194 RectF rc, char_bounds, bounds;
3198 const WCHAR fontname[] = {
'T',
'a',
'h',
'o',
'm',
'a',0};
3199 const WCHAR teststring[] = {
'M',
'M',
' ',
'M',
'\n',
'M',0};
3200 const WCHAR teststring2[] = {
'j',0};
3201 REAL char_width, char_height;
3202 INT codepointsfitted, linesfilled;
3206 BOOL region_isempty[4];
3211 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
3214 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
3276 ok(char_bounds.
Width > 0,
"got %0.2f\n", bounds.
Width);
3278 expect(1, codepointsfitted);
3285 ok(bounds.
Width > char_bounds.
Width,
"got %0.2f, expected at least %0.2f\n", bounds.
Width, char_bounds.
Width);
3287 expect(2, codepointsfitted);
3289 char_width = bounds.
Width - char_bounds.
Width;
3295 ok(bounds.
Width > char_bounds.
Width + char_width * 2,
"got %0.2f, expected at least %0.2f\n",
3296 bounds.
Width, char_bounds.
Width + char_width * 2);
3298 expect(6, codepointsfitted);
3307 expect(4, codepointsfitted);
3320 rc.
Width = char_bounds.
Width + char_width * 2.1;
3328 expect(6, codepointsfitted);
3332 rc.
Width = char_bounds.
Width + char_width * 1.7;
3340 expect(6, codepointsfitted);
3344 rc.
Width = char_bounds.
Width + char_width * 0.8;
3352 expect(6, codepointsfitted);
3355 for (
i = 0;
i < 4;
i++)
3361 for (
i = 0;
i < 4;
i++)
3362 ok(regions[
i] == (
GpRegion *)0xdeadbeef,
"expected 0xdeadbeef, got %p\n", regions[
i]);
3367 for (
i = 0;
i < 4;
i++)
3368 ok(regions[
i] == (
GpRegion *)0xdeadbeef,
"expected 0xdeadbeef, got %p\n", regions[
i]);
3411 for (
i = 0;
i < 4;
i++)
3417 ok(region_isempty[0],
"region should be empty\n");
3418 ok(region_isempty[1],
"region should be empty\n");
3419 ok(region_isempty[2],
"region should be empty\n");
3420 ok(region_isempty[3],
"region should be empty\n");
3434 ok(!region_isempty[0],
"region shouldn't be empty\n");
3435 ok(!region_isempty[1],
"region shouldn't be empty\n");
3436 ok(!region_isempty[2],
"region shouldn't be empty\n");
3437 ok(region_isempty[3],
"region should be empty\n");
3440 rc.
Width = char_bounds.
Width + char_width * 2.1;
3452 ok(!region_isempty[0],
"region shouldn't be empty\n");
3453 ok(!region_isempty[1],
"region shouldn't be empty\n");
3454 ok(region_isempty[2],
"region should be empty\n");
3455 ok(region_isempty[3],
"region should be empty\n");
3467 memset(positions, 0,
sizeof(positions));
3512 ok(rc.
Y < 0.0,
"unexpected Y %0.2f\n", rc.
Y);
3513 ok(rc.
Width > 0.0,
"unexpected Width %0.2f\n", rc.
Width);
3514 ok(rc.
Height > 0.0,
"unexpected Y %0.2f\n", rc.
Y);
3516 char_width = rc.
Width;
3529 ok(rc.
Y < 0.0,
"unexpected Y %0.2f\n", rc.
Y);
3530 ok(rc.
Width < char_width,
"got Width %0.2f, expecting less than %0.2f\n", rc.
Width, char_width);
3543 ok(rc.
Y < 0.0,
"unexpected Y %0.2f\n", rc.
Y);
3544 ok(rc.
Width > 0,
"unexpected Width %0.2f\n", rc.
Width);
3564 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
3567 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
3633 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
3636 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
3680 HBRUSH
hbrush, holdbrush;
3726 REAL res_x, res_y, page_scale;
3747 static const WCHAR tahomaW[] = {
'T',
'a',
'h',
'o',
'm',
'a',0 };
3748 static const WCHAR string[] = {
'1',
'2',
'3',
'4',
'5',
'6',
'7',0 };
3792 height = font_size + 2.0 * font_size / 6.0;
3801 base_cx = bounds.
Width;
3814 bounds.
Width += 1.0;
3878 height = (font_size + 2.0 * font_size / 6.0) * unit_scale;
3890 base_cx = bounds.
Width;
3903 bounds.
Width += 1.0;
3943 REAL expected_width, expected_height;
3969 base_cx = bounds.
Width;
3980 expected_width = base_cx *
pt.Y;
3981 expected_height = base_cy *
pt.Y;
3984 ok(
fabs(expected_width - bounds.
Width) <= 0.001,
"%u: expected %f, got %f\n",
i, expected_width, bounds.
Width);
3985 ok(
fabs(expected_height - bounds.
Height) <= 0.001,
"%u: expected %f, got %f\n",
i, expected_height, bounds.
Height);
4006 { { 100.0, 0.0 }, { 0.0, 100.0 } }, { { 100.0, 0.0 }, { 0.0, 100.0 } } },
4008 { { 100.0, 0.0 }, { 0.0, 100.0 } }, { { 100.0, 0.0 }, { 0.0, 100.0 } } },
4010 { { 100.0, 0.0 }, { 0.0, 100.0 } }, { { 9600.0, 0.0 }, { 0.0, 9600.0 } } },
4012 { { 100.0, 0.0 }, { 0.0, 100.0 } }, { { 170.833313, 0.0 }, { 0.0, 633.333252 } } },
4014 { { 100.0, 0.0 }, { 0.0, 100.0 } }, { { 40.999996, 0.0 }, { 0.0, 151.999985 } } },
4016 { { 100.0, 0.0 }, { 0.0, 100.0 } }, { { 968.503845, 0.0 }, { 0.0, 3590.550781 } } },
4018 { { 100.0, 0.0 }, { 0.0, 100.0 } }, { { 100.0, 0.0 }, { 0.0, 100.0 } } },
4020 { { 100.0, 0.0 }, { 0.0, 100.0 } }, { { 100.0, 0.0 }, { 0.0, 100.0 } } },
4031 ptf[0].
X = td[
i].in[0].X;
4032 ptf[0].
Y = td[
i].in[0].Y;
4033 ptf[1].
X = td[
i].in[1].X;
4034 ptf[1].
Y = td[
i].in[1].Y;
4059 GpUnit pen_unit, page_unit;
4064 { 10.0, 10.0, 1.0,
UnitPixel,
UnitPixel, 1.0, 1, 1, 1, 1 },
4065 { 10.0, 10.0, 1.0,
UnitPixel,
UnitPixel, 0.0, 0, 0, 1, 1 },
4066 { 10.0, 10.0, 1.0,
UnitPixel,
UnitPixel, 0.1, 1, 1, 1, 1 },
4067 { 10.0, 10.0, 3.0,
UnitPixel,
UnitPixel, 2.0, 2, 2, 2, 2 },
4068 { 10.0, 10.0, 30.0,
UnitPixel,
UnitInch, 1.0, 1, 1, 1, 1 },
4069 { 10.0, 10.0, 1.0,
UnitWorld,
UnitPixel, 1.0, 1, 1, 1, 1 },
4070 { 10.0, 10.0, 1.0,
UnitWorld,
UnitPixel, 0.0, 1, 1, 1, 1 },
4071 { 10.0, 10.0, 3.0,
UnitWorld,
UnitPixel, 2.0, 6, 6, 6, 6 },
4072 { 10.0, 10.0, 2.0,
UnitWorld,
UnitInch, 1.0, 20, 20, 20, 20 },
4108 corner.
X = corner.
Y = 100.0;
4124 for (
j=0;
j<100;
j++)
4133 for (
j=99;
j>=0;
j--)
4149 for (
j=0;
j<100;
j++)
4158 for (
j=99;
j>=0;
j--)
4200 for (
j=0;
j<100;
j++)
4209 for (
j=99;
j>=0;
j--)
4220 ok(
size == td[
i].path_cx,
"%u: expected %d, got %d\n",
i, td[
i].path_cx,
size);
4225 for (
j=0;
j<100;
j++)
4234 for (
j=99;
j>=0;
j--)
4245 ok(
size == td[
i].path_cy,
"%u: expected %d, got %d\n",
i, td[
i].path_cy,
size);
4262 static const WCHAR tahomaW[] = {
'T',
'a',
'h',
'o',
'm',
'a',0 };
4263 static const WCHAR string[] = {
'1',
'2',
'3',
'4',
'5',
'6',
'7',0 };
4275 GpUnit gfx_unit, font_unit;
4317 trace(
"test bounds: %f,%f,%f,%f\n", bounds.
X, bounds.
Y, bounds.
Width, bounds.
Height);
4320 rect.Width = 32000.0;
4321 rect.Height = 32000.0;
4335 win_skip(
"GdipGetRegionBounds is broken, scale %f (should be near 1.0)\n",
scale);
4345 for (font_unit = 3; font_unit <= 6; font_unit++)
4361 for (gfx_unit = 2; gfx_unit <= 6; gfx_unit++)
4363 static const WCHAR doubleW[2] = {
'W',
'W' };
4364 RectF bounds_1, bounds_2;
4391 ok(
match,
"Expected 100.0, got %f\n", ptf.
Y);
4398 ok(
match,
"Expected 100.0, got %f\n", ptf.
Y);
4412 margin = bounds_1.
Width - bounds_2.
Width / 2.0;
4414 ok(margin > 0.0,
"wrong margin %f\n", margin);
4417 rect.Width = 320000.0;
4418 rect.Height = 320000.0;
4425 ok(
rect.X > 0.0,
"wrong rect.X %f\n",
rect.X);
4428 ok(
match,
"Expected %f, got %f\n", margin,
rect.X);
4432 ok(
match,
"Expected %f, got %f\n", bounds.
Width,
rect.Width + margin * 2.0);
4450 static const WCHAR tahomaW[] = {
'T',
'a',
'h',
'o',
'm',
'a',0 };
4451 static const WCHAR string[] = {
'A',
'0',
'1',0 };
4462 REAL margin_x, margin_y, width_rgn, height_rgn;
4481 margin_x = 20.0 / 6.0;
4482 margin_y = 20.0 / 8.0;
4515 rect.Width = 32000.0;
4516 rect.Height = 32000.0;
4522 expectf_(5.0 + margin_x, bounds.
X, 1.0);
4528 width_rgn = bounds.
Width;
4529 height_rgn = bounds.
Height;
4537 rect.Width = 32000.0;
4538 rect.Height = 32000.0;
4546 ok(bounds.
Width < width_rgn / 2.0,
"width of 1 glyph is wrong\n");
4548 width_1 = bounds.
Width;
4571 rect.Width = width_rgn / 2.0;
4572 rect.Height = 32000.0;
4578 expectf_(5.0 + margin_x, bounds.
X, 1.0);
4595 expectf_(5.0 + margin_x, bounds.
X, 1.0);
4602 rect.Width = width_rgn / 2.0;
4603 rect.Height = 32000.0;
4609 expectf_(5.0 + margin_x, bounds.
X, 1.0);
4635 ok(bounds.
Width <
width / 2.0,
"width of 1 glyph is wrong\n");
4637 width_1 = bounds.
Width;
4647 ok(bounds.
Width <
width,
"width of 2 glyphs is wrong\n");
4648 ok(bounds.
Width > width_1,
"width of 2 glyphs is wrong\n");
4650 width_2 = bounds.
Width;
4679 rect.Width = width_2 - 0.05;
4707 rect.Width = 32000.0;
4708 rect.Height = 32000.0;
4714 expectf_(5.0 + margin_x, bounds.
X, 1.0);
4720 width_rgn = bounds.
Width;
4721 height_rgn = bounds.
Height;
4761 rect.Width = width_rgn * 2.0;
4762 rect.Height = height_rgn * 2.0;
4769 expectf_(5.0 + width_rgn/2.0, bounds.
X, 1.0);
4771 expectf_(5.0 + height_rgn/2.0, bounds.
Y, 1.0);
4785 expectf_(5.0 - width_rgn/2.0, bounds.
X, 1.0);
4787 expectf_(5.0 - height_rgn/2.0, bounds.
Y, 1.0);
4829 rect.Width = width_rgn * 2.0;
4830 rect.Height = height_rgn * 2.0;
4837 expectf_(5.0 + width_rgn, bounds.
X, 2.0);
4839 expectf_(5.0 + height_rgn, bounds.
Y, 1.0);
4853 expectf_(5.0 - width_rgn, bounds.
X, 2.0);
4855 expectf_(5.0 - height_rgn, bounds.
Y, 1.0);
4873 static const WCHAR tahomaW[] = {
'T',
'a',
'h',
'o',
'm',
'a',0 };
4874 static const WCHAR string[2] = {
'W',
'W' };
4881 GpUnit gfx_unit, font_unit;
4899 for (font_unit = 3; font_unit <= 6; font_unit++)
4910 for (gfx_unit = 2; gfx_unit <= 6; gfx_unit++)
4929 expectf_(font_size / 6.0, margin, font_size / 100.0);
4953 ok(
hdc !=
NULL,
"CreateCompatibleDC failed\n");
4963 ok(
hbm !=
NULL,
"CreateDIBSection failed\n");
4977 bits[0] = 0xdeadbeef;
4984 bits[0] = 0xdeadbeef;
4990 expect(0xefbead, colorref);
5001 bits[0] = 0xdeadbeef;
5021 REAL imageres, graphicsres;
5045 expectf(graphicsres, imageres);
5052 expectf(graphicsres, imageres);
5107 ok(
rect.X == 100.0 &&
rect.Y == 100.0 &&
rect.Width == 100.0 &&
rect.Height == 100.0,
5108 "expected 100.0,100.0-100.0,100.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5115 ok(
rect.X == 100.0 &&
rect.Y == 100.0 &&
rect.Width == 100.0 &&
rect.Height == 100.0,
5116 "expected 100.0,100.0-100.0,100.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5126 ok(
rect.X == 100.0 &&
rect.Y == 100.0 &&
rect.Width == 100.0 &&
rect.Height == 100.0,
5127 "expected 100.0,100.0-100.0,100.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5135 ok(ptf[0].
X == 100.0 && ptf[0].
Y == 100.0 && ptf[1].
X == 200.0 && ptf[1].
Y == 200.0,
5136 "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);
5150 "expected 45.0,20.0-50.0,25.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5159 "expected 45.0,20.0-50.0,25.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5163 ok(
rect.X == 100.0 &&
rect.Y == 100.0 &&
rect.Width == 100.0 &&
rect.Height == 100.0,
5164 "expected 100.0,100.0-100.0,100.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5188 ok(ptf[0].
X == 45.0 && ptf[0].
Y == 20.0 && ptf[1].
X == 95.0 && ptf[1].
Y == 45.0,
5189 "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);
5213 ok(ptf[0].
X == 100.0 && ptf[0].
Y == 100.0 && ptf[1].
X == 200.0 && ptf[1].
Y == 200.0,
5214 "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);
5222 "expected 45.0,20.0-50.0,25.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5231 "expected 45.0,20.0-50.0,25.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5235 ok(
rect.X == 100.0 &&
rect.Y == 100.0 &&
rect.Width == 100.0 &&
rect.Height == 100.0,
5236 "expected 100.0,100.0-100.0,100.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5260 ok(ptf[0].
X == 45.0 && ptf[0].
Y == 20.0 && ptf[1].
X == 95.0 && ptf[1].
Y == 45.0,
5261 "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);
5285 ok(ptf[0].
X == 100.0 && ptf[0].
Y == 100.0 && ptf[1].
X == 200.0 && ptf[1].
Y == 200.0,
5286 "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);
5293 ok((
rect.X == 13.75 &&
rect.Y == 4.375 &&
rect.Width == 18.75 &&
rect.Height == 9.375) ||
5295 (
rect.X == 14.0 &&
rect.Y == 4.0 &&
rect.Width == 19.0 &&
rect.Height == 10.0) ||
5297 "expected 13.75,4.375-18.75,9.375, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5305 ok((
rect.X == 13.75 &&
rect.Y == 4.375 &&
rect.Width == 18.75 &&
rect.Height == 9.375) ||
5307 (
rect.X == 14.0 &&
rect.Y == 4.0 &&
rect.Width == 19.0 &&
rect.Height == 10.0) ||
5309 "expected 13.75,4.375-18.75,9.375, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5313 ok(
rect.X == 100.0 &&
rect.Y == 100.0 &&
rect.Width == 100.0 &&
rect.Height == 100.0,
5314 "expected 100.0,100.0-100.0,100.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5342 ok((ptf[0].
X == 13.75 && ptf[0].
Y == 4.375 && ptf[1].
X == 32.5 && ptf[1].
Y == 13.75) ||
5343 broken(ptf[0].
X == 45.0 && ptf[0].
Y == 20.0 && ptf[1].
X == 95.0 && ptf[1].
Y == 45.0) ,
5344 "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);
5370 if (
fabs(ptf[0].
X - 100.0) < 0.001)
5379 ok(
broken(
fabs(ptf[0].
X - 275.0) < 0.001),
"expected 275.0, got %f\n", ptf[0].
X);
5380 ok(
broken(
fabs(ptf[0].
Y - 275.0) < 0.001),
"expected 275.0, got %f\n", ptf[0].
Y);
5381 ok(
broken(
fabs(ptf[1].
X - 542.0) < 0.001),
"expected 542.0, got %f\n", ptf[1].
X);
5382 ok(
broken(
fabs(ptf[1].
Y - 541.75) < 0.001),
"expected 541.75, got %f\n", ptf[1].
Y);
5390 ok(
rect.X == 210.0 &&
rect.Y == 420.0 &&
rect.Width == 200.0 &&
rect.Height == 400.0,
5391 "expected 210.0,420.0-200.0,400.0, got %.2f,%.2f-%.2f,%.2f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5417 if (
fabs(ptf[0].
X - 210.0625) < 0.001)
5426 ok(
broken(
fabs(ptf[0].
X - 568.5) < 0.001),
"expected 568.5, got %f\n", ptf[0].
X);
5427 ok(
broken(
fabs(ptf[0].
Y - 1128.5) < 0.001),
"expected 1128.5, got %f\n", ptf[0].
Y);
5428 ok(
broken(
fabs(ptf[1].
X - 1102.0) < 0.001),
"expected 1102.0, got %f\n", ptf[1].
X);
5429 ok(
broken(
fabs(ptf[1].
Y - 2195.0) < 0.001),
"expected 2195.0, got %f\n", ptf[1].
Y);
5458 ok(
rect.X == 210.0 &&
rect.Y == 420.0 &&
rect.Width == 200.0 &&
rect.Height == 400.0,
5459 "expected 210.0,420.0-200.0,400.0, got %f,%f-%f,%f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5561 ok(
rect.X == 210.0 &&
rect.Y == 420.0 &&
rect.Width == 200.0 &&
rect.Height == 400.0,
5562 "expected 210.0,420.0-200.0,400.0, got %f,%f-%f,%f\n",
rect.X,
rect.Y,
rect.Width,
rect.Height);
5736 if (
fabs(ptf[0].
X - 7200.0) < 0.001)
5737 ok(ptf[0].
X == 7200.0 && ptf[0].
Y == 7200.0 && ptf[1].
X == 14400.0 && ptf[1].
Y == 14400.0,
5738 "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);
5741 ok(
broken(
fabs(ptf[0].
X - 100.0) < 0.001),
"expected 100.0, got %f\n", ptf[0].
X);
5742 ok(
broken(
fabs(ptf[0].
Y - 100.0) < 0.001),
"expected 100.0, got %f\n", ptf[0].
Y);
5743 ok(
broken(
fabs(ptf[1].
X - 200.0) < 0.001),
"expected 200.0, got %f\n", ptf[1].
X);
5744 ok(
broken(
fabs(ptf[1].
Y - 200.0) < 0.001),
"expected 200.0, got %f\n", ptf[1].
Y);
5787 if (
fabs(ptf[0].
X - 100.0) < 0.001)
5788 ok(ptf[0].
X == 100.0 && ptf[0].
Y == 100.0 && ptf[1].
X == 200.0 && ptf[1].
Y == 200.0,
5789 "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);
5792 ok(
broken(
fabs(ptf[0].
X - 1.041667) < 0.001),
"expected 1.041667, got %f\n", ptf[0].
X);
5793 ok(
broken(
fabs(ptf[0].
Y - 1.041667) < 0.001),
"expected 1.041667, got %f\n", ptf[0].
Y);
5794 ok(
broken(
fabs(ptf[1].
X - 2.083333) < 0.001),
"expected 2.083333, got %f\n", ptf[1].
X);
5795 ok(
broken(
fabs(ptf[1].
Y - 2.083333) < 0.001),
"expected 2.083333, got %f\n", ptf[1].
Y);
5825 if (
fabs(ptf[0].
X - 75.0) < 0.001)
5826 ok(ptf[0].
X == 75.0 && ptf[0].
Y == 75.0 && ptf[1].
X == 150.0 && ptf[1].
Y == 150.0,
5827 "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);
5830 ok(
broken(
fabs(ptf[0].
X - 1.041667) < 0.001),
"expected 1.041667, got %f\n", ptf[0].
X);
5831 ok(
broken(
fabs(ptf[0].
Y - 1.041667) < 0.001),
"expected 1.041667, got %f\n", ptf[0].
Y);
5832 ok(
broken(
fabs(ptf[1].
X - 2.083333) < 0.001),
"expected 2.083333, got %f\n", ptf[1].
X);
5833 ok(
broken(
fabs(ptf[1].
Y - 2.083333) < 0.001),
"expected 2.083333, got %f\n", ptf[1].
Y);
5936 if (
fabs(ptf[0].
X - 150.0) < 0.001)
5945 ok(
broken(
fabs(ptf[0].
X - 300.0) < 0.001),
"expected 300.0, got %f\n", ptf[0].
X);
5946 ok(
broken(
fabs(ptf[0].
Y - 150.0) < 0.001),
"expected 150.0, got %f\n", ptf[0].
Y);
5947 ok(
broken(
fabs(ptf[1].
X - 600.0) < 0.001),
"expected 600.0, got %f\n", ptf[1].
X);
5948 ok(
broken(
fabs(ptf[1].
Y - 300.0) < 0.001),
"expected 300.0, got %f\n", ptf[1].
Y);
6055 GpRectF rects[2] = {{0,0,10,10}, {10,10,10,10}};
6057 ok(
hdc !=
NULL,
"Expected HDC to be initialized\n");
6061 ok(graphics !=
NULL,
"Expected graphics to be initialized\n");
6065 ok(brush !=
NULL,
"Expected brush to be initialized\n");
6125 ok(boundRect.
X==
rect.left+10 &&
6126 boundRect.
Y==
rect.top+10 &&
6128 boundRect.
Height==
height,
"Expected GdipGetVisibleClipBoundsI ok\n");
6136 ok(boundRect.
X==
rect.left+10 &&
6137 boundRect.
Y==
rect.top+10 &&
6139 boundRect.
Height==
height-10,
"Expected GdipGetVisibleClipBoundsI ok\n");
6156 static const GpPointF test_points[3] = {{0.0,0.0}, {1.0,0.0}, {0.0,1.0}};
6165 dstrect.
Width = 1.0;
6327 if (!pGdipGraphicsSetAbort)
6329 win_skip(
"GdipGraphicsSetAbort() is not supported.\n");
6341 status = pGdipGraphicsSetAbort(graphics,
NULL);
6349#define BLUE_COLOR (0xff0000ff)
6350#define is_blue_color(color) ( ((color) & 0x00ffffff) == 0xff )
6351#define get_bitmap_pixel(x,y) pixel[(y)*(width) + (x)]
6424 "Expected GdipFillRectangleI take effect!\n" );
6457 BYTE *src_img_data =
GdipAlloc(src_img_width*src_img_height*4);
6459 ok(pixel !=
NULL,
"Expected src_img_data is valid\n");
6465 for(
y = 0;
y < src_img_height; ++
y)
6467 for(
x = 0;
x < src_img_width; ++
x)
6472 pixel += src_img_width;
6509 "Expected GdipFillRectangleI take effect!\n" );
6543 BYTE *src_img_data =
GdipAlloc(src_img_width*src_img_height*4);
6545 ok(pixel !=
NULL,
"Expected src_img_data is valid\n");
6552 for(
y = 0;
y < src_img_height; ++
y)
6554 for(
x = 0;
x < src_img_width; ++
x)
6559 pixel += src_img_width;
6596 "Expected GdipFillRectangleI take effect!\n" );
6626 BYTE *src_img_data =
GdipAlloc(src_img_width*src_img_height*4);
6628 ok(pixel !=
NULL,
"Expected src_img_data is valid\n");
6634 for(
y = 0;
y < src_img_height; ++
y)
6636 for(
x = 0;
x < src_img_width; ++
x)
6641 pixel += src_img_width;
6672 "Expected GdipDrawImageRectRectI take effect!\n" );
6738 ok(
hdc !=
NULL,
"CreateCompatibleDC failed\n");
6748 ok(
hbm !=
NULL,
"CreateDIBSection failed\n");
6809 pGdipGraphicsSetAbort = (
void*)
GetProcAddress(gdiplus_mod,
"GdipGraphicsSetAbort");
6811 memset( &
class, 0,
sizeof(
class) );
6812 class.lpszClassName =
"gdiplus_test";
6822 ok(
hwnd !=
NULL,
"Expected window to be created\n");
FORCEINLINE 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)
#define HeapFree(x, y, z)
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 GdipCreateFontFamilyFromName(GDIPCONST WCHAR *name, GpFontCollection *fontCollection, GpFontFamily **FontFamily)
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 GdipGetDpiX(GpGraphics *graphics, REAL *dpi)
GpStatus WINGDIPAPI GdipDrawCurve(GpGraphics *graphics, GpPen *pen, GDIPCONST GpPointF *points, INT count)
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 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 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)
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_scale(GpUnit from, GpUnit to, REAL dpi)
void *WINGDIPAPI GdipAlloc(SIZE_T size)
REAL units_to_pixels(REAL units, GpUnit unit, REAL dpi)
@ 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
_Check_return_ _CRT_JIT_INTRINSIC double __cdecl fabs(_In_ double x)
_CRT_MANAGED_FP_DEPRECATE _ACRTIMP errno_t __cdecl _controlfp_s(_Out_opt_ unsigned int *_CurrentState, _In_ unsigned int _NewValue, _In_ unsigned int _Mask)
#define memcpy(s1, s2, n)
static UINT UINT LPWORD glyphs
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)
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_GdipGetVisibleClipBounds_window(void)
static void test_GdipGetVisibleClipBounds_memoryDC(void)
static void test_GdipFillClosedCurve2I(void)
static void test_clipping_2(void)
static void test_GdipDrawCurve3I(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_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_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_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 void test_hdc_caching(void)
static void test_transform(void)
static IHTMLWindow2 * window
#define todo_wine_if(is_todo)
static int font_height(HFONT hFont)
#define WS_OVERLAPPEDWINDOW
png_const_structrp png_const_inforp int * unit
_Out_opt_ int _Out_opt_ int * cy
CHAR lfFaceName[LF_FACESIZE]
BITMAPINFOHEADER bmiHeader
_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)
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)
BOOL WINAPI SetViewportOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
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)
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)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
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)