< prev index next >
src/java.desktop/share/native/libfreetype/include/freetype/ftbitmap.h
Print this page
*** 1,29 ****
! /***************************************************************************/
! /* */
! /* ftbitmap.h */
! /* */
! /* FreeType utility functions for bitmaps (specification). */
! /* */
! /* Copyright 2004-2018 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."
--- 1,30 ----
! /****************************************************************************
! *
! * ftbitmap.h
! *
! * FreeType utility functions for bitmaps (specification).
! *
! * Copyright (C) 2004-2019 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
+ #include FT_COLOR_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."
*** 31,231 ****
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 );
--- 32,321 ----
FT_BEGIN_HEADER
! /**************************************************************************
! *
! * @section:
! * bitmap_handling
! *
! * @title:
! * Bitmap Handling
! *
! * @abstract:
! * Handling FT_Bitmap objects.
! *
! * @description:
! * This section contains functions for handling @FT_Bitmap objects,
! * automatically adjusting the target's bitmap buffer size as needed.
! *
! * Note that none of the functions changes the bitmap's 'flow' (as
! * indicated by the sign of the `pitch` field in @FT_Bitmap).
! *
! * To set the flow, assign an appropriate positive or negative value to
! * the `pitch` field of the target @FT_Bitmap object after calling
! * @FT_Bitmap_Init but before calling any of the other functions
! * described here.
! */
!
!
! /**************************************************************************
! *
! * @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.
! *
! * @note:
! * `source->buffer` and `target->buffer` must neither be equal nor
! * overlap.
! */
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 per
! * 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 argument. 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.
! *
! * `source->buffer` and `target->buffer` must neither be equal nor
! * overlap.
! */
FT_EXPORT( FT_Error )
FT_Bitmap_Convert( FT_Library library,
const FT_Bitmap *source,
FT_Bitmap *target,
FT_Int alignment );
! /**************************************************************************
! *
! * @function:
! * FT_Bitmap_Blend
! *
! * @description:
! * Blend a bitmap onto another bitmap, using a given color.
! *
! * @input:
! * library ::
! * A handle to a library object.
! *
! * source ::
! * The source bitmap, which can have any @FT_Pixel_Mode format.
! *
! * source_offset ::
! * The offset vector to the upper left corner of the source bitmap in
! * 26.6 pixel format. It should represent an integer offset; the
! * function will set the lowest six bits to zero to enforce that.
! *
! * color ::
! * The color used to draw `source` onto `target`.
! *
! * @inout:
! * target ::
! * A handle to an `FT_Bitmap` object. It should be either initialized
! * as empty with a call to @FT_Bitmap_Init, or it should be of type
! * @FT_PIXEL_MODE_BGRA.
! *
! * atarget_offset ::
! * The offset vector to the upper left corner of the target bitmap in
! * 26.6 pixel format. It should represent an integer offset; the
! * function will set the lowest six bits to zero to enforce that.
! *
! * @return:
! * FreeType error code. 0~means success.
! *
! * @note:
! * This function doesn't perform clipping.
! *
! * The bitmap in `target` gets allocated or reallocated as needed; the
! * vector `atarget_offset` is updated accordingly.
! *
! * In case of allocation or reallocation, the bitmap's pitch is set to
! * `4 * width`. Both `source` and `target` must have the same bitmap
! * flow (as indicated by the sign of the `pitch` field).
! *
! * `source->buffer` and `target->buffer` must neither be equal nor
! * overlap.
! *
! * @since:
! * 2.10
! */
! FT_EXPORT( FT_Error )
! FT_Bitmap_Blend( FT_Library library,
! const FT_Bitmap* source,
! const FT_Vector source_offset,
! FT_Bitmap* target,
! FT_Vector *atarget_offset,
! FT_Color color );
!
!
! /**************************************************************************
! *
! * @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 );
< prev index next >