| /***************************************************************************/ |
| /* */ |
| /* 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 */ |