modules/freetype2/include/ftbitmap.h

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /***************************************************************************/
     2 /*                                                                         */
     3 /*  ftbitmap.h                                                             */
     4 /*                                                                         */
     5 /*    FreeType utility functions for bitmaps (specification).              */
     6 /*                                                                         */
     7 /*  Copyright 2004-2006, 2008, 2013 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 /***************************************************************************/
    19 #ifndef __FTBITMAP_H__
    20 #define __FTBITMAP_H__
    23 #include <ft2build.h>
    24 #include FT_FREETYPE_H
    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
    33 FT_BEGIN_HEADER
    36   /*************************************************************************/
    37   /*                                                                       */
    38   /* <Section>                                                             */
    39   /*    bitmap_handling                                                    */
    40   /*                                                                       */
    41   /* <Title>                                                               */
    42   /*    Bitmap Handling                                                    */
    43   /*                                                                       */
    44   /* <Abstract>                                                            */
    45   /*    Handling FT_Bitmap objects.                                        */
    46   /*                                                                       */
    47   /* <Description>                                                         */
    48   /*    This section contains functions for converting FT_Bitmap objects.  */
    49   /*                                                                       */
    50   /*************************************************************************/
    53   /*************************************************************************/
    54   /*                                                                       */
    55   /* <Function>                                                            */
    56   /*    FT_Bitmap_New                                                      */
    57   /*                                                                       */
    58   /* <Description>                                                         */
    59   /*    Initialize a pointer to an @FT_Bitmap structure.                   */
    60   /*                                                                       */
    61   /* <InOut>                                                               */
    62   /*    abitmap :: A pointer to the bitmap structure.                      */
    63   /*                                                                       */
    64   FT_EXPORT( void )
    65   FT_Bitmap_New( FT_Bitmap  *abitmap );
    68   /*************************************************************************/
    69   /*                                                                       */
    70   /* <Function>                                                            */
    71   /*    FT_Bitmap_Copy                                                     */
    72   /*                                                                       */
    73   /* <Description>                                                         */
    74   /*    Copy a bitmap into another one.                                    */
    75   /*                                                                       */
    76   /* <Input>                                                               */
    77   /*    library :: A handle to a library object.                           */
    78   /*                                                                       */
    79   /*    source  :: A handle to the source bitmap.                          */
    80   /*                                                                       */
    81   /* <Output>                                                              */
    82   /*    target  :: A handle to the target bitmap.                          */
    83   /*                                                                       */
    84   /* <Return>                                                              */
    85   /*    FreeType error code.  0~means success.                             */
    86   /*                                                                       */
    87   FT_EXPORT( FT_Error )
    88   FT_Bitmap_Copy( FT_Library        library,
    89                   const FT_Bitmap  *source,
    90                   FT_Bitmap        *target);
    93   /*************************************************************************/
    94   /*                                                                       */
    95   /* <Function>                                                            */
    96   /*    FT_Bitmap_Embolden                                                 */
    97   /*                                                                       */
    98   /* <Description>                                                         */
    99   /*    Embolden a bitmap.  The new bitmap will be about `xStrength'       */
   100   /*    pixels wider and `yStrength' pixels higher.  The left and bottom   */
   101   /*    borders are kept unchanged.                                        */
   102   /*                                                                       */
   103   /* <Input>                                                               */
   104   /*    library   :: A handle to a library object.                         */
   105   /*                                                                       */
   106   /*    xStrength :: How strong the glyph is emboldened horizontally.      */
   107   /*                 Expressed in 26.6 pixel format.                       */
   108   /*                                                                       */
   109   /*    yStrength :: How strong the glyph is emboldened vertically.        */
   110   /*                 Expressed in 26.6 pixel format.                       */
   111   /*                                                                       */
   112   /* <InOut>                                                               */
   113   /*    bitmap    :: A handle to the target bitmap.                        */
   114   /*                                                                       */
   115   /* <Return>                                                              */
   116   /*    FreeType error code.  0~means success.                             */
   117   /*                                                                       */
   118   /* <Note>                                                                */
   119   /*    The current implementation restricts `xStrength' to be less than   */
   120   /*    or equal to~8 if bitmap is of pixel_mode @FT_PIXEL_MODE_MONO.      */
   121   /*                                                                       */
   122   /*    If you want to embolden the bitmap owned by a @FT_GlyphSlotRec,    */
   123   /*    you should call @FT_GlyphSlot_Own_Bitmap on the slot first.        */
   124   /*                                                                       */
   125   FT_EXPORT( FT_Error )
   126   FT_Bitmap_Embolden( FT_Library  library,
   127                       FT_Bitmap*  bitmap,
   128                       FT_Pos      xStrength,
   129                       FT_Pos      yStrength );
   132   /*************************************************************************/
   133   /*                                                                       */
   134   /* <Function>                                                            */
   135   /*    FT_Bitmap_Convert                                                  */
   136   /*                                                                       */
   137   /* <Description>                                                         */
   138   /*    Convert a bitmap object with depth 1bpp, 2bpp, 4bpp, 8bpp or 32bpp */
   139   /*    to a bitmap object with depth 8bpp, making the number of used      */
   140   /*    bytes line (a.k.a. the `pitch') a multiple of `alignment'.         */
   141   /*                                                                       */
   142   /* <Input>                                                               */
   143   /*    library   :: A handle to a library object.                         */
   144   /*                                                                       */
   145   /*    source    :: The source bitmap.                                    */
   146   /*                                                                       */
   147   /*    alignment :: The pitch of the bitmap is a multiple of this         */
   148   /*                 parameter.  Common values are 1, 2, or 4.             */
   149   /*                                                                       */
   150   /* <Output>                                                              */
   151   /*    target    :: The target bitmap.                                    */
   152   /*                                                                       */
   153   /* <Return>                                                              */
   154   /*    FreeType error code.  0~means success.                             */
   155   /*                                                                       */
   156   /* <Note>                                                                */
   157   /*    It is possible to call @FT_Bitmap_Convert multiple times without   */
   158   /*    calling @FT_Bitmap_Done (the memory is simply reallocated).        */
   159   /*                                                                       */
   160   /*    Use @FT_Bitmap_Done to finally remove the bitmap object.           */
   161   /*                                                                       */
   162   /*    The `library' argument is taken to have access to FreeType's       */
   163   /*    memory handling functions.                                         */
   164   /*                                                                       */
   165   FT_EXPORT( FT_Error )
   166   FT_Bitmap_Convert( FT_Library        library,
   167                      const FT_Bitmap  *source,
   168                      FT_Bitmap        *target,
   169                      FT_Int            alignment );
   172   /*************************************************************************/
   173   /*                                                                       */
   174   /* <Function>                                                            */
   175   /*    FT_GlyphSlot_Own_Bitmap                                            */
   176   /*                                                                       */
   177   /* <Description>                                                         */
   178   /*    Make sure that a glyph slot owns `slot->bitmap'.                   */
   179   /*                                                                       */
   180   /* <Input>                                                               */
   181   /*    slot :: The glyph slot.                                            */
   182   /*                                                                       */
   183   /* <Return>                                                              */
   184   /*    FreeType error code.  0~means success.                             */
   185   /*                                                                       */
   186   /* <Note>                                                                */
   187   /*    This function is to be used in combination with                    */
   188   /*    @FT_Bitmap_Embolden.                                               */
   189   /*                                                                       */
   190   FT_EXPORT( FT_Error )
   191   FT_GlyphSlot_Own_Bitmap( FT_GlyphSlot  slot );
   194   /*************************************************************************/
   195   /*                                                                       */
   196   /* <Function>                                                            */
   197   /*    FT_Bitmap_Done                                                     */
   198   /*                                                                       */
   199   /* <Description>                                                         */
   200   /*    Destroy a bitmap object created with @FT_Bitmap_New.               */
   201   /*                                                                       */
   202   /* <Input>                                                               */
   203   /*    library :: A handle to a library object.                           */
   204   /*                                                                       */
   205   /*    bitmap  :: The bitmap object to be freed.                          */
   206   /*                                                                       */
   207   /* <Return>                                                              */
   208   /*    FreeType error code.  0~means success.                             */
   209   /*                                                                       */
   210   /* <Note>                                                                */
   211   /*    The `library' argument is taken to have access to FreeType's       */
   212   /*    memory handling functions.                                         */
   213   /*                                                                       */
   214   FT_EXPORT( FT_Error )
   215   FT_Bitmap_Done( FT_Library  library,
   216                   FT_Bitmap  *bitmap );
   219   /* */
   222 FT_END_HEADER
   224 #endif /* __FTBITMAP_H__ */
   227 /* END */

mercurial