gdi32/tests: Remove some workarounds in font tests.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
464bbdcfb1
commit
9db0d76322
|
@ -42,15 +42,10 @@ static inline BOOL match_off_by_n(int a, int b, unsigned int n)
|
||||||
|
|
||||||
static LONG (WINAPI *pGdiGetCharDimensions)(HDC hdc, LPTEXTMETRICW lptm, LONG *height);
|
static LONG (WINAPI *pGdiGetCharDimensions)(HDC hdc, LPTEXTMETRICW lptm, LONG *height);
|
||||||
static DWORD (WINAPI *pGdiGetCodePage)(HDC hdc);
|
static DWORD (WINAPI *pGdiGetCodePage)(HDC hdc);
|
||||||
static BOOL (WINAPI *pGetCharABCWidthsI)(HDC hdc, UINT first, UINT count, LPWORD glyphs, LPABC abc);
|
|
||||||
static BOOL (WINAPI *pGetCharABCWidthsA)(HDC hdc, UINT first, UINT last, LPABC abc);
|
|
||||||
static BOOL (WINAPI *pGetCharABCWidthsW)(HDC hdc, UINT first, UINT last, LPABC abc);
|
|
||||||
static BOOL (WINAPI *pGetCharABCWidthsFloatW)(HDC hdc, UINT first, UINT last, LPABCFLOAT abc);
|
static BOOL (WINAPI *pGetCharABCWidthsFloatW)(HDC hdc, UINT first, UINT last, LPABCFLOAT abc);
|
||||||
static BOOL (WINAPI *pGetCharWidth32A)(HDC hdc, UINT first, UINT last, LPINT buffer);
|
|
||||||
static BOOL (WINAPI *pGetCharWidth32W)(HDC hdc, UINT first, UINT last, LPINT buffer);
|
static BOOL (WINAPI *pGetCharWidth32W)(HDC hdc, UINT first, UINT last, LPINT buffer);
|
||||||
static BOOL (WINAPI *pGetCharWidthInfo)(HDC hdc, void *);
|
static BOOL (WINAPI *pGetCharWidthInfo)(HDC hdc, void *);
|
||||||
static DWORD (WINAPI *pGetFontUnicodeRanges)(HDC hdc, LPGLYPHSET lpgs);
|
static DWORD (WINAPI *pGetFontUnicodeRanges)(HDC hdc, LPGLYPHSET lpgs);
|
||||||
static DWORD (WINAPI *pGetGlyphIndicesA)(HDC hdc, LPCSTR lpstr, INT count, LPWORD pgi, DWORD flags);
|
|
||||||
static DWORD (WINAPI *pGetGlyphIndicesW)(HDC hdc, LPCWSTR lpstr, INT count, LPWORD pgi, DWORD flags);
|
static DWORD (WINAPI *pGetGlyphIndicesW)(HDC hdc, LPCWSTR lpstr, INT count, LPWORD pgi, DWORD flags);
|
||||||
static BOOL (WINAPI *pGetTextExtentExPointI)(HDC hdc, const WORD *indices, INT count, INT max_ext,
|
static BOOL (WINAPI *pGetTextExtentExPointI)(HDC hdc, const WORD *indices, INT count, INT max_ext,
|
||||||
LPINT nfit, LPINT dxs, LPSIZE size );
|
LPINT nfit, LPINT dxs, LPSIZE size );
|
||||||
|
@ -89,15 +84,10 @@ static void init(void)
|
||||||
|
|
||||||
pGdiGetCharDimensions = (void *)GetProcAddress(hgdi32, "GdiGetCharDimensions");
|
pGdiGetCharDimensions = (void *)GetProcAddress(hgdi32, "GdiGetCharDimensions");
|
||||||
pGdiGetCodePage = (void *) GetProcAddress(hgdi32,"GdiGetCodePage");
|
pGdiGetCodePage = (void *) GetProcAddress(hgdi32,"GdiGetCodePage");
|
||||||
pGetCharABCWidthsI = (void *)GetProcAddress(hgdi32, "GetCharABCWidthsI");
|
|
||||||
pGetCharABCWidthsA = (void *)GetProcAddress(hgdi32, "GetCharABCWidthsA");
|
|
||||||
pGetCharABCWidthsW = (void *)GetProcAddress(hgdi32, "GetCharABCWidthsW");
|
|
||||||
pGetCharABCWidthsFloatW = (void *)GetProcAddress(hgdi32, "GetCharABCWidthsFloatW");
|
pGetCharABCWidthsFloatW = (void *)GetProcAddress(hgdi32, "GetCharABCWidthsFloatW");
|
||||||
pGetCharWidth32A = (void *)GetProcAddress(hgdi32, "GetCharWidth32A");
|
|
||||||
pGetCharWidth32W = (void *)GetProcAddress(hgdi32, "GetCharWidth32W");
|
pGetCharWidth32W = (void *)GetProcAddress(hgdi32, "GetCharWidth32W");
|
||||||
pGetCharWidthInfo = (void *)GetProcAddress(hgdi32, "GetCharWidthInfo");
|
pGetCharWidthInfo = (void *)GetProcAddress(hgdi32, "GetCharWidthInfo");
|
||||||
pGetFontUnicodeRanges = (void *)GetProcAddress(hgdi32, "GetFontUnicodeRanges");
|
pGetFontUnicodeRanges = (void *)GetProcAddress(hgdi32, "GetFontUnicodeRanges");
|
||||||
pGetGlyphIndicesA = (void *)GetProcAddress(hgdi32, "GetGlyphIndicesA");
|
|
||||||
pGetGlyphIndicesW = (void *)GetProcAddress(hgdi32, "GetGlyphIndicesW");
|
pGetGlyphIndicesW = (void *)GetProcAddress(hgdi32, "GetGlyphIndicesW");
|
||||||
pGetTextExtentExPointI = (void *)GetProcAddress(hgdi32, "GetTextExtentExPointI");
|
pGetTextExtentExPointI = (void *)GetProcAddress(hgdi32, "GetTextExtentExPointI");
|
||||||
pGdiRealizationInfo = (void *)GetProcAddress(hgdi32, "GdiRealizationInfo");
|
pGdiRealizationInfo = (void *)GetProcAddress(hgdi32, "GdiRealizationInfo");
|
||||||
|
@ -1137,13 +1127,13 @@ static void ABCWidths_helper(const char* description, HDC hdc, WORD *glyphs, con
|
||||||
ABCFLOAT abcf[1];
|
ABCFLOAT abcf[1];
|
||||||
BOOL ret = FALSE;
|
BOOL ret = FALSE;
|
||||||
|
|
||||||
ret = pGetCharABCWidthsI(hdc, 0, 1, glyphs, abc);
|
ret = GetCharABCWidthsI(hdc, 0, 1, glyphs, abc);
|
||||||
ok(ret, "%s: GetCharABCWidthsI should have succeeded\n", description);
|
ok(ret, "%s: GetCharABCWidthsI should have succeeded\n", description);
|
||||||
ok ((INT)abc->abcB > 0, "%s: abcB should be positive\n", description);
|
ok ((INT)abc->abcB > 0, "%s: abcB should be positive\n", description);
|
||||||
ok(abc->abcA * base_abci->abcA >= 0, "%s: abcA's sign should be unchanged\n", description);
|
ok(abc->abcA * base_abci->abcA >= 0, "%s: abcA's sign should be unchanged\n", description);
|
||||||
ok(abc->abcC * base_abci->abcC >= 0, "%s: abcC's sign should be unchanged\n", description);
|
ok(abc->abcC * base_abci->abcC >= 0, "%s: abcC's sign should be unchanged\n", description);
|
||||||
|
|
||||||
ret = pGetCharABCWidthsW(hdc, 'i', 'i', abc);
|
ret = GetCharABCWidthsW(hdc, 'i', 'i', abc);
|
||||||
ok(ret, "%s: GetCharABCWidthsW should have succeeded\n", description);
|
ok(ret, "%s: GetCharABCWidthsW should have succeeded\n", description);
|
||||||
ok ((INT)abc->abcB > 0, "%s: abcB should be positive\n", description);
|
ok ((INT)abc->abcB > 0, "%s: abcB should be positive\n", description);
|
||||||
ok(abc->abcA * base_abcw->abcA >= 0, "%s: abcA's sign should be unchanged\n", description);
|
ok(abc->abcA * base_abcw->abcA >= 0, "%s: abcA's sign should be unchanged\n", description);
|
||||||
|
@ -1209,9 +1199,9 @@ static void test_GetCharABCWidths(void)
|
||||||
};
|
};
|
||||||
UINT i;
|
UINT i;
|
||||||
|
|
||||||
if (!pGetCharABCWidthsA || !pGetCharABCWidthsW || !pGetCharABCWidthsFloatW || !pGetCharABCWidthsI)
|
if (!pGetCharABCWidthsFloatW)
|
||||||
{
|
{
|
||||||
win_skip("GetCharABCWidthsA/W/I not available on this platform\n");
|
win_skip("GetCharABCWidthsFloatW is not available on this platform\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1226,22 +1216,22 @@ static void test_GetCharABCWidths(void)
|
||||||
nb = pGetGlyphIndicesW(hdc, str, 1, glyphs, 0);
|
nb = pGetGlyphIndicesW(hdc, str, 1, glyphs, 0);
|
||||||
ok(nb == 1, "GetGlyphIndicesW should have returned 1\n");
|
ok(nb == 1, "GetGlyphIndicesW should have returned 1\n");
|
||||||
|
|
||||||
ret = pGetCharABCWidthsI(NULL, 0, 1, glyphs, abc);
|
ret = GetCharABCWidthsI(NULL, 0, 1, glyphs, abc);
|
||||||
ok(!ret, "GetCharABCWidthsI should have failed\n");
|
ok(!ret, "GetCharABCWidthsI should have failed\n");
|
||||||
|
|
||||||
ret = pGetCharABCWidthsI(hdc, 0, 1, glyphs, NULL);
|
ret = GetCharABCWidthsI(hdc, 0, 1, glyphs, NULL);
|
||||||
ok(!ret, "GetCharABCWidthsI should have failed\n");
|
ok(!ret, "GetCharABCWidthsI should have failed\n");
|
||||||
|
|
||||||
ret = pGetCharABCWidthsI(hdc, 0, 1, glyphs, abc);
|
ret = GetCharABCWidthsI(hdc, 0, 1, glyphs, abc);
|
||||||
ok(ret, "GetCharABCWidthsI should have succeeded\n");
|
ok(ret, "GetCharABCWidthsI should have succeeded\n");
|
||||||
|
|
||||||
ret = pGetCharABCWidthsW(NULL, 'a', 'a', abc);
|
ret = GetCharABCWidthsW(NULL, 'a', 'a', abc);
|
||||||
ok(!ret, "GetCharABCWidthsW should have failed\n");
|
ok(!ret, "GetCharABCWidthsW should have failed\n");
|
||||||
|
|
||||||
ret = pGetCharABCWidthsW(hdc, 'a', 'a', NULL);
|
ret = GetCharABCWidthsW(hdc, 'a', 'a', NULL);
|
||||||
ok(!ret, "GetCharABCWidthsW should have failed\n");
|
ok(!ret, "GetCharABCWidthsW should have failed\n");
|
||||||
|
|
||||||
ret = pGetCharABCWidthsW(hdc, 'a', 'a', abc);
|
ret = GetCharABCWidthsW(hdc, 'a', 'a', abc);
|
||||||
ok(!ret, "GetCharABCWidthsW should have failed\n");
|
ok(!ret, "GetCharABCWidthsW should have failed\n");
|
||||||
|
|
||||||
ret = pGetCharABCWidthsFloatW(NULL, 'a', 'a', abcf);
|
ret = pGetCharABCWidthsFloatW(NULL, 'a', 'a', abcf);
|
||||||
|
@ -1274,16 +1264,15 @@ static void test_GetCharABCWidths(void)
|
||||||
memset(a, 0, sizeof a);
|
memset(a, 0, sizeof a);
|
||||||
memset(w, 0, sizeof w);
|
memset(w, 0, sizeof w);
|
||||||
hfont = SelectObject(hdc, hfont);
|
hfont = SelectObject(hdc, hfont);
|
||||||
ok(pGetCharABCWidthsA(hdc, c[i].a, c[i].a + 1, a) &&
|
ok(GetCharABCWidthsA(hdc, c[i].a, c[i].a + 1, a) && GetCharABCWidthsW(hdc, c[i].w, c[i].w + 1, w)
|
||||||
pGetCharABCWidthsW(hdc, c[i].w, c[i].w + 1, w) &&
|
&& !memcmp(a, w, sizeof(a)),
|
||||||
memcmp(a, w, sizeof a) == 0,
|
"GetCharABCWidthsA and GetCharABCWidthsW should return same widths. charset = %u\n", c[i].cs);
|
||||||
"GetCharABCWidthsA and GetCharABCWidthsW should return same widths. charset = %u\n", c[i].cs);
|
|
||||||
|
|
||||||
memset(a, 0xbb, sizeof a);
|
memset(a, 0xbb, sizeof a);
|
||||||
ret = pGetCharABCWidthsA(hdc, code, code, a);
|
ret = GetCharABCWidthsA(hdc, code, code, a);
|
||||||
ok(ret, "GetCharABCWidthsA should have succeeded\n");
|
ok(ret, "GetCharABCWidthsA should have succeeded\n");
|
||||||
memset(full, 0xcc, sizeof full);
|
memset(full, 0xcc, sizeof full);
|
||||||
ret = pGetCharABCWidthsA(hdc, 0x00, code, full);
|
ret = GetCharABCWidthsA(hdc, 0x00, code, full);
|
||||||
ok(ret, "GetCharABCWidthsA should have succeeded\n");
|
ok(ret, "GetCharABCWidthsA should have succeeded\n");
|
||||||
ok(memcmp(&a[0], &full[code], sizeof(ABC)) == 0,
|
ok(memcmp(&a[0], &full[code], sizeof(ABC)) == 0,
|
||||||
"GetCharABCWidthsA info should match. codepage = %u\n", c[i].cs);
|
"GetCharABCWidthsA info should match. codepage = %u\n", c[i].cs);
|
||||||
|
@ -1291,13 +1280,13 @@ static void test_GetCharABCWidths(void)
|
||||||
for (j = 0; j < ARRAY_SIZE(range); ++j)
|
for (j = 0; j < ARRAY_SIZE(range); ++j)
|
||||||
{
|
{
|
||||||
memset(full, 0xdd, sizeof full);
|
memset(full, 0xdd, sizeof full);
|
||||||
ret = pGetCharABCWidthsA(hdc, range[j].first, range[j].last, full);
|
ret = GetCharABCWidthsA(hdc, range[j].first, range[j].last, full);
|
||||||
ok(ret == c[i].r[j], "GetCharABCWidthsA %x - %x should have %s\n",
|
ok(ret == c[i].r[j], "GetCharABCWidthsA %x - %x should have %s\n",
|
||||||
range[j].first, range[j].last, c[i].r[j] ? "succeeded" : "failed");
|
range[j].first, range[j].last, c[i].r[j] ? "succeeded" : "failed");
|
||||||
if (ret)
|
if (ret)
|
||||||
{
|
{
|
||||||
UINT last = range[j].last - range[j].first;
|
UINT last = range[j].last - range[j].first;
|
||||||
ret = pGetCharABCWidthsA(hdc, range[j].last, range[j].last, a);
|
ret = GetCharABCWidthsA(hdc, range[j].last, range[j].last, a);
|
||||||
ok(ret && memcmp(&full[last], &a[0], sizeof(ABC)) == 0,
|
ok(ret && memcmp(&full[last], &a[0], sizeof(ABC)) == 0,
|
||||||
"GetCharABCWidthsA %x should match. codepage = %u\n",
|
"GetCharABCWidthsA %x should match. codepage = %u\n",
|
||||||
range[j].last, c[i].cs);
|
range[j].last, c[i].cs);
|
||||||
|
@ -1318,12 +1307,12 @@ static void test_GetCharABCWidths(void)
|
||||||
ret = pGetCharABCWidthsFloatW(hdc, ' ', ' ', abcf);
|
ret = pGetCharABCWidthsFloatW(hdc, ' ', ' ', abcf);
|
||||||
ok(ret, "GetCharABCWidthsFloatW should have succeeded\n");
|
ok(ret, "GetCharABCWidthsFloatW should have succeeded\n");
|
||||||
ok(abcf[0].abcfB == 1.0, "got %f\n", abcf[0].abcfB);
|
ok(abcf[0].abcfB == 1.0, "got %f\n", abcf[0].abcfB);
|
||||||
ret = pGetCharABCWidthsW(hdc, ' ', ' ', abcw);
|
ret = GetCharABCWidthsW(hdc, ' ', ' ', abcw);
|
||||||
ok(ret, "GetCharABCWidthsW should have succeeded\n");
|
ok(ret, "GetCharABCWidthsW should have succeeded\n");
|
||||||
ok(abcw[0].abcB == 1, "got %u\n", abcw[0].abcB);
|
ok(abcw[0].abcB == 1, "got %u\n", abcw[0].abcB);
|
||||||
|
|
||||||
/* 1) prepare unrotated font metrics */
|
/* 1) prepare unrotated font metrics */
|
||||||
ret = pGetCharABCWidthsW(hdc, 'a', 'a', abcw);
|
ret = GetCharABCWidthsW(hdc, 'a', 'a', abcw);
|
||||||
ok(ret, "GetCharABCWidthsW should have succeeded\n");
|
ok(ret, "GetCharABCWidthsW should have succeeded\n");
|
||||||
DeleteObject(SelectObject(hdc, hfont));
|
DeleteObject(SelectObject(hdc, hfont));
|
||||||
|
|
||||||
|
@ -1331,7 +1320,7 @@ static void test_GetCharABCWidths(void)
|
||||||
lf.lfEscapement = lf.lfOrientation = 900;
|
lf.lfEscapement = lf.lfOrientation = 900;
|
||||||
hfont = CreateFontIndirectA(&lf);
|
hfont = CreateFontIndirectA(&lf);
|
||||||
hfont = SelectObject(hdc, hfont);
|
hfont = SelectObject(hdc, hfont);
|
||||||
ret = pGetCharABCWidthsW(hdc, 'a', 'a', abc);
|
ret = GetCharABCWidthsW(hdc, 'a', 'a', abc);
|
||||||
ok(ret, "GetCharABCWidthsW should have succeeded\n");
|
ok(ret, "GetCharABCWidthsW should have succeeded\n");
|
||||||
|
|
||||||
/* 3) compare ABC results */
|
/* 3) compare ABC results */
|
||||||
|
@ -1409,9 +1398,9 @@ static void test_GetCharABCWidths(void)
|
||||||
nb = pGetGlyphIndicesW(hdc, str, 1, glyphs, 0);
|
nb = pGetGlyphIndicesW(hdc, str, 1, glyphs, 0);
|
||||||
ok(nb == 1, "GetGlyphIndicesW should have returned 1\n");
|
ok(nb == 1, "GetGlyphIndicesW should have returned 1\n");
|
||||||
|
|
||||||
ret = pGetCharABCWidthsI(hdc, 0, 1, glyphs, abc);
|
ret = GetCharABCWidthsI(hdc, 0, 1, glyphs, abc);
|
||||||
ok(ret, "GetCharABCWidthsI should have succeeded\n");
|
ok(ret, "GetCharABCWidthsI should have succeeded\n");
|
||||||
ret = pGetCharABCWidthsW(hdc, 'i', 'i', abcw);
|
ret = GetCharABCWidthsW(hdc, 'i', 'i', abcw);
|
||||||
ok(ret, "GetCharABCWidthsW should have succeeded\n");
|
ok(ret, "GetCharABCWidthsW should have succeeded\n");
|
||||||
ret = pGetCharABCWidthsFloatW(hdc, 'i', 'i', abcf);
|
ret = pGetCharABCWidthsFloatW(hdc, 'i', 'i', abcf);
|
||||||
ok(ret, "GetCharABCWidthsFloatW should have succeeded\n");
|
ok(ret, "GetCharABCWidthsFloatW should have succeeded\n");
|
||||||
|
@ -2423,8 +2412,8 @@ static void test_SetTextJustification(void)
|
||||||
|
|
||||||
testJustification(hdc, testText, &clientArea);
|
testJustification(hdc, testText, &clientArea);
|
||||||
|
|
||||||
if (!pGetGlyphIndicesA || !pGetTextExtentExPointI) goto done;
|
if (!pGetTextExtentExPointI) goto done;
|
||||||
pGetGlyphIndicesA( hdc, "A ", 2, indices, 0 );
|
GetGlyphIndicesA( hdc, "A ", 2, indices, 0 );
|
||||||
|
|
||||||
SetTextJustification(hdc, 0, 0);
|
SetTextJustification(hdc, 0, 0);
|
||||||
GetTextExtentPoint32A(hdc, " ", 1, &expect);
|
GetTextExtentPoint32A(hdc, " ", 1, &expect);
|
||||||
|
@ -2576,7 +2565,7 @@ static BOOL get_glyph_indices(INT charset, UINT code_page, WORD *idx, UINT count
|
||||||
for (i = 0; i < count; i++) ansi_buf[i] = (BYTE)(i + 128);
|
for (i = 0; i < count; i++) ansi_buf[i] = (BYTE)(i + 128);
|
||||||
|
|
||||||
SetLastError(0xdeadbeef);
|
SetLastError(0xdeadbeef);
|
||||||
ret = pGetGlyphIndicesA(hdc, ansi_buf, count, idx, 0);
|
ret = GetGlyphIndicesA(hdc, ansi_buf, count, idx, 0);
|
||||||
ok(ret == count, "GetGlyphIndicesA expected %d got %d, error %u\n",
|
ok(ret == count, "GetGlyphIndicesA expected %d got %d, error %u\n",
|
||||||
count, ret, GetLastError());
|
count, ret, GetLastError());
|
||||||
}
|
}
|
||||||
|
@ -2604,7 +2593,7 @@ static void test_font_charset(void)
|
||||||
};
|
};
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!pGetGlyphIndicesA || !pGetGlyphIndicesW)
|
if (!pGetGlyphIndicesW)
|
||||||
{
|
{
|
||||||
win_skip("Skipping the font charset test on a Win9x platform\n");
|
win_skip("Skipping the font charset test on a Win9x platform\n");
|
||||||
return;
|
return;
|
||||||
|
@ -3231,9 +3220,6 @@ static void test_negative_width(HDC hdc, const LOGFONTA *lf)
|
||||||
LOGFONTA lf2 = *lf;
|
LOGFONTA lf2 = *lf;
|
||||||
WORD idx;
|
WORD idx;
|
||||||
|
|
||||||
if(!pGetGlyphIndicesA)
|
|
||||||
return;
|
|
||||||
|
|
||||||
/* negative widths are handled just as positive ones */
|
/* negative widths are handled just as positive ones */
|
||||||
lf2.lfWidth = -lf->lfWidth;
|
lf2.lfWidth = -lf->lfWidth;
|
||||||
|
|
||||||
|
@ -3244,7 +3230,7 @@ static void test_negative_width(HDC hdc, const LOGFONTA *lf)
|
||||||
|
|
||||||
hfont_prev = SelectObject(hdc, hfont);
|
hfont_prev = SelectObject(hdc, hfont);
|
||||||
|
|
||||||
ret = pGetGlyphIndicesA(hdc, "x", 1, &idx, GGI_MARK_NONEXISTING_GLYPHS);
|
ret = GetGlyphIndicesA(hdc, "x", 1, &idx, GGI_MARK_NONEXISTING_GLYPHS);
|
||||||
if (ret == GDI_ERROR || idx == 0xffff)
|
if (ret == GDI_ERROR || idx == 0xffff)
|
||||||
{
|
{
|
||||||
SelectObject(hdc, hfont_prev);
|
SelectObject(hdc, hfont_prev);
|
||||||
|
@ -4049,10 +4035,6 @@ static void test_GetTextMetrics(void)
|
||||||
HDC hdc;
|
HDC hdc;
|
||||||
INT enumed;
|
INT enumed;
|
||||||
|
|
||||||
/* Report only once */
|
|
||||||
if(!pGetGlyphIndicesA)
|
|
||||||
win_skip("GetGlyphIndicesA is unavailable, negative width will not be checked\n");
|
|
||||||
|
|
||||||
hdc = GetDC(0);
|
hdc = GetDC(0);
|
||||||
|
|
||||||
memset(&lf, 0, sizeof(lf));
|
memset(&lf, 0, sizeof(lf));
|
||||||
|
@ -6560,9 +6542,9 @@ static void test_GetCharWidth32(void)
|
||||||
INT bufferW;
|
INT bufferW;
|
||||||
HWND hwnd;
|
HWND hwnd;
|
||||||
|
|
||||||
if (!pGetCharWidth32A || !pGetCharWidth32W)
|
if (!pGetCharWidth32W)
|
||||||
{
|
{
|
||||||
win_skip("GetCharWidth32A/W not available on this platform\n");
|
win_skip("GetCharWidth32W not available on this platform\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6576,7 +6558,7 @@ static void test_GetCharWidth32(void)
|
||||||
|
|
||||||
ret = pGetCharWidth32W(hdc, 'a', 'a', &bufferW);
|
ret = pGetCharWidth32W(hdc, 'a', 'a', &bufferW);
|
||||||
ok(ret, "GetCharWidth32W should have succeeded\n");
|
ok(ret, "GetCharWidth32W should have succeeded\n");
|
||||||
ret = pGetCharWidth32A(hdc, 'a', 'a', &bufferA);
|
ret = GetCharWidth32A(hdc, 'a', 'a', &bufferA);
|
||||||
ok(ret, "GetCharWidth32A should have succeeded\n");
|
ok(ret, "GetCharWidth32A should have succeeded\n");
|
||||||
ok (bufferA == bufferW, "Widths should be the same\n");
|
ok (bufferA == bufferW, "Widths should be the same\n");
|
||||||
ok (bufferA > 0," Width should be greater than zero\n");
|
ok (bufferA > 0," Width should be greater than zero\n");
|
||||||
|
@ -6669,11 +6651,6 @@ static void test_fake_bold_font(void)
|
||||||
int i;
|
int i;
|
||||||
DWORD r;
|
DWORD r;
|
||||||
|
|
||||||
if (!pGetCharWidth32A || !pGetCharABCWidthsA) {
|
|
||||||
win_skip("GetCharWidth32A/GetCharABCWidthA is not available on this platform\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Test outline font */
|
/* Test outline font */
|
||||||
memset(&lf, 0, sizeof(lf));
|
memset(&lf, 0, sizeof(lf));
|
||||||
strcpy(lf.lfFaceName, "Wingdings");
|
strcpy(lf.lfFaceName, "Wingdings");
|
||||||
|
@ -6691,7 +6668,7 @@ static void test_fake_bold_font(void)
|
||||||
|
|
||||||
ret = GetTextMetricsA(hdc, &data[i].tm);
|
ret = GetTextMetricsA(hdc, &data[i].tm);
|
||||||
ok(ret, "got %d\n", ret);
|
ok(ret, "got %d\n", ret);
|
||||||
ret = pGetCharABCWidthsA(hdc, 0x76, 0x76, &data[i].abc);
|
ret = GetCharABCWidthsA(hdc, 0x76, 0x76, &data[i].abc);
|
||||||
ok(ret, "got %d\n", ret);
|
ok(ret, "got %d\n", ret);
|
||||||
data[i].w = data[i].abc.abcA + data[i].abc.abcB + data[i].abc.abcC;
|
data[i].w = data[i].abc.abcA + data[i].abc.abcB + data[i].abc.abcC;
|
||||||
r = GetGlyphOutlineA(hdc, 0x76, GGO_METRICS, &data[i].gm, 0, NULL, &x2_mat);
|
r = GetGlyphOutlineA(hdc, 0x76, GGO_METRICS, &data[i].gm, 0, NULL, &x2_mat);
|
||||||
|
@ -6742,7 +6719,7 @@ static void test_fake_bold_font(void)
|
||||||
|
|
||||||
ret = GetTextMetricsA(hdc, &data[i].tm);
|
ret = GetTextMetricsA(hdc, &data[i].tm);
|
||||||
ok(ret, "got %d\n", ret);
|
ok(ret, "got %d\n", ret);
|
||||||
ret = pGetCharWidth32A(hdc, 0x76, 0x76, &data[i].w);
|
ret = GetCharWidth32A(hdc, 0x76, 0x76, &data[i].w);
|
||||||
ok(ret, "got %d\n", ret);
|
ok(ret, "got %d\n", ret);
|
||||||
|
|
||||||
SelectObject(hdc, hfont_old);
|
SelectObject(hdc, hfont_old);
|
||||||
|
@ -6804,7 +6781,7 @@ static void test_bitmap_font_glyph_index(void)
|
||||||
CHARSETINFO ci;
|
CHARSETINFO ci;
|
||||||
BYTE chr = '\xA9';
|
BYTE chr = '\xA9';
|
||||||
|
|
||||||
if (!pGetGlyphIndicesW || !pGetGlyphIndicesA) {
|
if (!pGetGlyphIndicesW) {
|
||||||
win_skip("GetGlyphIndices is unavailable\n");
|
win_skip("GetGlyphIndices is unavailable\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -6889,7 +6866,7 @@ static void test_bitmap_font_glyph_index(void)
|
||||||
ret = ExtTextOutA(hdc, 100, 0, 0, NULL, (LPCSTR)&chr, 1, NULL);
|
ret = ExtTextOutA(hdc, 100, 0, 0, NULL, (LPCSTR)&chr, 1, NULL);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
ret = pGetGlyphIndicesA(hdc, (LPCSTR)&chr, 1, &code, 0);
|
ret = GetGlyphIndicesA(hdc, (LPCSTR)&chr, 1, &code, 0);
|
||||||
ok(ret, "GetGlyphIndices failed\n");
|
ok(ret, "GetGlyphIndices failed\n");
|
||||||
ok(code == chr, "expected %02x, got %02x (%s:%d)\n", chr, code, lf.lfFaceName, tm.tmCharSet);
|
ok(code == chr, "expected %02x, got %02x (%s:%d)\n", chr, code, lf.lfFaceName, tm.tmCharSet);
|
||||||
ret = ExtTextOutA(hdc, 100, 0, ETO_GLYPH_INDEX, NULL, (LPCSTR)&code, 1, NULL);
|
ret = ExtTextOutA(hdc, 100, 0, ETO_GLYPH_INDEX, NULL, (LPCSTR)&code, 1, NULL);
|
||||||
|
|
Loading…
Reference in New Issue