misc/libfreetype/include/freetype/ftsizes.h
branchwebgl
changeset 9521 8054d9d775fd
parent 9282 92af50454cf2
parent 9519 b8b5c82eb61b
child 9950 2759212a27de
equal deleted inserted replaced
9282:92af50454cf2 9521:8054d9d775fd
     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 <ft2build.h>
       
    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   /* <Section>                                                             */
       
    48   /*    sizes_management                                                   */
       
    49   /*                                                                       */
       
    50   /* <Title>                                                               */
       
    51   /*    Size Management                                                    */
       
    52   /*                                                                       */
       
    53   /* <Abstract>                                                            */
       
    54   /*    Managing multiple sizes per face.                                  */
       
    55   /*                                                                       */
       
    56   /* <Description>                                                         */
       
    57   /*    When creating a new face object (e.g., with @FT_New_Face), an      */
       
    58   /*    @FT_Size object is automatically created and used to store all     */
       
    59   /*    pixel-size dependent information, available in the `face->size'    */
       
    60   /*    field.                                                             */
       
    61   /*                                                                       */
       
    62   /*    It is however possible to create more sizes for a given face,      */
       
    63   /*    mostly in order to manage several character pixel sizes of the     */
       
    64   /*    same font family and style.  See @FT_New_Size and @FT_Done_Size.   */
       
    65   /*                                                                       */
       
    66   /*    Note that @FT_Set_Pixel_Sizes and @FT_Set_Char_Size only           */
       
    67   /*    modify the contents of the current `active' size; you thus need    */
       
    68   /*    to use @FT_Activate_Size to change it.                             */
       
    69   /*                                                                       */
       
    70   /*    99% of applications won't need the functions provided here,        */
       
    71   /*    especially if they use the caching sub-system, so be cautious      */
       
    72   /*    when using these.                                                  */
       
    73   /*                                                                       */
       
    74   /*************************************************************************/
       
    75 
       
    76 
       
    77   /*************************************************************************/
       
    78   /*                                                                       */
       
    79   /* <Function>                                                            */
       
    80   /*    FT_New_Size                                                        */
       
    81   /*                                                                       */
       
    82   /* <Description>                                                         */
       
    83   /*    Create a new size object from a given face object.                 */
       
    84   /*                                                                       */
       
    85   /* <Input>                                                               */
       
    86   /*    face :: A handle to a parent face object.                          */
       
    87   /*                                                                       */
       
    88   /* <Output>                                                              */
       
    89   /*    asize :: A handle to a new size object.                            */
       
    90   /*                                                                       */
       
    91   /* <Return>                                                              */
       
    92   /*    FreeType error code.  0~means success.                             */
       
    93   /*                                                                       */
       
    94   /* <Note>                                                                */
       
    95   /*    You need to call @FT_Activate_Size in order to select the new size */
       
    96   /*    for upcoming calls to @FT_Set_Pixel_Sizes, @FT_Set_Char_Size,      */
       
    97   /*    @FT_Load_Glyph, @FT_Load_Char, etc.                                */
       
    98   /*                                                                       */
       
    99   FT_EXPORT( FT_Error )
       
   100   FT_New_Size( FT_Face   face,
       
   101                FT_Size*  size );
       
   102 
       
   103 
       
   104   /*************************************************************************/
       
   105   /*                                                                       */
       
   106   /* <Function>                                                            */
       
   107   /*    FT_Done_Size                                                       */
       
   108   /*                                                                       */
       
   109   /* <Description>                                                         */
       
   110   /*    Discard a given size object.  Note that @FT_Done_Face              */
       
   111   /*    automatically discards all size objects allocated with             */
       
   112   /*    @FT_New_Size.                                                      */
       
   113   /*                                                                       */
       
   114   /* <Input>                                                               */
       
   115   /*    size :: A handle to a target size object.                          */
       
   116   /*                                                                       */
       
   117   /* <Return>                                                              */
       
   118   /*    FreeType error code.  0~means success.                             */
       
   119   /*                                                                       */
       
   120   FT_EXPORT( FT_Error )
       
   121   FT_Done_Size( FT_Size  size );
       
   122 
       
   123 
       
   124   /*************************************************************************/
       
   125   /*                                                                       */
       
   126   /* <Function>                                                            */
       
   127   /*    FT_Activate_Size                                                   */
       
   128   /*                                                                       */
       
   129   /* <Description>                                                         */
       
   130   /*    Even though it is possible to create several size objects for a    */
       
   131   /*    given face (see @FT_New_Size for details), functions like          */
       
   132   /*    @FT_Load_Glyph or @FT_Load_Char only use the one which has been    */
       
   133   /*    activated last to determine the `current character pixel size'.    */
       
   134   /*                                                                       */
       
   135   /*    This function can be used to `activate' a previously created size  */
       
   136   /*    object.                                                            */
       
   137   /*                                                                       */
       
   138   /* <Input>                                                               */
       
   139   /*    size :: A handle to a target size object.                          */
       
   140   /*                                                                       */
       
   141   /* <Return>                                                              */
       
   142   /*    FreeType error code.  0~means success.                             */
       
   143   /*                                                                       */
       
   144   /* <Note>                                                                */
       
   145   /*    If `face' is the size's parent face object, this function changes  */
       
   146   /*    the value of `face->size' to the input size handle.                */
       
   147   /*                                                                       */
       
   148   FT_EXPORT( FT_Error )
       
   149   FT_Activate_Size( FT_Size  size );
       
   150 
       
   151   /* */
       
   152 
       
   153 
       
   154 FT_END_HEADER
       
   155 
       
   156 #endif /* __FTSIZES_H__ */
       
   157 
       
   158 
       
   159 /* END */