Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4680 right-hear 1
/***************************************************************************/
2
/*                                                                         */
3
/*  ftsizes.h                                                              */
4
/*                                                                         */
5
/*    FreeType size objects management (specification).                    */
6
/*                                                                         */
7
/*  Copyright 1996-2001, 2003, 2004, 2006, 2009 by                         */
8
/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
9
/*                                                                         */
10
/*  This file is part of the FreeType project, and may only be used,       */
11
/*  modified, and distributed under the terms of the FreeType project      */
12
/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
13
/*  this file you indicate that you have read the license and              */
14
/*  understand and accept it fully.                                        */
15
/*                                                                         */
16
/***************************************************************************/
17
 
18
 
19
  /*************************************************************************/
20
  /*                                                                       */
21
  /* Typical application would normally not need to use these functions.   */
22
  /* However, they have been placed in a public API for the rare cases     */
23
  /* where they are needed.                                                */
24
  /*                                                                       */
25
  /*************************************************************************/
26
 
27
 
28
#ifndef __FTSIZES_H__
29
#define __FTSIZES_H__
30
 
31
 
32
#include 
33
#include FT_FREETYPE_H
34
 
35
#ifdef FREETYPE_H
36
#error "freetype.h of FreeType 1 has been loaded!"
37
#error "Please fix the directory search order for header files"
38
#error "so that freetype.h of FreeType 2 is found first."
39
#endif
40
 
41
 
42
FT_BEGIN_HEADER
43
 
44
 
45
  /*************************************************************************/
46
  /*                                                                       */
47
  /* 
*/
48
  /*    sizes_management                                                   */
49
  /*                                                                       */
50
  /*                                                                */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l51">51</a></td>
           <td class="code"><pre>  /*    Size Management                                                    */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l52">52</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l53">53</a></td>
           <td class="code"><pre>  /* <Abstract>                                                            */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l54">54</a></td>
           <td class="code"><pre>  /*    Managing multiple sizes per face.                                  */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l55">55</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l56">56</a></td>
           <td class="code"><pre>  /* <Description>                                                         */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l57">57</a></td>
           <td class="code"><pre>  /*    When creating a new face object (e.g., with @FT_New_Face), an      */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l58">58</a></td>
           <td class="code"><pre>  /*    @FT_Size object is automatically created and used to store all     */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l59">59</a></td>
           <td class="code"><pre>  /*    pixel-size dependent information, available in the `face->size'    */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l60">60</a></td>
           <td class="code"><pre>  /*    field.                                                             */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l61">61</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l62">62</a></td>
           <td class="code"><pre>  /*    It is however possible to create more sizes for a given face,      */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l63">63</a></td>
           <td class="code"><pre>  /*    mostly in order to manage several character pixel sizes of the     */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l64">64</a></td>
           <td class="code"><pre>  /*    same font family and style.  See @FT_New_Size and @FT_Done_Size.   */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l65">65</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l66">66</a></td>
           <td class="code"><pre>  /*    Note that @FT_Set_Pixel_Sizes and @FT_Set_Char_Size only           */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l67">67</a></td>
           <td class="code"><pre>  /*    modify the contents of the current `active' size; you thus need    */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l68">68</a></td>
           <td class="code"><pre>  /*    to use @FT_Activate_Size to change it.                             */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l69">69</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l70">70</a></td>
           <td class="code"><pre>  /*    99% of applications won't need the functions provided here,        */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l71">71</a></td>
           <td class="code"><pre>  /*    especially if they use the caching sub-system, so be cautious      */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l72">72</a></td>
           <td class="code"><pre>  /*    when using these.                                                  */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l73">73</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l74">74</a></td>
           <td class="code"><pre>  /*************************************************************************/</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l75">75</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l76">76</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l77">77</a></td>
           <td class="code"><pre>  /*************************************************************************/</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l78">78</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l79">79</a></td>
           <td class="code"><pre>  /* <Function>                                                            */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l80">80</a></td>
           <td class="code"><pre>  /*    FT_New_Size                                                        */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l81">81</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l82">82</a></td>
           <td class="code"><pre>  /* <Description>                                                         */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l83">83</a></td>
           <td class="code"><pre>  /*    Create a new size object from a given face object.                 */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l84">84</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l85">85</a></td>
           <td class="code"><pre>  /* <Input>                                                               */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l86">86</a></td>
           <td class="code"><pre>  /*    face :: A handle to a parent face object.                          */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l87">87</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l88">88</a></td>
           <td class="code"><pre>  /* <Output>                                                              */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l89">89</a></td>
           <td class="code"><pre>  /*    asize :: A handle to a new size object.                            */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l90">90</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l91">91</a></td>
           <td class="code"><pre>  /* <Return>                                                              */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l92">92</a></td>
           <td class="code"><pre>  /*    FreeType error code.  0~means success.                             */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l93">93</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l94">94</a></td>
           <td class="code"><pre>  /* <Note>                                                                */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l95">95</a></td>
           <td class="code"><pre>  /*    You need to call @FT_Activate_Size in order to select the new size */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l96">96</a></td>
           <td class="code"><pre>  /*    for upcoming calls to @FT_Set_Pixel_Sizes, @FT_Set_Char_Size,      */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l97">97</a></td>
           <td class="code"><pre>  /*    @FT_Load_Glyph, @FT_Load_Char, etc.                                */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l98">98</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l99">99</a></td>
           <td class="code"><pre>  FT_EXPORT( FT_Error )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l100">100</a></td>
           <td class="code"><pre>  FT_New_Size( FT_Face   face,</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l101">101</a></td>
           <td class="code"><pre>               FT_Size*  size );</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l102">102</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l103">103</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l104">104</a></td>
           <td class="code"><pre>  /*************************************************************************/</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l105">105</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l106">106</a></td>
           <td class="code"><pre>  /* <Function>                                                            */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l107">107</a></td>
           <td class="code"><pre>  /*    FT_Done_Size                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l108">108</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l109">109</a></td>
           <td class="code"><pre>  /* <Description>                                                         */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l110">110</a></td>
           <td class="code"><pre>  /*    Discard a given size object.  Note that @FT_Done_Face              */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l111">111</a></td>
           <td class="code"><pre>  /*    automatically discards all size objects allocated with             */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l112">112</a></td>
           <td class="code"><pre>  /*    @FT_New_Size.                                                      */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l113">113</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l114">114</a></td>
           <td class="code"><pre>  /* <Input>                                                               */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l115">115</a></td>
           <td class="code"><pre>  /*    size :: A handle to a target size object.                          */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l116">116</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l117">117</a></td>
           <td class="code"><pre>  /* <Return>                                                              */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l118">118</a></td>
           <td class="code"><pre>  /*    FreeType error code.  0~means success.                             */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l119">119</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l120">120</a></td>
           <td class="code"><pre>  FT_EXPORT( FT_Error )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l121">121</a></td>
           <td class="code"><pre>  FT_Done_Size( FT_Size  size );</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l122">122</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l123">123</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l124">124</a></td>
           <td class="code"><pre>  /*************************************************************************/</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l125">125</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l126">126</a></td>
           <td class="code"><pre>  /* <Function>                                                            */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l127">127</a></td>
           <td class="code"><pre>  /*    FT_Activate_Size                                                   */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l128">128</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l129">129</a></td>
           <td class="code"><pre>  /* <Description>                                                         */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l130">130</a></td>
           <td class="code"><pre>  /*    Even though it is possible to create several size objects for a    */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l131">131</a></td>
           <td class="code"><pre>  /*    given face (see @FT_New_Size for details), functions like          */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l132">132</a></td>
           <td class="code"><pre>  /*    @FT_Load_Glyph or @FT_Load_Char only use the one which has been    */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l133">133</a></td>
           <td class="code"><pre>  /*    activated last to determine the `current character pixel size'.    */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l134">134</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l135">135</a></td>
           <td class="code"><pre>  /*    This function can be used to `activate' a previously created size  */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l136">136</a></td>
           <td class="code"><pre>  /*    object.                                                            */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l137">137</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l138">138</a></td>
           <td class="code"><pre>  /* <Input>                                                               */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l139">139</a></td>
           <td class="code"><pre>  /*    size :: A handle to a target size object.                          */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l140">140</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l141">141</a></td>
           <td class="code"><pre>  /* <Return>                                                              */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l142">142</a></td>
           <td class="code"><pre>  /*    FreeType error code.  0~means success.                             */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l143">143</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l144">144</a></td>
           <td class="code"><pre>  /* <Note>                                                                */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l145">145</a></td>
           <td class="code"><pre>  /*    If `face' is the size's parent face object, this function changes  */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l146">146</a></td>
           <td class="code"><pre>  /*    the value of `face->size' to the input size handle.                */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l147">147</a></td>
           <td class="code"><pre>  /*                                                                       */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l148">148</a></td>
           <td class="code"><pre>  FT_EXPORT( FT_Error )</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l149">149</a></td>
           <td class="code"><pre>  FT_Activate_Size( FT_Size  size );</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l150">150</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l151">151</a></td>
           <td class="code"><pre>  /* */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l152">152</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l153">153</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l154">154</a></td>
           <td class="code"><pre>FT_END_HEADER</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l155">155</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l156">156</a></td>
           <td class="code"><pre>#endif /* __FTSIZES_H__ */</pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l157">157</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l158">158</a></td>
           <td class="code"><pre> </pre></td>
        </tr>
        <tr valign="middle">
           <td></td>
           <td></td>
           <td><a name="l159">159</a></td>
           <td class="code"><pre>/* END */</Note></Return></Input></Description></Function></Return></Input></Description></Function></Note></Return></Output></Input></Description></Function></Description></Abstract>