mirror of
https://github.com/reactos/reactos.git
synced 2025-05-25 12:14:32 +00:00
[GDI32_WINETEST]
* Sync with Wine 1.7.17. CORE-8080 svn path=/trunk/; revision=62835
This commit is contained in:
parent
ca20207552
commit
52a7f09dd3
22 changed files with 3049 additions and 648 deletions
|
@ -19,7 +19,9 @@ list(APPEND SOURCE
|
||||||
testlist.c)
|
testlist.c)
|
||||||
|
|
||||||
add_executable(gdi32_winetest ${SOURCE} resource.rc)
|
add_executable(gdi32_winetest ${SOURCE} resource.rc)
|
||||||
|
|
||||||
set_module_type(gdi32_winetest win32cui)
|
set_module_type(gdi32_winetest win32cui)
|
||||||
add_importlibs(gdi32_winetest gdi32 user32 advapi32 msvcrt kernel32 ntdll)
|
add_importlibs(gdi32_winetest gdi32 user32 advapi32 msvcrt kernel32)
|
||||||
|
if(MSVC)
|
||||||
|
add_importlibs(gdi32_winetest ntdll)
|
||||||
|
endif()
|
||||||
add_cd_file(TARGET gdi32_winetest DESTINATION reactos/bin FOR all)
|
add_cd_file(TARGET gdi32_winetest DESTINATION reactos/bin FOR all)
|
||||||
|
|
|
@ -59,7 +59,7 @@ static void test_bitmap_info(HBITMAP hbm, INT expected_depth, const BITMAPINFOHE
|
||||||
INT ret, width_bytes;
|
INT ret, width_bytes;
|
||||||
BYTE buf[512], buf_cmp[512];
|
BYTE buf[512], buf_cmp[512];
|
||||||
|
|
||||||
ret = GetObject(hbm, sizeof(bm), &bm);
|
ret = GetObjectW(hbm, sizeof(bm), &bm);
|
||||||
ok(ret == sizeof(bm), "GetObject returned %d\n", ret);
|
ok(ret == sizeof(bm), "GetObject returned %d\n", ret);
|
||||||
|
|
||||||
ok(bm.bmType == 0, "wrong bm.bmType %d\n", bm.bmType);
|
ok(bm.bmType == 0, "wrong bm.bmType %d\n", bm.bmType);
|
||||||
|
@ -88,19 +88,19 @@ static void test_bitmap_info(HBITMAP hbm, INT expected_depth, const BITMAPINFOHE
|
||||||
"buffers do not match, depth %d\n", bmih->biBitCount);
|
"buffers do not match, depth %d\n", bmih->biBitCount);
|
||||||
|
|
||||||
/* test various buffer sizes for GetObject */
|
/* test various buffer sizes for GetObject */
|
||||||
ret = GetObject(hbm, sizeof(*bma) * 2, bma);
|
ret = GetObjectW(hbm, sizeof(*bma) * 2, bma);
|
||||||
ok(ret == sizeof(*bma), "wrong size %d\n", ret);
|
ok(ret == sizeof(*bma), "wrong size %d\n", ret);
|
||||||
|
|
||||||
ret = GetObject(hbm, sizeof(bm) / 2, &bm);
|
ret = GetObjectW(hbm, sizeof(bm) / 2, &bm);
|
||||||
ok(ret == 0, "%d != 0\n", ret);
|
ok(ret == 0, "%d != 0\n", ret);
|
||||||
|
|
||||||
ret = GetObject(hbm, 0, &bm);
|
ret = GetObjectW(hbm, 0, &bm);
|
||||||
ok(ret == 0, "%d != 0\n", ret);
|
ok(ret == 0, "%d != 0\n", ret);
|
||||||
|
|
||||||
ret = GetObject(hbm, 1, &bm);
|
ret = GetObjectW(hbm, 1, &bm);
|
||||||
ok(ret == 0, "%d != 0\n", ret);
|
ok(ret == 0, "%d != 0\n", ret);
|
||||||
|
|
||||||
ret = GetObject(hbm, 0, NULL);
|
ret = GetObjectW(hbm, 0, NULL);
|
||||||
ok(ret == sizeof(bm), "wrong size %d\n", ret);
|
ok(ret == sizeof(bm), "wrong size %d\n", ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -248,7 +248,7 @@ static void test_dib_info(HBITMAP hbm, const void *bits, const BITMAPINFOHEADER
|
||||||
INT ret, bm_width_bytes, dib_width_bytes;
|
INT ret, bm_width_bytes, dib_width_bytes;
|
||||||
BYTE *buf;
|
BYTE *buf;
|
||||||
|
|
||||||
ret = GetObject(hbm, sizeof(bm), &bm);
|
ret = GetObjectW(hbm, sizeof(bm), &bm);
|
||||||
ok(ret == sizeof(bm), "GetObject returned %d\n", ret);
|
ok(ret == sizeof(bm), "GetObject returned %d\n", ret);
|
||||||
|
|
||||||
ok(bm.bmType == 0, "wrong bm.bmType %d\n", bm.bmType);
|
ok(bm.bmType == 0, "wrong bm.bmType %d\n", bm.bmType);
|
||||||
|
@ -280,30 +280,30 @@ static void test_dib_info(HBITMAP hbm, const void *bits, const BITMAPINFOHEADER
|
||||||
|
|
||||||
/* test various buffer sizes for GetObject */
|
/* test various buffer sizes for GetObject */
|
||||||
memset(&ds, 0xAA, sizeof(ds));
|
memset(&ds, 0xAA, sizeof(ds));
|
||||||
ret = GetObject(hbm, sizeof(*bma) * 2, bma);
|
ret = GetObjectW(hbm, sizeof(*bma) * 2, bma);
|
||||||
ok(ret == sizeof(*bma), "wrong size %d\n", ret);
|
ok(ret == sizeof(*bma), "wrong size %d\n", ret);
|
||||||
ok(bm.bmWidth == bmih->biWidth, "wrong bm.bmWidth %d\n", bm.bmWidth);
|
ok(bm.bmWidth == bmih->biWidth, "wrong bm.bmWidth %d\n", bm.bmWidth);
|
||||||
ok(bm.bmHeight == abs(bmih->biHeight), "wrong bm.bmHeight %d\n", bm.bmHeight);
|
ok(bm.bmHeight == abs(bmih->biHeight), "wrong bm.bmHeight %d\n", bm.bmHeight);
|
||||||
ok(bm.bmBits == bits, "wrong bm.bmBits %p != %p\n", bm.bmBits, bits);
|
ok(bm.bmBits == bits, "wrong bm.bmBits %p != %p\n", bm.bmBits, bits);
|
||||||
|
|
||||||
ret = GetObject(hbm, sizeof(bm) / 2, &bm);
|
ret = GetObjectW(hbm, sizeof(bm) / 2, &bm);
|
||||||
ok(ret == 0, "%d != 0\n", ret);
|
ok(ret == 0, "%d != 0\n", ret);
|
||||||
|
|
||||||
ret = GetObject(hbm, 0, &bm);
|
ret = GetObjectW(hbm, 0, &bm);
|
||||||
ok(ret == 0, "%d != 0\n", ret);
|
ok(ret == 0, "%d != 0\n", ret);
|
||||||
|
|
||||||
ret = GetObject(hbm, 1, &bm);
|
ret = GetObjectW(hbm, 1, &bm);
|
||||||
ok(ret == 0, "%d != 0\n", ret);
|
ok(ret == 0, "%d != 0\n", ret);
|
||||||
|
|
||||||
/* test various buffer sizes for GetObject */
|
/* test various buffer sizes for GetObject */
|
||||||
ret = GetObject(hbm, 0, NULL);
|
ret = GetObjectW(hbm, 0, NULL);
|
||||||
ok(ret == sizeof(bm), "wrong size %d\n", ret);
|
ok(ret == sizeof(bm), "wrong size %d\n", ret);
|
||||||
|
|
||||||
ret = GetObject(hbm, sizeof(*dsa) * 2, dsa);
|
ret = GetObjectW(hbm, sizeof(*dsa) * 2, dsa);
|
||||||
ok(ret == sizeof(*dsa), "wrong size %d\n", ret);
|
ok(ret == sizeof(*dsa), "wrong size %d\n", ret);
|
||||||
|
|
||||||
memset(&ds, 0xAA, sizeof(ds));
|
memset(&ds, 0xAA, sizeof(ds));
|
||||||
ret = GetObject(hbm, sizeof(ds), &ds);
|
ret = GetObjectW(hbm, sizeof(ds), &ds);
|
||||||
ok(ret == sizeof(ds), "wrong size %d\n", ret);
|
ok(ret == sizeof(ds), "wrong size %d\n", ret);
|
||||||
|
|
||||||
ok(ds.dsBm.bmBits == bits, "wrong bm.bmBits %p != %p\n", ds.dsBm.bmBits, bits);
|
ok(ds.dsBm.bmBits == bits, "wrong bm.bmBits %p != %p\n", ds.dsBm.bmBits, bits);
|
||||||
|
@ -326,16 +326,16 @@ static void test_dib_info(HBITMAP hbm, const void *bits, const BITMAPINFOHEADER
|
||||||
ok(ds.dsBmih.biYPelsPerMeter == bmih->biYPelsPerMeter, "%d != %d\n", ds.dsBmih.biYPelsPerMeter, bmih->biYPelsPerMeter);
|
ok(ds.dsBmih.biYPelsPerMeter == bmih->biYPelsPerMeter, "%d != %d\n", ds.dsBmih.biYPelsPerMeter, bmih->biYPelsPerMeter);
|
||||||
|
|
||||||
memset(&ds, 0xAA, sizeof(ds));
|
memset(&ds, 0xAA, sizeof(ds));
|
||||||
ret = GetObject(hbm, sizeof(ds) - 4, &ds);
|
ret = GetObjectW(hbm, sizeof(ds) - 4, &ds);
|
||||||
ok(ret == sizeof(ds.dsBm), "wrong size %d\n", ret);
|
ok(ret == sizeof(ds.dsBm), "wrong size %d\n", ret);
|
||||||
ok(ds.dsBm.bmWidth == bmih->biWidth, "%d != %d\n", ds.dsBmih.biWidth, bmih->biWidth);
|
ok(ds.dsBm.bmWidth == bmih->biWidth, "%d != %d\n", ds.dsBmih.biWidth, bmih->biWidth);
|
||||||
ok(ds.dsBm.bmHeight == abs(bmih->biHeight), "%d != %d\n", ds.dsBmih.biHeight, abs(bmih->biHeight));
|
ok(ds.dsBm.bmHeight == abs(bmih->biHeight), "%d != %d\n", ds.dsBmih.biHeight, abs(bmih->biHeight));
|
||||||
ok(ds.dsBm.bmBits == bits, "%p != %p\n", ds.dsBm.bmBits, bits);
|
ok(ds.dsBm.bmBits == bits, "%p != %p\n", ds.dsBm.bmBits, bits);
|
||||||
|
|
||||||
ret = GetObject(hbm, 0, &ds);
|
ret = GetObjectW(hbm, 0, &ds);
|
||||||
ok(ret == 0, "%d != 0\n", ret);
|
ok(ret == 0, "%d != 0\n", ret);
|
||||||
|
|
||||||
ret = GetObject(hbm, 1, &ds);
|
ret = GetObjectW(hbm, 1, &ds);
|
||||||
ok(ret == 0, "%d != 0\n", ret);
|
ok(ret == 0, "%d != 0\n", ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -457,7 +457,7 @@ static void test_dibsections(void)
|
||||||
|
|
||||||
hdib = CreateDIBSection(hdc, pbmi, DIB_RGB_COLORS, (void**)&bits, NULL, 0);
|
hdib = CreateDIBSection(hdc, pbmi, DIB_RGB_COLORS, (void**)&bits, NULL, 0);
|
||||||
ok(hdib != NULL, "CreateDIBSection error %d\n", GetLastError());
|
ok(hdib != NULL, "CreateDIBSection error %d\n", GetLastError());
|
||||||
ok(GetObject(hdib, sizeof(DIBSECTION), &dibsec) != 0, "GetObject failed for DIBSection\n");
|
ok(GetObjectW(hdib, sizeof(DIBSECTION), &dibsec) != 0, "GetObject failed for DIBSection\n");
|
||||||
ok(dibsec.dsBm.bmBits == bits, "dibsec.dsBits %p != bits %p\n", dibsec.dsBm.bmBits, bits);
|
ok(dibsec.dsBm.bmBits == bits, "dibsec.dsBits %p != bits %p\n", dibsec.dsBm.bmBits, bits);
|
||||||
|
|
||||||
/* test the DIB memory */
|
/* test the DIB memory */
|
||||||
|
@ -530,12 +530,12 @@ static void test_dibsections(void)
|
||||||
|
|
||||||
hdib = CreateDIBSection(hdc, pbmi, DIB_RGB_COLORS, (void**)&bits, NULL, 0);
|
hdib = CreateDIBSection(hdc, pbmi, DIB_RGB_COLORS, (void**)&bits, NULL, 0);
|
||||||
ok(hdib != NULL, "CreateDIBSection failed\n");
|
ok(hdib != NULL, "CreateDIBSection failed\n");
|
||||||
ok(GetObject(hdib, sizeof(DIBSECTION), &dibsec) != 0, "GetObject failed for DIBSection\n");
|
ok(GetObjectW(hdib, sizeof(DIBSECTION), &dibsec) != 0, "GetObject failed for DIBSection\n");
|
||||||
ok(dibsec.dsBmih.biClrUsed == 2,
|
ok(dibsec.dsBmih.biClrUsed == 2,
|
||||||
"created DIBSection: wrong biClrUsed field: %u, should be: %u\n", dibsec.dsBmih.biClrUsed, 2);
|
"created DIBSection: wrong biClrUsed field: %u, should be: %u\n", dibsec.dsBmih.biClrUsed, 2);
|
||||||
|
|
||||||
/* Test if the old BITMAPCOREINFO structure is supported */
|
/* Test if the old BITMAPCOREINFO structure is supported */
|
||||||
|
|
||||||
pbci->bmciHeader.bcSize = sizeof(BITMAPCOREHEADER);
|
pbci->bmciHeader.bcSize = sizeof(BITMAPCOREHEADER);
|
||||||
pbci->bmciHeader.bcBitCount = 0;
|
pbci->bmciHeader.bcBitCount = 0;
|
||||||
|
|
||||||
|
@ -626,7 +626,7 @@ static void test_dibsections(void)
|
||||||
}
|
}
|
||||||
hdib = CreateDIBSection(hdcmem, pbmi, DIB_RGB_COLORS, (void**)&bits, NULL, 0);
|
hdib = CreateDIBSection(hdcmem, pbmi, DIB_RGB_COLORS, (void**)&bits, NULL, 0);
|
||||||
ok(hdib != NULL, "CreateDIBSection failed\n");
|
ok(hdib != NULL, "CreateDIBSection failed\n");
|
||||||
ok(GetObject(hdib, sizeof(DIBSECTION), &dibsec) != 0, "GetObject failed for DIB Section\n");
|
ok(GetObjectW(hdib, sizeof(DIBSECTION), &dibsec) != 0, "GetObject failed for DIB Section\n");
|
||||||
ok(dibsec.dsBmih.biClrUsed == 16,
|
ok(dibsec.dsBmih.biClrUsed == 16,
|
||||||
"created DIBSection: wrong biClrUsed field: %u, should be: %u\n", dibsec.dsBmih.biClrUsed, 16);
|
"created DIBSection: wrong biClrUsed field: %u, should be: %u\n", dibsec.dsBmih.biClrUsed, 16);
|
||||||
test_dib_info(hdib, bits, &pbmi->bmiHeader);
|
test_dib_info(hdib, bits, &pbmi->bmiHeader);
|
||||||
|
@ -644,7 +644,7 @@ static void test_dibsections(void)
|
||||||
}
|
}
|
||||||
hdib = CreateDIBSection(hdcmem, pbmi, DIB_RGB_COLORS, (void**)&bits, NULL, 0);
|
hdib = CreateDIBSection(hdcmem, pbmi, DIB_RGB_COLORS, (void**)&bits, NULL, 0);
|
||||||
ok(hdib != NULL, "CreateDIBSection failed\n");
|
ok(hdib != NULL, "CreateDIBSection failed\n");
|
||||||
ok(GetObject(hdib, sizeof(DIBSECTION), &dibsec) != 0, "GetObject failed for DIB Section\n");
|
ok(GetObjectW(hdib, sizeof(DIBSECTION), &dibsec) != 0, "GetObject failed for DIB Section\n");
|
||||||
ok(dibsec.dsBmih.biClrUsed == 256,
|
ok(dibsec.dsBmih.biClrUsed == 256,
|
||||||
"created DIBSection: wrong biClrUsed field: %u, should be: %u\n", dibsec.dsBmih.biClrUsed, 256);
|
"created DIBSection: wrong biClrUsed field: %u, should be: %u\n", dibsec.dsBmih.biClrUsed, 256);
|
||||||
|
|
||||||
|
@ -678,7 +678,7 @@ static void test_dibsections(void)
|
||||||
oldpal = SelectPalette(hdc, hpal, TRUE);
|
oldpal = SelectPalette(hdc, hpal, TRUE);
|
||||||
hdib = CreateDIBSection(hdc, pbmi, DIB_PAL_COLORS, (void**)&bits, NULL, 0);
|
hdib = CreateDIBSection(hdc, pbmi, DIB_PAL_COLORS, (void**)&bits, NULL, 0);
|
||||||
ok(hdib != NULL, "CreateDIBSection failed\n");
|
ok(hdib != NULL, "CreateDIBSection failed\n");
|
||||||
ok(GetObject(hdib, sizeof(DIBSECTION), &dibsec) != 0, "GetObject failed for DIB Section\n");
|
ok(GetObjectW(hdib, sizeof(DIBSECTION), &dibsec) != 0, "GetObject failed for DIB Section\n");
|
||||||
ok(dibsec.dsBmih.biClrUsed == 2, "created DIBSection: wrong biClrUsed field: %u, should be: %u\n", dibsec.dsBmih.biClrUsed, 2);
|
ok(dibsec.dsBmih.biClrUsed == 2, "created DIBSection: wrong biClrUsed field: %u, should be: %u\n", dibsec.dsBmih.biClrUsed, 2);
|
||||||
|
|
||||||
/* The colour table has already been grabbed from the dc, so we select back the
|
/* The colour table has already been grabbed from the dc, so we select back the
|
||||||
|
@ -767,7 +767,7 @@ static void test_dibsections(void)
|
||||||
oldpal = SelectPalette(hdc, hpal, TRUE);
|
oldpal = SelectPalette(hdc, hpal, TRUE);
|
||||||
hdib = CreateDIBSection(hdc, pbmi, DIB_PAL_COLORS, (void**)&bits, NULL, 0);
|
hdib = CreateDIBSection(hdc, pbmi, DIB_PAL_COLORS, (void**)&bits, NULL, 0);
|
||||||
ok(hdib != NULL, "CreateDIBSection failed\n");
|
ok(hdib != NULL, "CreateDIBSection failed\n");
|
||||||
ok(GetObject(hdib, sizeof(DIBSECTION), &dibsec) != 0, "GetObject failed for DIB Section\n");
|
ok(GetObjectW(hdib, sizeof(DIBSECTION), &dibsec) != 0, "GetObject failed for DIB Section\n");
|
||||||
ok(dibsec.dsBmih.biClrUsed == 256, "created DIBSection: wrong biClrUsed field: %u, should be: %u\n", dibsec.dsBmih.biClrUsed, 256);
|
ok(dibsec.dsBmih.biClrUsed == 256, "created DIBSection: wrong biClrUsed field: %u, should be: %u\n", dibsec.dsBmih.biClrUsed, 256);
|
||||||
|
|
||||||
test_dib_info(hdib, bits, &pbmi->bmiHeader);
|
test_dib_info(hdib, bits, &pbmi->bmiHeader);
|
||||||
|
@ -805,7 +805,7 @@ static void test_dibsections(void)
|
||||||
pbmi->bmiHeader.biClrUsed = 142;
|
pbmi->bmiHeader.biClrUsed = 142;
|
||||||
hdib = CreateDIBSection(hdc, pbmi, DIB_PAL_COLORS, (void**)&bits, NULL, 0);
|
hdib = CreateDIBSection(hdc, pbmi, DIB_PAL_COLORS, (void**)&bits, NULL, 0);
|
||||||
ok(hdib != NULL, "CreateDIBSection failed\n");
|
ok(hdib != NULL, "CreateDIBSection failed\n");
|
||||||
ok(GetObject(hdib, sizeof(DIBSECTION), &dibsec) != 0, "GetObject failed for DIB Section\n");
|
ok(GetObjectW(hdib, sizeof(DIBSECTION), &dibsec) != 0, "GetObject failed for DIB Section\n");
|
||||||
ok(dibsec.dsBmih.biClrUsed == 256, "created DIBSection: wrong biClrUsed field: %u, should be: %u\n", dibsec.dsBmih.biClrUsed, 256);
|
ok(dibsec.dsBmih.biClrUsed == 256, "created DIBSection: wrong biClrUsed field: %u, should be: %u\n", dibsec.dsBmih.biClrUsed, 256);
|
||||||
|
|
||||||
test_dib_info(hdib, bits, &pbmi->bmiHeader);
|
test_dib_info(hdib, bits, &pbmi->bmiHeader);
|
||||||
|
@ -863,7 +863,7 @@ static void test_dibsections(void)
|
||||||
pbmi->bmiHeader.biClrUsed = 37;
|
pbmi->bmiHeader.biClrUsed = 37;
|
||||||
hdib = CreateDIBSection(hdc, pbmi, DIB_PAL_COLORS, (void**)&bits, NULL, 0);
|
hdib = CreateDIBSection(hdc, pbmi, DIB_PAL_COLORS, (void**)&bits, NULL, 0);
|
||||||
ok(hdib != NULL, "CreateDIBSection failed\n");
|
ok(hdib != NULL, "CreateDIBSection failed\n");
|
||||||
ok(GetObject(hdib, sizeof(DIBSECTION), &dibsec) != 0, "GetObject failed for DIB Section\n");
|
ok(GetObjectW(hdib, sizeof(DIBSECTION), &dibsec) != 0, "GetObject failed for DIB Section\n");
|
||||||
ok(dibsec.dsBmih.biClrUsed == 0, "created DIBSection: wrong biClrUsed field: %u\n", dibsec.dsBmih.biClrUsed);
|
ok(dibsec.dsBmih.biClrUsed == 0, "created DIBSection: wrong biClrUsed field: %u\n", dibsec.dsBmih.biClrUsed);
|
||||||
oldbm = SelectObject(hdcmem, hdib);
|
oldbm = SelectObject(hdcmem, hdib);
|
||||||
ret = GetDIBColorTable(hdcmem, 0, 256, rgb);
|
ret = GetDIBColorTable(hdcmem, 0, 256, rgb);
|
||||||
|
@ -1209,6 +1209,49 @@ static void test_dib_formats(void)
|
||||||
ret = GetDIBits(hdc, hbmp, 0, 0, NULL, bi, DIB_PAL_COLORS+2);
|
ret = GetDIBits(hdc, hbmp, 0, 0, NULL, bi, DIB_PAL_COLORS+2);
|
||||||
ok( !ret, "GetDIBits succeeded with DIB_PAL_COLORS+2\n" );
|
ok( !ret, "GetDIBits succeeded with DIB_PAL_COLORS+2\n" );
|
||||||
|
|
||||||
|
bi->bmiHeader.biWidth = 0x4000;
|
||||||
|
bi->bmiHeader.biHeight = 0x4000;
|
||||||
|
bi->bmiHeader.biBitCount = 1;
|
||||||
|
bi->bmiHeader.biCompression = BI_RGB;
|
||||||
|
hdib = CreateDIBSection(hdc, bi, DIB_RGB_COLORS, &bits, NULL, 0);
|
||||||
|
ok( hdib != NULL, "CreateDIBSection failed with large size\n" );
|
||||||
|
DeleteObject( hdib );
|
||||||
|
|
||||||
|
bi->bmiHeader.biWidth = 0x8001;
|
||||||
|
bi->bmiHeader.biHeight = 0x8001;
|
||||||
|
bi->bmiHeader.biBitCount = 32;
|
||||||
|
bi->bmiHeader.biCompression = BI_RGB;
|
||||||
|
hdib = CreateDIBSection(hdc, bi, DIB_RGB_COLORS, &bits, NULL, 0);
|
||||||
|
ok( hdib == NULL, "CreateDIBSection succeeded with size overflow\n" );
|
||||||
|
|
||||||
|
bi->bmiHeader.biWidth = 1;
|
||||||
|
bi->bmiHeader.biHeight = 0x40000001;
|
||||||
|
bi->bmiHeader.biBitCount = 32;
|
||||||
|
bi->bmiHeader.biCompression = BI_RGB;
|
||||||
|
hdib = CreateDIBSection(hdc, bi, DIB_RGB_COLORS, &bits, NULL, 0);
|
||||||
|
ok( hdib == NULL, "CreateDIBSection succeeded with size overflow\n" );
|
||||||
|
|
||||||
|
bi->bmiHeader.biWidth = 2;
|
||||||
|
bi->bmiHeader.biHeight = 0x40000001;
|
||||||
|
bi->bmiHeader.biBitCount = 16;
|
||||||
|
bi->bmiHeader.biCompression = BI_RGB;
|
||||||
|
hdib = CreateDIBSection(hdc, bi, DIB_RGB_COLORS, &bits, NULL, 0);
|
||||||
|
ok( hdib == NULL, "CreateDIBSection succeeded with size overflow\n" );
|
||||||
|
|
||||||
|
bi->bmiHeader.biWidth = 0x40000001;
|
||||||
|
bi->bmiHeader.biHeight = 1;
|
||||||
|
bi->bmiHeader.biBitCount = 32;
|
||||||
|
bi->bmiHeader.biCompression = BI_RGB;
|
||||||
|
hdib = CreateDIBSection(hdc, bi, DIB_RGB_COLORS, &bits, NULL, 0);
|
||||||
|
ok( hdib == NULL, "CreateDIBSection succeeded with size overflow\n" );
|
||||||
|
|
||||||
|
bi->bmiHeader.biWidth = 0x40000001;
|
||||||
|
bi->bmiHeader.biHeight = 4;
|
||||||
|
bi->bmiHeader.biBitCount = 8;
|
||||||
|
bi->bmiHeader.biCompression = BI_RGB;
|
||||||
|
hdib = CreateDIBSection(hdc, bi, DIB_RGB_COLORS, &bits, NULL, 0);
|
||||||
|
ok( hdib == NULL, "CreateDIBSection succeeded with size overflow\n" );
|
||||||
|
|
||||||
DeleteDC( memdc );
|
DeleteDC( memdc );
|
||||||
DeleteObject( hbmp );
|
DeleteObject( hbmp );
|
||||||
ReleaseDC( 0, hdc );
|
ReleaseDC( 0, hdc );
|
||||||
|
@ -1305,7 +1348,7 @@ static void test_mono_dibsection(void)
|
||||||
SetDIBitsToDevice(memdc, 0, 0, 10, 10, 0, 0, 0, 10, bits, pbmi, DIB_RGB_COLORS);
|
SetDIBitsToDevice(memdc, 0, 0, 10, 10, 0, 0, 0, 10, bits, pbmi, DIB_RGB_COLORS);
|
||||||
ok(ds_bits[0] == 0xaa, "out_bits %02x\n", ds_bits[0]);
|
ok(ds_bits[0] == 0xaa, "out_bits %02x\n", ds_bits[0]);
|
||||||
|
|
||||||
/* SetDIBitsToDevice with a inverted bmi -> normal dib section */
|
/* SetDIBitsToDevice with an inverted bmi -> normal dib section */
|
||||||
|
|
||||||
colors[0].rgbRed = 0xff;
|
colors[0].rgbRed = 0xff;
|
||||||
colors[0].rgbGreen = 0xff;
|
colors[0].rgbGreen = 0xff;
|
||||||
|
@ -1390,7 +1433,7 @@ static void test_mono_dibsection(void)
|
||||||
SetDIBitsToDevice(memdc, 0, 0, 10, 10, 0, 0, 0, 10, bits, pbmi, DIB_RGB_COLORS);
|
SetDIBitsToDevice(memdc, 0, 0, 10, 10, 0, 0, 0, 10, bits, pbmi, DIB_RGB_COLORS);
|
||||||
ok(ds_bits[0] == 0x55, "out_bits %02x\n", ds_bits[0]);
|
ok(ds_bits[0] == 0x55, "out_bits %02x\n", ds_bits[0]);
|
||||||
|
|
||||||
/* SetDIBitsToDevice with a inverted bmi -> inverted dib section */
|
/* SetDIBitsToDevice with an inverted bmi -> inverted dib section */
|
||||||
|
|
||||||
colors[0].rgbRed = 0xff;
|
colors[0].rgbRed = 0xff;
|
||||||
colors[0].rgbGreen = 0xff;
|
colors[0].rgbGreen = 0xff;
|
||||||
|
@ -1455,7 +1498,7 @@ static void test_bitmap(void)
|
||||||
hbmp = CreateBitmap(15, 15, 1, 1, NULL);
|
hbmp = CreateBitmap(15, 15, 1, 1, NULL);
|
||||||
assert(hbmp != NULL);
|
assert(hbmp != NULL);
|
||||||
|
|
||||||
ret = GetObject(hbmp, sizeof(bm), &bm);
|
ret = GetObjectW(hbmp, sizeof(bm), &bm);
|
||||||
ok(ret == sizeof(bm), "wrong size %d\n", ret);
|
ok(ret == sizeof(bm), "wrong size %d\n", ret);
|
||||||
|
|
||||||
ok(bm.bmType == 0, "wrong bm.bmType %d\n", bm.bmType);
|
ok(bm.bmType == 0, "wrong bm.bmType %d\n", bm.bmType);
|
||||||
|
@ -1482,7 +1525,7 @@ static void test_bitmap(void)
|
||||||
|
|
||||||
hbmp_old = SelectObject(hdc, hbmp);
|
hbmp_old = SelectObject(hdc, hbmp);
|
||||||
|
|
||||||
ret = GetObject(hbmp, sizeof(bm), &bm);
|
ret = GetObjectW(hbmp, sizeof(bm), &bm);
|
||||||
ok(ret == sizeof(bm), "wrong size %d\n", ret);
|
ok(ret == sizeof(bm), "wrong size %d\n", ret);
|
||||||
|
|
||||||
ok(bm.bmType == 0, "wrong bm.bmType %d\n", bm.bmType);
|
ok(bm.bmType == 0, "wrong bm.bmType %d\n", bm.bmType);
|
||||||
|
@ -1502,16 +1545,16 @@ static void test_bitmap(void)
|
||||||
ok(hbmp_old == hbmp, "wrong old bitmap %p\n", hbmp_old);
|
ok(hbmp_old == hbmp, "wrong old bitmap %p\n", hbmp_old);
|
||||||
|
|
||||||
/* test various buffer sizes for GetObject */
|
/* test various buffer sizes for GetObject */
|
||||||
ret = GetObject(hbmp, sizeof(*bma) * 2, bma);
|
ret = GetObjectW(hbmp, sizeof(*bma) * 2, bma);
|
||||||
ok(ret == sizeof(*bma), "wrong size %d\n", ret);
|
ok(ret == sizeof(*bma), "wrong size %d\n", ret);
|
||||||
|
|
||||||
ret = GetObject(hbmp, sizeof(bm) / 2, &bm);
|
ret = GetObjectW(hbmp, sizeof(bm) / 2, &bm);
|
||||||
ok(ret == 0, "%d != 0\n", ret);
|
ok(ret == 0, "%d != 0\n", ret);
|
||||||
|
|
||||||
ret = GetObject(hbmp, 0, &bm);
|
ret = GetObjectW(hbmp, 0, &bm);
|
||||||
ok(ret == 0, "%d != 0\n", ret);
|
ok(ret == 0, "%d != 0\n", ret);
|
||||||
|
|
||||||
ret = GetObject(hbmp, 1, &bm);
|
ret = GetObjectW(hbmp, 1, &bm);
|
||||||
ok(ret == 0, "%d != 0\n", ret);
|
ok(ret == 0, "%d != 0\n", ret);
|
||||||
|
|
||||||
DeleteObject(hbmp);
|
DeleteObject(hbmp);
|
||||||
|
@ -1523,7 +1566,7 @@ static COLORREF get_nearest( int r, int g, int b )
|
||||||
return (r*r + g*g + b*b < (255-r)*(255-r) + (255-g)*(255-g) + (255-b)*(255-b)) ? 0x000000 : 0xffffff;
|
return (r*r + g*g + b*b < (255-r)*(255-r) + (255-g)*(255-g) + (255-b)*(255-b)) ? 0x000000 : 0xffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int is_black_pen( COLORREF fg, COLORREF bg, int r, int g, int b )
|
static BOOL is_black_pen( COLORREF fg, COLORREF bg, int r, int g, int b )
|
||||||
{
|
{
|
||||||
if (fg == 0 || bg == 0xffffff) return RGB(r,g,b) != 0xffffff && RGB(r,g,b) != bg;
|
if (fg == 0 || bg == 0xffffff) return RGB(r,g,b) != 0xffffff && RGB(r,g,b) != bg;
|
||||||
return RGB(r,g,b) == 0x000000 || RGB(r,g,b) == bg;
|
return RGB(r,g,b) == 0x000000 || RGB(r,g,b) == bg;
|
||||||
|
@ -1532,8 +1575,9 @@ static int is_black_pen( COLORREF fg, COLORREF bg, int r, int g, int b )
|
||||||
static void test_bitmap_colors( HDC hdc, COLORREF fg, COLORREF bg, int r, int g, int b )
|
static void test_bitmap_colors( HDC hdc, COLORREF fg, COLORREF bg, int r, int g, int b )
|
||||||
{
|
{
|
||||||
static const WORD pattern_bits[] = { 0x5555, 0xaaaa, 0x5555, 0xaaaa, 0x5555, 0xaaaa, 0x5555, 0xaaaa };
|
static const WORD pattern_bits[] = { 0x5555, 0xaaaa, 0x5555, 0xaaaa, 0x5555, 0xaaaa, 0x5555, 0xaaaa };
|
||||||
BITMAPINFO *info;
|
char buffer[FIELD_OFFSET( BITMAPINFO, bmiColors ) + 256 * sizeof(RGBQUAD)];
|
||||||
RGBQUAD *colors;
|
BITMAPINFO *info = (BITMAPINFO *)buffer;
|
||||||
|
RGBQUAD *colors = info->bmiColors;
|
||||||
WORD bits[16];
|
WORD bits[16];
|
||||||
void *bits_ptr;
|
void *bits_ptr;
|
||||||
COLORREF res;
|
COLORREF res;
|
||||||
|
@ -1569,7 +1613,7 @@ static void test_bitmap_colors( HDC hdc, COLORREF fg, COLORREF bg, int r, int g,
|
||||||
old_brush = SelectObject( hdc, CreatePatternBrush( bitmap ));
|
old_brush = SelectObject( hdc, CreatePatternBrush( bitmap ));
|
||||||
PatBlt( hdc, 0, 0, 16, 16, PATCOPY );
|
PatBlt( hdc, 0, 0, 16, 16, PATCOPY );
|
||||||
GetBitmapBits( GetCurrentObject( hdc, OBJ_BITMAP ), sizeof(bits), bits );
|
GetBitmapBits( GetCurrentObject( hdc, OBJ_BITMAP ), sizeof(bits), bits );
|
||||||
ok( bits[0] == 0x5555,
|
ok( bits[0] == 0x5555 || broken(bits[0] == 0xaada) /* XP SP1 & 2003 SP0 */,
|
||||||
"wrong bits %04x for %02x,%02x,%02x fg %06x bg %06x\n", bits[0], r, g, b, fg, bg );
|
"wrong bits %04x for %02x,%02x,%02x fg %06x bg %06x\n", bits[0], r, g, b, fg, bg );
|
||||||
DeleteObject( SelectObject( hdc, old_brush ));
|
DeleteObject( SelectObject( hdc, old_brush ));
|
||||||
|
|
||||||
|
@ -1588,8 +1632,7 @@ static void test_bitmap_colors( HDC hdc, COLORREF fg, COLORREF bg, int r, int g,
|
||||||
"wrong bits %04x for %02x,%02x,%02x fg %06x bg %06x\n", bits[0], r, g, b, fg, bg );
|
"wrong bits %04x for %02x,%02x,%02x fg %06x bg %06x\n", bits[0], r, g, b, fg, bg );
|
||||||
|
|
||||||
/* mono DIB section */
|
/* mono DIB section */
|
||||||
info = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, FIELD_OFFSET( BITMAPINFO, bmiColors[256] ) );
|
memset( buffer, 0, sizeof(buffer) );
|
||||||
colors = info->bmiColors;
|
|
||||||
info->bmiHeader.biSize = sizeof(info->bmiHeader);
|
info->bmiHeader.biSize = sizeof(info->bmiHeader);
|
||||||
info->bmiHeader.biHeight = -16;
|
info->bmiHeader.biHeight = -16;
|
||||||
info->bmiHeader.biWidth = 16;
|
info->bmiHeader.biWidth = 16;
|
||||||
|
@ -1639,7 +1682,6 @@ static void test_bitmap_colors( HDC hdc, COLORREF fg, COLORREF bg, int r, int g,
|
||||||
"wrong bits %04x for %02x,%02x,%02x fg %06x bg %06x\n", bits[0], r, g, b, fg, bg );
|
"wrong bits %04x for %02x,%02x,%02x fg %06x bg %06x\n", bits[0], r, g, b, fg, bg );
|
||||||
DeleteDC( memdc );
|
DeleteDC( memdc );
|
||||||
DeleteObject( bitmap );
|
DeleteObject( bitmap );
|
||||||
HeapFree( GetProcessHeap(), 0, info );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_mono_bitmap(void)
|
static void test_mono_bitmap(void)
|
||||||
|
@ -1691,6 +1733,7 @@ static void test_mono_bitmap(void)
|
||||||
test_color( hdc, PALETTEINDEX(i), get_nearest( ent.peRed, ent.peGreen, ent.peBlue ));
|
test_color( hdc, PALETTEINDEX(i), get_nearest( ent.peRed, ent.peGreen, ent.peBlue ));
|
||||||
test_color( hdc, DIBINDEX(i), (i == 1) ? 0xffffff : 0x000000 );
|
test_color( hdc, DIBINDEX(i), (i == 1) ? 0xffffff : 0x000000 );
|
||||||
}
|
}
|
||||||
|
|
||||||
for (r = 0; r < 256; r += 15)
|
for (r = 0; r < 256; r += 15)
|
||||||
for (g = 0; g < 256; g += 15)
|
for (g = 0; g < 256; g += 15)
|
||||||
for (b = 0; b < 256; b += 15)
|
for (b = 0; b < 256; b += 15)
|
||||||
|
@ -1712,7 +1755,7 @@ static void test_bmBits(void)
|
||||||
ok(hbmp != NULL, "CreateBitmap failed\n");
|
ok(hbmp != NULL, "CreateBitmap failed\n");
|
||||||
|
|
||||||
memset(&bmp, 0xFF, sizeof(bmp));
|
memset(&bmp, 0xFF, sizeof(bmp));
|
||||||
ok(GetObject(hbmp, sizeof(bmp), &bmp) == sizeof(bmp),
|
ok(GetObjectW(hbmp, sizeof(bmp), &bmp) == sizeof(bmp),
|
||||||
"GetObject failed or returned a wrong structure size\n");
|
"GetObject failed or returned a wrong structure size\n");
|
||||||
ok(!bmp.bmBits, "bmBits must be NULL for device-dependent bitmaps\n");
|
ok(!bmp.bmBits, "bmBits must be NULL for device-dependent bitmaps\n");
|
||||||
|
|
||||||
|
@ -2048,7 +2091,7 @@ static void test_GetDIBits(void)
|
||||||
ok(hbmp != 0, "CreateBitmap failed\n");
|
ok(hbmp != 0, "CreateBitmap failed\n");
|
||||||
|
|
||||||
memset(&bm, 0xAA, sizeof(bm));
|
memset(&bm, 0xAA, sizeof(bm));
|
||||||
bytes = GetObject(hbmp, sizeof(bm), &bm);
|
bytes = GetObjectW(hbmp, sizeof(bm), &bm);
|
||||||
ok(bytes == sizeof(bm), "GetObject returned %d\n", bytes);
|
ok(bytes == sizeof(bm), "GetObject returned %d\n", bytes);
|
||||||
ok(bm.bmType == 0, "wrong bmType %d\n", bm.bmType);
|
ok(bm.bmType == 0, "wrong bmType %d\n", bm.bmType);
|
||||||
ok(bm.bmWidth == 16, "wrong bmWidth %d\n", bm.bmWidth);
|
ok(bm.bmWidth == 16, "wrong bmWidth %d\n", bm.bmWidth);
|
||||||
|
@ -2164,7 +2207,7 @@ static void test_GetDIBits(void)
|
||||||
lines, bm.bmHeight, GetLastError());
|
lines, bm.bmHeight, GetLastError());
|
||||||
|
|
||||||
memset(&bm, 0xAA, sizeof(bm));
|
memset(&bm, 0xAA, sizeof(bm));
|
||||||
bytes = GetObject(hbmp, sizeof(bm), &bm);
|
bytes = GetObjectW(hbmp, sizeof(bm), &bm);
|
||||||
ok(bytes == sizeof(bm), "GetObject returned %d\n", bytes);
|
ok(bytes == sizeof(bm), "GetObject returned %d\n", bytes);
|
||||||
ok(bm.bmType == 0, "wrong bmType %d\n", bm.bmType);
|
ok(bm.bmType == 0, "wrong bmType %d\n", bm.bmType);
|
||||||
ok(bm.bmWidth == 16, "wrong bmWidth %d\n", bm.bmWidth);
|
ok(bm.bmWidth == 16, "wrong bmWidth %d\n", bm.bmWidth);
|
||||||
|
@ -2640,7 +2683,7 @@ static void test_select_object(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(&bm, 0xAA, sizeof(bm));
|
memset(&bm, 0xAA, sizeof(bm));
|
||||||
bytes = GetObject(hbm, sizeof(bm), &bm);
|
bytes = GetObjectW(hbm, sizeof(bm), &bm);
|
||||||
ok(bytes == sizeof(bm), "GetObject returned %d\n", bytes);
|
ok(bytes == sizeof(bm), "GetObject returned %d\n", bytes);
|
||||||
ok(bm.bmType == 0, "wrong bmType %d\n", bm.bmType);
|
ok(bm.bmType == 0, "wrong bmType %d\n", bm.bmType);
|
||||||
ok(bm.bmWidth == 10, "wrong bmWidth %d\n", bm.bmWidth);
|
ok(bm.bmWidth == 10, "wrong bmWidth %d\n", bm.bmWidth);
|
||||||
|
@ -2668,12 +2711,12 @@ static void test_mono_1x1_bmp_dbg(HBITMAP hbmp, int line)
|
||||||
ret = GetObjectType(hbmp);
|
ret = GetObjectType(hbmp);
|
||||||
ok_(__FILE__, line)(ret == OBJ_BITMAP, "the object %p is not bitmap\n", hbmp);
|
ok_(__FILE__, line)(ret == OBJ_BITMAP, "the object %p is not bitmap\n", hbmp);
|
||||||
|
|
||||||
ret = GetObject(hbmp, 0, 0);
|
ret = GetObjectW(hbmp, 0, 0);
|
||||||
ok_(__FILE__, line)(ret == sizeof(BITMAP), "object size %d\n", ret);
|
ok_(__FILE__, line)(ret == sizeof(BITMAP), "object size %d\n", ret);
|
||||||
|
|
||||||
memset(&bm, 0xDA, sizeof(bm));
|
memset(&bm, 0xDA, sizeof(bm));
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
ret = GetObject(hbmp, sizeof(bm), &bm);
|
ret = GetObjectW(hbmp, sizeof(bm), &bm);
|
||||||
if (!ret) /* XP, only for curObj2 */ return;
|
if (!ret) /* XP, only for curObj2 */ return;
|
||||||
ok_(__FILE__, line)(ret == sizeof(BITMAP), "GetObject returned %d, error %u\n", ret, GetLastError());
|
ok_(__FILE__, line)(ret == sizeof(BITMAP), "GetObject returned %d, error %u\n", ret, GetLastError());
|
||||||
ok_(__FILE__, line)(bm.bmType == 0, "wrong bmType, expected 0 got %d\n", bm.bmType);
|
ok_(__FILE__, line)(bm.bmType == 0, "wrong bmType, expected 0 got %d\n", bm.bmType);
|
||||||
|
@ -2770,7 +2813,7 @@ todo_wine
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
ok(bm != 0, "CreateBitmapIndirect error %u\n", GetLastError());
|
ok(bm != 0, "CreateBitmapIndirect error %u\n", GetLastError());
|
||||||
GetObject(bm, sizeof(bmp), &bmp);
|
GetObjectW(bm, sizeof(bmp), &bmp);
|
||||||
if(i == 1) {
|
if(i == 1) {
|
||||||
expect = 1;
|
expect = 1;
|
||||||
} else if(i <= 4) {
|
} else if(i <= 4) {
|
||||||
|
@ -5585,7 +5628,7 @@ START_TEST(bitmap)
|
||||||
{
|
{
|
||||||
HMODULE hdll;
|
HMODULE hdll;
|
||||||
|
|
||||||
hdll = GetModuleHandle("gdi32.dll");
|
hdll = GetModuleHandleA("gdi32.dll");
|
||||||
pGdiAlphaBlend = (void*)GetProcAddress(hdll, "GdiAlphaBlend");
|
pGdiAlphaBlend = (void*)GetProcAddress(hdll, "GdiAlphaBlend");
|
||||||
pGdiGradientFill = (void*)GetProcAddress(hdll, "GdiGradientFill");
|
pGdiGradientFill = (void*)GetProcAddress(hdll, "GdiGradientFill");
|
||||||
pSetLayout = (void*)GetProcAddress(hdll, "SetLayout");
|
pSetLayout = (void*)GetProcAddress(hdll, "SetLayout");
|
||||||
|
|
|
@ -49,7 +49,7 @@ static void test_solidbrush(void)
|
||||||
|
|
||||||
for(i=0; i<sizeof(stock)/sizeof(stock[0]); i++) {
|
for(i=0; i<sizeof(stock)/sizeof(stock[0]); i++) {
|
||||||
solidBrush = CreateSolidBrush(stock[i].color);
|
solidBrush = CreateSolidBrush(stock[i].color);
|
||||||
|
|
||||||
if(stock[i].stockobj != -1) {
|
if(stock[i].stockobj != -1) {
|
||||||
stockBrush = GetStockObject(stock[i].stockobj);
|
stockBrush = GetStockObject(stock[i].stockobj);
|
||||||
ok(stockBrush!=solidBrush ||
|
ok(stockBrush!=solidBrush ||
|
||||||
|
@ -59,20 +59,20 @@ static void test_solidbrush(void)
|
||||||
else
|
else
|
||||||
stockBrush = NULL;
|
stockBrush = NULL;
|
||||||
memset(&br, 0, sizeof(br));
|
memset(&br, 0, sizeof(br));
|
||||||
ret = GetObject(solidBrush, sizeof(br), &br);
|
ret = GetObjectW(solidBrush, sizeof(br), &br);
|
||||||
ok( ret !=0, "GetObject on solid %s brush failed, error=%d\n", stock[i].name, GetLastError());
|
ok( ret !=0, "GetObject on solid %s brush failed, error=%d\n", stock[i].name, GetLastError());
|
||||||
ok(br.lbStyle==BS_SOLID, "%s brush has wrong style, got %d expected %d\n", stock[i].name, br.lbStyle, BS_SOLID);
|
ok(br.lbStyle==BS_SOLID, "%s brush has wrong style, got %d expected %d\n", stock[i].name, br.lbStyle, BS_SOLID);
|
||||||
ok(br.lbColor==stock[i].color, "%s brush has wrong color, got 0x%08x expected 0x%08x\n", stock[i].name, br.lbColor, stock[i].color);
|
ok(br.lbColor==stock[i].color, "%s brush has wrong color, got 0x%08x expected 0x%08x\n", stock[i].name, br.lbColor, stock[i].color);
|
||||||
|
|
||||||
if(stockBrush) {
|
if(stockBrush) {
|
||||||
/* Sanity check, make sure the colors being compared do in fact have a stock brush */
|
/* Sanity check, make sure the colors being compared do in fact have a stock brush */
|
||||||
ret = GetObject(stockBrush, sizeof(br), &br);
|
ret = GetObjectW(stockBrush, sizeof(br), &br);
|
||||||
ok( ret !=0, "GetObject on stock %s brush failed, error=%d\n", stock[i].name, GetLastError());
|
ok( ret !=0, "GetObject on stock %s brush failed, error=%d\n", stock[i].name, GetLastError());
|
||||||
ok(br.lbColor==stock[i].color, "stock %s brush unexpected color, got 0x%08x expected 0x%08x\n", stock[i].name, br.lbColor, stock[i].color);
|
ok(br.lbColor==stock[i].color, "stock %s brush unexpected color, got 0x%08x expected 0x%08x\n", stock[i].name, br.lbColor, stock[i].color);
|
||||||
}
|
}
|
||||||
|
|
||||||
DeleteObject(solidBrush);
|
DeleteObject(solidBrush);
|
||||||
ret = GetObject(solidBrush, sizeof(br), &br);
|
ret = GetObjectW(solidBrush, sizeof(br), &br);
|
||||||
ok(ret==0 ||
|
ok(ret==0 ||
|
||||||
broken(ret!=0), /* win9x */
|
broken(ret!=0), /* win9x */
|
||||||
"GetObject succeeded on a deleted %s brush\n", stock[i].name);
|
"GetObject succeeded on a deleted %s brush\n", stock[i].name);
|
||||||
|
@ -92,7 +92,7 @@ static void test_hatch_brush(void)
|
||||||
if (i < HS_API_MAX)
|
if (i < HS_API_MAX)
|
||||||
{
|
{
|
||||||
ok( brush != 0, "%u: CreateHatchBrush failed err %u\n", i, GetLastError() );
|
ok( brush != 0, "%u: CreateHatchBrush failed err %u\n", i, GetLastError() );
|
||||||
size = GetObject( brush, sizeof(lb), &lb );
|
size = GetObjectW( brush, sizeof(lb), &lb );
|
||||||
ok( size == sizeof(lb), "wrong size %u\n", size );
|
ok( size == sizeof(lb), "wrong size %u\n", size );
|
||||||
ok( lb.lbColor == RGB(12,34,56), "wrong color %08x\n", lb.lbColor );
|
ok( lb.lbColor == RGB(12,34,56), "wrong color %08x\n", lb.lbColor );
|
||||||
if (i <= HS_DIAGCROSS)
|
if (i <= HS_DIAGCROSS)
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
* Unit test suite for clipping
|
* Unit test suite for clipping
|
||||||
*
|
*
|
||||||
* Copyright 2005 Huw Davies
|
* Copyright 2005 Huw Davies
|
||||||
|
* Copyright 2008,2011,2013 Dmitry Timoshkov
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -388,6 +389,12 @@ static void test_memory_dc_clipping(void)
|
||||||
ret = GetClipRgn(hdc, hrgn);
|
ret = GetClipRgn(hdc, hrgn);
|
||||||
ok(ret == 0, "expected 0, got %d\n", ret);
|
ok(ret == 0, "expected 0, got %d\n", ret);
|
||||||
|
|
||||||
|
ret = ExtSelectClipRgn(hdc, 0, RGN_DIFF);
|
||||||
|
ok(ret == 0, "expected 0, got %d\n", ret);
|
||||||
|
|
||||||
|
ret = GetClipRgn(hdc, hrgn);
|
||||||
|
ok(ret == 0, "expected 0, got %d\n", ret);
|
||||||
|
|
||||||
SelectObject(hdc, hbmp);
|
SelectObject(hdc, hbmp);
|
||||||
|
|
||||||
ret = ExtSelectClipRgn(hdc, hrgn_empty, RGN_DIFF);
|
ret = ExtSelectClipRgn(hdc, hrgn_empty, RGN_DIFF);
|
||||||
|
@ -409,6 +416,17 @@ static void test_memory_dc_clipping(void)
|
||||||
ret = RectVisible( hdc, &rc );
|
ret = RectVisible( hdc, &rc );
|
||||||
ok( ret, "RectVisible failed for %d,%d-%d,%d\n", rc.left, rc.top, rc.right, rc.bottom );
|
ok( ret, "RectVisible failed for %d,%d-%d,%d\n", rc.left, rc.top, rc.right, rc.bottom );
|
||||||
|
|
||||||
|
ret = ExtSelectClipRgn(hdc, 0, RGN_DIFF);
|
||||||
|
ok(ret == 0, "expected 0, got %d\n", ret);
|
||||||
|
|
||||||
|
ret = GetClipRgn(hdc, hrgn);
|
||||||
|
ok(ret == 1, "expected 1, got %d\n", ret);
|
||||||
|
|
||||||
|
ret = GetRgnBox(hrgn, &rc);
|
||||||
|
ok(ret == SIMPLEREGION, "expected SIMPLEREGION, got %d\n", ret);
|
||||||
|
ok(rc.left == 0 && rc.top == 0 && rc.right == 100 && rc.bottom == 100,
|
||||||
|
"expected 0,0-100,100, got %d,%d-%d,%d\n", rc.left, rc.top, rc.right, rc.bottom);
|
||||||
|
|
||||||
DeleteDC(hdc);
|
DeleteDC(hdc);
|
||||||
DeleteObject(hrgn);
|
DeleteObject(hrgn);
|
||||||
DeleteObject(hrgn_empty);
|
DeleteObject(hrgn_empty);
|
||||||
|
@ -420,7 +438,7 @@ static void test_window_dc_clipping(void)
|
||||||
HDC hdc;
|
HDC hdc;
|
||||||
HRGN hrgn, hrgn_empty;
|
HRGN hrgn, hrgn_empty;
|
||||||
HWND hwnd;
|
HWND hwnd;
|
||||||
RECT rc;
|
RECT rc, virtual_rect;
|
||||||
int ret, screen_width, screen_height;
|
int ret, screen_width, screen_height;
|
||||||
|
|
||||||
/* Windows versions earlier than Win2k do not support the virtual screen metrics,
|
/* Windows versions earlier than Win2k do not support the virtual screen metrics,
|
||||||
|
@ -429,6 +447,8 @@ static void test_window_dc_clipping(void)
|
||||||
if(!screen_width) screen_width = GetSystemMetrics(SM_CXSCREEN);
|
if(!screen_width) screen_width = GetSystemMetrics(SM_CXSCREEN);
|
||||||
screen_height = GetSystemMetrics(SM_CYVIRTUALSCREEN);
|
screen_height = GetSystemMetrics(SM_CYVIRTUALSCREEN);
|
||||||
if(!screen_height) screen_height = GetSystemMetrics(SM_CYSCREEN);
|
if(!screen_height) screen_height = GetSystemMetrics(SM_CYSCREEN);
|
||||||
|
SetRect(&virtual_rect, GetSystemMetrics(SM_XVIRTUALSCREEN), GetSystemMetrics(SM_YVIRTUALSCREEN),
|
||||||
|
GetSystemMetrics(SM_XVIRTUALSCREEN) + screen_width, GetSystemMetrics(SM_YVIRTUALSCREEN) + screen_height);
|
||||||
|
|
||||||
trace("screen resolution %d x %d\n", screen_width, screen_height);
|
trace("screen resolution %d x %d\n", screen_width, screen_height);
|
||||||
|
|
||||||
|
@ -441,6 +461,12 @@ static void test_window_dc_clipping(void)
|
||||||
ret = GetClipRgn(hdc, hrgn);
|
ret = GetClipRgn(hdc, hrgn);
|
||||||
ok(ret == 0, "expected 0, got %d\n", ret);
|
ok(ret == 0, "expected 0, got %d\n", ret);
|
||||||
|
|
||||||
|
ret = ExtSelectClipRgn(hdc, 0, RGN_DIFF);
|
||||||
|
ok(ret == 0, "expected 0, got %d\n", ret);
|
||||||
|
|
||||||
|
ret = GetClipRgn(hdc, hrgn);
|
||||||
|
ok(ret == 0, "expected 0, got %d\n", ret);
|
||||||
|
|
||||||
ret = ExtSelectClipRgn(hdc, hrgn_empty, RGN_DIFF);
|
ret = ExtSelectClipRgn(hdc, hrgn_empty, RGN_DIFF);
|
||||||
ok(ret == SIMPLEREGION || (ret == COMPLEXREGION && GetSystemMetrics(SM_CMONITORS) > 1),
|
ok(ret == SIMPLEREGION || (ret == COMPLEXREGION && GetSystemMetrics(SM_CMONITORS) > 1),
|
||||||
"expected SIMPLEREGION, got %d\n", ret);
|
"expected SIMPLEREGION, got %d\n", ret);
|
||||||
|
@ -450,9 +476,9 @@ static void test_window_dc_clipping(void)
|
||||||
|
|
||||||
ret = GetRgnBox(hrgn, &rc);
|
ret = GetRgnBox(hrgn, &rc);
|
||||||
ok(ret == SIMPLEREGION, "expected SIMPLEREGION, got %d\n", ret);
|
ok(ret == SIMPLEREGION, "expected SIMPLEREGION, got %d\n", ret);
|
||||||
ok(rc.left == 0 && rc.top == 0 && rc.right == screen_width && rc.bottom == screen_height,
|
ok(EqualRect(&rc, &virtual_rect), "expected %d,%d-%d,%d, got %d,%d-%d,%d\n",
|
||||||
"expected 0,0-%d,%d, got %d,%d-%d,%d\n", screen_width, screen_height,
|
virtual_rect.left, virtual_rect.top, virtual_rect.right, virtual_rect.bottom,
|
||||||
rc.left, rc.top, rc.right, rc.bottom);
|
rc.left, rc.top, rc.right, rc.bottom);
|
||||||
|
|
||||||
SetRect( &rc, 10, 10, 20, 20 );
|
SetRect( &rc, 10, 10, 20, 20 );
|
||||||
ret = RectVisible( hdc, &rc );
|
ret = RectVisible( hdc, &rc );
|
||||||
|
@ -462,6 +488,18 @@ static void test_window_dc_clipping(void)
|
||||||
ret = RectVisible( hdc, &rc );
|
ret = RectVisible( hdc, &rc );
|
||||||
ok( ret, "RectVisible failed for %d,%d-%d,%d\n", rc.left, rc.top, rc.right, rc.bottom );
|
ok( ret, "RectVisible failed for %d,%d-%d,%d\n", rc.left, rc.top, rc.right, rc.bottom );
|
||||||
|
|
||||||
|
ret = ExtSelectClipRgn(hdc, 0, RGN_DIFF);
|
||||||
|
ok(ret == 0, "expected 0, got %d\n", ret);
|
||||||
|
|
||||||
|
ret = GetClipRgn(hdc, hrgn);
|
||||||
|
ok(ret == 1, "expected 1, got %d\n", ret);
|
||||||
|
|
||||||
|
ret = GetRgnBox(hrgn, &rc);
|
||||||
|
ok(ret == SIMPLEREGION, "expected SIMPLEREGION, got %d\n", ret);
|
||||||
|
ok(EqualRect(&rc, &virtual_rect), "expected %d,%d-%d,%d, got %d,%d-%d,%d\n",
|
||||||
|
virtual_rect.left, virtual_rect.top, virtual_rect.right, virtual_rect.bottom,
|
||||||
|
rc.left, rc.top, rc.right, rc.bottom);
|
||||||
|
|
||||||
ret = ExtSelectClipRgn(hdc, 0, RGN_COPY);
|
ret = ExtSelectClipRgn(hdc, 0, RGN_COPY);
|
||||||
ok(ret == SIMPLEREGION || (ret == COMPLEXREGION && GetSystemMetrics(SM_CMONITORS) > 1),
|
ok(ret == SIMPLEREGION || (ret == COMPLEXREGION && GetSystemMetrics(SM_CMONITORS) > 1),
|
||||||
"expected SIMPLEREGION, got %d\n", ret);
|
"expected SIMPLEREGION, got %d\n", ret);
|
||||||
|
|
|
@ -457,12 +457,46 @@ static void test_device_caps( HDC hdc, HDC ref_dc, const char *descr, int scale
|
||||||
type = GetClipBox( ref_dc, &rect );
|
type = GetClipBox( ref_dc, &rect );
|
||||||
if (type != COMPLEXREGION && type != ERROR) /* region can be complex on multi-monitor setups */
|
if (type != COMPLEXREGION && type != ERROR) /* region can be complex on multi-monitor setups */
|
||||||
{
|
{
|
||||||
|
RECT ref_rect;
|
||||||
|
|
||||||
ok( type == SIMPLEREGION, "GetClipBox returned %d on %s\n", type, descr );
|
ok( type == SIMPLEREGION, "GetClipBox returned %d on %s\n", type, descr );
|
||||||
ok( rect.left == 0 && rect.top == 0 &&
|
if (GetDeviceCaps( ref_dc, TECHNOLOGY ) == DT_RASDISPLAY)
|
||||||
rect.right == GetDeviceCaps( ref_dc, DESKTOPHORZRES ) &&
|
{
|
||||||
rect.bottom == GetDeviceCaps( ref_dc, DESKTOPVERTRES ),
|
if (GetSystemMetrics( SM_CXSCREEN ) != GetSystemMetrics( SM_CXVIRTUALSCREEN ))
|
||||||
"GetClipBox returned %d,%d,%d,%d on %s\n",
|
todo_wine ok( GetDeviceCaps( ref_dc, DESKTOPHORZRES ) == GetSystemMetrics( SM_CXSCREEN ),
|
||||||
rect.left, rect.top, rect.right, rect.bottom, descr );
|
"Got DESKTOPHORZRES %d on %s, expected %d\n",
|
||||||
|
GetDeviceCaps( ref_dc, DESKTOPHORZRES ), descr, GetSystemMetrics( SM_CXSCREEN ) );
|
||||||
|
else
|
||||||
|
ok( GetDeviceCaps( ref_dc, DESKTOPHORZRES ) == GetSystemMetrics( SM_CXSCREEN ),
|
||||||
|
"Got DESKTOPHORZRES %d on %s, expected %d\n",
|
||||||
|
GetDeviceCaps( ref_dc, DESKTOPHORZRES ), descr, GetSystemMetrics( SM_CXSCREEN ) );
|
||||||
|
|
||||||
|
if (GetSystemMetrics( SM_CYSCREEN ) != GetSystemMetrics( SM_CYVIRTUALSCREEN ))
|
||||||
|
todo_wine ok( GetDeviceCaps( ref_dc, DESKTOPVERTRES ) == GetSystemMetrics( SM_CYSCREEN ),
|
||||||
|
"Got DESKTOPVERTRES %d on %s, expected %d\n",
|
||||||
|
GetDeviceCaps( ref_dc, DESKTOPVERTRES ), descr, GetSystemMetrics( SM_CYSCREEN ) );
|
||||||
|
else
|
||||||
|
ok( GetDeviceCaps( ref_dc, DESKTOPVERTRES ) == GetSystemMetrics( SM_CYSCREEN ),
|
||||||
|
"Got DESKTOPVERTRES %d on %s, expected %d\n",
|
||||||
|
GetDeviceCaps( ref_dc, DESKTOPVERTRES ), descr, GetSystemMetrics( SM_CYSCREEN ) );
|
||||||
|
|
||||||
|
SetRect( &ref_rect, GetSystemMetrics( SM_XVIRTUALSCREEN ), GetSystemMetrics( SM_YVIRTUALSCREEN ),
|
||||||
|
GetSystemMetrics( SM_XVIRTUALSCREEN ) + GetSystemMetrics( SM_CXVIRTUALSCREEN ),
|
||||||
|
GetSystemMetrics( SM_YVIRTUALSCREEN ) + GetSystemMetrics( SM_CYVIRTUALSCREEN ) );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SetRect( &ref_rect, 0, 0, GetDeviceCaps( ref_dc, DESKTOPHORZRES ),
|
||||||
|
GetDeviceCaps( ref_dc, DESKTOPVERTRES ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GetDeviceCaps( ref_dc, TECHNOLOGY ) == DT_RASDISPLAY && GetObjectType( hdc ) != OBJ_ENHMETADC &&
|
||||||
|
(GetSystemMetrics( SM_XVIRTUALSCREEN ) || GetSystemMetrics( SM_YVIRTUALSCREEN )))
|
||||||
|
todo_wine ok( EqualRect( &rect, &ref_rect ), "GetClipBox returned %d,%d,%d,%d on %s\n",
|
||||||
|
rect.left, rect.top, rect.right, rect.bottom, descr );
|
||||||
|
else
|
||||||
|
ok( EqualRect( &rect, &ref_rect ), "GetClipBox returned %d,%d,%d,%d on %s\n",
|
||||||
|
rect.left, rect.top, rect.right, rect.bottom, descr );
|
||||||
}
|
}
|
||||||
|
|
||||||
SetBoundsRect( ref_dc, NULL, DCB_RESET | DCB_ACCUMULATE );
|
SetBoundsRect( ref_dc, NULL, DCB_RESET | DCB_ACCUMULATE );
|
||||||
|
@ -531,19 +565,19 @@ static void test_CreateCompatibleDC(void)
|
||||||
HDC hdc, hNewDC, hdcMetafile, screen_dc;
|
HDC hdc, hNewDC, hdcMetafile, screen_dc;
|
||||||
HBITMAP bitmap;
|
HBITMAP bitmap;
|
||||||
INT caps;
|
INT caps;
|
||||||
DEVMODE dm;
|
DEVMODEA dm;
|
||||||
|
|
||||||
bitmap = CreateBitmap( 10, 10, 1, 1, NULL );
|
bitmap = CreateBitmap( 10, 10, 1, 1, NULL );
|
||||||
|
|
||||||
bRet = EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &dm);
|
bRet = EnumDisplaySettingsA(NULL, ENUM_CURRENT_SETTINGS, &dm);
|
||||||
ok(bRet, "EnumDisplaySettingsEx failed\n");
|
ok(bRet, "EnumDisplaySettingsEx failed\n");
|
||||||
dm.u1.s1.dmScale = 200;
|
dm.u1.s1.dmScale = 200;
|
||||||
dm.dmFields |= DM_SCALE;
|
dm.dmFields |= DM_SCALE;
|
||||||
hdc = CreateDC( "DISPLAY", NULL, NULL, &dm );
|
hdc = CreateDCA( "DISPLAY", NULL, NULL, &dm );
|
||||||
|
|
||||||
screen_dc = CreateDC( "DISPLAY", NULL, NULL, NULL );
|
screen_dc = CreateDCA( "DISPLAY", NULL, NULL, NULL );
|
||||||
test_device_caps( hdc, screen_dc, "display dc", 1 );
|
test_device_caps( hdc, screen_dc, "display dc", 1 );
|
||||||
ResetDC( hdc, &dm );
|
ResetDCA( hdc, &dm );
|
||||||
test_device_caps( hdc, screen_dc, "display dc", 1 );
|
test_device_caps( hdc, screen_dc, "display dc", 1 );
|
||||||
DeleteDC( hdc );
|
DeleteDC( hdc );
|
||||||
|
|
||||||
|
@ -573,7 +607,7 @@ static void test_CreateCompatibleDC(void)
|
||||||
caps = GetDeviceCaps( hdcMetafile, TECHNOLOGY );
|
caps = GetDeviceCaps( hdcMetafile, TECHNOLOGY );
|
||||||
ok( caps == DT_RASDISPLAY, "wrong caps %u\n", caps );
|
ok( caps == DT_RASDISPLAY, "wrong caps %u\n", caps );
|
||||||
test_device_caps( hdcMetafile, hdc, "enhmetafile dc", 1 );
|
test_device_caps( hdcMetafile, hdc, "enhmetafile dc", 1 );
|
||||||
ResetDC( hdcMetafile, &dm );
|
ResetDCA( hdcMetafile, &dm );
|
||||||
test_device_caps( hdcMetafile, hdc, "enhmetafile dc", 1 );
|
test_device_caps( hdcMetafile, hdc, "enhmetafile dc", 1 );
|
||||||
DeleteDC( hNewDC );
|
DeleteDC( hNewDC );
|
||||||
DeleteEnhMetaFile( CloseEnhMetaFile( hdcMetafile ));
|
DeleteEnhMetaFile( CloseEnhMetaFile( hdcMetafile ));
|
||||||
|
@ -586,7 +620,7 @@ static void test_CreateCompatibleDC(void)
|
||||||
caps = GetDeviceCaps( hdcMetafile, TECHNOLOGY );
|
caps = GetDeviceCaps( hdcMetafile, TECHNOLOGY );
|
||||||
ok( caps == DT_METAFILE, "wrong caps %u\n", caps );
|
ok( caps == DT_METAFILE, "wrong caps %u\n", caps );
|
||||||
test_device_caps( hdcMetafile, screen_dc, "metafile dc", 1 );
|
test_device_caps( hdcMetafile, screen_dc, "metafile dc", 1 );
|
||||||
ResetDC( hdcMetafile, &dm );
|
ResetDCA( hdcMetafile, &dm );
|
||||||
test_device_caps( hdcMetafile, screen_dc, "metafile dc", 1 );
|
test_device_caps( hdcMetafile, screen_dc, "metafile dc", 1 );
|
||||||
DeleteMetaFile( CloseMetaFile( hdcMetafile ));
|
DeleteMetaFile( CloseMetaFile( hdcMetafile ));
|
||||||
|
|
||||||
|
@ -673,7 +707,7 @@ static void test_DeleteDC(void)
|
||||||
{
|
{
|
||||||
HWND hwnd;
|
HWND hwnd;
|
||||||
HDC hdc, hdc_test;
|
HDC hdc, hdc_test;
|
||||||
WNDCLASSEX cls;
|
WNDCLASSEXA cls;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
/* window DC */
|
/* window DC */
|
||||||
|
@ -727,7 +761,7 @@ static void test_DeleteDC(void)
|
||||||
memset(&cls, 0, sizeof(cls));
|
memset(&cls, 0, sizeof(cls));
|
||||||
cls.cbSize = sizeof(cls);
|
cls.cbSize = sizeof(cls);
|
||||||
cls.style = CS_CLASSDC;
|
cls.style = CS_CLASSDC;
|
||||||
cls.hInstance = GetModuleHandle(0);
|
cls.hInstance = GetModuleHandleA(NULL);
|
||||||
cls.lpszClassName = "Wine class DC";
|
cls.lpszClassName = "Wine class DC";
|
||||||
cls.lpfnWndProc = DefWindowProcA;
|
cls.lpfnWndProc = DefWindowProcA;
|
||||||
ret = RegisterClassExA(&cls);
|
ret = RegisterClassExA(&cls);
|
||||||
|
@ -766,7 +800,7 @@ static void test_DeleteDC(void)
|
||||||
ret = GetObjectType(hdc_test);
|
ret = GetObjectType(hdc_test);
|
||||||
ok(ret == OBJ_DC, "expected OBJ_DC, got %d\n", ret);
|
ok(ret == OBJ_DC, "expected OBJ_DC, got %d\n", ret);
|
||||||
|
|
||||||
ret = UnregisterClassA("Wine class DC", GetModuleHandle(NULL));
|
ret = UnregisterClassA("Wine class DC", GetModuleHandleA(NULL));
|
||||||
ok(ret, "UnregisterClassA failed\n");
|
ok(ret, "UnregisterClassA failed\n");
|
||||||
|
|
||||||
ret = GetObjectType(hdc_test);
|
ret = GetObjectType(hdc_test);
|
||||||
|
@ -777,7 +811,7 @@ todo_wine
|
||||||
memset(&cls, 0, sizeof(cls));
|
memset(&cls, 0, sizeof(cls));
|
||||||
cls.cbSize = sizeof(cls);
|
cls.cbSize = sizeof(cls);
|
||||||
cls.style = CS_OWNDC;
|
cls.style = CS_OWNDC;
|
||||||
cls.hInstance = GetModuleHandle(0);
|
cls.hInstance = GetModuleHandleA(NULL);
|
||||||
cls.lpszClassName = "Wine own DC";
|
cls.lpszClassName = "Wine own DC";
|
||||||
cls.lpfnWndProc = DefWindowProcA;
|
cls.lpfnWndProc = DefWindowProcA;
|
||||||
ret = RegisterClassExA(&cls);
|
ret = RegisterClassExA(&cls);
|
||||||
|
@ -811,7 +845,7 @@ todo_wine
|
||||||
|
|
||||||
DestroyWindow(hwnd);
|
DestroyWindow(hwnd);
|
||||||
|
|
||||||
ret = UnregisterClassA("Wine own DC", GetModuleHandle(NULL));
|
ret = UnregisterClassA("Wine own DC", GetModuleHandleA(NULL));
|
||||||
ok(ret, "UnregisterClassA failed\n");
|
ok(ret, "UnregisterClassA failed\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1262,7 +1296,7 @@ static HDC create_printer_dc(int scale, BOOL reset)
|
||||||
dbuf->pDriverPath, pbuf->pPrinterName, pbuf->pPortName,
|
dbuf->pDriverPath, pbuf->pPrinterName, pbuf->pPortName,
|
||||||
is_postscript_printer(hdc) ? "" : "NOT " );
|
is_postscript_printer(hdc) ? "" : "NOT " );
|
||||||
|
|
||||||
if (reset) ResetDC( hdc, pbuf->pDevMode );
|
if (reset) ResetDCA( hdc, pbuf->pDevMode );
|
||||||
done:
|
done:
|
||||||
HeapFree( GetProcessHeap(), 0, dbuf );
|
HeapFree( GetProcessHeap(), 0, dbuf );
|
||||||
HeapFree( GetProcessHeap(), 0, pbuf );
|
HeapFree( GetProcessHeap(), 0, pbuf );
|
||||||
|
@ -1346,7 +1380,7 @@ static void test_printer_dc(void)
|
||||||
|
|
||||||
START_TEST(dc)
|
START_TEST(dc)
|
||||||
{
|
{
|
||||||
pSetLayout = (void *)GetProcAddress( GetModuleHandle("gdi32.dll"), "SetLayout");
|
pSetLayout = (void *)GetProcAddress( GetModuleHandleA("gdi32.dll"), "SetLayout");
|
||||||
test_dc_values();
|
test_dc_values();
|
||||||
test_savedc();
|
test_savedc();
|
||||||
test_savedc_2();
|
test_savedc_2();
|
||||||
|
|
|
@ -136,8 +136,8 @@ static const char *sha1_graphics_a8r8g8b8[] =
|
||||||
"d7dd4700f49808541bba99244b7eb5840e0a2439",
|
"d7dd4700f49808541bba99244b7eb5840e0a2439",
|
||||||
"af99228aa4cfbd1f61bd824db046144a3c6c2ed7",
|
"af99228aa4cfbd1f61bd824db046144a3c6c2ed7",
|
||||||
"568f87f0194ca19b69a5b2bcdef795d89c5721ce",
|
"568f87f0194ca19b69a5b2bcdef795d89c5721ce",
|
||||||
"50d19fe68b2ab4fdbb5d590cdca6dc84a95bab68",
|
"a37810f46dee8741fe5adbb3f1f2e87012ffc929",
|
||||||
"a1fde1094d2c19ddb20871842dae1da73618709e",
|
"50a09678c49c208f71d40452daca5411279aa674",
|
||||||
"e462052a03dbe4ec3814db7700e166d00d4d686f",
|
"e462052a03dbe4ec3814db7700e166d00d4d686f",
|
||||||
"a27917d4db49ce77989fae246015aeb2a28520ee",
|
"a27917d4db49ce77989fae246015aeb2a28520ee",
|
||||||
"657514a4ca1f2b6ca7a125ad58dfed82099a37d1",
|
"657514a4ca1f2b6ca7a125ad58dfed82099a37d1",
|
||||||
|
@ -209,8 +209,8 @@ static const char *sha1_graphics_a8r8g8b8_bitfields[] =
|
||||||
"d7dd4700f49808541bba99244b7eb5840e0a2439",
|
"d7dd4700f49808541bba99244b7eb5840e0a2439",
|
||||||
"af99228aa4cfbd1f61bd824db046144a3c6c2ed7",
|
"af99228aa4cfbd1f61bd824db046144a3c6c2ed7",
|
||||||
"568f87f0194ca19b69a5b2bcdef795d89c5721ce",
|
"568f87f0194ca19b69a5b2bcdef795d89c5721ce",
|
||||||
"50d19fe68b2ab4fdbb5d590cdca6dc84a95bab68",
|
"a37810f46dee8741fe5adbb3f1f2e87012ffc929",
|
||||||
"a1fde1094d2c19ddb20871842dae1da73618709e",
|
"50a09678c49c208f71d40452daca5411279aa674",
|
||||||
"0cda6b3297003b3ccd6d5baa17e1ca9bb7c56f08",
|
"0cda6b3297003b3ccd6d5baa17e1ca9bb7c56f08",
|
||||||
"b2c8e1ebb9435031fe068442f479d1304096e79f",
|
"b2c8e1ebb9435031fe068442f479d1304096e79f",
|
||||||
"657514a4ca1f2b6ca7a125ad58dfed82099a37d1",
|
"657514a4ca1f2b6ca7a125ad58dfed82099a37d1",
|
||||||
|
@ -282,8 +282,8 @@ static const char *sha1_graphics_a8b8g8r8[] =
|
||||||
"86c84cc8306975edecc6d4a89a8aff29f59b55a7",
|
"86c84cc8306975edecc6d4a89a8aff29f59b55a7",
|
||||||
"af99228aa4cfbd1f61bd824db046144a3c6c2ed7",
|
"af99228aa4cfbd1f61bd824db046144a3c6c2ed7",
|
||||||
"25675c30adfe24d6cae60793b156dfdaa36ac3ba",
|
"25675c30adfe24d6cae60793b156dfdaa36ac3ba",
|
||||||
"1cb1810b127f509117b38d62a15b67b2347b9145",
|
"849d4abf4b690128a5f70e9b8ac78f20c437de06",
|
||||||
"f05b3294f25de5fa6d1114104bca97871052ea5a",
|
"e768fc9f3167ef3144a4cfb1e20126a577f7dd5b",
|
||||||
"87f57a31253a38dbf3dc3070473328fa04b68a48",
|
"87f57a31253a38dbf3dc3070473328fa04b68a48",
|
||||||
"db64cc4d830fc35ed170b53943e722b2342954d4",
|
"db64cc4d830fc35ed170b53943e722b2342954d4",
|
||||||
"9988ceca44dafbee247aece1f027c06c27c01652",
|
"9988ceca44dafbee247aece1f027c06c27c01652",
|
||||||
|
@ -355,8 +355,8 @@ static const char *sha1_graphics_r10g10b10[] =
|
||||||
"fc0c32afb719295f28bcfef22803bef94f798e20",
|
"fc0c32afb719295f28bcfef22803bef94f798e20",
|
||||||
"36f6db4fbe2a1630a7597d3a446f2902755c96ef",
|
"36f6db4fbe2a1630a7597d3a446f2902755c96ef",
|
||||||
"d3f08946300e1700865042aed121870e292d1095",
|
"d3f08946300e1700865042aed121870e292d1095",
|
||||||
"467ff4af1e105855874f27fbf84d1d2b0417ab5d",
|
"4782df8e24127e66a434b4e839adebf2dbb223fb",
|
||||||
"fb0dcff8a67a88313557ee8b588aaa2004fe7b8b",
|
"739707cc85ca63e0580c79618dc0bb8a4a338d95",
|
||||||
"8ea5d7e4bebc40a1d91b04b12e1c11a42c188095",
|
"8ea5d7e4bebc40a1d91b04b12e1c11a42c188095",
|
||||||
"317521e576801acaea62c76fe16813cdfe20f4ad",
|
"317521e576801acaea62c76fe16813cdfe20f4ad",
|
||||||
"ce0fc29bb0281d6c955d64e239254ef9e6dbc06d",
|
"ce0fc29bb0281d6c955d64e239254ef9e6dbc06d",
|
||||||
|
@ -428,8 +428,8 @@ static const char *sha1_graphics_r6g6b6[] =
|
||||||
"49341c297a887186bd47d7465d827ab3147f05e3",
|
"49341c297a887186bd47d7465d827ab3147f05e3",
|
||||||
"325279e76367200d3fd7194d81c09fd139988ece",
|
"325279e76367200d3fd7194d81c09fd139988ece",
|
||||||
"c3def160a1e847605ff0fc7edd30397fa90635a0",
|
"c3def160a1e847605ff0fc7edd30397fa90635a0",
|
||||||
"a9c2158329c207638cfd2c82cd8a6218efdb28d2",
|
"2b3e87e0b705b03c7c08f403409ab82cce095ba1",
|
||||||
"7f0c4e6874f0c36cee64ff5dec76258ca8822cb2",
|
"45c08e11fffc78b2a3574263419e0cb7f8cd9b45",
|
||||||
"aecb242c31f31a90f071b6455ea7d808d4ea22e3",
|
"aecb242c31f31a90f071b6455ea7d808d4ea22e3",
|
||||||
"77ea86e51a94b11a8081b29696cb4115687843e3",
|
"77ea86e51a94b11a8081b29696cb4115687843e3",
|
||||||
"d67b897cad72d31e75359094007b1346fd8806ea",
|
"d67b897cad72d31e75359094007b1346fd8806ea",
|
||||||
|
@ -501,8 +501,8 @@ static const char *sha1_graphics_24[] =
|
||||||
"b25ba91487ec945410deb2b51bc1156890c032a8",
|
"b25ba91487ec945410deb2b51bc1156890c032a8",
|
||||||
"d347ca5c6c4b6a61389247c3b6f61564033e8c25",
|
"d347ca5c6c4b6a61389247c3b6f61564033e8c25",
|
||||||
"ee315634ed92da3a32c2675ecd1b369471c60936",
|
"ee315634ed92da3a32c2675ecd1b369471c60936",
|
||||||
"6776e0612410e7e200c853721b4ab6ad8b6b81f5",
|
"099c688a920f606655b485e8f0a433dc811bc976",
|
||||||
"620a5a520d81971a2d9c30b8d836ba696e11b8dd",
|
"9c044a733335bca43766bda2b317249309155079",
|
||||||
"354b92008a8409c62d0fa1dff1532c5943aa37a2",
|
"354b92008a8409c62d0fa1dff1532c5943aa37a2",
|
||||||
"8dc9cb7deae5c24d1eae004d53893fa6caf4723c",
|
"8dc9cb7deae5c24d1eae004d53893fa6caf4723c",
|
||||||
"cf311a96d41bd98fdbdfb5dfaac4ba1ba9b7d6da",
|
"cf311a96d41bd98fdbdfb5dfaac4ba1ba9b7d6da",
|
||||||
|
@ -578,8 +578,8 @@ static const char *sha1_graphics_r5g5b5[] =
|
||||||
"3772003c7fb420003512d0c437b3659d96d89ce4",
|
"3772003c7fb420003512d0c437b3659d96d89ce4",
|
||||||
"dab47c9dc149e570045d699598b14a613bf319b3",
|
"dab47c9dc149e570045d699598b14a613bf319b3",
|
||||||
"2daca4d26a086ed34894693be0b0374402232809",
|
"2daca4d26a086ed34894693be0b0374402232809",
|
||||||
"e313ae8f7261b88999757ed0c6f26df85b4f01a5",
|
"904f1d82159bcf5485f323bd12b859dc5e83f8eb",
|
||||||
"47d0bab8664ae0aaa927495d07bb3537cce35f16",
|
"5bd29f94844351e9a5bd01f25d85608b9b0701b2",
|
||||||
"295ec16530126046790fb734e99f86f5b3b74ed8",
|
"295ec16530126046790fb734e99f86f5b3b74ed8",
|
||||||
"d98b0561010606b55a1b9b85fbc93640f681d256",
|
"d98b0561010606b55a1b9b85fbc93640f681d256",
|
||||||
"1c1499051860b7caa25173b328ca9c862f01dd1a",
|
"1c1499051860b7caa25173b328ca9c862f01dd1a",
|
||||||
|
@ -650,8 +650,8 @@ static const char *sha1_graphics_r4g4b4[] =
|
||||||
"f0acb3cfcda62e95bee5f7bc8830ffeb3dd7e5a7",
|
"f0acb3cfcda62e95bee5f7bc8830ffeb3dd7e5a7",
|
||||||
"07b10c3f191d0a93e5e5694aae37dcad407e10f5",
|
"07b10c3f191d0a93e5e5694aae37dcad407e10f5",
|
||||||
"f7900e60347029876ba55e8f0c4c02e89deb36b6",
|
"f7900e60347029876ba55e8f0c4c02e89deb36b6",
|
||||||
"7d80b8289da8a65931f03c74a9ef0aff5f8eb551",
|
"f373a5f37b82e7523c64c08eb509b6191e49b173",
|
||||||
"a7a986097e5b553c71bd93fd0ec6037e6bd0f2d1",
|
"9f0760a05190c9edf9ce2e8be6aaa5557601fe91",
|
||||||
"7587a9c87cab1eca827807f351bb67ca184d1ac5",
|
"7587a9c87cab1eca827807f351bb67ca184d1ac5",
|
||||||
"b53ef0b5c674822e784903a9dbdd3b386d9f2350",
|
"b53ef0b5c674822e784903a9dbdd3b386d9f2350",
|
||||||
"5505d2ed20dc61ffe48832ecf5329162a5ceb734",
|
"5505d2ed20dc61ffe48832ecf5329162a5ceb734",
|
||||||
|
@ -728,8 +728,8 @@ static const char *sha1_graphics_8_color[] =
|
||||||
"9ae38bb94c7b4c0c6dfebbee23d1de4db9b77488",
|
"9ae38bb94c7b4c0c6dfebbee23d1de4db9b77488",
|
||||||
"678979a45126a76eb629992cd64734862f53a555",
|
"678979a45126a76eb629992cd64734862f53a555",
|
||||||
"2f7ba8803604c032cb1a1228bc021f0f1c03e245",
|
"2f7ba8803604c032cb1a1228bc021f0f1c03e245",
|
||||||
"9b1cc7b24f8ce15db2af7f4aa8cde8687784dfa2",
|
"52e7c2f8b01592898c13f1e7633881e350244209",
|
||||||
"cc4a4cea622d825700bccef7d90a5a447d9ca39d",
|
"d9d5556b77301952b4caf113337720966bc8e1f5",
|
||||||
"e58d9c0acf0219d0839e1dbd162e08a765ed7f0f",
|
"e58d9c0acf0219d0839e1dbd162e08a765ed7f0f",
|
||||||
"34ca0f9660e1889f9f2c0deb80535d3c4f349fa4",
|
"34ca0f9660e1889f9f2c0deb80535d3c4f349fa4",
|
||||||
"2c07272462c68cf5944b03e2aa049475b99143c5",
|
"2c07272462c68cf5944b03e2aa049475b99143c5",
|
||||||
|
@ -810,9 +810,9 @@ static const char *sha1_graphics_8_grayscale[] =
|
||||||
"fb63bbb2f944fb63ed2d7399f07b168740c1034b",
|
"fb63bbb2f944fb63ed2d7399f07b168740c1034b",
|
||||||
"3685c9ae95118a83db3569832c29753276fa1264",
|
"3685c9ae95118a83db3569832c29753276fa1264",
|
||||||
"09640bad951c33e7d70a1fced83b1869f65b3fc5",
|
"09640bad951c33e7d70a1fced83b1869f65b3fc5",
|
||||||
"cb9ea8137eca1450e049879772f5c11a0e11ff0a",
|
"5eb00252664ec39e61359adb1dade4906a87a248",
|
||||||
"a4b04ed35484de0de61832a8a28bbc7def645622",
|
"ee7b9b292ea9fb559ef5ebf6a2a5586d38c7f854",
|
||||||
"515897610714251dd3b54f54fe76a9ed3fd12c53",
|
"dcad1a146c1d0ec2c4cc7f64bd4f45c57a604bfe",
|
||||||
"0ca8775d9a61ccc251d1e6f2e3cfd26a24ae24a2",
|
"0ca8775d9a61ccc251d1e6f2e3cfd26a24ae24a2",
|
||||||
"17ae603c199a5d6695d198a7f36e6d7263990951",
|
"17ae603c199a5d6695d198a7f36e6d7263990951",
|
||||||
"1918a33f59d3500204ffc573318a39e9ff754221",
|
"1918a33f59d3500204ffc573318a39e9ff754221",
|
||||||
|
@ -887,8 +887,8 @@ static const char *sha1_graphics_8[] =
|
||||||
"31e667c2dbb81dcf81d01cb88f794e88ddb90ff2",
|
"31e667c2dbb81dcf81d01cb88f794e88ddb90ff2",
|
||||||
"465d9cd0a77ab4fcf035aa67544b2a26269e0b09",
|
"465d9cd0a77ab4fcf035aa67544b2a26269e0b09",
|
||||||
"600d6b2713d5e4c0d90c02660245ed26c7ae3033",
|
"600d6b2713d5e4c0d90c02660245ed26c7ae3033",
|
||||||
"d4f3a5ea033adc405c44e1ca137dc908c606dad6",
|
"0025a440866a404523a8a20e79a8891e45a2ff56",
|
||||||
"7103d428ec9a959778120fd6f0dc62dd608ddd63",
|
"c04d335933895f836f0a28c1e3f7f444352c3b8e",
|
||||||
"bd28d77cd85b20a2384d6b25082cfd884bba683e",
|
"bd28d77cd85b20a2384d6b25082cfd884bba683e",
|
||||||
"7e591ec8ae9bb61c3a443c93f071cab2b8978394",
|
"7e591ec8ae9bb61c3a443c93f071cab2b8978394",
|
||||||
"f81c70b6ee2d4690f9f7c797c66582b176f8dcef",
|
"f81c70b6ee2d4690f9f7c797c66582b176f8dcef",
|
||||||
|
@ -959,8 +959,8 @@ static const char *sha1_graphics_4[] =
|
||||||
"df5feb905a31c288008cf5e82d73ac818a160d82",
|
"df5feb905a31c288008cf5e82d73ac818a160d82",
|
||||||
"d8af3868c66c7d6dac35ec8ee0317b38a6910bb1",
|
"d8af3868c66c7d6dac35ec8ee0317b38a6910bb1",
|
||||||
"ec8e2aebfb4a1c28ebcd0e053b9e4d8638b50951",
|
"ec8e2aebfb4a1c28ebcd0e053b9e4d8638b50951",
|
||||||
"1a23839d71d2379ed4e709a5ae6c14639fbe3ab8",
|
"ccf8d11b1e81895e9781f17c227c821228d8714b",
|
||||||
"09f8416a780d80be61cbda3d8a05aee418d0ea00",
|
"f751e26578193afe6a727ee2a52318c404c56555",
|
||||||
"28a6b9f7927e99e53cf46f0333d29168cb10e920",
|
"28a6b9f7927e99e53cf46f0333d29168cb10e920",
|
||||||
"029552113292cc110fd6b7888e766628950aaeef",
|
"029552113292cc110fd6b7888e766628950aaeef",
|
||||||
"297f6ad15200bffbf15198324ee8f27a61a6f2d4",
|
"297f6ad15200bffbf15198324ee8f27a61a6f2d4",
|
||||||
|
@ -1031,8 +1031,8 @@ static const char *sha1_graphics_4_grayscale[] =
|
||||||
"f8681c09f1abfc38d31e47622cb8798cd896a00e",
|
"f8681c09f1abfc38d31e47622cb8798cd896a00e",
|
||||||
"b5ee51cfc73acb59a2f6124509ea236f8fc7f9f7",
|
"b5ee51cfc73acb59a2f6124509ea236f8fc7f9f7",
|
||||||
"d374d4d92c940ae42a9b42c14d744341b68a8c14",
|
"d374d4d92c940ae42a9b42c14d744341b68a8c14",
|
||||||
"43560b856907f552df3b9dd1f91e1aa8ab9ff17e",
|
"06a6a224be0f5cdc51ac4704f9f57fc1f3813d6f",
|
||||||
"8cefa6dcb658487d0715598d5d120677dbfdab42",
|
"c47c2dc806b6b8ff28f300949695d013a46c0083",
|
||||||
"ada3b7c34946e584dcdf4203e07cfa3dad02bc63",
|
"ada3b7c34946e584dcdf4203e07cfa3dad02bc63",
|
||||||
"c2f61571b067a44b30f56b4658c9606f0edfc0f3",
|
"c2f61571b067a44b30f56b4658c9606f0edfc0f3",
|
||||||
"58f400c9bb78e49a879276fb049edfc9c981740a",
|
"58f400c9bb78e49a879276fb049edfc9c981740a",
|
||||||
|
@ -1052,14 +1052,14 @@ static const char *sha1_graphics_4_grayscale[] =
|
||||||
static const char *sha1_graphics_1[] =
|
static const char *sha1_graphics_1[] =
|
||||||
{
|
{
|
||||||
"23366004515f3bc46796ea505d748f8d0f97fbe1",
|
"23366004515f3bc46796ea505d748f8d0f97fbe1",
|
||||||
"ad674a4104c6a1eacaee8f20effdfe31775b4409",
|
"61ade9054d4477fb89cf830539a5e8b4e45f0688",
|
||||||
"a7cc69f957d7b533a0a330859a143d701daac73c",
|
"ac530c5dbaf837e15b2337347e974184fad73643",
|
||||||
"a955bf088c5edb129289ce65caace48ec95632e4",
|
"95fdcda26262d5948a9ade77d83fd698e0031050",
|
||||||
"5316d3c558c254479883133cf58cd07ab521d3f0",
|
"1dd5cee06af78d026e5da8bfe3f45e1cf51faa13",
|
||||||
"fcbfdb5d60716ea05f2d1896fae7a6e7a8249d35",
|
"f6b61ecf03ad11752775faca1d4404c6bb5065f5",
|
||||||
"2c140b39cc8d21358fded8959cd655f03d7f0f89",
|
"d7ad44d6f377598268e9968333ae2cf23a0715ca",
|
||||||
"121423a38b4ac4743bd516e0a7e88a3863796313",
|
"5871339cd7e6cee12d4dc45934a89071c73efe6b",
|
||||||
"7c17635c6c7f62dbf8fd4773d0c503358553d2c7",
|
"69e9b85b34caf736069ba91e57a5c3fa7c891653",
|
||||||
"21d5d9e47bb07de2cf7bc99b7725390d03a6cde6",
|
"21d5d9e47bb07de2cf7bc99b7725390d03a6cde6",
|
||||||
"f69ee65ea25676429a28eea79b5b9cb9206b8d01",
|
"f69ee65ea25676429a28eea79b5b9cb9206b8d01",
|
||||||
"39ff81f77ef4ee772367ed1a63785987c060126e",
|
"39ff81f77ef4ee772367ed1a63785987c060126e",
|
||||||
|
@ -1122,7 +1122,7 @@ static const char *sha1_graphics_1[] =
|
||||||
"88763f8e8fcf4f78fa864325791a9dd35a0bd279",
|
"88763f8e8fcf4f78fa864325791a9dd35a0bd279",
|
||||||
"013cee26bac8f815eadad4bfc012d9b5d01c3b7f",
|
"013cee26bac8f815eadad4bfc012d9b5d01c3b7f",
|
||||||
"44a28536466dc895feb824b23dfd4a47c6948af8",
|
"44a28536466dc895feb824b23dfd4a47c6948af8",
|
||||||
"f0316a5765a0404760e94cd05b7dc956cae07d26",
|
"17468a3789f0a6d65c302bda735a01dc2c1a74d9",
|
||||||
"781d8c5cbc28591fd48fce06f984c502fdc6b363",
|
"781d8c5cbc28591fd48fce06f984c502fdc6b363",
|
||||||
"df510792a7790cc699532b1420d43c6d4da2ae2f",
|
"df510792a7790cc699532b1420d43c6d4da2ae2f",
|
||||||
"55c26d22f11d80b73383fa57d0fac552d705b092",
|
"55c26d22f11d80b73383fa57d0fac552d705b092",
|
||||||
|
@ -1131,14 +1131,14 @@ static const char *sha1_graphics_1[] =
|
||||||
"4842a30dd7fdf38ddc3ddec85c08efe13a0e2e0b",
|
"4842a30dd7fdf38ddc3ddec85c08efe13a0e2e0b",
|
||||||
"cc76db6da5ba1776f20240a5ad97a26a9cdf96b0",
|
"cc76db6da5ba1776f20240a5ad97a26a9cdf96b0",
|
||||||
"014f477664a7f4ce4a948d6359a2707119afc8e2",
|
"014f477664a7f4ce4a948d6359a2707119afc8e2",
|
||||||
"1ee4e951743efc8764249fbc7adecefbfec0428e",
|
"74d01690e344bc22e7a0478e7a09ccd92354c486",
|
||||||
"9ab50a663b74577b656e9849484a909d7ac52eeb",
|
"9ab50a663b74577b656e9849484a909d7ac52eeb",
|
||||||
"128eefd2ee043d59dc37918065f687e378e5ca95",
|
"128eefd2ee043d59dc37918065f687e378e5ca95",
|
||||||
"c642abc651f525332d9d635049646d309e877839",
|
"d7e2daab98ce1f698c4bfedfc01c0d79fcb76b8e",
|
||||||
"8d34215487088b5d4ef63062270ce25c2862643d",
|
"8d34215487088b5d4ef63062270ce25c2862643d",
|
||||||
"3dc3075b0c87fdcaabbbae8928303fb2358c15c2",
|
"826562eb11a0d0bba77fa21245f7406a194e9225",
|
||||||
"bbae6f0659e095a42b420082079663f937065813",
|
"bbae6f0659e095a42b420082079663f937065813",
|
||||||
"ca711c69165e1fa5be72993b9a7870ef6d485249",
|
"bbabe686a6955402c90530e7c67f1428868369b3",
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1488,6 +1488,129 @@ static const DWORD four_by_four_data[16] = { 0x000000, 0xff0000, 0x00ff00, 0x000
|
||||||
static const DWORD ddb_brush_bits[8] = { 0x11112222, 0x33334444, 0x55556666, 0x77778888,
|
static const DWORD ddb_brush_bits[8] = { 0x11112222, 0x33334444, 0x55556666, 0x77778888,
|
||||||
0xaaaaaaaa, 0x00000000, 0x98765432, 0xabcdef00 };
|
0xaaaaaaaa, 0x00000000, 0x98765432, 0xabcdef00 };
|
||||||
|
|
||||||
|
static const RGBQUAD default_palette_1[2] =
|
||||||
|
{
|
||||||
|
{ 0x00, 0x00, 0x00 }, { 0xff, 0xff, 0xff }
|
||||||
|
};
|
||||||
|
|
||||||
|
static const RGBQUAD default_palette_4[16] =
|
||||||
|
{
|
||||||
|
{ 0x00, 0x00, 0x00 }, { 0x00, 0x00, 0x80 }, { 0x00, 0x80, 0x00 }, { 0x00, 0x80, 0x80 },
|
||||||
|
{ 0x80, 0x00, 0x00 }, { 0x80, 0x00, 0x80 }, { 0x80, 0x80, 0x00 }, { 0x80, 0x80, 0x80 },
|
||||||
|
{ 0xc0, 0xc0, 0xc0 }, { 0x00, 0x00, 0xff }, { 0x00, 0xff, 0x00 }, { 0x00, 0xff, 0xff },
|
||||||
|
{ 0xff, 0x00, 0x00 }, { 0xff, 0x00, 0xff }, { 0xff, 0xff, 0x00 }, { 0xff, 0xff, 0xff },
|
||||||
|
};
|
||||||
|
|
||||||
|
static const RGBQUAD default_palette_8[256] =
|
||||||
|
{
|
||||||
|
{ 0x00, 0x00, 0x00 }, { 0x00, 0x00, 0x80 }, { 0x00, 0x80, 0x00 }, { 0x00, 0x80, 0x80 },
|
||||||
|
{ 0x80, 0x00, 0x00 }, { 0x80, 0x00, 0x80 }, { 0x80, 0x80, 0x00 }, { 0xc0, 0xc0, 0xc0 },
|
||||||
|
{ 0xc0, 0xdc, 0xc0 }, { 0xf0, 0xca, 0xa6 }, { 0x00, 0x20, 0x40 }, { 0x00, 0x20, 0x60 },
|
||||||
|
{ 0x00, 0x20, 0x80 }, { 0x00, 0x20, 0xa0 }, { 0x00, 0x20, 0xc0 }, { 0x00, 0x20, 0xe0 },
|
||||||
|
{ 0x00, 0x40, 0x00 }, { 0x00, 0x40, 0x20 }, { 0x00, 0x40, 0x40 }, { 0x00, 0x40, 0x60 },
|
||||||
|
{ 0x00, 0x40, 0x80 }, { 0x00, 0x40, 0xa0 }, { 0x00, 0x40, 0xc0 }, { 0x00, 0x40, 0xe0 },
|
||||||
|
{ 0x00, 0x60, 0x00 }, { 0x00, 0x60, 0x20 }, { 0x00, 0x60, 0x40 }, { 0x00, 0x60, 0x60 },
|
||||||
|
{ 0x00, 0x60, 0x80 }, { 0x00, 0x60, 0xa0 }, { 0x00, 0x60, 0xc0 }, { 0x00, 0x60, 0xe0 },
|
||||||
|
{ 0x00, 0x80, 0x00 }, { 0x00, 0x80, 0x20 }, { 0x00, 0x80, 0x40 }, { 0x00, 0x80, 0x60 },
|
||||||
|
{ 0x00, 0x80, 0x80 }, { 0x00, 0x80, 0xa0 }, { 0x00, 0x80, 0xc0 }, { 0x00, 0x80, 0xe0 },
|
||||||
|
{ 0x00, 0xa0, 0x00 }, { 0x00, 0xa0, 0x20 }, { 0x00, 0xa0, 0x40 }, { 0x00, 0xa0, 0x60 },
|
||||||
|
{ 0x00, 0xa0, 0x80 }, { 0x00, 0xa0, 0xa0 }, { 0x00, 0xa0, 0xc0 }, { 0x00, 0xa0, 0xe0 },
|
||||||
|
{ 0x00, 0xc0, 0x00 }, { 0x00, 0xc0, 0x20 }, { 0x00, 0xc0, 0x40 }, { 0x00, 0xc0, 0x60 },
|
||||||
|
{ 0x00, 0xc0, 0x80 }, { 0x00, 0xc0, 0xa0 }, { 0x00, 0xc0, 0xc0 }, { 0x00, 0xc0, 0xe0 },
|
||||||
|
{ 0x00, 0xe0, 0x00 }, { 0x00, 0xe0, 0x20 }, { 0x00, 0xe0, 0x40 }, { 0x00, 0xe0, 0x60 },
|
||||||
|
{ 0x00, 0xe0, 0x80 }, { 0x00, 0xe0, 0xa0 }, { 0x00, 0xe0, 0xc0 }, { 0x00, 0xe0, 0xe0 },
|
||||||
|
{ 0x40, 0x00, 0x00 }, { 0x40, 0x00, 0x20 }, { 0x40, 0x00, 0x40 }, { 0x40, 0x00, 0x60 },
|
||||||
|
{ 0x40, 0x00, 0x80 }, { 0x40, 0x00, 0xa0 }, { 0x40, 0x00, 0xc0 }, { 0x40, 0x00, 0xe0 },
|
||||||
|
{ 0x40, 0x20, 0x00 }, { 0x40, 0x20, 0x20 }, { 0x40, 0x20, 0x40 }, { 0x40, 0x20, 0x60 },
|
||||||
|
{ 0x40, 0x20, 0x80 }, { 0x40, 0x20, 0xa0 }, { 0x40, 0x20, 0xc0 }, { 0x40, 0x20, 0xe0 },
|
||||||
|
{ 0x40, 0x40, 0x00 }, { 0x40, 0x40, 0x20 }, { 0x40, 0x40, 0x40 }, { 0x40, 0x40, 0x60 },
|
||||||
|
{ 0x40, 0x40, 0x80 }, { 0x40, 0x40, 0xa0 }, { 0x40, 0x40, 0xc0 }, { 0x40, 0x40, 0xe0 },
|
||||||
|
{ 0x40, 0x60, 0x00 }, { 0x40, 0x60, 0x20 }, { 0x40, 0x60, 0x40 }, { 0x40, 0x60, 0x60 },
|
||||||
|
{ 0x40, 0x60, 0x80 }, { 0x40, 0x60, 0xa0 }, { 0x40, 0x60, 0xc0 }, { 0x40, 0x60, 0xe0 },
|
||||||
|
{ 0x40, 0x80, 0x00 }, { 0x40, 0x80, 0x20 }, { 0x40, 0x80, 0x40 }, { 0x40, 0x80, 0x60 },
|
||||||
|
{ 0x40, 0x80, 0x80 }, { 0x40, 0x80, 0xa0 }, { 0x40, 0x80, 0xc0 }, { 0x40, 0x80, 0xe0 },
|
||||||
|
{ 0x40, 0xa0, 0x00 }, { 0x40, 0xa0, 0x20 }, { 0x40, 0xa0, 0x40 }, { 0x40, 0xa0, 0x60 },
|
||||||
|
{ 0x40, 0xa0, 0x80 }, { 0x40, 0xa0, 0xa0 }, { 0x40, 0xa0, 0xc0 }, { 0x40, 0xa0, 0xe0 },
|
||||||
|
{ 0x40, 0xc0, 0x00 }, { 0x40, 0xc0, 0x20 }, { 0x40, 0xc0, 0x40 }, { 0x40, 0xc0, 0x60 },
|
||||||
|
{ 0x40, 0xc0, 0x80 }, { 0x40, 0xc0, 0xa0 }, { 0x40, 0xc0, 0xc0 }, { 0x40, 0xc0, 0xe0 },
|
||||||
|
{ 0x40, 0xe0, 0x00 }, { 0x40, 0xe0, 0x20 }, { 0x40, 0xe0, 0x40 }, { 0x40, 0xe0, 0x60 },
|
||||||
|
{ 0x40, 0xe0, 0x80 }, { 0x40, 0xe0, 0xa0 }, { 0x40, 0xe0, 0xc0 }, { 0x40, 0xe0, 0xe0 },
|
||||||
|
{ 0x80, 0x00, 0x00 }, { 0x80, 0x00, 0x20 }, { 0x80, 0x00, 0x40 }, { 0x80, 0x00, 0x60 },
|
||||||
|
{ 0x80, 0x00, 0x80 }, { 0x80, 0x00, 0xa0 }, { 0x80, 0x00, 0xc0 }, { 0x80, 0x00, 0xe0 },
|
||||||
|
{ 0x80, 0x20, 0x00 }, { 0x80, 0x20, 0x20 }, { 0x80, 0x20, 0x40 }, { 0x80, 0x20, 0x60 },
|
||||||
|
{ 0x80, 0x20, 0x80 }, { 0x80, 0x20, 0xa0 }, { 0x80, 0x20, 0xc0 }, { 0x80, 0x20, 0xe0 },
|
||||||
|
{ 0x80, 0x40, 0x00 }, { 0x80, 0x40, 0x20 }, { 0x80, 0x40, 0x40 }, { 0x80, 0x40, 0x60 },
|
||||||
|
{ 0x80, 0x40, 0x80 }, { 0x80, 0x40, 0xa0 }, { 0x80, 0x40, 0xc0 }, { 0x80, 0x40, 0xe0 },
|
||||||
|
{ 0x80, 0x60, 0x00 }, { 0x80, 0x60, 0x20 }, { 0x80, 0x60, 0x40 }, { 0x80, 0x60, 0x60 },
|
||||||
|
{ 0x80, 0x60, 0x80 }, { 0x80, 0x60, 0xa0 }, { 0x80, 0x60, 0xc0 }, { 0x80, 0x60, 0xe0 },
|
||||||
|
{ 0x80, 0x80, 0x00 }, { 0x80, 0x80, 0x20 }, { 0x80, 0x80, 0x40 }, { 0x80, 0x80, 0x60 },
|
||||||
|
{ 0x80, 0x80, 0x80 }, { 0x80, 0x80, 0xa0 }, { 0x80, 0x80, 0xc0 }, { 0x80, 0x80, 0xe0 },
|
||||||
|
{ 0x80, 0xa0, 0x00 }, { 0x80, 0xa0, 0x20 }, { 0x80, 0xa0, 0x40 }, { 0x80, 0xa0, 0x60 },
|
||||||
|
{ 0x80, 0xa0, 0x80 }, { 0x80, 0xa0, 0xa0 }, { 0x80, 0xa0, 0xc0 }, { 0x80, 0xa0, 0xe0 },
|
||||||
|
{ 0x80, 0xc0, 0x00 }, { 0x80, 0xc0, 0x20 }, { 0x80, 0xc0, 0x40 }, { 0x80, 0xc0, 0x60 },
|
||||||
|
{ 0x80, 0xc0, 0x80 }, { 0x80, 0xc0, 0xa0 }, { 0x80, 0xc0, 0xc0 }, { 0x80, 0xc0, 0xe0 },
|
||||||
|
{ 0x80, 0xe0, 0x00 }, { 0x80, 0xe0, 0x20 }, { 0x80, 0xe0, 0x40 }, { 0x80, 0xe0, 0x60 },
|
||||||
|
{ 0x80, 0xe0, 0x80 }, { 0x80, 0xe0, 0xa0 }, { 0x80, 0xe0, 0xc0 }, { 0x80, 0xe0, 0xe0 },
|
||||||
|
{ 0xc0, 0x00, 0x00 }, { 0xc0, 0x00, 0x20 }, { 0xc0, 0x00, 0x40 }, { 0xc0, 0x00, 0x60 },
|
||||||
|
{ 0xc0, 0x00, 0x80 }, { 0xc0, 0x00, 0xa0 }, { 0xc0, 0x00, 0xc0 }, { 0xc0, 0x00, 0xe0 },
|
||||||
|
{ 0xc0, 0x20, 0x00 }, { 0xc0, 0x20, 0x20 }, { 0xc0, 0x20, 0x40 }, { 0xc0, 0x20, 0x60 },
|
||||||
|
{ 0xc0, 0x20, 0x80 }, { 0xc0, 0x20, 0xa0 }, { 0xc0, 0x20, 0xc0 }, { 0xc0, 0x20, 0xe0 },
|
||||||
|
{ 0xc0, 0x40, 0x00 }, { 0xc0, 0x40, 0x20 }, { 0xc0, 0x40, 0x40 }, { 0xc0, 0x40, 0x60 },
|
||||||
|
{ 0xc0, 0x40, 0x80 }, { 0xc0, 0x40, 0xa0 }, { 0xc0, 0x40, 0xc0 }, { 0xc0, 0x40, 0xe0 },
|
||||||
|
{ 0xc0, 0x60, 0x00 }, { 0xc0, 0x60, 0x20 }, { 0xc0, 0x60, 0x40 }, { 0xc0, 0x60, 0x60 },
|
||||||
|
{ 0xc0, 0x60, 0x80 }, { 0xc0, 0x60, 0xa0 }, { 0xc0, 0x60, 0xc0 }, { 0xc0, 0x60, 0xe0 },
|
||||||
|
{ 0xc0, 0x80, 0x00 }, { 0xc0, 0x80, 0x20 }, { 0xc0, 0x80, 0x40 }, { 0xc0, 0x80, 0x60 },
|
||||||
|
{ 0xc0, 0x80, 0x80 }, { 0xc0, 0x80, 0xa0 }, { 0xc0, 0x80, 0xc0 }, { 0xc0, 0x80, 0xe0 },
|
||||||
|
{ 0xc0, 0xa0, 0x00 }, { 0xc0, 0xa0, 0x20 }, { 0xc0, 0xa0, 0x40 }, { 0xc0, 0xa0, 0x60 },
|
||||||
|
{ 0xc0, 0xa0, 0x80 }, { 0xc0, 0xa0, 0xa0 }, { 0xc0, 0xa0, 0xc0 }, { 0xc0, 0xa0, 0xe0 },
|
||||||
|
{ 0xc0, 0xc0, 0x00 }, { 0xc0, 0xc0, 0x20 }, { 0xc0, 0xc0, 0x40 }, { 0xc0, 0xc0, 0x60 },
|
||||||
|
{ 0xc0, 0xc0, 0x80 }, { 0xc0, 0xc0, 0xa0 }, { 0xf0, 0xfb, 0xff }, { 0xa4, 0xa0, 0xa0 },
|
||||||
|
{ 0x80, 0x80, 0x80 }, { 0x00, 0x00, 0xff }, { 0x00, 0xff, 0x00 }, { 0x00, 0xff, 0xff },
|
||||||
|
{ 0xff, 0x00, 0x00 }, { 0xff, 0x00, 0xff }, { 0xff, 0xff, 0x00 }, { 0xff, 0xff, 0xff }
|
||||||
|
};
|
||||||
|
|
||||||
|
static HPALETTE create_default_palette( int bpp )
|
||||||
|
{
|
||||||
|
char pal_buffer[sizeof(LOGPALETTE) + 255 * sizeof(PALETTEENTRY)];
|
||||||
|
LOGPALETTE *pal = (LOGPALETTE *)pal_buffer;
|
||||||
|
PALETTEENTRY *entries = pal->palPalEntry;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
pal->palVersion = 0x300;
|
||||||
|
pal->palNumEntries = 1 << bpp;
|
||||||
|
switch (bpp)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
for (i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
entries[i].peRed = default_palette_1[i].rgbRed;
|
||||||
|
entries[i].peGreen = default_palette_1[i].rgbGreen;
|
||||||
|
entries[i].peBlue = default_palette_1[i].rgbBlue;
|
||||||
|
entries[i].peFlags = 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
for (i = 0; i < 16; i++)
|
||||||
|
{
|
||||||
|
entries[i].peRed = default_palette_4[i].rgbRed;
|
||||||
|
entries[i].peGreen = default_palette_4[i].rgbGreen;
|
||||||
|
entries[i].peBlue = default_palette_4[i].rgbBlue;
|
||||||
|
entries[i].peFlags = 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
for (i = 0; i < 256; i++)
|
||||||
|
{
|
||||||
|
entries[i].peRed = default_palette_8[i].rgbRed;
|
||||||
|
entries[i].peGreen = default_palette_8[i].rgbGreen;
|
||||||
|
entries[i].peBlue = default_palette_8[i].rgbBlue;
|
||||||
|
entries[i].peFlags = 0;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return CreatePalette( pal );
|
||||||
|
}
|
||||||
|
|
||||||
static inline void solid_patblt( HDC hdc, int x, int y, int width, int height, COLORREF color )
|
static inline void solid_patblt( HDC hdc, int x, int y, int width, int height, COLORREF color )
|
||||||
{
|
{
|
||||||
HBRUSH brush = CreateSolidBrush( color );
|
HBRUSH brush = CreateSolidBrush( color );
|
||||||
|
@ -1518,7 +1641,7 @@ static void draw_graphics(HDC hdc, BITMAPINFO *bmi, BYTE *bits)
|
||||||
BOOL dib_is_8bpp_gray = (bmi->bmiHeader.biBitCount == 8 && bmi->bmiColors[1].rgbRed == 1);
|
BOOL dib_is_8bpp_gray = (bmi->bmiHeader.biBitCount == 8 && bmi->bmiColors[1].rgbRed == 1);
|
||||||
BLENDFUNCTION blend;
|
BLENDFUNCTION blend;
|
||||||
COLORREF old_text, old_bkgnd;
|
COLORREF old_text, old_bkgnd;
|
||||||
HPALETTE hpal;
|
HPALETTE hpal, old_hpal;
|
||||||
|
|
||||||
blend.BlendOp = AC_SRC_OVER;
|
blend.BlendOp = AC_SRC_OVER;
|
||||||
blend.BlendFlags = 0;
|
blend.BlendFlags = 0;
|
||||||
|
@ -2605,7 +2728,7 @@ static void draw_graphics(HDC hdc, BITMAPINFO *bmi, BYTE *bits)
|
||||||
entries[i].peFlags = 0;
|
entries[i].peFlags = 0;
|
||||||
}
|
}
|
||||||
hpal = CreatePalette( pal );
|
hpal = CreatePalette( pal );
|
||||||
SelectPalette( hdc, hpal, FALSE );
|
old_hpal = SelectPalette( hdc, hpal, FALSE );
|
||||||
|
|
||||||
solid_patblt( hdc, 20, 10, 10, 10, PALETTEINDEX(15) );
|
solid_patblt( hdc, 20, 10, 10, 10, PALETTEINDEX(15) );
|
||||||
Rectangle( hdc, 0, 0, 10, 10 );
|
Rectangle( hdc, 0, 0, 10, 10 );
|
||||||
|
@ -2632,7 +2755,7 @@ static void draw_graphics(HDC hdc, BITMAPINFO *bmi, BYTE *bits)
|
||||||
SelectObject( hdc, orig_brush );
|
SelectObject( hdc, orig_brush );
|
||||||
DeleteObject( dib_brush );
|
DeleteObject( dib_brush );
|
||||||
|
|
||||||
SelectPalette( hdc, GetStockObject(DEFAULT_PALETTE), FALSE );
|
SelectPalette( hdc, old_hpal, FALSE );
|
||||||
DeleteObject( hpal );
|
DeleteObject( hpal );
|
||||||
|
|
||||||
/* NT4 broken for all cases, W2K for 1 bpp only */
|
/* NT4 broken for all cases, W2K for 1 bpp only */
|
||||||
|
@ -2655,7 +2778,7 @@ static void draw_graphics(HDC hdc, BITMAPINFO *bmi, BYTE *bits)
|
||||||
SelectObject( hdc, solid_brush );
|
SelectObject( hdc, solid_brush );
|
||||||
|
|
||||||
ret = ExtFloodFill( hdc, 100, 100, RGB( 0, 0xff, 0 ), FLOODFILLSURFACE );
|
ret = ExtFloodFill( hdc, 100, 100, RGB( 0, 0xff, 0 ), FLOODFILLSURFACE );
|
||||||
ok (!ret == !!dib_is_1bpp, "got ret %d\n", ret);
|
ok (ret, "got ret %d\n", ret);
|
||||||
compare_hash(hdc, bmi, bits, "flood fill" );
|
compare_hash(hdc, bmi, bits, "flood fill" );
|
||||||
|
|
||||||
ExtSelectClipRgn( hdc, NULL, RGN_COPY );
|
ExtSelectClipRgn( hdc, NULL, RGN_COPY );
|
||||||
|
@ -2724,17 +2847,17 @@ static const BYTE masks[8] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01};
|
||||||
static void draw_text_2( HDC hdc, BITMAPINFO *bmi, BYTE *bits, BOOL aa )
|
static void draw_text_2( HDC hdc, BITMAPINFO *bmi, BYTE *bits, BOOL aa )
|
||||||
{
|
{
|
||||||
DWORD dib_size = get_dib_size(bmi), ret;
|
DWORD dib_size = get_dib_size(bmi), ret;
|
||||||
LOGFONT lf;
|
LOGFONTA lf;
|
||||||
HFONT font;
|
HFONT font;
|
||||||
GLYPHMETRICS gm;
|
GLYPHMETRICS gm;
|
||||||
BYTE g_buf[10000];
|
BYTE g_buf[10000];
|
||||||
int i, stride, x, y;
|
int i, stride, x, y;
|
||||||
static const MAT2 identity = { {0,1}, {0,0}, {0,0}, {0,1} };
|
static const MAT2 identity = { {0,1}, {0,0}, {0,0}, {0,1} };
|
||||||
char *eto_hash = NULL, *diy_hash = NULL;
|
char *eto_hash = NULL, *diy_hash = NULL;
|
||||||
static const char *str = "Hello Wine";
|
static const char str[] = "Hello Wine";
|
||||||
POINT origin, g_org;
|
POINT origin, g_org;
|
||||||
static const BYTE vals[4] = { 0x00, 0x00, 0x00, 0x00 };
|
static const BYTE vals[4] = { 0x00, 0x00, 0x00, 0x00 };
|
||||||
TEXTMETRIC tm;
|
TEXTMETRICA tm;
|
||||||
COLORREF text_color;
|
COLORREF text_color;
|
||||||
|
|
||||||
for(i = 0; i < dib_size; i++)
|
for(i = 0; i < dib_size; i++)
|
||||||
|
@ -2745,10 +2868,10 @@ static void draw_text_2( HDC hdc, BITMAPINFO *bmi, BYTE *bits, BOOL aa )
|
||||||
lf.lfHeight = 24;
|
lf.lfHeight = 24;
|
||||||
lf.lfQuality = aa ? ANTIALIASED_QUALITY : NONANTIALIASED_QUALITY;
|
lf.lfQuality = aa ? ANTIALIASED_QUALITY : NONANTIALIASED_QUALITY;
|
||||||
|
|
||||||
font = CreateFontIndirect( &lf );
|
font = CreateFontIndirectA( &lf );
|
||||||
font = SelectObject( hdc, font );
|
font = SelectObject( hdc, font );
|
||||||
|
|
||||||
GetTextMetrics( hdc, &tm );
|
GetTextMetricsA( hdc, &tm );
|
||||||
if (!(tm.tmPitchAndFamily & TMPF_VECTOR))
|
if (!(tm.tmPitchAndFamily & TMPF_VECTOR))
|
||||||
{
|
{
|
||||||
skip( "skipping as a bitmap font has been selected for Tahoma.\n" );
|
skip( "skipping as a bitmap font has been selected for Tahoma.\n" );
|
||||||
|
@ -2762,7 +2885,7 @@ static void draw_text_2( HDC hdc, BITMAPINFO *bmi, BYTE *bits, BOOL aa )
|
||||||
origin.x = 10;
|
origin.x = 10;
|
||||||
origin.y = 100;
|
origin.y = 100;
|
||||||
|
|
||||||
ExtTextOut( hdc, origin.x, origin.y, 0, NULL, str, strlen(str), NULL );
|
ExtTextOutA( hdc, origin.x, origin.y, 0, NULL, str, strlen(str), NULL );
|
||||||
eto_hash = hash_dib( bmi, bits );
|
eto_hash = hash_dib( bmi, bits );
|
||||||
|
|
||||||
for(i = 0; i < dib_size; i++)
|
for(i = 0; i < dib_size; i++)
|
||||||
|
@ -2775,11 +2898,11 @@ static void draw_text_2( HDC hdc, BITMAPINFO *bmi, BYTE *bits, BOOL aa )
|
||||||
{
|
{
|
||||||
DWORD ggo_flags = aa ? GGO_GRAY4_BITMAP : GGO_BITMAP;
|
DWORD ggo_flags = aa ? GGO_GRAY4_BITMAP : GGO_BITMAP;
|
||||||
|
|
||||||
ret = GetGlyphOutline( hdc, str[i], ggo_flags, &gm, 0, NULL, &identity );
|
ret = GetGlyphOutlineA( hdc, str[i], ggo_flags, &gm, 0, NULL, &identity );
|
||||||
|
|
||||||
if (ret == GDI_ERROR) continue;
|
if (ret == GDI_ERROR) continue;
|
||||||
|
|
||||||
if (ret) GetGlyphOutline( hdc, str[i], ggo_flags, &gm, sizeof(g_buf), g_buf, &identity );
|
if (ret) GetGlyphOutlineA( hdc, str[i], ggo_flags, &gm, sizeof(g_buf), g_buf, &identity );
|
||||||
|
|
||||||
g_org.x = origin.x + gm.gmptGlyphOrigin.x;
|
g_org.x = origin.x + gm.gmptGlyphOrigin.x;
|
||||||
g_org.y = origin.y - gm.gmptGlyphOrigin.y;
|
g_org.y = origin.y - gm.gmptGlyphOrigin.y;
|
||||||
|
@ -2859,6 +2982,7 @@ static void test_simple_graphics(void)
|
||||||
BYTE *bits;
|
BYTE *bits;
|
||||||
HBITMAP dib, orig_bm;
|
HBITMAP dib, orig_bm;
|
||||||
DIBSECTION ds;
|
DIBSECTION ds;
|
||||||
|
HPALETTE default_palette, old_hpal;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
mem_dc = CreateCompatibleDC(NULL);
|
mem_dc = CreateCompatibleDC(NULL);
|
||||||
|
@ -2885,6 +3009,9 @@ static void test_simple_graphics(void)
|
||||||
|
|
||||||
orig_bm = SelectObject(mem_dc, dib);
|
orig_bm = SelectObject(mem_dc, dib);
|
||||||
|
|
||||||
|
default_palette = create_default_palette( 8 );
|
||||||
|
old_hpal = SelectPalette( mem_dc, default_palette, FALSE );
|
||||||
|
|
||||||
dst_format = "8888";
|
dst_format = "8888";
|
||||||
current_sha1 = sha1_graphics_a8r8g8b8;
|
current_sha1 = sha1_graphics_a8r8g8b8;
|
||||||
draw_graphics(mem_dc, bmi, bits);
|
draw_graphics(mem_dc, bmi, bits);
|
||||||
|
@ -2910,6 +3037,7 @@ static void test_simple_graphics(void)
|
||||||
ok(ds.dsBmih.biCompression == BI_BITFIELDS, "got %x\n", ds.dsBmih.biCompression);
|
ok(ds.dsBmih.biCompression == BI_BITFIELDS, "got %x\n", ds.dsBmih.biCompression);
|
||||||
|
|
||||||
orig_bm = SelectObject(mem_dc, dib);
|
orig_bm = SelectObject(mem_dc, dib);
|
||||||
|
SelectPalette( mem_dc, default_palette, FALSE );
|
||||||
|
|
||||||
dst_format = "8888 - bitfields";
|
dst_format = "8888 - bitfields";
|
||||||
current_sha1 = sha1_graphics_a8r8g8b8_bitfields;
|
current_sha1 = sha1_graphics_a8r8g8b8_bitfields;
|
||||||
|
@ -3148,6 +3276,7 @@ static void test_simple_graphics(void)
|
||||||
ok(dib != NULL, "ret NULL\n");
|
ok(dib != NULL, "ret NULL\n");
|
||||||
|
|
||||||
orig_bm = SelectObject(mem_dc, dib);
|
orig_bm = SelectObject(mem_dc, dib);
|
||||||
|
DeleteObject( SelectPalette( mem_dc, create_default_palette(4), FALSE ));
|
||||||
|
|
||||||
dst_format = "4";
|
dst_format = "4";
|
||||||
current_sha1 = sha1_graphics_4;
|
current_sha1 = sha1_graphics_4;
|
||||||
|
@ -3191,12 +3320,14 @@ static void test_simple_graphics(void)
|
||||||
ok(dib != NULL, "ret NULL\n");
|
ok(dib != NULL, "ret NULL\n");
|
||||||
|
|
||||||
orig_bm = SelectObject(mem_dc, dib);
|
orig_bm = SelectObject(mem_dc, dib);
|
||||||
|
DeleteObject( SelectPalette( mem_dc, create_default_palette(1), FALSE ));
|
||||||
|
|
||||||
dst_format = "1";
|
dst_format = "1";
|
||||||
current_sha1 = sha1_graphics_1;
|
current_sha1 = sha1_graphics_1;
|
||||||
draw_graphics(mem_dc, bmi, bits);
|
draw_graphics(mem_dc, bmi, bits);
|
||||||
draw_text(mem_dc, bmi, bits);
|
draw_text(mem_dc, bmi, bits);
|
||||||
|
|
||||||
|
DeleteObject( SelectPalette( mem_dc, old_hpal, FALSE ));
|
||||||
SelectObject(mem_dc, orig_bm);
|
SelectObject(mem_dc, orig_bm);
|
||||||
DeleteObject(dib);
|
DeleteObject(dib);
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -121,7 +121,7 @@ static DWORD WINAPI thread_proc(void *param)
|
||||||
DWORD status;
|
DWORD status;
|
||||||
struct hgdiobj_event *hgdiobj_event = param;
|
struct hgdiobj_event *hgdiobj_event = param;
|
||||||
|
|
||||||
hgdiobj_event->hdc = CreateDC("display", NULL, NULL, NULL);
|
hgdiobj_event->hdc = CreateDCA("display", NULL, NULL, NULL);
|
||||||
ok(hgdiobj_event->hdc != NULL, "CreateDC error %u\n", GetLastError());
|
ok(hgdiobj_event->hdc != NULL, "CreateDC error %u\n", GetLastError());
|
||||||
|
|
||||||
hgdiobj_event->hgdiobj1 = CreatePen(PS_DASHDOTDOT, 17, RGB(1, 2, 3));
|
hgdiobj_event->hgdiobj1 = CreatePen(PS_DASHDOTDOT, 17, RGB(1, 2, 3));
|
||||||
|
@ -134,7 +134,7 @@ static DWORD WINAPI thread_proc(void *param)
|
||||||
status = WaitForSingleObject(hgdiobj_event->stop_event, INFINITE);
|
status = WaitForSingleObject(hgdiobj_event->stop_event, INFINITE);
|
||||||
ok(status == WAIT_OBJECT_0, "WaitForSingleObject error %u\n", GetLastError());
|
ok(status == WAIT_OBJECT_0, "WaitForSingleObject error %u\n", GetLastError());
|
||||||
|
|
||||||
ok(!GetObject(hgdiobj_event->hgdiobj1, sizeof(lp), &lp), "GetObject should fail\n");
|
ok(!GetObjectA(hgdiobj_event->hgdiobj1, sizeof(lp), &lp), "GetObject should fail\n");
|
||||||
|
|
||||||
ok(!GetDeviceCaps(hgdiobj_event->hdc, TECHNOLOGY), "GetDeviceCaps(TECHNOLOGY) should fail\n");
|
ok(!GetDeviceCaps(hgdiobj_event->hdc, TECHNOLOGY), "GetDeviceCaps(TECHNOLOGY) should fail\n");
|
||||||
|
|
||||||
|
@ -151,9 +151,9 @@ static void test_thread_objects(void)
|
||||||
DWORD status;
|
DWORD status;
|
||||||
BOOL bRet;
|
BOOL bRet;
|
||||||
|
|
||||||
hgdiobj_event.stop_event = CreateEvent(NULL, 0, 0, NULL);
|
hgdiobj_event.stop_event = CreateEventA(NULL, 0, 0, NULL);
|
||||||
ok(hgdiobj_event.stop_event != NULL, "CreateEvent error %u\n", GetLastError());
|
ok(hgdiobj_event.stop_event != NULL, "CreateEvent error %u\n", GetLastError());
|
||||||
hgdiobj_event.ready_event = CreateEvent(NULL, 0, 0, NULL);
|
hgdiobj_event.ready_event = CreateEventA(NULL, 0, 0, NULL);
|
||||||
ok(hgdiobj_event.ready_event != NULL, "CreateEvent error %u\n", GetLastError());
|
ok(hgdiobj_event.ready_event != NULL, "CreateEvent error %u\n", GetLastError());
|
||||||
|
|
||||||
hthread = CreateThread(NULL, 0, thread_proc, &hgdiobj_event, 0, &tid);
|
hthread = CreateThread(NULL, 0, thread_proc, &hgdiobj_event, 0, &tid);
|
||||||
|
@ -162,7 +162,7 @@ static void test_thread_objects(void)
|
||||||
status = WaitForSingleObject(hgdiobj_event.ready_event, INFINITE);
|
status = WaitForSingleObject(hgdiobj_event.ready_event, INFINITE);
|
||||||
ok(status == WAIT_OBJECT_0, "WaitForSingleObject error %u\n", GetLastError());
|
ok(status == WAIT_OBJECT_0, "WaitForSingleObject error %u\n", GetLastError());
|
||||||
|
|
||||||
ret = GetObject(hgdiobj_event.hgdiobj1, sizeof(lp), &lp);
|
ret = GetObjectA(hgdiobj_event.hgdiobj1, sizeof(lp), &lp);
|
||||||
ok(ret == sizeof(lp), "GetObject error %u\n", GetLastError());
|
ok(ret == sizeof(lp), "GetObject error %u\n", GetLastError());
|
||||||
ok(lp.lopnStyle == PS_DASHDOTDOT, "wrong pen style %d\n", lp.lopnStyle);
|
ok(lp.lopnStyle == PS_DASHDOTDOT, "wrong pen style %d\n", lp.lopnStyle);
|
||||||
ok(lp.lopnWidth.x == 17, "wrong pen width.y %d\n", lp.lopnWidth.x);
|
ok(lp.lopnWidth.x == 17, "wrong pen width.y %d\n", lp.lopnWidth.x);
|
||||||
|
@ -249,7 +249,7 @@ static void test_GetCurrentObject(void)
|
||||||
hobj = GetCurrentObject(hdc, OBJ_BITMAP);
|
hobj = GetCurrentObject(hdc, OBJ_BITMAP);
|
||||||
ok(hobj == hbmp, "OBJ_BITMAP is wrong: %p\n", hobj);
|
ok(hobj == hbmp, "OBJ_BITMAP is wrong: %p\n", hobj);
|
||||||
|
|
||||||
assert(GetObject(hbrush, sizeof(lb), &lb) == sizeof(lb));
|
assert(GetObjectA(hbrush, sizeof(lb), &lb) == sizeof(lb));
|
||||||
hpen = ExtCreatePen(PS_GEOMETRIC | PS_SOLID | PS_ENDCAP_SQUARE | PS_JOIN_BEVEL,
|
hpen = ExtCreatePen(PS_GEOMETRIC | PS_SOLID | PS_ENDCAP_SQUARE | PS_JOIN_BEVEL,
|
||||||
10, &lb, 0, NULL);
|
10, &lb, 0, NULL);
|
||||||
assert(hpen != 0);
|
assert(hpen != 0);
|
||||||
|
|
|
@ -4434,13 +4434,6 @@ static void test_pack_NPEXTLOGPEN(void)
|
||||||
TEST_TARGET_ALIGN(NPEXTLOGPEN, 8)
|
TEST_TARGET_ALIGN(NPEXTLOGPEN, 8)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_pack_OLDFONTENUMPROC(void)
|
|
||||||
{
|
|
||||||
/* OLDFONTENUMPROC */
|
|
||||||
TEST_TYPE_SIZE (OLDFONTENUMPROC, 8)
|
|
||||||
TEST_TYPE_ALIGN (OLDFONTENUMPROC, 8)
|
|
||||||
}
|
|
||||||
|
|
||||||
static void test_pack_OLDFONTENUMPROCA(void)
|
static void test_pack_OLDFONTENUMPROCA(void)
|
||||||
{
|
{
|
||||||
/* OLDFONTENUMPROCA */
|
/* OLDFONTENUMPROCA */
|
||||||
|
@ -10964,13 +10957,6 @@ static void test_pack_NPEXTLOGPEN(void)
|
||||||
TEST_TARGET_ALIGN(NPEXTLOGPEN, 4)
|
TEST_TARGET_ALIGN(NPEXTLOGPEN, 4)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_pack_OLDFONTENUMPROC(void)
|
|
||||||
{
|
|
||||||
/* OLDFONTENUMPROC */
|
|
||||||
TEST_TYPE_SIZE (OLDFONTENUMPROC, 4)
|
|
||||||
TEST_TYPE_ALIGN (OLDFONTENUMPROC, 4)
|
|
||||||
}
|
|
||||||
|
|
||||||
static void test_pack_OLDFONTENUMPROCA(void)
|
static void test_pack_OLDFONTENUMPROCA(void)
|
||||||
{
|
{
|
||||||
/* OLDFONTENUMPROCA */
|
/* OLDFONTENUMPROCA */
|
||||||
|
@ -13386,7 +13372,6 @@ static void test_pack(void)
|
||||||
test_pack_NEWTEXTMETRICEXW();
|
test_pack_NEWTEXTMETRICEXW();
|
||||||
test_pack_NEWTEXTMETRICW();
|
test_pack_NEWTEXTMETRICW();
|
||||||
test_pack_NPEXTLOGPEN();
|
test_pack_NPEXTLOGPEN();
|
||||||
test_pack_OLDFONTENUMPROC();
|
|
||||||
test_pack_OLDFONTENUMPROCA();
|
test_pack_OLDFONTENUMPROCA();
|
||||||
test_pack_OLDFONTENUMPROCW();
|
test_pack_OLDFONTENUMPROCW();
|
||||||
test_pack_OUTLINETEXTMETRICA();
|
test_pack_OUTLINETEXTMETRICA();
|
||||||
|
|
|
@ -32,7 +32,7 @@ static DWORD (WINAPI *pSetLayout)(HDC hdc, DWORD layout);
|
||||||
static DWORD (WINAPI *pGetLayout)(HDC hdc);
|
static DWORD (WINAPI *pGetLayout)(HDC hdc);
|
||||||
static INT (WINAPI *pGetRandomRgn)(HDC hDC, HRGN hRgn, INT iCode);
|
static INT (WINAPI *pGetRandomRgn)(HDC hDC, HRGN hRgn, INT iCode);
|
||||||
static BOOL (WINAPI *pGetTransform)(HDC, DWORD, XFORM *);
|
static BOOL (WINAPI *pGetTransform)(HDC, DWORD, XFORM *);
|
||||||
static DWORD (WINAPI *pSetVirtualResolution)(HDC, DWORD, DWORD, DWORD, DWORD);
|
static BOOL (WINAPI *pSetVirtualResolution)(HDC, DWORD, DWORD, DWORD, DWORD);
|
||||||
|
|
||||||
#define rough_match(got, expected) (abs( MulDiv( (got) - (expected), 1000, (expected) )) <= 5)
|
#define rough_match(got, expected) (abs( MulDiv( (got) - (expected), 1000, (expected) )) <= 5)
|
||||||
|
|
||||||
|
@ -513,7 +513,7 @@ static void test_isotropic_mapping(void)
|
||||||
static void test_setvirtualresolution(void)
|
static void test_setvirtualresolution(void)
|
||||||
{
|
{
|
||||||
HDC hdc = CreateICA("DISPLAY", NULL, NULL, NULL);
|
HDC hdc = CreateICA("DISPLAY", NULL, NULL, NULL);
|
||||||
DWORD r;
|
BOOL r;
|
||||||
INT horz_res = GetDeviceCaps(hdc, HORZRES);
|
INT horz_res = GetDeviceCaps(hdc, HORZRES);
|
||||||
INT horz_size = GetDeviceCaps(hdc, HORZSIZE);
|
INT horz_size = GetDeviceCaps(hdc, HORZSIZE);
|
||||||
INT log_pixels_x = GetDeviceCaps(hdc, LOGPIXELSX);
|
INT log_pixels_x = GetDeviceCaps(hdc, LOGPIXELSX);
|
||||||
|
|
|
@ -2724,7 +2724,7 @@ static HENHMETAFILE create_converted_emf(const METAFILEPICT *mfp)
|
||||||
UINT size;
|
UINT size;
|
||||||
LPBYTE pBits;
|
LPBYTE pBits;
|
||||||
|
|
||||||
hdcMf = CreateMetaFile(NULL);
|
hdcMf = CreateMetaFileA(NULL);
|
||||||
ok(hdcMf != NULL, "CreateMetaFile failed with error %d\n", GetLastError());
|
ok(hdcMf != NULL, "CreateMetaFile failed with error %d\n", GetLastError());
|
||||||
ret = LineTo(hdcMf, (INT)LINE_X, (INT)LINE_Y);
|
ret = LineTo(hdcMf, (INT)LINE_X, (INT)LINE_Y);
|
||||||
ok(ret, "LineTo failed with error %d\n", GetLastError());
|
ok(ret, "LineTo failed with error %d\n", GetLastError());
|
||||||
|
@ -2904,7 +2904,7 @@ static void test_SetWinMetaFileBits(void)
|
||||||
HDC dc;
|
HDC dc;
|
||||||
LONG diffx, diffy;
|
LONG diffx, diffy;
|
||||||
|
|
||||||
wmfDC = CreateMetaFile(NULL);
|
wmfDC = CreateMetaFileA(NULL);
|
||||||
ok(wmfDC != NULL, "CreateMetaFile failed\n");
|
ok(wmfDC != NULL, "CreateMetaFile failed\n");
|
||||||
if (!wmfDC) return;
|
if (!wmfDC) return;
|
||||||
|
|
||||||
|
@ -3251,7 +3251,7 @@ static void test_gdiis(void)
|
||||||
HMODULE hgdi32;
|
HMODULE hgdi32;
|
||||||
|
|
||||||
/* resolve all the functions */
|
/* resolve all the functions */
|
||||||
hgdi32 = GetModuleHandle("gdi32");
|
hgdi32 = GetModuleHandleA("gdi32.dll");
|
||||||
pGdiIsMetaPrintDC = (void*) GetProcAddress(hgdi32, "GdiIsMetaPrintDC");
|
pGdiIsMetaPrintDC = (void*) GetProcAddress(hgdi32, "GdiIsMetaPrintDC");
|
||||||
pGdiIsMetaFileDC = (void*) GetProcAddress(hgdi32, "GdiIsMetaFileDC");
|
pGdiIsMetaFileDC = (void*) GetProcAddress(hgdi32, "GdiIsMetaFileDC");
|
||||||
pGdiIsPlayMetafileDC = (void*) GetProcAddress(hgdi32, "GdiIsPlayMetafileDC");
|
pGdiIsPlayMetafileDC = (void*) GetProcAddress(hgdi32, "GdiIsPlayMetafileDC");
|
||||||
|
@ -3268,7 +3268,7 @@ static void test_gdiis(void)
|
||||||
ok(!pGdiIsPlayMetafileDC(NULL), "isplaymetafile with NULL parameter\n");
|
ok(!pGdiIsPlayMetafileDC(NULL), "isplaymetafile with NULL parameter\n");
|
||||||
|
|
||||||
/* try with a metafile */
|
/* try with a metafile */
|
||||||
hmfDC = CreateMetaFile(NULL);
|
hmfDC = CreateMetaFileA(NULL);
|
||||||
ok(!pGdiIsMetaPrintDC(hmfDC), "ismetaprint on metafile\n");
|
ok(!pGdiIsMetaPrintDC(hmfDC), "ismetaprint on metafile\n");
|
||||||
ok(pGdiIsMetaFileDC(hmfDC), "ismetafile on metafile\n");
|
ok(pGdiIsMetaFileDC(hmfDC), "ismetafile on metafile\n");
|
||||||
ok(!pGdiIsPlayMetafileDC(hmfDC), "isplaymetafile on metafile\n");
|
ok(!pGdiIsPlayMetafileDC(hmfDC), "isplaymetafile on metafile\n");
|
||||||
|
|
|
@ -96,7 +96,7 @@ static void test_DIB_PAL_COLORS(void) {
|
||||||
getColor = GetPixel( memhdc, 0, 0 );
|
getColor = GetPixel( memhdc, 0, 0 );
|
||||||
ok( getColor == chkColor, "getColor=%08X\n", (UINT)getColor );
|
ok( getColor == chkColor, "getColor=%08X\n", (UINT)getColor );
|
||||||
|
|
||||||
/* Test with a invalid DIBINDEX to DIB_PAL_COLORS */
|
/* Test with an invalid DIBINDEX to DIB_PAL_COLORS */
|
||||||
setColor = DIBINDEX( 12 );
|
setColor = DIBINDEX( 12 );
|
||||||
SetPixel( memhdc, 0, 0, setColor );
|
SetPixel( memhdc, 0, 0, setColor );
|
||||||
chkColor = RGB( 0, 0, 0 );
|
chkColor = RGB( 0, 0, 0 );
|
||||||
|
@ -162,10 +162,10 @@ static void test_halftone_palette(void)
|
||||||
ok( count == 256 || broken(count <= 20), /* nt 4 */
|
ok( count == 256 || broken(count <= 20), /* nt 4 */
|
||||||
"wrong size %u\n", count );
|
"wrong size %u\n", count );
|
||||||
|
|
||||||
/* first and last 10 match the default palette */
|
/* first and last 8 match the default palette */
|
||||||
if (count >= 20)
|
if (count >= 20)
|
||||||
{
|
{
|
||||||
for (i = 0; i < 10; i++)
|
for (i = 0; i < 8; i++)
|
||||||
{
|
{
|
||||||
ok( entries[i].peRed == defpal[i].peRed &&
|
ok( entries[i].peRed == defpal[i].peRed &&
|
||||||
entries[i].peGreen == defpal[i].peGreen &&
|
entries[i].peGreen == defpal[i].peGreen &&
|
||||||
|
@ -175,7 +175,7 @@ static void test_halftone_palette(void)
|
||||||
entries[i].peRed, entries[i].peGreen, entries[i].peBlue, entries[i].peFlags,
|
entries[i].peRed, entries[i].peGreen, entries[i].peBlue, entries[i].peFlags,
|
||||||
defpal[i].peRed, defpal[i].peGreen, defpal[i].peBlue );
|
defpal[i].peRed, defpal[i].peGreen, defpal[i].peBlue );
|
||||||
}
|
}
|
||||||
for (i = count - 10; i < count; i++)
|
for (i = count - 8; i < count; i++)
|
||||||
{
|
{
|
||||||
int idx = i - count + 20;
|
int idx = i - count + 20;
|
||||||
ok( entries[i].peRed == defpal[idx].peRed &&
|
ok( entries[i].peRed == defpal[idx].peRed &&
|
||||||
|
|
|
@ -270,7 +270,8 @@ static void test_widenpath(void)
|
||||||
HDC hdc = GetDC(0);
|
HDC hdc = GetDC(0);
|
||||||
HPEN greenPen, narrowPen;
|
HPEN greenPen, narrowPen;
|
||||||
POINT pnt[6];
|
POINT pnt[6];
|
||||||
INT nSize, ret;
|
INT nSize;
|
||||||
|
BOOL ret;
|
||||||
|
|
||||||
/* Create a pen to be used in WidenPath */
|
/* Create a pen to be used in WidenPath */
|
||||||
greenPen = CreatePen(PS_SOLID, 10, RGB(0,0,0));
|
greenPen = CreatePen(PS_SOLID, 10, RGB(0,0,0));
|
||||||
|
|
|
@ -95,7 +95,7 @@ static void test_logpen(void)
|
||||||
|
|
||||||
memset(&lp, 0xb0, sizeof(lp));
|
memset(&lp, 0xb0, sizeof(lp));
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
size = GetObject(hpen, sizeof(lp), &lp);
|
size = GetObjectW(hpen, sizeof(lp), &lp);
|
||||||
ok(size == sizeof(lp), "GetObject returned %d, error %d\n", size, GetLastError());
|
ok(size == sizeof(lp), "GetObject returned %d, error %d\n", size, GetLastError());
|
||||||
|
|
||||||
ok(lp.lopnStyle == pen[i].ret_style, "expected %u, got %u\n", pen[i].ret_style, lp.lopnStyle);
|
ok(lp.lopnStyle == pen[i].ret_style, "expected %u, got %u\n", pen[i].ret_style, lp.lopnStyle);
|
||||||
|
@ -114,30 +114,30 @@ static void test_logpen(void)
|
||||||
ok(obj_type == OBJ_PEN, "wrong object type %u\n", obj_type);
|
ok(obj_type == OBJ_PEN, "wrong object type %u\n", obj_type);
|
||||||
|
|
||||||
/* check what's the real size of the object */
|
/* check what's the real size of the object */
|
||||||
size = GetObject(hpen, 0, NULL);
|
size = GetObjectW(hpen, 0, NULL);
|
||||||
ok(size == sizeof(lp), "GetObject returned %d, error %d\n", size, GetLastError());
|
ok(size == sizeof(lp), "GetObject returned %d, error %d\n", size, GetLastError());
|
||||||
|
|
||||||
/* ask for truncated data */
|
/* ask for truncated data */
|
||||||
memset(&lp, 0xb0, sizeof(lp));
|
memset(&lp, 0xb0, sizeof(lp));
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
size = GetObject(hpen, sizeof(lp.lopnStyle), &lp);
|
size = GetObjectW(hpen, sizeof(lp.lopnStyle), &lp);
|
||||||
ok(!size, "GetObject should fail: size %d, error %d\n", size, GetLastError());
|
ok(!size, "GetObject should fail: size %d, error %d\n", size, GetLastError());
|
||||||
|
|
||||||
/* see how larger buffer sizes are handled */
|
/* see how larger buffer sizes are handled */
|
||||||
memset(&lp, 0xb0, sizeof(lp));
|
memset(&lp, 0xb0, sizeof(lp));
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
size = GetObject(hpen, sizeof(lp) * 4, &lp);
|
size = GetObjectW(hpen, sizeof(lp) * 4, &lp);
|
||||||
ok(size == sizeof(lp), "GetObject returned %d, error %d\n", size, GetLastError());
|
ok(size == sizeof(lp), "GetObject returned %d, error %d\n", size, GetLastError());
|
||||||
|
|
||||||
/* see how larger buffer sizes are handled */
|
/* see how larger buffer sizes are handled */
|
||||||
memset(&elp, 0xb0, sizeof(elp));
|
memset(&elp, 0xb0, sizeof(elp));
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
size = GetObject(hpen, sizeof(elp) * 2, &elp);
|
size = GetObjectW(hpen, sizeof(elp) * 2, &elp);
|
||||||
ok(size == sizeof(lp), "GetObject returned %d, error %d\n", size, GetLastError());
|
ok(size == sizeof(lp), "GetObject returned %d, error %d\n", size, GetLastError());
|
||||||
|
|
||||||
memset(&lp, 0xb0, sizeof(lp));
|
memset(&lp, 0xb0, sizeof(lp));
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
size = GetObject(hpen, sizeof(lp), &lp);
|
size = GetObjectW(hpen, sizeof(lp), &lp);
|
||||||
ok(size == sizeof(lp), "GetObject returned %d, error %d\n", size, GetLastError());
|
ok(size == sizeof(lp), "GetObject returned %d, error %d\n", size, GetLastError());
|
||||||
|
|
||||||
ok(lp.lopnStyle == pen[i].ret_style, "expected %u, got %u\n", pen[i].ret_style, lp.lopnStyle);
|
ok(lp.lopnStyle == pen[i].ret_style, "expected %u, got %u\n", pen[i].ret_style, lp.lopnStyle);
|
||||||
|
@ -147,13 +147,14 @@ static void test_logpen(void)
|
||||||
|
|
||||||
memset(&elp, 0xb0, sizeof(elp));
|
memset(&elp, 0xb0, sizeof(elp));
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
size = GetObject(hpen, sizeof(elp), &elp);
|
size = GetObjectW(hpen, sizeof(elp), &elp);
|
||||||
|
|
||||||
/* for some reason XP differentiates PS_NULL here */
|
/* for some reason XP differentiates PS_NULL here */
|
||||||
if (pen[i].style == PS_NULL)
|
if (pen[i].style == PS_NULL)
|
||||||
{
|
{
|
||||||
ok(hpen == GetStockObject(NULL_PEN), "hpen should be a stock NULL_PEN\n");
|
ok(hpen == GetStockObject(NULL_PEN), "hpen should be a stock NULL_PEN\n");
|
||||||
ok(size == sizeof(EXTLOGPEN), "GetObject returned %d, error %d\n", size, GetLastError());
|
ok(size == offsetof(EXTLOGPEN, elpStyleEntry[1]), "GetObject returned %d, error %d\n",
|
||||||
|
size, GetLastError());
|
||||||
ok(elp.elpPenStyle == pen[i].ret_style, "expected %u, got %u\n", pen[i].ret_style, elp.elpPenStyle);
|
ok(elp.elpPenStyle == pen[i].ret_style, "expected %u, got %u\n", pen[i].ret_style, elp.elpPenStyle);
|
||||||
ok(elp.elpWidth == 0, "expected 0, got %u\n", elp.elpWidth);
|
ok(elp.elpWidth == 0, "expected 0, got %u\n", elp.elpWidth);
|
||||||
ok(elp.elpColor == pen[i].ret_color, "expected %08x, got %08x\n", pen[i].ret_color, elp.elpColor);
|
ok(elp.elpColor == pen[i].ret_color, "expected %08x, got %08x\n", pen[i].ret_color, elp.elpColor);
|
||||||
|
@ -230,7 +231,7 @@ static void test_logpen(void)
|
||||||
|
|
||||||
/* check what's the real size of the object */
|
/* check what's the real size of the object */
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
size = GetObject(hpen, 0, NULL);
|
size = GetObjectW(hpen, 0, NULL);
|
||||||
switch (pen[i].style)
|
switch (pen[i].style)
|
||||||
{
|
{
|
||||||
case PS_NULL:
|
case PS_NULL:
|
||||||
|
@ -239,12 +240,12 @@ static void test_logpen(void)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PS_USERSTYLE:
|
case PS_USERSTYLE:
|
||||||
ok(size == FIELD_OFFSET( EXTLOGPEN, elpStyleEntry[2] ),
|
ok(size == offsetof( EXTLOGPEN, elpStyleEntry[2] ),
|
||||||
"GetObject returned %d, error %d\n", size, GetLastError());
|
"GetObject returned %d, error %d\n", size, GetLastError());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ok(size == FIELD_OFFSET( EXTLOGPEN, elpStyleEntry ),
|
ok(size == offsetof( EXTLOGPEN, elpStyleEntry ),
|
||||||
"GetObject returned %d, error %d\n", size, GetLastError());
|
"GetObject returned %d, error %d\n", size, GetLastError());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -252,13 +253,13 @@ static void test_logpen(void)
|
||||||
/* ask for truncated data */
|
/* ask for truncated data */
|
||||||
memset(&elp, 0xb0, sizeof(elp));
|
memset(&elp, 0xb0, sizeof(elp));
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
size = GetObject(hpen, sizeof(elp.elpPenStyle), &elp);
|
size = GetObjectW(hpen, sizeof(elp.elpPenStyle), &elp);
|
||||||
ok(!size, "GetObject should fail: size %d, error %d\n", size, GetLastError());
|
ok(!size, "GetObject should fail: size %d, error %d\n", size, GetLastError());
|
||||||
|
|
||||||
/* see how larger buffer sizes are handled */
|
/* see how larger buffer sizes are handled */
|
||||||
memset(elp_buffer, 0xb0, sizeof(elp_buffer));
|
memset(elp_buffer, 0xb0, sizeof(elp_buffer));
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
size = GetObject(hpen, sizeof(elp_buffer), elp_buffer);
|
size = GetObjectW(hpen, sizeof(elp_buffer), elp_buffer);
|
||||||
switch (pen[i].style)
|
switch (pen[i].style)
|
||||||
{
|
{
|
||||||
case PS_NULL:
|
case PS_NULL:
|
||||||
|
@ -274,15 +275,15 @@ static void test_logpen(void)
|
||||||
memset(&elp, 0xb0, sizeof(elp));
|
memset(&elp, 0xb0, sizeof(elp));
|
||||||
memset(&unset_hatch, 0xb0, sizeof(unset_hatch));
|
memset(&unset_hatch, 0xb0, sizeof(unset_hatch));
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
size = GetObject(hpen, sizeof(elp), &elp);
|
size = GetObjectW(hpen, sizeof(elp), &elp);
|
||||||
ok(size == sizeof(EXTLOGPEN),
|
ok(size == offsetof(EXTLOGPEN, elpStyleEntry[1]),
|
||||||
"GetObject returned %d, error %d\n", size, GetLastError());
|
"GetObject returned %d, error %d\n", size, GetLastError());
|
||||||
ok(ext_pen->elpHatch == unset_hatch, "expected 0xb0b0b0b0, got %p\n", (void *)ext_pen->elpHatch);
|
ok(ext_pen->elpHatch == unset_hatch, "expected 0xb0b0b0b0, got %p\n", (void *)ext_pen->elpHatch);
|
||||||
ok(ext_pen->elpNumEntries == 0xb0b0b0b0, "expected 0xb0b0b0b0, got %x\n", ext_pen->elpNumEntries);
|
ok(ext_pen->elpNumEntries == 0xb0b0b0b0, "expected 0xb0b0b0b0, got %x\n", ext_pen->elpNumEntries);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PS_USERSTYLE:
|
case PS_USERSTYLE:
|
||||||
ok(size == FIELD_OFFSET( EXTLOGPEN, elpStyleEntry[2] ),
|
ok(size == offsetof( EXTLOGPEN, elpStyleEntry[2] ),
|
||||||
"GetObject returned %d, error %d\n", size, GetLastError());
|
"GetObject returned %d, error %d\n", size, GetLastError());
|
||||||
ok(ext_pen->elpHatch == HS_CROSS, "expected HS_CROSS, got %p\n", (void *)ext_pen->elpHatch);
|
ok(ext_pen->elpHatch == HS_CROSS, "expected HS_CROSS, got %p\n", (void *)ext_pen->elpHatch);
|
||||||
ok(ext_pen->elpNumEntries == 2, "expected 0, got %x\n", ext_pen->elpNumEntries);
|
ok(ext_pen->elpNumEntries == 2, "expected 0, got %x\n", ext_pen->elpNumEntries);
|
||||||
|
@ -291,7 +292,7 @@ static void test_logpen(void)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ok(size == FIELD_OFFSET( EXTLOGPEN, elpStyleEntry ),
|
ok(size == offsetof( EXTLOGPEN, elpStyleEntry ),
|
||||||
"GetObject returned %d, error %d\n", size, GetLastError());
|
"GetObject returned %d, error %d\n", size, GetLastError());
|
||||||
ok(ext_pen->elpHatch == HS_CROSS, "expected HS_CROSS, got %p\n", (void *)ext_pen->elpHatch);
|
ok(ext_pen->elpHatch == HS_CROSS, "expected HS_CROSS, got %p\n", (void *)ext_pen->elpHatch);
|
||||||
ok(ext_pen->elpNumEntries == 0, "expected 0, got %x\n", ext_pen->elpNumEntries);
|
ok(ext_pen->elpNumEntries == 0, "expected 0, got %x\n", ext_pen->elpNumEntries);
|
||||||
|
@ -340,7 +341,7 @@ test_geometric_pens:
|
||||||
ok(obj_type == OBJ_EXTPEN, "wrong object type %u\n", obj_type);
|
ok(obj_type == OBJ_EXTPEN, "wrong object type %u\n", obj_type);
|
||||||
|
|
||||||
/* check what's the real size of the object */
|
/* check what's the real size of the object */
|
||||||
size = GetObject(hpen, 0, NULL);
|
size = GetObjectW(hpen, 0, NULL);
|
||||||
switch (pen[i].style)
|
switch (pen[i].style)
|
||||||
{
|
{
|
||||||
case PS_NULL:
|
case PS_NULL:
|
||||||
|
@ -349,12 +350,12 @@ test_geometric_pens:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PS_USERSTYLE:
|
case PS_USERSTYLE:
|
||||||
ok(size == FIELD_OFFSET( EXTLOGPEN, elpStyleEntry[2] ),
|
ok(size == offsetof( EXTLOGPEN, elpStyleEntry[2] ),
|
||||||
"GetObject returned %d, error %d\n", size, GetLastError());
|
"GetObject returned %d, error %d\n", size, GetLastError());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ok(size == FIELD_OFFSET( EXTLOGPEN, elpStyleEntry ),
|
ok(size == offsetof( EXTLOGPEN, elpStyleEntry ),
|
||||||
"GetObject returned %d, error %d\n", size, GetLastError());
|
"GetObject returned %d, error %d\n", size, GetLastError());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -362,12 +363,12 @@ test_geometric_pens:
|
||||||
/* ask for truncated data */
|
/* ask for truncated data */
|
||||||
memset(&lp, 0xb0, sizeof(lp));
|
memset(&lp, 0xb0, sizeof(lp));
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
size = GetObject(hpen, sizeof(lp.lopnStyle), &lp);
|
size = GetObjectW(hpen, sizeof(lp.lopnStyle), &lp);
|
||||||
ok(!size, "GetObject should fail: size %d, error %d\n", size, GetLastError());
|
ok(!size, "GetObject should fail: size %d, error %d\n", size, GetLastError());
|
||||||
|
|
||||||
memset(&lp, 0xb0, sizeof(lp));
|
memset(&lp, 0xb0, sizeof(lp));
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
size = GetObject(hpen, sizeof(lp), &lp);
|
size = GetObjectW(hpen, sizeof(lp), &lp);
|
||||||
/* for some reason XP differentiates PS_NULL here */
|
/* for some reason XP differentiates PS_NULL here */
|
||||||
if (pen[i].style == PS_NULL)
|
if (pen[i].style == PS_NULL)
|
||||||
{
|
{
|
||||||
|
@ -385,18 +386,18 @@ test_geometric_pens:
|
||||||
memset(elp_buffer, 0xb0, sizeof(elp_buffer));
|
memset(elp_buffer, 0xb0, sizeof(elp_buffer));
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
/* buffer is too small for user styles */
|
/* buffer is too small for user styles */
|
||||||
size = GetObject(hpen, sizeof(EXTLOGPEN), elp_buffer);
|
size = GetObjectW(hpen, offsetof(EXTLOGPEN, elpStyleEntry[1]), elp_buffer);
|
||||||
switch (pen[i].style)
|
switch (pen[i].style)
|
||||||
{
|
{
|
||||||
case PS_NULL:
|
case PS_NULL:
|
||||||
ok(size == sizeof(EXTLOGPEN),
|
ok(size == offsetof(EXTLOGPEN, elpStyleEntry[1]),
|
||||||
"GetObject returned %d, error %d\n", size, GetLastError());
|
"GetObject returned %d, error %d\n", size, GetLastError());
|
||||||
ok(ext_pen->elpHatch == 0, "expected 0, got %p\n", (void *)ext_pen->elpHatch);
|
ok(ext_pen->elpHatch == 0, "expected 0, got %p\n", (void *)ext_pen->elpHatch);
|
||||||
ok(ext_pen->elpNumEntries == 0, "expected 0, got %x\n", ext_pen->elpNumEntries);
|
ok(ext_pen->elpNumEntries == 0, "expected 0, got %x\n", ext_pen->elpNumEntries);
|
||||||
|
|
||||||
/* for PS_NULL it also works this way */
|
/* for PS_NULL it also works this way */
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
size = GetObject(hpen, sizeof(elp_buffer), &lp);
|
size = GetObjectW(hpen, sizeof(elp_buffer), &lp);
|
||||||
ok(size == sizeof(LOGPEN),
|
ok(size == sizeof(LOGPEN),
|
||||||
"GetObject returned %d, error %d\n", size, GetLastError());
|
"GetObject returned %d, error %d\n", size, GetLastError());
|
||||||
ok(lp.lopnStyle == pen[i].ret_style, "expected %u, got %u\n", pen[i].ret_style, lp.lopnStyle);
|
ok(lp.lopnStyle == pen[i].ret_style, "expected %u, got %u\n", pen[i].ret_style, lp.lopnStyle);
|
||||||
|
@ -408,8 +409,8 @@ test_geometric_pens:
|
||||||
case PS_USERSTYLE:
|
case PS_USERSTYLE:
|
||||||
ok(!size /*&& GetLastError() == ERROR_INVALID_PARAMETER*/,
|
ok(!size /*&& GetLastError() == ERROR_INVALID_PARAMETER*/,
|
||||||
"GetObject should fail: size %d, error %d\n", size, GetLastError());
|
"GetObject should fail: size %d, error %d\n", size, GetLastError());
|
||||||
size = GetObject(hpen, sizeof(elp_buffer), elp_buffer);
|
size = GetObjectW(hpen, sizeof(elp_buffer), elp_buffer);
|
||||||
ok(size == FIELD_OFFSET( EXTLOGPEN, elpStyleEntry[2] ),
|
ok(size == offsetof( EXTLOGPEN, elpStyleEntry[2] ),
|
||||||
"GetObject returned %d, error %d\n", size, GetLastError());
|
"GetObject returned %d, error %d\n", size, GetLastError());
|
||||||
ok(ext_pen->elpHatch == HS_CROSS, "expected HS_CROSS, got %p\n", (void *)ext_pen->elpHatch);
|
ok(ext_pen->elpHatch == HS_CROSS, "expected HS_CROSS, got %p\n", (void *)ext_pen->elpHatch);
|
||||||
ok(ext_pen->elpNumEntries == 2, "expected 0, got %x\n", ext_pen->elpNumEntries);
|
ok(ext_pen->elpNumEntries == 2, "expected 0, got %x\n", ext_pen->elpNumEntries);
|
||||||
|
@ -418,7 +419,7 @@ test_geometric_pens:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ok(size == FIELD_OFFSET( EXTLOGPEN, elpStyleEntry ),
|
ok(size == offsetof( EXTLOGPEN, elpStyleEntry ),
|
||||||
"GetObject returned %d, error %d\n", size, GetLastError());
|
"GetObject returned %d, error %d\n", size, GetLastError());
|
||||||
ok(ext_pen->elpHatch == HS_CROSS, "expected HS_CROSS, got %p\n", (void *)ext_pen->elpHatch);
|
ok(ext_pen->elpHatch == HS_CROSS, "expected HS_CROSS, got %p\n", (void *)ext_pen->elpHatch);
|
||||||
ok(ext_pen->elpNumEntries == 0, "expected 0, got %x\n", ext_pen->elpNumEntries);
|
ok(ext_pen->elpNumEntries == 0, "expected 0, got %x\n", ext_pen->elpNumEntries);
|
||||||
|
@ -511,12 +512,8 @@ static void test_ps_userstyle(void)
|
||||||
LOGBRUSH lb;
|
LOGBRUSH lb;
|
||||||
HPEN pen;
|
HPEN pen;
|
||||||
INT size, i;
|
INT size, i;
|
||||||
|
char buffer[offsetof(EXTLOGPEN, elpStyleEntry) + 16 * sizeof(DWORD)];
|
||||||
struct
|
EXTLOGPEN *ext_pen = (EXTLOGPEN *)buffer;
|
||||||
{
|
|
||||||
EXTLOGPEN elp;
|
|
||||||
DWORD style_data[15];
|
|
||||||
} ext_pen;
|
|
||||||
|
|
||||||
lb.lbColor = 0x00ff0000;
|
lb.lbColor = 0x00ff0000;
|
||||||
lb.lbStyle = BS_SOLID;
|
lb.lbStyle = BS_SOLID;
|
||||||
|
@ -561,18 +558,18 @@ static void test_ps_userstyle(void)
|
||||||
pen = ExtCreatePen(PS_GEOMETRIC | PS_USERSTYLE, 50, &lb, 16, style);
|
pen = ExtCreatePen(PS_GEOMETRIC | PS_USERSTYLE, 50, &lb, 16, style);
|
||||||
ok(pen != 0, "ExtCreatePen should not fail\n");
|
ok(pen != 0, "ExtCreatePen should not fail\n");
|
||||||
|
|
||||||
size = GetObject(pen, sizeof(ext_pen), &ext_pen);
|
size = GetObjectW(pen, sizeof(buffer), ext_pen);
|
||||||
expect(FIELD_OFFSET(EXTLOGPEN,elpStyleEntry[16]), size);
|
ok(size == offsetof(EXTLOGPEN, elpStyleEntry[16]), "wrong size %d\n", size);
|
||||||
|
|
||||||
for(i = 0; i < 16; i++)
|
for(i = 0; i < 16; i++)
|
||||||
expect(style[i], ext_pen.elp.elpStyleEntry[i]);
|
expect(style[i], ext_pen->elpStyleEntry[i]);
|
||||||
|
|
||||||
DeleteObject(pen);
|
DeleteObject(pen);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_brush_pens(void)
|
static void test_brush_pens(void)
|
||||||
{
|
{
|
||||||
char buffer[sizeof(EXTLOGPEN) + 15 * sizeof(DWORD)];
|
char buffer[offsetof(EXTLOGPEN, elpStyleEntry) + 16 * sizeof(DWORD)];
|
||||||
EXTLOGPEN *elp = (EXTLOGPEN *)buffer;
|
EXTLOGPEN *elp = (EXTLOGPEN *)buffer;
|
||||||
LOGBRUSH lb;
|
LOGBRUSH lb;
|
||||||
HPEN pen = 0;
|
HPEN pen = 0;
|
||||||
|
@ -604,8 +601,8 @@ static void test_brush_pens(void)
|
||||||
lb.lbHatch = HS_CROSS;
|
lb.lbHatch = HS_CROSS;
|
||||||
pen = ExtCreatePen( PS_DOT | PS_GEOMETRIC, 3, &lb, 0, NULL );
|
pen = ExtCreatePen( PS_DOT | PS_GEOMETRIC, 3, &lb, 0, NULL );
|
||||||
ok( pen != 0, "ExtCreatePen failed err %u\n", GetLastError() );
|
ok( pen != 0, "ExtCreatePen failed err %u\n", GetLastError() );
|
||||||
size = GetObject( pen, sizeof(buffer), elp );
|
size = GetObjectW( pen, sizeof(buffer), elp );
|
||||||
ok( size == FIELD_OFFSET( EXTLOGPEN, elpStyleEntry ), "wrong size %u\n", size );
|
ok( size == offsetof( EXTLOGPEN, elpStyleEntry ), "wrong size %u\n", size );
|
||||||
ok( elp->elpPenStyle == (PS_DOT | PS_GEOMETRIC), "wrong pen style %x\n", elp->elpPenStyle );
|
ok( elp->elpPenStyle == (PS_DOT | PS_GEOMETRIC), "wrong pen style %x\n", elp->elpPenStyle );
|
||||||
ok( elp->elpBrushStyle == lb.lbStyle, "wrong brush style %x\n", elp->elpBrushStyle );
|
ok( elp->elpBrushStyle == lb.lbStyle, "wrong brush style %x\n", elp->elpBrushStyle );
|
||||||
ok( elp->elpColor == RGB(12,34,56), "wrong color %x\n", elp->elpColor );
|
ok( elp->elpColor == RGB(12,34,56), "wrong color %x\n", elp->elpColor );
|
||||||
|
@ -616,7 +613,7 @@ static void test_brush_pens(void)
|
||||||
case BS_NULL:
|
case BS_NULL:
|
||||||
pen = ExtCreatePen( PS_SOLID | PS_GEOMETRIC, 3, &lb, 0, NULL );
|
pen = ExtCreatePen( PS_SOLID | PS_GEOMETRIC, 3, &lb, 0, NULL );
|
||||||
ok( pen != 0, "ExtCreatePen failed err %u\n", GetLastError() );
|
ok( pen != 0, "ExtCreatePen failed err %u\n", GetLastError() );
|
||||||
size = GetObject( pen, sizeof(buffer), elp );
|
size = GetObjectW( pen, sizeof(buffer), elp );
|
||||||
ok( size == sizeof(LOGPEN), "wrong size %u\n", size );
|
ok( size == sizeof(LOGPEN), "wrong size %u\n", size );
|
||||||
ok( ((LOGPEN *)elp)->lopnStyle == PS_NULL,
|
ok( ((LOGPEN *)elp)->lopnStyle == PS_NULL,
|
||||||
"wrong pen style %x\n", ((LOGPEN *)elp)->lopnStyle );
|
"wrong pen style %x\n", ((LOGPEN *)elp)->lopnStyle );
|
||||||
|
@ -629,8 +626,8 @@ static void test_brush_pens(void)
|
||||||
lb.lbHatch = (ULONG_PTR)bmp;
|
lb.lbHatch = (ULONG_PTR)bmp;
|
||||||
pen = ExtCreatePen( PS_DOT | PS_GEOMETRIC, 3, &lb, 0, NULL );
|
pen = ExtCreatePen( PS_DOT | PS_GEOMETRIC, 3, &lb, 0, NULL );
|
||||||
ok( pen != 0, "ExtCreatePen failed err %u\n", GetLastError() );
|
ok( pen != 0, "ExtCreatePen failed err %u\n", GetLastError() );
|
||||||
size = GetObject( pen, sizeof(buffer), elp );
|
size = GetObjectW( pen, sizeof(buffer), elp );
|
||||||
ok( size == FIELD_OFFSET( EXTLOGPEN, elpStyleEntry ), "wrong size %u\n", size );
|
ok( size == offsetof( EXTLOGPEN, elpStyleEntry ), "wrong size %u\n", size );
|
||||||
ok( elp->elpPenStyle == (PS_DOT | PS_GEOMETRIC), "wrong pen style %x\n", elp->elpPenStyle );
|
ok( elp->elpPenStyle == (PS_DOT | PS_GEOMETRIC), "wrong pen style %x\n", elp->elpPenStyle );
|
||||||
ok( elp->elpBrushStyle == BS_PATTERN, "wrong brush style %x\n", elp->elpBrushStyle );
|
ok( elp->elpBrushStyle == BS_PATTERN, "wrong brush style %x\n", elp->elpBrushStyle );
|
||||||
ok( elp->elpColor == 0, "wrong color %x\n", elp->elpColor );
|
ok( elp->elpColor == 0, "wrong color %x\n", elp->elpColor );
|
||||||
|
@ -644,8 +641,8 @@ static void test_brush_pens(void)
|
||||||
lb.lbHatch = lb.lbStyle == BS_DIBPATTERN ? (ULONG_PTR)hmem : (ULONG_PTR)info;
|
lb.lbHatch = lb.lbStyle == BS_DIBPATTERN ? (ULONG_PTR)hmem : (ULONG_PTR)info;
|
||||||
pen = ExtCreatePen( PS_DOT | PS_GEOMETRIC, 3, &lb, 0, NULL );
|
pen = ExtCreatePen( PS_DOT | PS_GEOMETRIC, 3, &lb, 0, NULL );
|
||||||
ok( pen != 0, "ExtCreatePen failed err %u\n", GetLastError() );
|
ok( pen != 0, "ExtCreatePen failed err %u\n", GetLastError() );
|
||||||
size = GetObject( pen, sizeof(buffer), elp );
|
size = GetObjectW( pen, sizeof(buffer), elp );
|
||||||
ok( size == FIELD_OFFSET( EXTLOGPEN, elpStyleEntry ), "wrong size %u\n", size );
|
ok( size == offsetof( EXTLOGPEN, elpStyleEntry ), "wrong size %u\n", size );
|
||||||
ok( elp->elpPenStyle == (PS_DOT | PS_GEOMETRIC), "wrong pen style %x\n", elp->elpPenStyle );
|
ok( elp->elpPenStyle == (PS_DOT | PS_GEOMETRIC), "wrong pen style %x\n", elp->elpPenStyle );
|
||||||
ok( elp->elpBrushStyle == BS_DIBPATTERNPT, "wrong brush style %x\n", elp->elpBrushStyle );
|
ok( elp->elpBrushStyle == BS_DIBPATTERNPT, "wrong brush style %x\n", elp->elpBrushStyle );
|
||||||
ok( elp->elpColor == 0, "wrong color %x\n", elp->elpColor );
|
ok( elp->elpColor == 0, "wrong color %x\n", elp->elpColor );
|
||||||
|
@ -670,8 +667,8 @@ static void test_brush_pens(void)
|
||||||
if (lb.lbStyle == BS_SOLID)
|
if (lb.lbStyle == BS_SOLID)
|
||||||
{
|
{
|
||||||
ok( pen != 0, "ExtCreatePen failed err %u\n", GetLastError() );
|
ok( pen != 0, "ExtCreatePen failed err %u\n", GetLastError() );
|
||||||
size = GetObject( pen, sizeof(buffer), elp );
|
size = GetObjectW( pen, sizeof(buffer), elp );
|
||||||
ok( size == FIELD_OFFSET( EXTLOGPEN, elpStyleEntry ), "wrong size %u\n", size );
|
ok( size == offsetof( EXTLOGPEN, elpStyleEntry ), "wrong size %u\n", size );
|
||||||
ok( elp->elpPenStyle == PS_DOT, "wrong pen style %x\n", elp->elpPenStyle );
|
ok( elp->elpPenStyle == PS_DOT, "wrong pen style %x\n", elp->elpPenStyle );
|
||||||
ok( elp->elpBrushStyle == BS_SOLID, "wrong brush style %x\n", elp->elpBrushStyle );
|
ok( elp->elpBrushStyle == BS_SOLID, "wrong brush style %x\n", elp->elpBrushStyle );
|
||||||
ok( elp->elpColor == RGB(12,34,56), "wrong color %x\n", elp->elpColor );
|
ok( elp->elpColor == RGB(12,34,56), "wrong color %x\n", elp->elpColor );
|
||||||
|
|
|
@ -23,6 +23,8 @@
|
||||||
/* @makedep: wine_test.ttf */
|
/* @makedep: wine_test.ttf */
|
||||||
wine_test.ttf RCDATA wine_test.ttf
|
wine_test.ttf RCDATA wine_test.ttf
|
||||||
|
|
||||||
|
/* @makedep: wine_vdmx.ttf */
|
||||||
|
wine_vdmx.ttf RCDATA wine_vdmx.ttf
|
||||||
|
|
||||||
/* @makedep: vertical.ttf */
|
/* @makedep: vertical.ttf */
|
||||||
vertical.ttf RCDATA vertical.ttf
|
vertical.ttf RCDATA vertical.ttf
|
||||||
|
|
|
@ -1,10 +1,7 @@
|
||||||
/* Automatically generated file; DO NOT EDIT!! */
|
/* Automatically generated file; DO NOT EDIT!! */
|
||||||
|
|
||||||
#define WIN32_LEAN_AND_MEAN
|
|
||||||
#include <windows.h>
|
|
||||||
|
|
||||||
#define STANDALONE
|
#define STANDALONE
|
||||||
#include "wine/test.h"
|
#include <wine/test.h>
|
||||||
|
|
||||||
extern void func_bitmap(void);
|
extern void func_bitmap(void);
|
||||||
extern void func_brush(void);
|
extern void func_brush(void);
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
@ -20,7 +20,7 @@ OS2Version: 2
|
||||||
OS2_WeightWidthSlopeOnly: 0
|
OS2_WeightWidthSlopeOnly: 0
|
||||||
OS2_UseTypoMetrics: 1
|
OS2_UseTypoMetrics: 1
|
||||||
CreationTime: 1288336343
|
CreationTime: 1288336343
|
||||||
ModificationTime: 1352483620
|
ModificationTime: 1366465321
|
||||||
PfmFamily: 17
|
PfmFamily: 17
|
||||||
TTFWeight: 500
|
TTFWeight: 500
|
||||||
TTFWidth: 5
|
TTFWidth: 5
|
||||||
|
@ -32,10 +32,10 @@ OS2TypoAOffset: 1
|
||||||
OS2TypoDescent: 0
|
OS2TypoDescent: 0
|
||||||
OS2TypoDOffset: 1
|
OS2TypoDOffset: 1
|
||||||
OS2TypoLinegap: 184
|
OS2TypoLinegap: 184
|
||||||
OS2WinAscent: 0
|
OS2WinAscent: 1638
|
||||||
OS2WinAOffset: 1
|
OS2WinAOffset: 0
|
||||||
OS2WinDescent: 0
|
OS2WinDescent: 410
|
||||||
OS2WinDOffset: 1
|
OS2WinDOffset: 0
|
||||||
HheadAscent: 0
|
HheadAscent: 0
|
||||||
HheadAOffset: 1
|
HheadAOffset: 1
|
||||||
HheadDescent: 0
|
HheadDescent: 0
|
||||||
|
@ -78,15 +78,17 @@ ShortTable: maxp 16
|
||||||
0
|
0
|
||||||
EndShort
|
EndShort
|
||||||
LangName: 1033 "" "" "" "Wine : wine_test : 4-11-2010"
|
LangName: 1033 "" "" "" "Wine : wine_test : 4-11-2010"
|
||||||
GaspTable: 1 65535 2
|
GaspTable: 1 65535 2 0
|
||||||
Encoding: UnicodeBmp
|
Encoding: UnicodeBmp
|
||||||
UnicodeInterp: none
|
UnicodeInterp: none
|
||||||
NameList: Adobe Glyph List
|
NameList: Adobe Glyph List
|
||||||
DisplaySize: -24
|
DisplaySize: -24
|
||||||
AntiAlias: 1
|
AntiAlias: 1
|
||||||
FitToEm: 1
|
FitToEm: 1
|
||||||
WinInfo: 65 65 19
|
WinInfo: 48 16 4
|
||||||
BeginChars: 65539 5
|
BeginPrivate: 0
|
||||||
|
EndPrivate
|
||||||
|
BeginChars: 65539 7
|
||||||
|
|
||||||
StartChar: .notdef
|
StartChar: .notdef
|
||||||
Encoding: 65536 -1 0
|
Encoding: 65536 -1 0
|
||||||
|
@ -178,10 +180,10 @@ LayerCount: 2
|
||||||
EndChar
|
EndChar
|
||||||
|
|
||||||
StartChar: dieresis
|
StartChar: dieresis
|
||||||
Encoding: 168 168 0
|
Encoding: 168 168 4
|
||||||
Width: 1000
|
Width: 1000
|
||||||
VWidth: 0
|
VWidth: 0
|
||||||
Flags: HW
|
Flags: W
|
||||||
LayerCount: 2
|
LayerCount: 2
|
||||||
Fore
|
Fore
|
||||||
SplineSet
|
SplineSet
|
||||||
|
@ -201,5 +203,43 @@ SplineSet
|
||||||
310.707 834.805 310.707 834.805 254.492 773.213 c 1,12,13
|
310.707 834.805 310.707 834.805 254.492 773.213 c 1,12,13
|
||||||
EndSplineSet
|
EndSplineSet
|
||||||
EndChar
|
EndChar
|
||||||
|
|
||||||
|
StartChar: A
|
||||||
|
Encoding: 65 65 5
|
||||||
|
Width: 1000
|
||||||
|
VWidth: 0
|
||||||
|
Flags: WO
|
||||||
|
LayerCount: 2
|
||||||
|
Fore
|
||||||
|
SplineSet
|
||||||
|
459 1258 m 29,0,-1
|
||||||
|
462 1639 l 5,1,-1
|
||||||
|
389 1638 l 5,2,-1
|
||||||
|
492 1815 l 5,3,-1
|
||||||
|
609 1638.5 l 5,4,-1
|
||||||
|
531 1637.5 l 5,5,-1
|
||||||
|
523 1258 l 5,6,-1
|
||||||
|
459 1258 l 29,0,-1
|
||||||
|
EndSplineSet
|
||||||
|
EndChar
|
||||||
|
|
||||||
|
StartChar: D
|
||||||
|
Encoding: 68 68 6
|
||||||
|
Width: 1000
|
||||||
|
VWidth: 0
|
||||||
|
Flags: WO
|
||||||
|
LayerCount: 2
|
||||||
|
Fore
|
||||||
|
SplineSet
|
||||||
|
461 -30.7998 m 29,0,-1
|
||||||
|
464 -411.8 l 5,1,-1
|
||||||
|
391 -410.8 l 5,2,-1
|
||||||
|
494 -587.8 l 5,3,-1
|
||||||
|
611 -411.3 l 5,4,-1
|
||||||
|
533 -410.3 l 5,5,-1
|
||||||
|
525 -30.7998 l 5,6,-1
|
||||||
|
461 -30.7998 l 29,0,-1
|
||||||
|
EndSplineSet
|
||||||
|
EndChar
|
||||||
EndChars
|
EndChars
|
||||||
EndSplineFont
|
EndSplineFont
|
||||||
|
|
Binary file not shown.
271
rostests/winetests/gdi32/wine_vdmx.sfd
Normal file
271
rostests/winetests/gdi32/wine_vdmx.sfd
Normal file
|
@ -0,0 +1,271 @@
|
||||||
|
SplineFontDB: 3.0
|
||||||
|
FontName: wine_vdmx
|
||||||
|
FullName: wine_vdmx
|
||||||
|
FamilyName: wine_vdmx
|
||||||
|
Weight: Medium
|
||||||
|
Copyright: Copyright (c) 2010 Dmitry Timoshkov
|
||||||
|
Version: 001.000
|
||||||
|
ItalicAngle: 0
|
||||||
|
UnderlinePosition: -170
|
||||||
|
UnderlineWidth: 130
|
||||||
|
Ascent: 1638
|
||||||
|
Descent: 410
|
||||||
|
sfntRevision: 0x00010000
|
||||||
|
LayerCount: 2
|
||||||
|
Layer: 0 1 "Back" 1
|
||||||
|
Layer: 1 1 "Fore" 0
|
||||||
|
XUID: [1021 905 592216984 1247726]
|
||||||
|
FSType: 0
|
||||||
|
OS2Version: 2
|
||||||
|
OS2_WeightWidthSlopeOnly: 0
|
||||||
|
OS2_UseTypoMetrics: 1
|
||||||
|
PfmFamily: 33
|
||||||
|
TTFWeight: 400
|
||||||
|
TTFWidth: 5
|
||||||
|
LineGap: 0
|
||||||
|
VLineGap: 0
|
||||||
|
Panose: 2 11 6 4 3 5 4 4 2 4
|
||||||
|
OS2TypoAscent: 1566
|
||||||
|
OS2TypoAOffset: 0
|
||||||
|
OS2TypoDescent: -423
|
||||||
|
OS2TypoDOffset: 0
|
||||||
|
OS2TypoLinegap: 59
|
||||||
|
OS2WinAscent: 2049
|
||||||
|
OS2WinAOffset: 0
|
||||||
|
OS2WinDescent: 423
|
||||||
|
OS2WinDOffset: 0
|
||||||
|
HheadAscent: 2049
|
||||||
|
HheadAOffset: 0
|
||||||
|
HheadDescent: -423
|
||||||
|
HheadDOffset: 0
|
||||||
|
OS2SubXSize: 1331
|
||||||
|
OS2SubYSize: 1433
|
||||||
|
OS2SubXOff: 0
|
||||||
|
OS2SubYOff: 2861
|
||||||
|
OS2SupXSize: 1331
|
||||||
|
OS2SupYSize: 1433
|
||||||
|
OS2SupXOff: 0
|
||||||
|
OS2SupYOff: 983
|
||||||
|
OS2StrikeYSize: 102
|
||||||
|
OS2StrikeYPos: 530
|
||||||
|
OS2Vendor: 'Wine'
|
||||||
|
OS2CodePages: 00000001.00000000
|
||||||
|
OS2UnicodeRanges: 00000001.00000000.00000000.00000000
|
||||||
|
MarkAttachClasses: 1
|
||||||
|
DEI: 91125
|
||||||
|
ShortTable: cvt 2
|
||||||
|
68
|
||||||
|
1297
|
||||||
|
EndShort
|
||||||
|
ShortTable: maxp 16
|
||||||
|
1
|
||||||
|
0
|
||||||
|
4
|
||||||
|
8
|
||||||
|
2
|
||||||
|
0
|
||||||
|
0
|
||||||
|
2
|
||||||
|
0
|
||||||
|
1
|
||||||
|
1
|
||||||
|
0
|
||||||
|
64
|
||||||
|
46
|
||||||
|
0
|
||||||
|
0
|
||||||
|
EndShort
|
||||||
|
TtfTable: VDMX 1504
|
||||||
|
!!!!"!!*'#!<E0/!;Hj"!!iQ1s8E!)!"&])!"&]5s8E!+!"8i+!"8i:s8;p,!"Ju,!"Ju>s82j-
|
||||||
|
!"f2.!"],Bs82j/!##>0!"o8Fs82j1!#>P3!#,DKs82j3!#P\5!#>PNs82j5!#Yb5!#P\Ss7u^5
|
||||||
|
!#kn6!#bhVs7u^7!$2+9!#tt[s7u^9!$;1:!$2+_s7u^;!$VC=!$D7bs7lX<!$_I=!$VCgs7lX>
|
||||||
|
!%%[@!$hOks7lX@!%7gA!%%[os7cRA!%@mB!%7gss7ZLB!%\*D!%It"s7ZLD!%n6F!%\+&s7QFE
|
||||||
|
!&"<F!%n7*s7QFG!&=NI!&+C.s7QFI!&OZK!&=O2s7QFK!&jlN!&O[6s7H@L!&srN!&ag:s7H@N
|
||||||
|
!'(#O!&ss?s7?:O!'L;R!'1*Cs7?:Q!'UAS!'C6Fs7?:S!'gMU!'UBJs764T!($YU!'gNOs7-.U
|
||||||
|
!(6eW!($ZRs7-.W!(R"Z!(6fWs7-.Y!([([!(HrZs7-.[!)!:^!([)_s7$(\!)3F^!(m5cs6p"]
|
||||||
|
!)<L_!)*Afs6p"_!)NXa!)<Mks6p"a!)ijd!)NYos6p"c!*'!e!)`ers6fqd!*9-g!)rr"s6fqf
|
||||||
|
!*B3h!*0)&s6]kg!*]Ej!*B5*s6Teh!*oQk!*TA.s6Tej!+,]m!*fM1s6K_k!+5cm!+#Y7s6K_m
|
||||||
|
!+Pup!+5e:s6K_o!+c,q!+Gq=s6BYp!+u8s!+Z(Bs6BYr!,;K!!+l4Fs69Ss!,DQ!!,)@Ks69Su
|
||||||
|
!,V]#!,;LNs69T"!,hi$!,MXQs60N#!-/&'!,_dWs60N%!-A2)!,qpZs6'H&!-J8)!-/'_s6'H(
|
||||||
|
!-eJ,!-A3ds6'H*!.+\.!-S?gs5sB+!.4b/!-eKls5sB-!.Ot2!."Wos5j<.!.Y%2!.4cts5j<0
|
||||||
|
!.t75!.Fp#s5j<2!/1C6!.Y'&s5a63!/:I7!.k3*s5a65!/^a;!/(?/s5X06!/gg;!/:K3s5X08
|
||||||
|
!/pm<!/LW7s5X0:!07*>!/^c:s5O*;!0I6@!/po?s5O*=!0dHB!0.&Cs5F$>!0mNC!0@2Gs5F$@
|
||||||
|
!1!TD!0R>Ks5F$B!1ElG!0dJOs5<sC!1NrH!1!VSs5<sE!1a)I!13bWs53mF!1s5K!1En\s53mH
|
||||||
|
!20AM!1X%_s53mJ!2KSO!1j1cs5*gK!2TYP!2'=gs5*gM!2okS!29Iks5!aN!3-"T!2KUps5!aP
|
||||||
|
!36(U!2]ass5!aR!3H4V!2on"s4m[S!3cFY!3-%'s4dUT!3lLY!3?1*s4dUV!42^\!3Q=/s4dUX
|
||||||
|
!4;d]!3cI3s4dUZ!4W!_!3uU6s4[O[!4i-a!42a;s4[O]!4r3b!4Dm>s4RI^!5/?c!4W$Ds4RI`
|
||||||
|
!5JQf!4i0Gs4RIb!5\]g!5&<Js4ICc!5nii!58HPs4@=d!65&k!5JTTs4@=f!6G2m!5\`Xs4@=h
|
||||||
|
!6Y>o!5nl\s4@=j!6kJp!6,#_s477k!7(Vq!6>/es4.1l!7:bs!6P;hs4.1n!7Lnu!6bGls4.1p
|
||||||
|
!7_&"!6tSqs4.1r!8%8$!71_ts4%+s!8.>%!7Cl#s4%+u!8@J'!7V#'s3q&!!8[\)!7h/,s3q&#
|
||||||
|
!8db)!8%;0s3gu$!9*t,!87G3s3gu&!94%,!8IS7s3^o'!9O7/!8[_<s3^o)!9aC1!8mk@s3^o+
|
||||||
|
!9jI2!9+"Ds3^o-!:0[4!9=.Hs3Ui.!:Bg6!9O:Ls3Ui0!:Km6!9aFPs3Lc1!:g*9!9sRTs3Lc3
|
||||||
|
!:p0:!:0^Xs3Lc5!;?H=!:Bj\s3:W5!;HN=!:U!`s3:W7!;QT>!:g-ds3:W9!;ulB!;$9hs3:W;
|
||||||
|
!<)rC!;6Els31Q<!<<)D!;HQps3(K=!<N5E!;Z]ts3(K?!<`AG!;lj#s3(KA!=&SJ!<*!'s3(KC
|
||||||
|
!=/YK
|
||||||
|
EndTtf
|
||||||
|
LangName: 1033 "" "" "" "Wine : wine_vdmx : 4-11-2010"
|
||||||
|
GaspTable: 1 65535 2 0
|
||||||
|
Encoding: UnicodeBmp
|
||||||
|
UnicodeInterp: none
|
||||||
|
NameList: Adobe Glyph List
|
||||||
|
DisplaySize: -24
|
||||||
|
AntiAlias: 1
|
||||||
|
FitToEm: 1
|
||||||
|
WinInfo: 48 16 4
|
||||||
|
BeginPrivate: 0
|
||||||
|
EndPrivate
|
||||||
|
BeginChars: 65539 7
|
||||||
|
|
||||||
|
StartChar: .notdef
|
||||||
|
Encoding: 65536 -1 0
|
||||||
|
Width: 748
|
||||||
|
Flags: W
|
||||||
|
TtInstrs:
|
||||||
|
PUSHB_2
|
||||||
|
1
|
||||||
|
0
|
||||||
|
MDAP[rnd]
|
||||||
|
ALIGNRP
|
||||||
|
PUSHB_3
|
||||||
|
7
|
||||||
|
4
|
||||||
|
0
|
||||||
|
MIRP[min,rnd,black]
|
||||||
|
SHP[rp2]
|
||||||
|
PUSHB_2
|
||||||
|
6
|
||||||
|
5
|
||||||
|
MDRP[rp0,min,rnd,grey]
|
||||||
|
ALIGNRP
|
||||||
|
PUSHB_3
|
||||||
|
3
|
||||||
|
2
|
||||||
|
0
|
||||||
|
MIRP[min,rnd,black]
|
||||||
|
SHP[rp2]
|
||||||
|
SVTCA[y-axis]
|
||||||
|
PUSHB_2
|
||||||
|
3
|
||||||
|
0
|
||||||
|
MDAP[rnd]
|
||||||
|
ALIGNRP
|
||||||
|
PUSHB_3
|
||||||
|
5
|
||||||
|
4
|
||||||
|
0
|
||||||
|
MIRP[min,rnd,black]
|
||||||
|
SHP[rp2]
|
||||||
|
PUSHB_3
|
||||||
|
7
|
||||||
|
6
|
||||||
|
1
|
||||||
|
MIRP[rp0,min,rnd,grey]
|
||||||
|
ALIGNRP
|
||||||
|
PUSHB_3
|
||||||
|
1
|
||||||
|
2
|
||||||
|
0
|
||||||
|
MIRP[min,rnd,black]
|
||||||
|
SHP[rp2]
|
||||||
|
EndTTInstrs
|
||||||
|
LayerCount: 2
|
||||||
|
Fore
|
||||||
|
SplineSet
|
||||||
|
68 0 m 1,0,-1
|
||||||
|
68 1365 l 1,1,-1
|
||||||
|
612 1365 l 1,2,-1
|
||||||
|
612 0 l 1,3,-1
|
||||||
|
68 0 l 1,0,-1
|
||||||
|
136 68 m 1,4,-1
|
||||||
|
544 68 l 1,5,-1
|
||||||
|
544 1297 l 1,6,-1
|
||||||
|
136 1297 l 1,7,-1
|
||||||
|
136 68 l 1,4,-1
|
||||||
|
EndSplineSet
|
||||||
|
EndChar
|
||||||
|
|
||||||
|
StartChar: .null
|
||||||
|
Encoding: 65537 -1 1
|
||||||
|
Width: 0
|
||||||
|
Flags: W
|
||||||
|
LayerCount: 2
|
||||||
|
EndChar
|
||||||
|
|
||||||
|
StartChar: nonmarkingreturn
|
||||||
|
Encoding: 65538 -1 2
|
||||||
|
Width: 682
|
||||||
|
Flags: W
|
||||||
|
LayerCount: 2
|
||||||
|
EndChar
|
||||||
|
|
||||||
|
StartChar: exclam
|
||||||
|
Encoding: 33 33 3
|
||||||
|
Width: 0
|
||||||
|
Flags: W
|
||||||
|
LayerCount: 2
|
||||||
|
EndChar
|
||||||
|
|
||||||
|
StartChar: dieresis
|
||||||
|
Encoding: 168 168 4
|
||||||
|
Width: 1000
|
||||||
|
VWidth: 0
|
||||||
|
Flags: W
|
||||||
|
LayerCount: 2
|
||||||
|
Fore
|
||||||
|
SplineSet
|
||||||
|
620.215 824.429 m 1,0,1
|
||||||
|
760.84 777.554 760.84 777.554 713.965 636.929 c 1,2,-1
|
||||||
|
620.215 824.429 l 1,0,1
|
||||||
|
154.883 324.971 m 0,3,-1
|
||||||
|
254.492 773.213 m 1,4,5
|
||||||
|
310.707 834.805 310.707 834.805 374.609 767.354 c 1,6,7
|
||||||
|
410.471 728.672 410.471 728.672 374.609 691.182 c 0,8,9
|
||||||
|
308.375 621.934 308.375 621.934 254.492 688.252 c 0,10,11
|
||||||
|
216.406 735.127 216.406 735.127 254.492 773.213 c 1,4,5
|
||||||
|
254.492 773.213 m 1,12,13
|
||||||
|
216.406 735.127 216.406 735.127 254.492 688.252 c 0,14,15
|
||||||
|
308.375 621.934 308.375 621.934 374.609 691.182 c 0,16,17
|
||||||
|
410.471 728.672 410.471 728.672 374.609 767.354 c 1,18,19
|
||||||
|
310.707 834.805 310.707 834.805 254.492 773.213 c 1,12,13
|
||||||
|
EndSplineSet
|
||||||
|
EndChar
|
||||||
|
|
||||||
|
StartChar: A
|
||||||
|
Encoding: 65 65 5
|
||||||
|
Width: 1000
|
||||||
|
VWidth: 0
|
||||||
|
Flags: W
|
||||||
|
LayerCount: 2
|
||||||
|
Fore
|
||||||
|
SplineSet
|
||||||
|
459 1258 m 29,0,-1
|
||||||
|
462 1639 l 5,1,-1
|
||||||
|
389 1638 l 5,2,-1
|
||||||
|
492 1815 l 5,3,-1
|
||||||
|
609 1638.5 l 5,4,-1
|
||||||
|
531 1637.5 l 5,5,-1
|
||||||
|
523 1258 l 5,6,-1
|
||||||
|
459 1258 l 29,0,-1
|
||||||
|
EndSplineSet
|
||||||
|
EndChar
|
||||||
|
|
||||||
|
StartChar: D
|
||||||
|
Encoding: 68 68 6
|
||||||
|
Width: 1000
|
||||||
|
VWidth: 0
|
||||||
|
Flags: W
|
||||||
|
LayerCount: 2
|
||||||
|
Fore
|
||||||
|
SplineSet
|
||||||
|
461 -30.7998 m 29,0,-1
|
||||||
|
464 -411.8 l 5,1,-1
|
||||||
|
391 -410.8 l 5,2,-1
|
||||||
|
494 -587.8 l 5,3,-1
|
||||||
|
611 -411.3 l 5,4,-1
|
||||||
|
533 -410.3 l 5,5,-1
|
||||||
|
525 -30.7998 l 5,6,-1
|
||||||
|
461 -30.7998 l 29,0,-1
|
||||||
|
EndSplineSet
|
||||||
|
EndChar
|
||||||
|
EndChars
|
||||||
|
EndSplineFont
|
BIN
rostests/winetests/gdi32/wine_vdmx.ttf
Normal file
BIN
rostests/winetests/gdi32/wine_vdmx.ttf
Normal file
Binary file not shown.
Loading…
Reference in a new issue