Nikolay Sivov : dwrite: Recognize semi light weight patterns.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Aug 31 06:41:59 CDT 2015


Module: wine
Branch: master
Commit: 9a6b0750c7ab3da676a7fc7f857a2d5007b5f6bf
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=9a6b0750c7ab3da676a7fc7f857a2d5007b5f6bf

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Mon Aug 31 08:13:44 2015 +0300

dwrite: Recognize semi light weight patterns.

---

 dlls/dwrite/font.c | 10 ++++++++++
 include/dwrite.idl |  1 +
 2 files changed, 11 insertions(+)

diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c
index b1a3cae..63ad277 100644
--- a/dlls/dwrite/font.c
+++ b/dlls/dwrite/font.c
@@ -2236,6 +2236,11 @@ static DWRITE_FONT_WEIGHT font_extract_weight(struct list *tokens, DWRITE_FONT_W
         { NULL }
     };
 
+    static const struct name_pattern semilight_patterns[] = {
+        { semiW, lightW },
+        { NULL }
+    };
+
     static const struct name_pattern demibold_patterns[] = {
         { semiW, boldW },
         { demiW, boldW },
@@ -2302,6 +2307,9 @@ static DWRITE_FONT_WEIGHT font_extract_weight(struct list *tokens, DWRITE_FONT_W
     if (match_pattern_list(tokens, extralight_patterns, match))
         return DWRITE_FONT_WEIGHT_EXTRA_LIGHT;
 
+    if (match_pattern_list(tokens, semilight_patterns, match))
+        return DWRITE_FONT_WEIGHT_SEMI_LIGHT;
+
     if (match_pattern_list(tokens, demibold_patterns, match))
         return DWRITE_FONT_WEIGHT_DEMI_BOLD;
 
@@ -2362,6 +2370,7 @@ static int compare_knownweights(const void *a, const void* b)
 static BOOL is_known_weight_value(DWRITE_FONT_WEIGHT weight, WCHAR *nameW)
 {
     static const WCHAR extralightW[] = {'E','x','t','r','a',' ','L','i','g','h','t',0};
+    static const WCHAR semilightW[] = {'S','e','m','i',' ','L','i','g','h','t',0};
     static const WCHAR extrablackW[] = {'E','x','t','r','a',' ','B','l','a','c','k',0};
     static const WCHAR extraboldW[] = {'E','x','t','r','a',' ','B','o','l','d',0};
     static const WCHAR demiboldW[] = {'D','e','m','i',' ','B','o','l','d',0};
@@ -2371,6 +2380,7 @@ static BOOL is_known_weight_value(DWRITE_FONT_WEIGHT weight, WCHAR *nameW)
         { thinW,       DWRITE_FONT_WEIGHT_THIN },
         { extralightW, DWRITE_FONT_WEIGHT_EXTRA_LIGHT },
         { lightW,      DWRITE_FONT_WEIGHT_LIGHT },
+        { semilightW,  DWRITE_FONT_WEIGHT_SEMI_LIGHT },
         { mediumW,     DWRITE_FONT_WEIGHT_MEDIUM },
         { demiboldW,   DWRITE_FONT_WEIGHT_DEMI_BOLD },
         { boldW,       DWRITE_FONT_WEIGHT_BOLD },
diff --git a/include/dwrite.idl b/include/dwrite.idl
index f8644ba..9452e11 100644
--- a/include/dwrite.idl
+++ b/include/dwrite.idl
@@ -73,6 +73,7 @@ typedef enum DWRITE_FONT_WEIGHT
     DWRITE_FONT_WEIGHT_EXTRA_LIGHT = 200,
     DWRITE_FONT_WEIGHT_ULTRA_LIGHT = 200,
     DWRITE_FONT_WEIGHT_LIGHT = 300,
+    DWRITE_FONT_WEIGHT_SEMI_LIGHT = 350,
     DWRITE_FONT_WEIGHT_NORMAL = 400,
     DWRITE_FONT_WEIGHT_REGULAR = 400,
     DWRITE_FONT_WEIGHT_MEDIUM = 500,




More information about the wine-cvs mailing list