~ubuntu-branches/ubuntu/wily/hedgewars/wily

« back to all changes in this revision

Viewing changes to misc/libfreetype/include/freetype/ftlcdfil.h

  • Committer: Package Import Robot
  • Author(s): Dmitry E. Oboukhov
  • Date: 2011-09-23 10:16:55 UTC
  • mfrom: (1.2.11 upstream)
  • Revision ID: package-import@ubuntu.com-20110923101655-3977th2gc5n0a3pv
Tags: 0.9.16-1
* New upstream version.
 + Downloadable content! Simply click to install any content.
   New voices, hats, maps, themes, translations, music, scripts...
   Hedgewars is now more customisable than ever before! As time goes
   by we will be soliciting community content to feature on this page,
   so remember to check it from time to time. If you decide you want
   to go back to standard Hedgewars, just remove the Data directory
   from your Hedgewars config directory.
 + 3-D rendering! Diorama-like rendering of the game in a variety
   of 3D modes. Let us know which ones work best for you, we didn't
   really have the equipment to test them all.
 + Resizable game window.
 + New utilities! The Time Box will remove one of your hedgehogs
   from the game for a while, protecting from attack until it returns,
   somewhere else on the map. Land spray will allow you to build bridges,
   seal up holes, or just make life unpleasant for your enemies.
 + New single player: Bamboo Thicket, That Sinking Feeling, Newton and
   the Tree and multi-player: The Specialists, Space Invaders,
   Racer - scripts! And a ton more script hooks for scripters
 + New twists on old weapons. Drill strike, seduction and fire have
   been adjusted. Defective mines have been added, rope can attach to
   hogs/crates/barrels again, grenades now have variable bounce (use
   precise key + 1-5). Portal gun is now more usable in flight and
   all game actions are a lot faster.
 + New theme - Golf, dozens of new community hats and a new
   localised Default voice, Ukranian.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************************/
 
2
/*                                                                         */
 
3
/*  ftlcdfil.h                                                             */
 
4
/*                                                                         */
 
5
/*    FreeType API for color filtering of subpixel bitmap glyphs           */
 
6
/*    (specification).                                                     */
 
7
/*                                                                         */
 
8
/*  Copyright 2006, 2007, 2008, 2010 by                                    */
 
9
/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 
10
/*                                                                         */
 
11
/*  This file is part of the FreeType project, and may only be used,       */
 
12
/*  modified, and distributed under the terms of the FreeType project      */
 
13
/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
 
14
/*  this file you indicate that you have read the license and              */
 
15
/*  understand and accept it fully.                                        */
 
16
/*                                                                         */
 
17
/***************************************************************************/
 
18
 
 
19
 
 
20
#ifndef __FT_LCD_FILTER_H__
 
21
#define __FT_LCD_FILTER_H__
 
22
 
 
23
#include <ft2build.h>
 
24
#include FT_FREETYPE_H
 
25
 
 
26
#ifdef FREETYPE_H
 
27
#error "freetype.h of FreeType 1 has been loaded!"
 
28
#error "Please fix the directory search order for header files"
 
29
#error "so that freetype.h of FreeType 2 is found first."
 
30
#endif
 
31
 
 
32
 
 
33
FT_BEGIN_HEADER
 
34
 
 
35
  /***************************************************************************
 
36
   *
 
37
   * @section:
 
38
   *   lcd_filtering
 
39
   *
 
40
   * @title:
 
41
   *   LCD Filtering
 
42
   *
 
43
   * @abstract:
 
44
   *   Reduce color fringes of LCD-optimized bitmaps.
 
45
   *
 
46
   * @description:
 
47
   *   The @FT_Library_SetLcdFilter API can be used to specify a low-pass
 
48
   *   filter which is then applied to LCD-optimized bitmaps generated
 
49
   *   through @FT_Render_Glyph.  This is useful to reduce color fringes
 
50
   *   which would occur with unfiltered rendering.
 
51
   *
 
52
   *   Note that no filter is active by default, and that this function is
 
53
   *   *not* implemented in default builds of the library.  You need to
 
54
   *   #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING in your `ftoption.h' file
 
55
   *   in order to activate it.
 
56
   */
 
57
 
 
58
 
 
59
  /****************************************************************************
 
60
   *
 
61
   * @enum:
 
62
   *   FT_LcdFilter
 
63
   *
 
64
   * @description:
 
65
   *   A list of values to identify various types of LCD filters.
 
66
   *
 
67
   * @values:
 
68
   *   FT_LCD_FILTER_NONE ::
 
69
   *     Do not perform filtering.  When used with subpixel rendering, this
 
70
   *     results in sometimes severe color fringes.
 
71
   *
 
72
   *   FT_LCD_FILTER_DEFAULT ::
 
73
   *     The default filter reduces color fringes considerably, at the cost
 
74
   *     of a slight blurriness in the output.
 
75
   *
 
76
   *   FT_LCD_FILTER_LIGHT ::
 
77
   *     The light filter is a variant that produces less blurriness at the
 
78
   *     cost of slightly more color fringes than the default one.  It might
 
79
   *     be better, depending on taste, your monitor, or your personal vision.
 
80
   *
 
81
   *   FT_LCD_FILTER_LEGACY ::
 
82
   *     This filter corresponds to the original libXft color filter.  It
 
83
   *     provides high contrast output but can exhibit really bad color
 
84
   *     fringes if glyphs are not extremely well hinted to the pixel grid.
 
85
   *     In other words, it only works well if the TrueType bytecode
 
86
   *     interpreter is enabled *and* high-quality hinted fonts are used.
 
87
   *
 
88
   *     This filter is only provided for comparison purposes, and might be
 
89
   *     disabled or stay unsupported in the future.
 
90
   *
 
91
   * @since:
 
92
   *   2.3.0
 
93
   */
 
94
  typedef enum  FT_LcdFilter_
 
95
  {
 
96
    FT_LCD_FILTER_NONE    = 0,
 
97
    FT_LCD_FILTER_DEFAULT = 1,
 
98
    FT_LCD_FILTER_LIGHT   = 2,
 
99
    FT_LCD_FILTER_LEGACY  = 16,
 
100
 
 
101
    FT_LCD_FILTER_MAX   /* do not remove */
 
102
 
 
103
  } FT_LcdFilter;
 
104
 
 
105
 
 
106
  /**************************************************************************
 
107
   *
 
108
   * @func:
 
109
   *   FT_Library_SetLcdFilter
 
110
   *
 
111
   * @description:
 
112
   *   This function is used to apply color filtering to LCD decimated
 
113
   *   bitmaps, like the ones used when calling @FT_Render_Glyph with
 
114
   *   @FT_RENDER_MODE_LCD or @FT_RENDER_MODE_LCD_V.
 
115
   *
 
116
   * @input:
 
117
   *   library ::
 
118
   *     A handle to the target library instance.
 
119
   *
 
120
   *   filter ::
 
121
   *     The filter type.
 
122
   *
 
123
   *     You can use @FT_LCD_FILTER_NONE here to disable this feature, or
 
124
   *     @FT_LCD_FILTER_DEFAULT to use a default filter that should work
 
125
   *     well on most LCD screens.
 
126
   *
 
127
   * @return:
 
128
   *   FreeType error code.  0~means success.
 
129
   *
 
130
   * @note:
 
131
   *   This feature is always disabled by default.  Clients must make an
 
132
   *   explicit call to this function with a `filter' value other than
 
133
   *   @FT_LCD_FILTER_NONE in order to enable it.
 
134
   *
 
135
   *   Due to *PATENTS* covering subpixel rendering, this function doesn't
 
136
   *   do anything except returning `FT_Err_Unimplemented_Feature' if the
 
137
   *   configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not
 
138
   *   defined in your build of the library, which should correspond to all
 
139
   *   default builds of FreeType.
 
140
   *
 
141
   *   The filter affects glyph bitmaps rendered through @FT_Render_Glyph,
 
142
   *   @FT_Outline_Get_Bitmap, @FT_Load_Glyph, and @FT_Load_Char.
 
143
   *
 
144
   *   It does _not_ affect the output of @FT_Outline_Render and
 
145
   *   @FT_Outline_Get_Bitmap.
 
146
   *
 
147
   *   If this feature is activated, the dimensions of LCD glyph bitmaps are
 
148
   *   either larger or taller than the dimensions of the corresponding
 
149
   *   outline with regards to the pixel grid.  For example, for
 
150
   *   @FT_RENDER_MODE_LCD, the filter adds up to 3~pixels to the left, and
 
151
   *   up to 3~pixels to the right.
 
152
   *
 
153
   *   The bitmap offset values are adjusted correctly, so clients shouldn't
 
154
   *   need to modify their layout and glyph positioning code when enabling
 
155
   *   the filter.
 
156
   *
 
157
   * @since:
 
158
   *   2.3.0
 
159
   */
 
160
  FT_EXPORT( FT_Error )
 
161
  FT_Library_SetLcdFilter( FT_Library    library,
 
162
                           FT_LcdFilter  filter );
 
163
 
 
164
 
 
165
  /**************************************************************************
 
166
   *
 
167
   * @func:
 
168
   *   FT_Library_SetLcdFilterWeights
 
169
   *
 
170
   * @description:
 
171
   *   Use this function to override the filter weights selected by
 
172
   *   @FT_Library_SetLcdFilter.  By default, FreeType uses the quintuple
 
173
   *   (0x00, 0x55, 0x56, 0x55, 0x00) for FT_LCD_FILTER_LIGHT, and (0x10,
 
174
   *   0x40, 0x70, 0x40, 0x10) for FT_LCD_FILTER_DEFAULT and
 
175
   *   FT_LCD_FILTER_LEGACY.
 
176
   *
 
177
   * @input:
 
178
   *   library ::
 
179
   *     A handle to the target library instance.
 
180
   *
 
181
   *   weights ::
 
182
   *     A pointer to an array; the function copies the first five bytes and
 
183
   *     uses them to specify the filter weights.
 
184
   *
 
185
   * @return:
 
186
   *   FreeType error code.  0~means success.
 
187
   *
 
188
   * @note:
 
189
   *   Due to *PATENTS* covering subpixel rendering, this function doesn't
 
190
   *   do anything except returning `FT_Err_Unimplemented_Feature' if the
 
191
   *   configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not
 
192
   *   defined in your build of the library, which should correspond to all
 
193
   *   default builds of FreeType.
 
194
   *
 
195
   *   This function must be called after @FT_Library_SetLcdFilter to have
 
196
   *   any effect.
 
197
   *
 
198
   * @since:
 
199
   *   2.4.0
 
200
   */
 
201
  FT_EXPORT( FT_Error )
 
202
  FT_Library_SetLcdFilterWeights( FT_Library      library,
 
203
                                  unsigned char  *weights );
 
204
 
 
205
  /* */
 
206
 
 
207
 
 
208
FT_END_HEADER
 
209
 
 
210
#endif /* __FT_LCD_FILTER_H__ */
 
211
 
 
212
 
 
213
/* END */