1756{
1760 HPEN solid_pen, dashed_pen, wide_pen, orig_pen;
1762 HBRUSH solid_brush, dib_brush, hatch_brush, orig_brush;
1772 BYTE *brush_bits, *src_bits;
1778 HPALETTE hpal, old_hpal;
1779
1782
1786
1791
1792
1793 for(
i = 1;
i <= 16;
i++)
1794 {
1804 }
1806
1807
1809 for(
i = 0;
i < 16;
i++)
1810 {
1813
1816 }
1818
1820 {
1823 }
1825
1826
1829
1830 for(
i = 0,
y = 10;
i < 256;
i++)
1831 {
1833
1836 else
1837 {
1840 }
1841
1842 }
1844
1845
1853
1855 {
1858 }
1860
1862 {
1865 }
1867
1869 {
1872 }
1874
1875
1877 {
1881 }
1883
1884
1889
1891 {
1894 }
1896
1898 {
1901 }
1903
1905 {
1908 }
1910
1912 {
1915 }
1917
1919 {
1922 }
1924
1926
1928 {
1931 }
1933
1935
1936
1937
1941 brush_bits[2] = 0xff;
1942 brush_bits[6] = 0xff;
1943 brush_bits[14] = 0xff;
1944 brush_bits[65] = 0xff;
1945 brush_bits[69] = 0xff;
1946 brush_bits[72] = 0xff;
1947
1949
1952
1953 for(
i = 0,
y = 10;
i < 256;
i++)
1954 {
1956 {
1960 }
1961 }
1963
1966
1967
1968
1970
1972
1974
1975
1976
1977
1979
1980 for(
i = 0,
y = 10;
i < 256;
i++)
1981 {
1983 {
1987 }
1988 }
1990
1993
1994
1995
1998 memset(brush_bits, 0, 16 * 16 * 3);
1999 brush_bits[0] = brush_bits[3] = brush_bits[6] = brush_bits[8] = 0xff;
2000 brush_bits[49] = brush_bits[52] = 0xff;
2001
2003
2006
2007 for(
i = 0,
y = 10;
i < 256;
i++)
2008 {
2010 {
2014 }
2015 }
2017
2020
2021
2022
2025 memset(brush_bits, 0, 16 * 16 *
sizeof(
WORD));
2026 brush_bits[0] = brush_bits[1] = 0xff;
2027 brush_bits[32] = brush_bits[34] = 0x7c;
2028
2030
2033
2034 for(
i = 0,
y = 10;
i < 256;
i++)
2035 {
2037 {
2041 }
2042 }
2044
2047
2049
2050
2051
2055 brush_colors[0].rgbRed = 0xff;
2056 brush_colors[1].rgbRed = 0xff;
2057 brush_colors[1].rgbGreen = 0xff;
2058 brush_colors[1].rgbBlue = 0xff;
2059
2061 memset(brush_bits, 0, 16 * 16 *
sizeof(
BYTE));
2062 brush_bits[0] = brush_bits[1] = 1;
2063 brush_bits[16] = brush_bits[17] = 2;
2064 brush_bits[32] = brush_bits[33] = 6;
2065
2067
2070
2071 for(
i = 0,
y = 10;
i < 256;
i++)
2072 {
2074 {
2078 }
2079 }
2081
2084
2085
2086
2089
2092
2093 for(
i = 0,
y = 10;
i < 256;
i++)
2094 {
2096 {
2100 }
2101 }
2103
2106
2107
2108
2111 memset(brush_bits, 0, 16 * 4);
2112 brush_bits[0] = 0xf0;
2113 brush_bits[4] = 0xf0;
2114 brush_bits[8] = 0xf0;
2115
2118 for(
i = 0,
y = 10;
i < 256;
i++)
2119 {
2121 {
2125 }
2126 }
2127
2129
2132
2133
2134
2140 for(
i = 0,
y = 10;
i < 256;
i++)
2141 {
2145 {
2149 }
2150 }
2151
2153
2160
2161
2162
2165
2167 {
2169 }
2170
2173 {
2175 }
2176
2179
2180
2181
2184
2185
2186
2194
2195 for(
i = 0,
y = 10;
i < 256;
i++)
2196 {
2198 {
2200 {
2207 }
2209 }
2210 }
2211
2213
2214
2215
2217
2224
2231
2238
2245
2252
2259
2267 else
2269
2276
2277
2278
2279 memset( dib_src_buf, 0,
sizeof(dib_src_buf) );
2280 src_bi->bmiHeader.biSize =
sizeof(bmi->
bmiHeader);
2281 src_bi->bmiHeader.biHeight = 256;
2282 src_bi->bmiHeader.biWidth = 256;
2283 src_bi->bmiHeader.biBitCount = 32;
2284 src_bi->bmiHeader.biPlanes = 1;
2285 src_bi->bmiHeader.biCompression =
BI_RGB;
2288 for (
y = 0;
y < 256;
y++)
2289 for (
x = 0;
x < 256;
x++)
2290 {
2296 }
2297
2299
2300
2311
2314 GdiAlphaBlend(
hdc, 100, 100, 256, 256, src_dc, 0, 0, 256, 256, blend );
2316
2319 GdiAlphaBlend(
hdc, 50, 50, 256, 256, src_dc, 0, 0, 256, 256, blend );
2321
2322
2323
2324 src_bi->bmiHeader.biBitCount = 32;
2326 ((
DWORD *)src_bi->bmiColors)[0] = 0x3ff00000;
2327 ((
DWORD *)src_bi->bmiColors)[1] = 0x000ffc00;
2328 ((
DWORD *)src_bi->bmiColors)[2] = 0x000003ff;
2331 for (
y = 0;
y < 256;
y++)
2332 for (
x = 0;
x < 256;
x++)
2333 {
2334 WORD r = (7 *
x + 3 *
y) % 1024;
2335 WORD g = (11 *
x +
y / 3) % 1024;
2336 WORD b = (
x / 3 + 9 *
y) % 1024;
2337 ((
DWORD *)src_bits)[
y * 256 +
x] =
r << 20 |
g << 10 |
b;
2338 }
2339
2342
2343
2344
2345 src_bi->bmiHeader.biBitCount = 32;
2347 ((
DWORD *)src_bi->bmiColors)[0] = 0x00003f;
2348 ((
DWORD *)src_bi->bmiColors)[1] = 0x000fc0;
2349 ((
DWORD *)src_bi->bmiColors)[2] = 0x03f000;
2352 for (
y = 0;
y < 256;
y++)
2353 for (
x = 0;
x < 256;
x++)
2354 {
2357 BYTE b = (
x / 3 + 2 *
y) % 64;
2358 ((
DWORD *)src_bits)[
y * 256 +
x] =
r |
g << 6 |
b << 12;
2359 }
2360
2363
2364
2365
2366 src_bi->bmiHeader.biBitCount = 24;
2367 src_bi->bmiHeader.biCompression =
BI_RGB;
2370 for (
y = 0;
y < 256;
y++)
2371 for (
x = 0;
x < 256;
x++)
2372 {
2373 src_bits[(
y * 256 +
x) * 3 + 0] =
x + 3 *
y;
2374 src_bits[(
y * 256 +
x) * 3 + 1] = 2 *
x + 7 *
y;
2375 src_bits[(
y * 256 +
x) * 3 + 2] = 5 *
x + 12 *
y;
2376 }
2377
2380
2383 GdiAlphaBlend(
hdc, 100, 100, 256, 256, src_dc, 0, 0, 256, 256, blend );
2385
2386
2387
2388 src_bi->bmiHeader.biBitCount = 16;
2389 src_bi->bmiHeader.biCompression =
BI_RGB;
2392 for (
y = 0;
y < 256;
y++)
2393 for (
x = 0;
x < 256;
x++)
2394 ((
WORD *)src_bits)[
y * 256 +
x] =
x |
x << 4 |
x << 8 |
y << 3 |
y << 7;
2395
2398
2399
2400
2401 src_bi->bmiHeader.biBitCount = 16;
2403 ((
DWORD *)src_bi->bmiColors)[0] = 0x00000f;
2404 ((
DWORD *)src_bi->bmiColors)[1] = 0x0000f0;
2405 ((
DWORD *)src_bi->bmiColors)[2] = 0x000f00;
2408 for (
y = 0;
y < 256;
y++)
2409 for (
x = 0;
x < 256;
x++)
2410 ((
WORD *)src_bits)[
y * 256 +
x] =
x |
x << 4 |
x << 8 |
y << 3 |
y << 7;
2411
2414
2415
2416
2417 src_bi->bmiHeader.biBitCount = 8;
2418 src_bi->bmiHeader.biCompression =
BI_RGB;
2419 src_bi->bmiHeader.biClrUsed = 160;
2420 for (
i = 0;
i < 256;
i++) ((
DWORD *)src_bi->bmiColors)[
i] =
i | (
i * 3) << 8 | (
i / 2) << 16;
2423 for (
y = 0;
y < 256;
y++)
2424 for (
x = 0;
x < 256;
x++)
2425 src_bits[
y * 256 +
x] = 3 *
x + 5 *
y;
2426
2429
2432 GdiAlphaBlend(
hdc, 100, 100, 256, 256, src_dc, 0, 0, 256, 256, blend );
2434
2435
2436
2437 src_bi->bmiHeader.biBitCount = 4;
2438 src_bi->bmiHeader.biClrUsed = 12;
2439 for (
i = 0;
i < 16;
i++) ((
DWORD *)src_bi->bmiColors)[
i] =
i | (
i * 5) << 8 | (
i * 19) << 16;
2442 for (
y = 0;
y < 256;
y++)
2443 for (
x = 0;
x < 256;
x += 2)
2444 src_bits[(
y * 256 +
x) / 2] = 7 *
x + 3 *
y;
2445
2448
2449
2450
2451 src_bi->bmiHeader.biBitCount = 1;
2452 src_bi->bmiHeader.biClrUsed = 0;
2453 for (
i = 0;
i < 2;
i++) ((
DWORD *)src_bi->bmiColors)[
i] = (
i + 37) | (
i * 91) << 8 | (
i * 53) << 16;
2456 for (
y = 0;
y < 256;
y++)
2457 for (
x = 0;
x < 256;
x += 8)
2458 src_bits[(
y * 256 +
x) / 8] = 7 *
x + 3 *
y;
2459
2461
2468
2471 GdiAlphaBlend(
hdc, 100, 100, 256, 256, src_dc, 0, 0, 256, 256, blend );
2473
2474
2475
2478
2481 for (
i = 0;
i < 256;
i += 13)
2482 {
2486 }
2487 for (
i = 0;
i < 256;
i += 13)
2488 {
2492 }
2493 for (
i = 0;
i < 256;
i += 13)
2494 {
2498 }
2502
2504
2505
2506
2509
2510 for (
y = 0;
y < 16;
y++)
2511 for (
x = 0;
x < 16;
x++)
2514
2517
2519
2521 {
2561 }
2563
2566
2567
2568 src_bi->bmiHeader.biSize = sizeof(src_bi->bmiHeader);
2569 src_bi->bmiHeader.biWidth = 8;
2570 src_bi->bmiHeader.biHeight = 8;
2571 src_bi->bmiHeader.biPlanes = 1;
2572 src_bi->bmiHeader.biBitCount = 8;
2573 src_bi->bmiHeader.biCompression =
BI_RLE8;
2574 src_bi->bmiHeader.biClrUsed = 0;
2575 src_bi->bmiHeader.biSizeImage =
sizeof(
rle8_data);
2576
2577 for (
i = 0;
i < 256;
i++)
2578 {
2579 src_bi->bmiColors[
i].rgbRed =
i;
2580 src_bi->bmiColors[
i].rgbGreen =
i;
2581 src_bi->bmiColors[
i].rgbBlue =
i;
2582 src_bi->bmiColors[
i].rgbReserved = 0;
2583 }
2584
2585 StretchDIBits(
hdc, 10, 10, 7, 7, 0, 0, 7, 7,
rle8_data, src_bi,
DIB_RGB_COLORS,
SRCCOPY );
2586 StretchDIBits(
hdc, 100, 10, 7, 7, 0, 0, 7, 7,
rle8_data, src_bi,
DIB_RGB_COLORS,
SRCAND );
2587 StretchDIBits(
hdc, 200, 10, 7, 7, 0, 1, 7, 7,
rle8_data, src_bi,
DIB_RGB_COLORS,
SRCCOPY );
2588 StretchDIBits(
hdc, 300, 10, 7, 7, 1, 0, 7, 7,
rle8_data, src_bi,
DIB_RGB_COLORS,
SRCCOPY );
2589 StretchDIBits(
hdc, 400, 10, 16, 16, 0, 0, 8, 8,
rle8_data, src_bi,
DIB_RGB_COLORS,
SRCCOPY );
2591
2592
2593
2594 src_bi->bmiHeader.biWidth = 4;
2595 src_bi->bmiHeader.biHeight = 4;
2596 src_bi->bmiHeader.biPlanes = 1;
2597 src_bi->bmiHeader.biBitCount = 32;
2598 src_bi->bmiHeader.biCompression =
BI_RGB;
2599 src_bi->bmiHeader.biClrUsed = 0;
2600 src_bi->bmiHeader.biSizeImage = 0;
2601
2602 ret =
StretchDIBits(
hdc, 10, 10, 4, 4, 0, 0, 4, 4,
four_by_four_data, src_bi,
DIB_RGB_COLORS,
SRCCOPY );
2604 ret =
StretchDIBits(
hdc, 20, 10, 4, 4, 0, 0, 4, 4,
four_by_four_data, src_bi,
DIB_RGB_COLORS,
SRCAND );
2606 ret =
StretchDIBits(
hdc, 30, 10, 3, 3, 1, 1, 3, 3,
four_by_four_data, src_bi,
DIB_RGB_COLORS,
SRCCOPY );
2608 ret =
StretchDIBits(
hdc, 40, 10, 3, 3, 1, 1, 3, 3,
four_by_four_data, src_bi,
DIB_RGB_COLORS,
SRCAND );
2610 ret =
StretchDIBits(
hdc, 50, 10, -2, -2, 2, 3, -2, -2,
four_by_four_data, src_bi,
DIB_RGB_COLORS,
SRCCOPY );
2612 ret =
StretchDIBits(
hdc, 60, 10, -2, -2, 2, 3, -2, -2,
four_by_four_data, src_bi,
DIB_RGB_COLORS,
SRCAND );
2614
2615 src_bi->bmiHeader.biHeight = -4;
2616
2617 ret =
StretchDIBits(
hdc, 10, 100, 4, 4, 0, 0, 4, 4,
four_by_four_data, src_bi,
DIB_RGB_COLORS,
SRCCOPY );
2619 ret =
StretchDIBits(
hdc, 20, 100, 4, 4, 0, 0, 4, 4,
four_by_four_data, src_bi,
DIB_RGB_COLORS,
SRCAND );
2621 ret =
StretchDIBits(
hdc, 30, 100, 3, 3, 1, 1, 3, 3,
four_by_four_data, src_bi,
DIB_RGB_COLORS,
SRCCOPY );
2623 ret =
StretchDIBits(
hdc, 40, 100, 3, 3, 1, 1, 3, 3,
four_by_four_data, src_bi,
DIB_RGB_COLORS,
SRCAND );
2625 ret =
StretchDIBits(
hdc, 50, 100, -2, -2, 2, 3, -2, -2,
four_by_four_data, src_bi,
DIB_RGB_COLORS,
SRCCOPY );
2627 ret =
StretchDIBits(
hdc, 60, 100, -2, -2, 2, 3, -2, -2,
four_by_four_data, src_bi,
DIB_RGB_COLORS,
SRCAND );
2629
2631
2632
2633
2634 for (
i = 0;
i < 16;
i++)
2635 {
2636 for (
j = 0;
j < 16;
j++)
2637 {
2642 }
2643 }
2645
2646 for (
i = 0;
i < 256;
i++)
2647 {
2653 }
2654
2655
2656
2657
2660
2661
2664
2665
2668
2670
2671 for (
i = 0;
i < 256;
i++)
2672 {
2674
2675 for (
j = 0;
j < 16;
j++)
2676 {
2678
2681 ok(
s ==
g,
"got %08lx and %08lx\n",
s,
g );
2682
2685 ok(
s ==
g,
"got %08lx and %08lx\n",
s,
g );
2686
2689 ok(
s ==
g,
"got %08lx and %08lx\n",
s,
g );
2690
2693 ok(
s ==
g,
"got %08lx and %08lx\n",
s,
g );
2694 }
2695
2697
2698 for (
j = 0;
j < 256;
j++)
2699 {
2702 ok(
s ==
g,
"got %08lx and %08lx\n",
s,
g );
2703
2706 ok(
s ==
g,
"got %08lx and %08lx\n",
s,
g );
2707 }
2708 }
2709
2711
2712
2713
2714 {
2716 {
2717 { 1, 1, 0xff00, 0x8000, 0x0000, 0x8000 },
2718 { 200, 200, 0x0000, 0x0000, 0xff00, 0xff00 },
2719 { 180, 180, 0x1234, 0x5678, 0x9abc, 0xdef0 },
2720 { 300, 300, 0xff00, 0xff00, 0xff00, 0x0000 }
2721 };
2723
2725 {
2726 { 250, 0, 0xff00, 0x0000, 0xff00, 0xff00 },
2727 { 500, 500, 0x0000, 0xff00, 0x0000, 0xff00 },
2728 { 0, 500, 0x0000, 0x0000, 0xff00, 0xff00 },
2729
2730 { 10, 0, 0x8000, 0x0000, 0x8000, 0x8000 },
2731 { 0, 20, 0xff00, 0xff00, 0xff00, 0x0000 },
2732 { 5, 30, 0x4000, 0xc000, 0x7000, 0x9000 },
2733
2734 { 30, 0, 0x9000, 0x8800, 0xcc00, 0xff00 },
2735 { 5, 12, 0x9900, 0xaa00, 0xbb00, 0xcc00 },
2736 { 0, 30, 0x5000, 0xd000, 0x9000, 0xbb00 },
2737
2738 { 35, 3, 0xaa00, 0x6500, 0x4300, 0x2100 },
2739 { 50, 6, 0x9800, 0x9800, 0x9800, 0x2000 },
2740 { 60, 10, 0x0100, 0x0200, 0x0300, 0x3000 },
2741
2742 { 60, 2, 0x0700, 0x0800, 0x0900, 0xff00 },
2743 { 73, 10, 0x9900, 0x8800, 0x7700, 0xff00 },
2744 { 66, 23, 0x1100, 0x2200, 0x3300, 0xff00 },
2745
2746 { 80, 1, 0xa000, 0x6000, 0x4000, 0x2000 },
2747 { 76, 9, 0x7000, 0x5000, 0x3000, 0x1000 },
2748 { 85, 23, 0x3300, 0x3300, 0x3300, 0x3300 },
2749
2750 { 90, 4, 0x4400, 0x5500, 0x6600, 0x9900 },
2751 { 95, 12, 0x4500, 0x5600, 0x6700, 0x9900 },
2752 { 85, 14, 0x4600, 0x5700, 0x6800, 0x9900 },
2753 };
2755 {
2756 { 0, 1, 2 }, { 3, 4, 5 }, { 6, 7, 8 }, { 9, 10, 11 }, { 12, 13, 14 }, { 15, 16, 17 }, { 18, 19, 20 },
2757 { 2, 1, 0 }, { 3, 5, 4 }, { 7, 6, 8 }, { 10, 11, 9 }, { 14, 13, 12 }, { 17, 15, 16 }, { 19, 20, 18 }
2758 };
2759
2761 for (
i = 0;
i < 4;
i++) vrect[
i].
y += 250;
2763
2765
2767 for (
i = 0;
i < 7*3;
i++) vtri[
i].
y += 100;
2769
2771 }
2772
2773
2774
2777
2779 {
2782 }
2783
2785
2788
2792
2794 9, &log_brush, 0,
NULL );
2800
2803
2805 16, &log_brush, 0,
NULL );
2807
2810
2813
2815 9, &log_brush, 0,
NULL );
2817
2820
2823
2824
2825
2833 12, &log_brush, 0,
NULL );
2834 ok( wide_pen != 0,
"failed to create pen\n" );
2837
2838 for (
i = 1;
i < 20;
i++)
2839 {
2841 i, &log_brush, 0,
NULL );
2842 ok( wide_pen != 0,
"failed to create pen\n" );
2849 }
2851
2852 for (
i = 1;
i < 20;
i++)
2853 {
2855 i, &log_brush, 0,
NULL );
2862 }
2864
2869
2870
2871
2878
2881 for (
i = 0;
i < 80;
i++)
2882 {
2887 }
2890
2897
2905
2915
2918
2920
2921
2922
2928
2929
2933
2936
2938 if (is_ddb)
2940 else
2943
2945
2948
2955}
VOID SetPixel(_In_ ULONG Left, _In_ ULONG Top, _In_ UCHAR Color)
DWORD GetPixel(LPDIRECTDRAWSURFACE7 Surface, UINT x, UINT y)
_ACRTIMP double __cdecl sin(double)
_ACRTIMP double __cdecl cos(double)
static VOID BitBlt(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Width, _In_ ULONG Height, _In_reads_bytes_(Height *Stride) PUCHAR Buffer, _In_ ULONG BitsPerPixel, _In_ ULONG Stride)
DWORD WINAPI SetLayout(_In_ HDC hdc, _In_ DWORD dwLayout)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLdouble GLdouble GLdouble r
GLdouble GLdouble GLdouble GLdouble top
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
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
BOOL WINAPI GdiAlphaBlend(HDC hdcDst, int xDst, int yDst, int widthDst, int heightDst, HDC hdcSrc, int xSrc, int ySrc, int widthSrc, int heightSrc, BLENDFUNCTION blendFunction)
BOOL WINAPI GdiGradientFill(HDC hdc, TRIVERTEX *vert_array, ULONG nvert, void *grad_array, ULONG ngrad, ULONG mode)
static const RECT hline_clips[]
static const BITMAPINFOHEADER dib_brush_header_24
static const DWORD rop3[256]
static const RECT patblt_clips[]
static const RECT bias_check[]
static BOOL rop_uses_src(DWORD rop)
static const RECT vline_clips[]
static const RECT line_clips[]
static const DWORD polypoly_counts[]
static const POINT poly_lines[]
static const BYTE rle8_data[20]
static DWORD get_stride(const BITMAPINFO *bmi)
static const BITMAPINFOHEADER dib_brush_header_8888
static const BITMAPINFOHEADER dib_brush_header_4
static const DWORD four_by_four_data[16]
static const RECT wide_lines[]
static const BITMAPINFOHEADER dib_brush_header_8
static const POINT polypoly_lines[]
static const RECT rectangles[]
static const BITMAPINFOHEADER dib_brush_header_1
static void solid_patblt(HDC hdc, int x, int y, int width, int height, COLORREF color)
static const DWORD ddb_brush_bits[8]
static const BITMAPINFOHEADER dib_brush_header_555
static void compare_hash(HDC hdc, const BITMAPINFO *bmi, BYTE *bits, const char *info)
static void reset_bounds(HDC hdc)
BITMAPINFOHEADER bmiHeader
HBITMAP WINAPI CreateDIBSection(HDC hDC, CONST BITMAPINFO *BitmapInfo, UINT Usage, VOID **Bits, HANDLE hSection, DWORD dwOffset)
BOOL WINAPI Polyline(_In_ HDC hdc, _In_reads_(cpt) const POINT *apt, _In_ int cpt)
HBITMAP WINAPI CreateBitmap(_In_ INT cx, _In_ INT cy, _In_ UINT cPlanes, _In_ UINT cBitsPerPel, _In_opt_ const VOID *pvBits)
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
HRGN WINAPI CreateRectRgn(_In_ int, _In_ int, _In_ int, _In_ int)
HPEN WINAPI ExtCreatePen(_In_ DWORD iPenStyle, _In_ DWORD cWidth, _In_ const LOGBRUSH *plbrush, _In_ DWORD cStyle, _In_reads_opt_(cStyle) const DWORD *pstyle)
COLORREF WINAPI GetTextColor(_In_ HDC)
BOOL WINAPI SetBrushOrgEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
HBRUSH WINAPI CreateHatchBrush(_In_ int, _In_ COLORREF)
HPALETTE WINAPI SelectPalette(_In_ HDC, _In_ HPALETTE, _In_ BOOL)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
BOOL WINAPI MoveToEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
int WINAPI CombineRgn(_In_opt_ HRGN hrgnDest, _In_opt_ HRGN hrgnSrc1, _In_opt_ HRGN hrgnSrc2, _In_ int fnCombineMode)
#define PALETTERGB(r, g, b)
COLORREF WINAPI GetBkColor(_In_ HDC)
LONG WINAPI GetBitmapBits(_In_ HBITMAP hbit, _In_ LONG cb, _Out_writes_bytes_(cb) LPVOID lpvBits)
BOOL WINAPI PatBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD)
struct tagBITMAPINFO BITMAPINFO
BOOL WINAPI Rectangle(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int)
int WINAPI SetBkMode(_In_ HDC, _In_ int)
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
int WINAPI SetROP2(_In_ HDC, _In_ int)
HBRUSH WINAPI CreateDIBPatternBrushPt(_In_ const VOID *pvPackedDIB, _In_ UINT uUsage)
UINT WINAPI SetPaletteEntries(_In_ HPALETTE hpal, _In_ UINT iStart, _In_ UINT cEntries, _In_reads_(cEntries) CONST PALETTEENTRY *pPalEntries)
HBRUSH WINAPI CreateSolidBrush(_In_ COLORREF)
BOOL WINAPI DeleteDC(_In_ HDC)
BOOL WINAPI PaintRgn(_In_ HDC, _In_ HRGN)
HPEN WINAPI CreatePen(_In_ int, _In_ int, _In_ COLORREF)
BOOL WINAPI SetRectRgn(_In_ HRGN, _In_ int, _In_ int, _In_ int, _In_ int)
BOOL WINAPI ExtFloodFill(_In_ HDC, _In_ int, _In_ int, _In_ COLORREF, _In_ UINT)
BOOL WINAPI LineTo(_In_ HDC, _In_ int, _In_ int)
BOOL WINAPI PolyPolyline(_In_ HDC hdc, _In_ const POINT *apt, _In_reads_(csz) const DWORD *asz, _In_ DWORD csz)
int WINAPI ExtSelectClipRgn(_In_ HDC, _In_opt_ HRGN, _In_ int)
int WINAPI StretchDIBits(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_opt_ const VOID *, _In_ const BITMAPINFO *, _In_ UINT, _In_ DWORD)
HBRUSH WINAPI CreatePatternBrush(_In_ HBITMAP)