shithub: freetype+ttf2subf

Download patch

ref: 826935a381e0c3d36be6ac301b3c94c52d46e556
parent: 3cc7d630bdccc1f2ae4bbf97ba7fddcddeb470c5
author: David Turner <[email protected]>
date: Wed Sep 27 05:12:43 EDT 2006

another missing file

git/fs: mount .git/fs: mount/attach disallowed
--- /dev/null
+++ b/include/freetype/ftlcdfil.h
@@ -1,0 +1,89 @@
+#ifndef __FT_LCD_FILTER_H__
+#define __FT_LCD_FILTER_H__
+
+#include <ft2build.h>
+#include FT_FREETYPE_H
+
+FT_BEGIN_HEADER
+
+ /**
+  * @func: FT_Library_SetLcdFilter
+  *
+  * @description:
+  *   this function is used to apply color filtering to LCD decimated
+  *   bitmaps, like the ones used when calling @FT_Render_Glyph with
+  *   @FT_RENDER_MODE_LCD or @FT_RENDER_MODE_LCD_V.
+  *
+  * @input:
+  *   library  :: handle to target library instance
+  *
+  *   filter_weights :: a pointer to an array of 5 bytes corresponding
+  *                     to the weights of a 5-tap FIR filter. Each
+  *                     weight must be positive, and their sum should
+  *                     be at least 256 to avoid loss of darkness
+  *                     in the rendered glyphs. The sum can be greater
+  *                     than 256 to darken the glyphs (el-cheapo gamma)
+  *
+  *                     you can use @FT_LCD_FILTER_NONE here to disable
+  *                     this feature, or @FT_LCD_FILTER_DEFAULT to use
+  *                     a default filter that should work well on most
+  *                     LCD screens.
+  *
+  * @return:
+  *   error code. 0 means success
+  *
+  * @note:
+  *   this feature is always disabled by default. Clients must make an
+  *   explicit call to this function with a 'filter_weights' value other
+  *   than @FT_LCD_FILTER_NONE in order to enable it.
+  *
+  *   due to *PATENTS* covering subpixel rendering, this function will
+  *   not do anything except return @FT_Err_Unimplemented_Feature if the
+  *   configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not
+  *   defined in your build of the library, which should correspond
+  *   to all default builds of the library
+  *
+  *   the filter affects glyph bitmaps rendered through
+  *   @FT_Render_Glyph, @FT_Glyph_Get_Bitmap, @FT_Load_Glyph and
+  *   @FT_Load_Char.
+  *
+  *   It does *not* affect the output of @FT_Outline_Render
+  *   and @FT_Outline_Get_Bitmap.
+  *
+  *   if this feature is activated, the dimensions of LCD glyph bitmaps
+  *   will be either larger or taller than the dimensions of the corresponding
+  *   outline with regards to the pixel grid. For example, for @FT_RENDER_MODE_LCD,
+  *   the filter adds up to 3 pixels to the left, and up to 3 pixels to the right.
+  *
+  *   the bitmap offset values are adjusted correctly, so clients shouldn't need
+  *   to modify thei layout / glyph positioning code when enabling the filter.
+  */
+  FT_EXPORT( FT_Error )
+  FT_Library_SetLcdFilter( FT_Library       library,
+                           const FT_Byte*   filter_weights );
+
+
+ /**
+  * @enum: FT_LCD_FILTER_XXX
+  *
+  * @desc: a list of constants correspond to useful lcd filter settings to
+  *        be used when calling @FT_Library_SetLcdFilter
+  *
+  * @values:
+  *    FT_LCD_FILTER_NONE :: the value NULL is reserved to indicate that
+  *                          LCD color filtering should be disabled.
+  *
+  *    FT_LCD_FILTER_DEFAULT ::
+  *       this value is reserved to indicate a default FIR filter that
+  *       should work well on most LCD screen. For the really curious,
+  *       it corresponds to the array 0x10, 0x40, 0x70, 0x40, 0x10
+  */
+#define  FT_LCD_FILTER_NONE        ((const FT_Byte*)NULL )
+
+#define  FT_LCD_FILTER_DEFAULT     ((const FT_Byte*)(void*)(ft_ptrdiff_t)1)
+
+/* */
+
+FT_END_HEADER
+
+#endif /* __FT_LCD_FILTER_H__ */