| Index: include/freetype/ftlcdfil.h
|
| diff --git a/include/freetype/ftlcdfil.h b/include/freetype/ftlcdfil.h
|
| index 0b55ebee65cb39a7b80535b50ec83951196fba87..8b253f118bee14f9d406596aa86521df9456c820 100644
|
| --- a/include/freetype/ftlcdfil.h
|
| +++ b/include/freetype/ftlcdfil.h
|
| @@ -53,6 +53,44 @@ FT_BEGIN_HEADER
|
| * *not* implemented in default builds of the library. You need to
|
| * #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING in your `ftoption.h' file
|
| * in order to activate it.
|
| + *
|
| + * FreeType generates alpha coverage maps, which are linear by nature.
|
| + * For instance, the value 0x80 in bitmap representation means that
|
| + * (within numerical precision) 0x80/0xff fraction of that pixel is
|
| + * covered by the glyph's outline. The blending function for placing
|
| + * text over a background is
|
| + *
|
| + * {
|
| + * dst = alpha * src + (1 - alpha) * dst ,
|
| + * }
|
| + *
|
| + * which is known as OVER. However, when calculating the output of the
|
| + * OVER operator, the source colors should first be transformed to a
|
| + * linear color space, then alpha blended in that space, and transformed
|
| + * back to the output color space.
|
| + *
|
| + * When linear light blending is used, the default FIR5 filtering
|
| + * weights (as given by FT_LCD_FILTER_DEFAULT) are no longer optimal, as
|
| + * they have been designed for black on white rendering while lacking
|
| + * gamma correction. To preserve color neutrality, weights for a FIR5
|
| + * filter should be chosen according to two free parameters `a' and `c',
|
| + * and the FIR weights should be
|
| + *
|
| + * {
|
| + * [a - c, a + c, 2 * a, a + c, a - c] .
|
| + * }
|
| + *
|
| + * This formula generates equal weights for all the color primaries
|
| + * across the filter kernel, which makes it colorless. One suggested
|
| + * set of weights is
|
| + *
|
| + * {
|
| + * [0x10, 0x50, 0x60, 0x50, 0x10] ,
|
| + * }
|
| + *
|
| + * where `a' has value 0x30 and `b' value 0x20. The weights in filter
|
| + * may have a sum larger than 0x100, which increases coloration slightly
|
| + * but also improves contrast.
|
| */
|
|
|
|
|
|
|