gdi32/tests: Add vdmx tests.

This commit is contained in:
Huw Davies 2013-08-28 14:21:15 +01:00 committed by Alexandre Julliard
parent 7310bdb498
commit 774f57ca24
4 changed files with 473 additions and 15 deletions

View File

@ -58,6 +58,21 @@ static HMODULE hgdi32 = 0;
static const MAT2 mat = { {0,1}, {0,0}, {0,0}, {0,1} };
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)
{
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 const struct font_data tahoma[] =
@ -1733,6 +1932,7 @@ static void test_height_selection(void)
assert(hdc);
test_height( hdc, tahoma );
test_height_selection_vdmx( hdc );
DeleteDC(hdc);
}
@ -2793,21 +2993,6 @@ typedef struct
} TT_OS2_V2;
#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
{
USHORT version;

View File

@ -23,6 +23,8 @@
/* @makedep: wine_test.ttf */
wine_test.ttf RCDATA wine_test.ttf
/* @makedep: wine_vdmx.ttf */
wine_vdmx.ttf RCDATA wine_vdmx.ttf
/* @makedep: vertical.ttf */
vertical.ttf RCDATA vertical.ttf

View 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

Binary file not shown.