Fontconfig options for freetype sub-pixel filter configuration
David Turner has modified FreeType to be able to render sub-pixel decimated glyphs using different methods of filtering. Fontconfig needs new configurables to support selecting these new filtering options. A patch follows that would correspond to one available for Cairo in bug 10301.
This commit is contained in:
parent
c26344ecfc
commit
53aec11107
|
@ -177,6 +177,7 @@ convenience for the applications rendering mechanism.
|
||||||
dpi FC_DPI Double Target dots per inch
|
dpi FC_DPI Double Target dots per inch
|
||||||
rgba FC_RGBA Int unknown, rgb, bgr, vrgb,
|
rgba FC_RGBA Int unknown, rgb, bgr, vrgb,
|
||||||
vbgr, none - subpixel geometry
|
vbgr, none - subpixel geometry
|
||||||
|
lcdfilter FC_LCD_FILTER Int Type of LCD filter
|
||||||
minspace FC_MINSPACE Bool Eliminate leading from line
|
minspace FC_MINSPACE Bool Eliminate leading from line
|
||||||
spacing
|
spacing
|
||||||
charset FC_CHARSET CharSet Unicode chars encoded by
|
charset FC_CHARSET CharSet Unicode chars encoded by
|
||||||
|
|
|
@ -120,6 +120,7 @@ convenience for the applications' rendering mechanism.
|
||||||
dpi Double Target dots per inch
|
dpi Double Target dots per inch
|
||||||
rgba Int unknown, rgb, bgr, vrgb, vbgr,
|
rgba Int unknown, rgb, bgr, vrgb, vbgr,
|
||||||
none - subpixel geometry
|
none - subpixel geometry
|
||||||
|
lcdfilter Int Type of LCD filter
|
||||||
minspace Bool Eliminate leading from line spacing
|
minspace Bool Eliminate leading from line spacing
|
||||||
charset CharSet Unicode chars encoded by the font
|
charset CharSet Unicode chars encoded by the font
|
||||||
lang String List of RFC-3066-style languages this
|
lang String List of RFC-3066-style languages this
|
||||||
|
@ -476,6 +477,10 @@ symbolic names for common font values:
|
||||||
vrgb rgba 3
|
vrgb rgba 3
|
||||||
vbgr rgba 4
|
vbgr rgba 4
|
||||||
none rgba 5
|
none rgba 5
|
||||||
|
lcdnone lcdfilter 0
|
||||||
|
lcddefault lcdfilter 1
|
||||||
|
lcdlight lcdfilter 2
|
||||||
|
lcdlegacy lcdfilter 3
|
||||||
hintnone hintstyle 0
|
hintnone hintstyle 0
|
||||||
hintslight hintstyle 1
|
hintslight hintstyle 1
|
||||||
hintmedium hintstyle 2
|
hintmedium hintstyle 2
|
||||||
|
|
|
@ -111,6 +111,7 @@ typedef int FcBool;
|
||||||
#define FC_EMBOLDEN "embolden" /* Bool - true if emboldening needed*/
|
#define FC_EMBOLDEN "embolden" /* Bool - true if emboldening needed*/
|
||||||
#define FC_EMBEDDED_BITMAP "embeddedbitmap" /* Bool - true to enable embedded bitmaps */
|
#define FC_EMBEDDED_BITMAP "embeddedbitmap" /* Bool - true to enable embedded bitmaps */
|
||||||
#define FC_DECORATIVE "decorative" /* Bool - true if style is a decorative variant */
|
#define FC_DECORATIVE "decorative" /* Bool - true if style is a decorative variant */
|
||||||
|
#define FC_LCD_FILTER "lcdfilter" /* Int */
|
||||||
|
|
||||||
#define FC_CACHE_SUFFIX ".cache-"FC_CACHE_VERSION
|
#define FC_CACHE_SUFFIX ".cache-"FC_CACHE_VERSION
|
||||||
#define FC_DIR_CACHE_FILE "fonts.cache-"FC_CACHE_VERSION
|
#define FC_DIR_CACHE_FILE "fonts.cache-"FC_CACHE_VERSION
|
||||||
|
@ -171,7 +172,13 @@ typedef int FcBool;
|
||||||
#define FC_HINT_SLIGHT 1
|
#define FC_HINT_SLIGHT 1
|
||||||
#define FC_HINT_MEDIUM 2
|
#define FC_HINT_MEDIUM 2
|
||||||
#define FC_HINT_FULL 3
|
#define FC_HINT_FULL 3
|
||||||
|
|
||||||
|
/* LCD filter */
|
||||||
|
#define FC_LCD_NONE 0
|
||||||
|
#define FC_LCD_DEFAULT 1
|
||||||
|
#define FC_LCD_LIGHT 2
|
||||||
|
#define FC_LCD_LEGACY 3
|
||||||
|
|
||||||
typedef enum _FcType {
|
typedef enum _FcType {
|
||||||
FcTypeVoid,
|
FcTypeVoid,
|
||||||
FcTypeInteger,
|
FcTypeInteger,
|
||||||
|
|
|
@ -848,7 +848,8 @@ FcListPatternMatchAny (const FcPattern *p,
|
||||||
#define FC_EMBOLDEN_OBJECT 38
|
#define FC_EMBOLDEN_OBJECT 38
|
||||||
#define FC_EMBEDDED_BITMAP_OBJECT 39
|
#define FC_EMBEDDED_BITMAP_OBJECT 39
|
||||||
#define FC_DECORATIVE_OBJECT 40
|
#define FC_DECORATIVE_OBJECT 40
|
||||||
#define FC_MAX_BASE_OBJECT FC_DECORATIVE_OBJECT
|
#define FC_LCD_FILTER_OBJECT 41
|
||||||
|
#define FC_MAX_BASE_OBJECT FC_LCD_FILTER_OBJECT
|
||||||
|
|
||||||
FcPrivate FcBool
|
FcPrivate FcBool
|
||||||
FcNameBool (const FcChar8 *v, FcBool *result);
|
FcNameBool (const FcChar8 *v, FcBool *result);
|
||||||
|
|
|
@ -74,7 +74,8 @@ static const FcObjectType _FcBaseObjectTypes[] = {
|
||||||
{ FC_FONTFORMAT, FcTypeString },
|
{ FC_FONTFORMAT, FcTypeString },
|
||||||
{ FC_EMBOLDEN, FcTypeBool },
|
{ FC_EMBOLDEN, FcTypeBool },
|
||||||
{ FC_EMBEDDED_BITMAP, FcTypeBool },
|
{ FC_EMBEDDED_BITMAP, FcTypeBool },
|
||||||
{ FC_DECORATIVE, FcTypeBool }, /* 40 */
|
{ FC_DECORATIVE, FcTypeBool },
|
||||||
|
{ FC_LCD_FILTER, FcTypeInteger }, /* 41 */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define NUM_OBJECT_TYPES (sizeof _FcBaseObjectTypes / sizeof _FcBaseObjectTypes[0])
|
#define NUM_OBJECT_TYPES (sizeof _FcBaseObjectTypes / sizeof _FcBaseObjectTypes[0])
|
||||||
|
@ -435,6 +436,10 @@ static const FcConstant _FcBaseConstants[] = {
|
||||||
{ (FcChar8 *) "embolden", "embolden", FcTrue },
|
{ (FcChar8 *) "embolden", "embolden", FcTrue },
|
||||||
{ (FcChar8 *) "embeddedbitmap", "embeddedbitmap", FcTrue },
|
{ (FcChar8 *) "embeddedbitmap", "embeddedbitmap", FcTrue },
|
||||||
{ (FcChar8 *) "decorative", "decorative", FcTrue },
|
{ (FcChar8 *) "decorative", "decorative", FcTrue },
|
||||||
|
{ (FcChar8 *) "lcdnone", "lcdfilter", FC_LCD_NONE },
|
||||||
|
{ (FcChar8 *) "lcddefault", "lcdfilter", FC_LCD_DEFAULT },
|
||||||
|
{ (FcChar8 *) "lcdlight", "lcdfilter", FC_LCD_LIGHT },
|
||||||
|
{ (FcChar8 *) "lcdlegacy", "lcdfilter", FC_LCD_LEGACY },
|
||||||
};
|
};
|
||||||
|
|
||||||
#define NUM_FC_CONSTANTS (sizeof _FcBaseConstants/sizeof _FcBaseConstants[0])
|
#define NUM_FC_CONSTANTS (sizeof _FcBaseConstants/sizeof _FcBaseConstants[0])
|
||||||
|
|
Loading…
Reference in New Issue