[5/5] gdi32: Simplify font cache a bit.
Kusanagi Kouichi
slash at ac.auone-net.jp
Tue Mar 27 05:08:39 CDT 2012
Signed-off-by: Kusanagi Kouichi <slash at ac.auone-net.jp>
---
dlls/gdi32/freetype.c | 41 ++++++++---------------------------------
1 files changed, 8 insertions(+), 33 deletions(-)
diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c
index 1bedcf8..21d13e9 100644
--- a/dlls/gdi32/freetype.c
+++ b/dlls/gdi32/freetype.c
@@ -484,15 +484,9 @@ static const WCHAR wine_fonts_key[] = {'S','o','f','t','w','a','r','e','\\','W',
static const WCHAR wine_fonts_cache_key[] = {'C','a','c','h','e',0};
static const WCHAR english_name_value[] = {'E','n','g','l','i','s','h',' ','N','a','m','e',0};
static const WCHAR face_index_value[] = {'I','n','d','e','x',0};
-static const WCHAR face_italic_value[] = {'I','t','a','l','i','c',0};
-static const WCHAR face_bold_value[] = {'B','o','l','d',0};
+static const WCHAR face_ntmflags_value[] = {'N','t','m','f','l','a','g','s',0};
static const WCHAR face_version_value[] = {'V','e','r','s','i','o','n',0};
-static const WCHAR face_height_value[] = {'H','e','i','g','h','t',0};
-static const WCHAR face_width_value[] = {'W','i','d','t','h',0};
-static const WCHAR face_size_value[] = {'S','i','z','e',0};
-static const WCHAR face_x_ppem_value[] = {'X','p','p','e','m',0};
-static const WCHAR face_y_ppem_value[] = {'Y','p','p','e','m',0};
-static const WCHAR face_internal_leading_value[] = {'I','n','t','e','r','n','a','l',' ','L','e','a','d','i','n','g',0};
+static const WCHAR face_font_size_value[] = {'F','o','n','t',' ','S','i','z','e','\0'};
static const WCHAR face_font_sig_value[] = {'F','o','n','t',' ','S','i','g','n','a','t','u','r','e',0};
static const WCHAR face_full_name_value[] = {'F','u','l','l',' ','N','a','m','e','\0'};
@@ -1248,7 +1242,6 @@ static void load_face(HKEY hkey_face, WCHAR *face_name, Family *family)
key of a bunch of non-scalable strikes */
if(RegQueryValueExA(hkey_face, "File Name", NULL, NULL, NULL, &needed) == ERROR_SUCCESS)
{
- DWORD italic, bold;
Face *face;
face = HeapAlloc(GetProcessHeap(), 0, sizeof(*face));
face->cached_enum_data = NULL;
@@ -1270,14 +1263,14 @@ static void load_face(HKEY hkey_face, WCHAR *face_name, Family *family)
face->FullName = NULL;
reg_load_dword(hkey_face, face_index_value, (DWORD*)&face->face_index);
- reg_load_dword(hkey_face, face_italic_value, &italic);
- reg_load_dword(hkey_face, face_bold_value, &bold);
+ reg_load_dword(hkey_face, face_ntmflags_value, &face->ntmFlags);
reg_load_dword(hkey_face, face_version_value, (DWORD*)&face->font_version);
needed = sizeof(face->fs);
RegQueryValueExW(hkey_face, face_font_sig_value, NULL, NULL, (BYTE*)&face->fs, &needed);
- if(reg_load_dword(hkey_face, face_height_value, (DWORD*)&face->size.height) != ERROR_SUCCESS)
+ needed = sizeof face->size;
+ if (RegQueryValueExW(hkey_face, face_font_size_value, NULL, NULL, (BYTE*)&face->size, &needed) != ERROR_SUCCESS)
{
face->scalable = TRUE;
memset(&face->size, 0, sizeof(face->size));
@@ -1285,22 +1278,11 @@ static void load_face(HKEY hkey_face, WCHAR *face_name, Family *family)
else
{
face->scalable = FALSE;
- reg_load_dword(hkey_face, face_width_value, (DWORD*)&face->size.width);
- reg_load_dword(hkey_face, face_size_value, (DWORD*)&face->size.size);
- reg_load_dword(hkey_face, face_x_ppem_value, (DWORD*)&face->size.x_ppem);
- reg_load_dword(hkey_face, face_y_ppem_value, (DWORD*)&face->size.y_ppem);
- reg_load_dword(hkey_face, face_internal_leading_value, (DWORD*)&face->size.internal_leading);
-
TRACE("Adding bitmap size h %d w %d size %ld x_ppem %ld y_ppem %ld\n",
face->size.height, face->size.width, face->size.size >> 6,
face->size.x_ppem >> 6, face->size.y_ppem >> 6);
}
- face->ntmFlags = 0;
- if (italic) face->ntmFlags |= NTM_ITALIC;
- if (bold) face->ntmFlags |= NTM_BOLD;
- if (face->ntmFlags == 0) face->ntmFlags = NTM_REGULAR;
-
TRACE("fsCsb = %08x %08x/%08x %08x %08x %08x\n",
face->fs.fsCsb[0], face->fs.fsCsb[1],
face->fs.fsUsb[0], face->fs.fsUsb[1],
@@ -1453,21 +1435,14 @@ static void add_face_to_cache(Face *face)
(strlenW(face->FullName) + 1) * sizeof(WCHAR));
reg_save_dword(hkey_face, face_index_value, face->face_index);
- reg_save_dword(hkey_face, face_italic_value, (face->ntmFlags & NTM_ITALIC) != 0);
- reg_save_dword(hkey_face, face_bold_value, (face->ntmFlags & NTM_BOLD) != 0);
+ reg_save_dword(hkey_face, face_ntmflags_value, face->ntmFlags);
reg_save_dword(hkey_face, face_version_value, face->font_version);
RegSetValueExW(hkey_face, face_font_sig_value, 0, REG_BINARY, (BYTE*)&face->fs, sizeof(face->fs));
if(!face->scalable)
- {
- reg_save_dword(hkey_face, face_height_value, face->size.height);
- reg_save_dword(hkey_face, face_width_value, face->size.width);
- reg_save_dword(hkey_face, face_size_value, face->size.size);
- reg_save_dword(hkey_face, face_x_ppem_value, face->size.x_ppem);
- reg_save_dword(hkey_face, face_y_ppem_value, face->size.y_ppem);
- reg_save_dword(hkey_face, face_internal_leading_value, face->size.internal_leading);
- }
+ RegSetValueExW(hkey_face, face_font_size_value, 0, REG_BINARY, (BYTE*)&face->size, sizeof face->size);
+
RegCloseKey(hkey_face);
RegCloseKey(hkey_family);
RegCloseKey(hkey_font_cache);
--
1.7.9.1
More information about the wine-patches
mailing list