Edit

kc3-lang/freetype/include/ftbitmap.h

Branch :

  • Show log

    Commit

  • Author : Werner Lemberg
    Date : 2015-03-10 11:15:15
    Hash : eee7d8ba
    Message : [base] Rename `FT_Bitmap_New' to `FT_Bitmap_Init'. * include/ftbitmap.h, src/base/ftbitmap.c: Implement it. Update all callers. * docs/CHANGES: Updated.

  • include/ftbitmap.h
  • /***************************************************************************/
    /*                                                                         */
    /*  ftbitmap.h                                                             */
    /*                                                                         */
    /*    FreeType utility functions for bitmaps (specification).              */
    /*                                                                         */
    /*  Copyright 2004-2015 by                                                 */
    /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
    /*                                                                         */
    /*  This file is part of the FreeType project, and may only be used,       */
    /*  modified, and distributed under the terms of the FreeType project      */
    /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
    /*  this file you indicate that you have read the license and              */
    /*  understand and accept it fully.                                        */
    /*                                                                         */
    /***************************************************************************/
    
    
    #ifndef __FTBITMAP_H__
    #define __FTBITMAP_H__
    
    
    #include <ft2build.h>
    #include FT_FREETYPE_H
    
    #ifdef FREETYPE_H
    #error "freetype.h of FreeType 1 has been loaded!"
    #error "Please fix the directory search order for header files"
    #error "so that freetype.h of FreeType 2 is found first."
    #endif
    
    
    FT_BEGIN_HEADER
    
    
      /*************************************************************************/
      /*                                                                       */
      /* <Section>                                                             */
      /*    bitmap_handling                                                    */
      /*                                                                       */
      /* <Title>                                                               */
      /*    Bitmap Handling                                                    */
      /*                                                                       */
      /* <Abstract>                                                            */
      /*    Handling FT_Bitmap objects.                                        */
      /*                                                                       */
      /* <Description>                                                         */
      /*    This section contains functions for handling @FT_Bitmap objects.   */
      /*    Note that none of the functions changes the bitmap's `flow' (as    */
      /*    indicated by the sign of the `pitch' field in `FT_Bitmap').        */
      /*                                                                       */
      /*************************************************************************/
    
    
      /*************************************************************************/
      /*                                                                       */
      /* <Function>                                                            */
      /*    FT_Bitmap_Init                                                     */
      /*                                                                       */
      /* <Description>                                                         */
      /*    Initialize a pointer to an @FT_Bitmap structure.                   */
      /*                                                                       */
      /* <InOut>                                                               */
      /*    abitmap :: A pointer to the bitmap structure.                      */
      /*                                                                       */
      /* <Note>                                                                */
      /*    A deprecated name for the same function is `FT_Bitmap_New'.        */
      /*                                                                       */
      FT_EXPORT( void )
      FT_Bitmap_Init( FT_Bitmap  *abitmap );
    
    
      /* deprecated */
      FT_EXPORT( void )
      FT_Bitmap_New( FT_Bitmap  *abitmap );
    
    
      /*************************************************************************/
      /*                                                                       */
      /* <Function>                                                            */
      /*    FT_Bitmap_Copy                                                     */
      /*                                                                       */
      /* <Description>                                                         */
      /*    Copy a bitmap into another one.                                    */
      /*                                                                       */
      /* <Input>                                                               */
      /*    library :: A handle to a library object.                           */
      /*                                                                       */
      /*    source  :: A handle to the source bitmap.                          */
      /*                                                                       */
      /* <Output>                                                              */
      /*    target  :: A handle to the target bitmap.                          */
      /*                                                                       */
      /* <Return>                                                              */
      /*    FreeType error code.  0~means success.                             */
      /*                                                                       */
      FT_EXPORT( FT_Error )
      FT_Bitmap_Copy( FT_Library        library,
                      const FT_Bitmap  *source,
                      FT_Bitmap        *target);
    
    
      /*************************************************************************/
      /*                                                                       */
      /* <Function>                                                            */
      /*    FT_Bitmap_Embolden                                                 */
      /*                                                                       */
      /* <Description>                                                         */
      /*    Embolden a bitmap.  The new bitmap will be about `xStrength'       */
      /*    pixels wider and `yStrength' pixels higher.  The left and bottom   */
      /*    borders are kept unchanged.                                        */
      /*                                                                       */
      /* <Input>                                                               */
      /*    library   :: A handle to a library object.                         */
      /*                                                                       */
      /*    xStrength :: How strong the glyph is emboldened horizontally.      */
      /*                 Expressed in 26.6 pixel format.                       */
      /*                                                                       */
      /*    yStrength :: How strong the glyph is emboldened vertically.        */
      /*                 Expressed in 26.6 pixel format.                       */
      /*                                                                       */
      /* <InOut>                                                               */
      /*    bitmap    :: A handle to the target bitmap.                        */
      /*                                                                       */
      /* <Return>                                                              */
      /*    FreeType error code.  0~means success.                             */
      /*                                                                       */
      /* <Note>                                                                */
      /*    The current implementation restricts `xStrength' to be less than   */
      /*    or equal to~8 if bitmap is of pixel_mode @FT_PIXEL_MODE_MONO.      */
      /*                                                                       */
      /*    If you want to embolden the bitmap owned by a @FT_GlyphSlotRec,    */
      /*    you should call @FT_GlyphSlot_Own_Bitmap on the slot first.        */
      /*                                                                       */
      /*    Bitmaps in @FT_PIXEL_MODE_GRAY2 and @FT_PIXEL_MODE_GRAY@ format    */
      /*    are converted to @FT_PIXEL_MODE_GRAY format (i.e., 8bpp).          */
      /*                                                                       */
      FT_EXPORT( FT_Error )
      FT_Bitmap_Embolden( FT_Library  library,
                          FT_Bitmap*  bitmap,
                          FT_Pos      xStrength,
                          FT_Pos      yStrength );
    
    
      /*************************************************************************/
      /*                                                                       */
      /* <Function>                                                            */
      /*    FT_Bitmap_Convert                                                  */
      /*                                                                       */
      /* <Description>                                                         */
      /*    Convert a bitmap object with depth 1bpp, 2bpp, 4bpp, 8bpp or 32bpp */
      /*    to a bitmap object with depth 8bpp, making the number of used      */
      /*    bytes line (a.k.a. the `pitch') a multiple of `alignment'.         */
      /*                                                                       */
      /* <Input>                                                               */
      /*    library   :: A handle to a library object.                         */
      /*                                                                       */
      /*    source    :: The source bitmap.                                    */
      /*                                                                       */
      /*    alignment :: The pitch of the bitmap is a multiple of this         */
      /*                 parameter.  Common values are 1, 2, or 4.             */
      /*                                                                       */
      /* <Output>                                                              */
      /*    target    :: The target bitmap.                                    */
      /*                                                                       */
      /* <Return>                                                              */
      /*    FreeType error code.  0~means success.                             */
      /*                                                                       */
      /* <Note>                                                                */
      /*    It is possible to call @FT_Bitmap_Convert multiple times without   */
      /*    calling @FT_Bitmap_Done (the memory is simply reallocated).        */
      /*                                                                       */
      /*    Use @FT_Bitmap_Done to finally remove the bitmap object.           */
      /*                                                                       */
      /*    The `library' argument is taken to have access to FreeType's       */
      /*    memory handling functions.                                         */
      /*                                                                       */
      FT_EXPORT( FT_Error )
      FT_Bitmap_Convert( FT_Library        library,
                         const FT_Bitmap  *source,
                         FT_Bitmap        *target,
                         FT_Int            alignment );
    
    
      /*************************************************************************/
      /*                                                                       */
      /* <Function>                                                            */
      /*    FT_GlyphSlot_Own_Bitmap                                            */
      /*                                                                       */
      /* <Description>                                                         */
      /*    Make sure that a glyph slot owns `slot->bitmap'.                   */
      /*                                                                       */
      /* <Input>                                                               */
      /*    slot :: The glyph slot.                                            */
      /*                                                                       */
      /* <Return>                                                              */
      /*    FreeType error code.  0~means success.                             */
      /*                                                                       */
      /* <Note>                                                                */
      /*    This function is to be used in combination with                    */
      /*    @FT_Bitmap_Embolden.                                               */
      /*                                                                       */
      FT_EXPORT( FT_Error )
      FT_GlyphSlot_Own_Bitmap( FT_GlyphSlot  slot );
    
    
      /*************************************************************************/
      /*                                                                       */
      /* <Function>                                                            */
      /*    FT_Bitmap_Done                                                     */
      /*                                                                       */
      /* <Description>                                                         */
      /*    Destroy a bitmap object initialized with @FT_Bitmap_Init.          */
      /*                                                                       */
      /* <Input>                                                               */
      /*    library :: A handle to a library object.                           */
      /*                                                                       */
      /*    bitmap  :: The bitmap object to be freed.                          */
      /*                                                                       */
      /* <Return>                                                              */
      /*    FreeType error code.  0~means success.                             */
      /*                                                                       */
      /* <Note>                                                                */
      /*    The `library' argument is taken to have access to FreeType's       */
      /*    memory handling functions.                                         */
      /*                                                                       */
      FT_EXPORT( FT_Error )
      FT_Bitmap_Done( FT_Library  library,
                      FT_Bitmap  *bitmap );
    
    
      /* */
    
    
    FT_END_HEADER
    
    #endif /* __FTBITMAP_H__ */
    
    
    /* END */