gdi32/tests: Add vdmx tests.
This commit is contained in:
parent
7310bdb498
commit
774f57ca24
@ -58,6 +58,21 @@ static HMODULE hgdi32 = 0;
|
|||||||
static const MAT2 mat = { {0,1}, {0,0}, {0,0}, {0,1} };
|
static const MAT2 mat = { {0,1}, {0,0}, {0,0}, {0,1} };
|
||||||
static WORD system_lang_id;
|
static WORD system_lang_id;
|
||||||
|
|
||||||
|
#ifdef WORDS_BIGENDIAN
|
||||||
|
#define GET_BE_WORD(x) (x)
|
||||||
|
#define GET_BE_DWORD(x) (x)
|
||||||
|
#else
|
||||||
|
#define GET_BE_WORD(x) MAKEWORD(HIBYTE(x), LOBYTE(x))
|
||||||
|
#define GET_BE_DWORD(x) MAKELONG(GET_BE_WORD(HIWORD(x)), GET_BE_WORD(LOWORD(x)));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define MS_MAKE_TAG(ch0, ch1, ch2, ch3) \
|
||||||
|
((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \
|
||||||
|
((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24))
|
||||||
|
#define MS_OS2_TAG MS_MAKE_TAG('O','S','/','2')
|
||||||
|
#define MS_CMAP_TAG MS_MAKE_TAG('c','m','a','p')
|
||||||
|
#define MS_NAME_TAG MS_MAKE_TAG('n','a','m','e')
|
||||||
|
|
||||||
static void init(void)
|
static void init(void)
|
||||||
{
|
{
|
||||||
hgdi32 = GetModuleHandleA("gdi32.dll");
|
hgdi32 = GetModuleHandleA("gdi32.dll");
|
||||||
@ -1713,6 +1728,190 @@ static void test_height( HDC hdc, const struct font_data *fd )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void *find_ttf_table( void *ttf, DWORD size, DWORD tag )
|
||||||
|
{
|
||||||
|
WORD i, num_tables = GET_BE_WORD(*((WORD *)ttf + 2));
|
||||||
|
DWORD *table = (DWORD *)ttf + 3;
|
||||||
|
|
||||||
|
for (i = 0; i < num_tables; i++)
|
||||||
|
{
|
||||||
|
if (table[0] == tag)
|
||||||
|
return (BYTE *)ttf + GET_BE_DWORD(table[2]);
|
||||||
|
table += 4;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void test_height_selection_vdmx( HDC hdc )
|
||||||
|
{
|
||||||
|
static const struct font_data charset_0[] = /* doesn't use VDMX */
|
||||||
|
{
|
||||||
|
{ "wine_vdmx", 10, FW_NORMAL, 10, 8, 2, 2, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 11, FW_NORMAL, 11, 9, 2, 2, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 12, FW_NORMAL, 12, 10, 2, 2, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 13, FW_NORMAL, 13, 11, 2, 2, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 14, FW_NORMAL, 14, 12, 2, 2, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 15, FW_NORMAL, 15, 12, 3, 3, 0, 96, FALSE },
|
||||||
|
{ "wine_vdmx", 16, FW_NORMAL, 16, 13, 3, 3, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 17, FW_NORMAL, 17, 14, 3, 3, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 18, FW_NORMAL, 18, 15, 3, 3, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 19, FW_NORMAL, 19, 16, 3, 3, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 20, FW_NORMAL, 20, 17, 3, 4, 0, 96, FALSE },
|
||||||
|
{ "wine_vdmx", 21, FW_NORMAL, 21, 17, 4, 4, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 22, FW_NORMAL, 22, 18, 4, 4, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 23, FW_NORMAL, 23, 19, 4, 4, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 24, FW_NORMAL, 24, 20, 4, 4, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 25, FW_NORMAL, 25, 21, 4, 4, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 26, FW_NORMAL, 26, 22, 4, 5, 0, 96, FALSE },
|
||||||
|
{ "wine_vdmx", 27, FW_NORMAL, 27, 22, 5, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 28, FW_NORMAL, 28, 23, 5, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 29, FW_NORMAL, 29, 24, 5, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 30, FW_NORMAL, 30, 25, 5, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 31, FW_NORMAL, 31, 26, 5, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 32, FW_NORMAL, 32, 27, 5, 6, 0, 96, FALSE },
|
||||||
|
{ "wine_vdmx", 48, FW_NORMAL, 48, 40, 8, 8, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 64, FW_NORMAL, 64, 53, 11, 11, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 96, FW_NORMAL, 96, 80, 16, 17, 0, 96, FALSE },
|
||||||
|
{ "wine_vdmx", -10, FW_NORMAL, 12, 10, 2, 2, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -11, FW_NORMAL, 13, 11, 2, 2, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -12, FW_NORMAL, 14, 12, 2, 2, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -13, FW_NORMAL, 16, 13, 3, 3, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -14, FW_NORMAL, 17, 14, 3, 3, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -15, FW_NORMAL, 18, 15, 3, 3, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -16, FW_NORMAL, 19, 16, 3, 3, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -17, FW_NORMAL, 21, 17, 4, 4, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -18, FW_NORMAL, 22, 18, 4, 4, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -19, FW_NORMAL, 23, 19, 4, 4, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -20, FW_NORMAL, 24, 20, 4, 4, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -21, FW_NORMAL, 25, 21, 4, 4, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -22, FW_NORMAL, 27, 22, 5, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -23, FW_NORMAL, 28, 23, 5, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -24, FW_NORMAL, 29, 24, 5, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -25, FW_NORMAL, 30, 25, 5, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -26, FW_NORMAL, 31, 26, 5, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -27, FW_NORMAL, 33, 27, 6, 6, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -28, FW_NORMAL, 34, 28, 6, 6, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -29, FW_NORMAL, 35, 29, 6, 6, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -30, FW_NORMAL, 36, 30, 6, 6, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -31, FW_NORMAL, 37, 31, 6, 6, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -32, FW_NORMAL, 39, 32, 7, 7, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -48, FW_NORMAL, 58, 48, 10, 10, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -64, FW_NORMAL, 77, 64, 13, 13, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -96, FW_NORMAL, 116, 96, 20, 20, 0, 96, TRUE },
|
||||||
|
{ "", 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct font_data charset_1[] = /* Uses VDMX */
|
||||||
|
{
|
||||||
|
{ "wine_vdmx", 10, FW_NORMAL, 10, 8, 2, 2, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 11, FW_NORMAL, 11, 9, 2, 2, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 12, FW_NORMAL, 12, 10, 2, 2, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 13, FW_NORMAL, 13, 11, 2, 2, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 14, FW_NORMAL, 13, 11, 2, 2, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 15, FW_NORMAL, 13, 11, 2, 2, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 16, FW_NORMAL, 16, 13, 3, 4, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 17, FW_NORMAL, 16, 13, 3, 3, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 18, FW_NORMAL, 16, 13, 3, 3, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 19, FW_NORMAL, 19, 15, 4, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 20, FW_NORMAL, 20, 16, 4, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 21, FW_NORMAL, 21, 17, 4, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 22, FW_NORMAL, 22, 18, 4, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 23, FW_NORMAL, 23, 19, 4, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 24, FW_NORMAL, 23, 19, 4, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 25, FW_NORMAL, 25, 21, 4, 6, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 26, FW_NORMAL, 26, 22, 4, 6, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 27, FW_NORMAL, 27, 23, 4, 6, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 28, FW_NORMAL, 27, 23, 4, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 29, FW_NORMAL, 29, 24, 5, 6, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 30, FW_NORMAL, 29, 24, 5, 6, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 31, FW_NORMAL, 29, 24, 5, 6, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 32, FW_NORMAL, 32, 26, 6, 8, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 48, FW_NORMAL, 48, 40, 8, 10, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 64, FW_NORMAL, 64, 54, 10, 13, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", 96, FW_NORMAL, 95, 79, 16, 18, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -10, FW_NORMAL, 12, 10, 2, 2, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -11, FW_NORMAL, 13, 11, 2, 2, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -12, FW_NORMAL, 16, 13, 3, 4, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -13, FW_NORMAL, 16, 13, 3, 3, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -14, FW_NORMAL, 19, 15, 4, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -15, FW_NORMAL, 20, 16, 4, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -16, FW_NORMAL, 21, 17, 4, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -17, FW_NORMAL, 22, 18, 4, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -18, FW_NORMAL, 23, 19, 4, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -19, FW_NORMAL, 25, 21, 4, 6, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -20, FW_NORMAL, 26, 22, 4, 6, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -21, FW_NORMAL, 27, 23, 4, 6, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -22, FW_NORMAL, 27, 23, 4, 5, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -23, FW_NORMAL, 29, 24, 5, 6, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -24, FW_NORMAL, 32, 26, 6, 8, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -25, FW_NORMAL, 32, 26, 6, 7, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -26, FW_NORMAL, 33, 27, 6, 7, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -27, FW_NORMAL, 35, 29, 6, 8, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -28, FW_NORMAL, 36, 30, 6, 8, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -29, FW_NORMAL, 36, 30, 6, 7, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -30, FW_NORMAL, 38, 32, 6, 8, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -31, FW_NORMAL, 39, 33, 6, 8, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -32, FW_NORMAL, 40, 33, 7, 8, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -48, FW_NORMAL, 60, 50, 10, 12, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -64, FW_NORMAL, 81, 67, 14, 17, 0, 96, TRUE },
|
||||||
|
{ "wine_vdmx", -96, FW_NORMAL, 119, 99, 20, 23, 0, 96, TRUE },
|
||||||
|
{ "", 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct vdmx_data
|
||||||
|
{
|
||||||
|
WORD version;
|
||||||
|
BYTE bCharSet;
|
||||||
|
const struct font_data *fd;
|
||||||
|
} data[] =
|
||||||
|
{
|
||||||
|
{ 0, 0, charset_0 },
|
||||||
|
{ 0, 1, charset_1 },
|
||||||
|
{ 1, 0, charset_0 },
|
||||||
|
{ 1, 1, charset_1 }
|
||||||
|
};
|
||||||
|
int i;
|
||||||
|
DWORD size, num;
|
||||||
|
WORD *vdmx_header;
|
||||||
|
BYTE *ratio_rec;
|
||||||
|
char ttf_name[MAX_PATH];
|
||||||
|
void *res, *copy;
|
||||||
|
|
||||||
|
if (!pAddFontResourceExA)
|
||||||
|
{
|
||||||
|
win_skip("AddFontResourceExA unavailable\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < sizeof(data) / sizeof(data[0]); i++)
|
||||||
|
{
|
||||||
|
res = get_res_data( "wine_vdmx.ttf", &size );
|
||||||
|
|
||||||
|
copy = HeapAlloc( GetProcessHeap(), 0, size );
|
||||||
|
memcpy( copy, res, size );
|
||||||
|
vdmx_header = find_ttf_table( copy, size, MS_MAKE_TAG('V','D','M','X') );
|
||||||
|
vdmx_header[0] = GET_BE_WORD( data[i].version );
|
||||||
|
ok( GET_BE_WORD( vdmx_header[1] ) == 1, "got %04x\n", GET_BE_WORD( vdmx_header[1] ) );
|
||||||
|
ok( GET_BE_WORD( vdmx_header[2] ) == 1, "got %04x\n", GET_BE_WORD( vdmx_header[2] ) );
|
||||||
|
ratio_rec = (BYTE *)&vdmx_header[3];
|
||||||
|
ratio_rec[0] = data[i].bCharSet;
|
||||||
|
|
||||||
|
write_tmp_file( copy, &size, ttf_name );
|
||||||
|
HeapFree( GetProcessHeap(), 0, copy );
|
||||||
|
|
||||||
|
ok( !is_truetype_font_installed("wine_vdmx"), "Already installed\n" );
|
||||||
|
num = pAddFontResourceExA( ttf_name, FR_PRIVATE, 0 );
|
||||||
|
if (!num) win_skip("Unable to add ttf font resource\n");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ok( is_truetype_font_installed("wine_vdmx"), "Not installed\n" );
|
||||||
|
test_height( hdc, data[i].fd );
|
||||||
|
pRemoveFontResourceExA( ttf_name, FR_PRIVATE, 0 );
|
||||||
|
}
|
||||||
|
DeleteFileA( ttf_name );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void test_height_selection(void)
|
static void test_height_selection(void)
|
||||||
{
|
{
|
||||||
static const struct font_data tahoma[] =
|
static const struct font_data tahoma[] =
|
||||||
@ -1733,6 +1932,7 @@ static void test_height_selection(void)
|
|||||||
assert(hdc);
|
assert(hdc);
|
||||||
|
|
||||||
test_height( hdc, tahoma );
|
test_height( hdc, tahoma );
|
||||||
|
test_height_selection_vdmx( hdc );
|
||||||
|
|
||||||
DeleteDC(hdc);
|
DeleteDC(hdc);
|
||||||
}
|
}
|
||||||
@ -2793,21 +2993,6 @@ typedef struct
|
|||||||
} TT_OS2_V2;
|
} TT_OS2_V2;
|
||||||
#include "poppack.h"
|
#include "poppack.h"
|
||||||
|
|
||||||
#ifdef WORDS_BIGENDIAN
|
|
||||||
#define GET_BE_WORD(x) (x)
|
|
||||||
#define GET_BE_DWORD(x) (x)
|
|
||||||
#else
|
|
||||||
#define GET_BE_WORD(x) MAKEWORD(HIBYTE(x), LOBYTE(x))
|
|
||||||
#define GET_BE_DWORD(x) MAKELONG(GET_BE_WORD(HIWORD(x)), GET_BE_WORD(LOWORD(x)));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define MS_MAKE_TAG(ch0, ch1, ch2, ch3) \
|
|
||||||
((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \
|
|
||||||
((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24))
|
|
||||||
#define MS_OS2_TAG MS_MAKE_TAG('O','S','/','2')
|
|
||||||
#define MS_CMAP_TAG MS_MAKE_TAG('c','m','a','p')
|
|
||||||
#define MS_NAME_TAG MS_MAKE_TAG('n','a','m','e')
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
USHORT version;
|
USHORT version;
|
||||||
|
@ -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
|
||||||
|
271
dlls/gdi32/tests/wine_vdmx.sfd
Normal file
271
dlls/gdi32/tests/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
dlls/gdi32/tests/wine_vdmx.ttf
Normal file
BIN
dlls/gdi32/tests/wine_vdmx.ttf
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user