From 3470492e21c441f5fdbf073a696fd69cddedd49f Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Thu, 20 Sep 2012 12:13:52 -0700 Subject: [PATCH] windows.fonts: speed up cached fonts. --- basis/windows/fonts/fonts.factor | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/basis/windows/fonts/fonts.factor b/basis/windows/fonts/fonts.factor index 65a08ce3c7..700f4c42d5 100644 --- a/basis/windows/fonts/fonts.factor +++ b/basis/windows/fonts/fonts.factor @@ -19,11 +19,11 @@ MEMO: windows-fonts ( -- fonts ) : windows-font-name ( string -- string' ) windows-fonts ?at drop ; -MEMO:: (cache-font) ( font -- HFONT ) - font size>> neg ! nHeight +MEMO:: (cache-font) ( name size bold? italic? -- HFONT ) + size neg ! nHeight 0 0 0 ! nWidth, nEscapement, nOrientation - font bold?>> FW_BOLD FW_NORMAL ? ! fnWeight - font italic?>> TRUE FALSE ? ! fdwItalic + bold? FW_BOLD FW_NORMAL ? ! fnWeight + italic? TRUE FALSE ? ! fdwItalic FALSE ! fdwUnderline FALSE ! fdWStrikeOut DEFAULT_CHARSET ! fdwCharSet @@ -31,11 +31,13 @@ MEMO:: (cache-font) ( font -- HFONT ) CLIP_DEFAULT_PRECIS ! fdwClipPrecision DEFAULT_QUALITY ! fdwQuality DEFAULT_PITCH ! fdwPitchAndFamily - font name>> windows-font-name + name windows-font-name CreateFont dup win32-error=0/f ; -: cache-font ( font -- HFONT ) strip-font-colors (cache-font) ; +: cache-font ( font -- HFONT ) + { [ name>> ] [ size>> ] [ bold?>> ] [ italic?>> ] } cleave + (cache-font) ; [ \ (cache-font) reset-memoized ] "windows.fonts" add-startup-hook -- 2.34.1