| Index: third_party/freetype2/src/include/freetype/ftrender.h
|
| diff --git a/third_party/freetype2/src/include/freetype/ftrender.h b/third_party/freetype2/src/include/freetype/ftrender.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ec8da700b144ed413c84d5f740b99164aea3a6d2
|
| --- /dev/null
|
| +++ b/third_party/freetype2/src/include/freetype/ftrender.h
|
| @@ -0,0 +1,232 @@
|
| +/***************************************************************************/
|
| +/* */
|
| +/* ftrender.h */
|
| +/* */
|
| +/* FreeType renderer modules public interface (specification). */
|
| +/* */
|
| +/* Copyright 1996-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 __FTRENDER_H__
|
| +#define __FTRENDER_H__
|
| +
|
| +
|
| +#include <ft2build.h>
|
| +#include FT_MODULE_H
|
| +#include FT_GLYPH_H
|
| +
|
| +
|
| +FT_BEGIN_HEADER
|
| +
|
| +
|
| + /*************************************************************************/
|
| + /* */
|
| + /* <Section> */
|
| + /* module_management */
|
| + /* */
|
| + /*************************************************************************/
|
| +
|
| +
|
| + /* create a new glyph object */
|
| + typedef FT_Error
|
| + (*FT_Glyph_InitFunc)( FT_Glyph glyph,
|
| + FT_GlyphSlot slot );
|
| +
|
| + /* destroys a given glyph object */
|
| + typedef void
|
| + (*FT_Glyph_DoneFunc)( FT_Glyph glyph );
|
| +
|
| + typedef void
|
| + (*FT_Glyph_TransformFunc)( FT_Glyph glyph,
|
| + const FT_Matrix* matrix,
|
| + const FT_Vector* delta );
|
| +
|
| + typedef void
|
| + (*FT_Glyph_GetBBoxFunc)( FT_Glyph glyph,
|
| + FT_BBox* abbox );
|
| +
|
| + typedef FT_Error
|
| + (*FT_Glyph_CopyFunc)( FT_Glyph source,
|
| + FT_Glyph target );
|
| +
|
| + typedef FT_Error
|
| + (*FT_Glyph_PrepareFunc)( FT_Glyph glyph,
|
| + FT_GlyphSlot slot );
|
| +
|
| +/* deprecated */
|
| +#define FT_Glyph_Init_Func FT_Glyph_InitFunc
|
| +#define FT_Glyph_Done_Func FT_Glyph_DoneFunc
|
| +#define FT_Glyph_Transform_Func FT_Glyph_TransformFunc
|
| +#define FT_Glyph_BBox_Func FT_Glyph_GetBBoxFunc
|
| +#define FT_Glyph_Copy_Func FT_Glyph_CopyFunc
|
| +#define FT_Glyph_Prepare_Func FT_Glyph_PrepareFunc
|
| +
|
| +
|
| + struct FT_Glyph_Class_
|
| + {
|
| + FT_Long glyph_size;
|
| + FT_Glyph_Format glyph_format;
|
| + FT_Glyph_InitFunc glyph_init;
|
| + FT_Glyph_DoneFunc glyph_done;
|
| + FT_Glyph_CopyFunc glyph_copy;
|
| + FT_Glyph_TransformFunc glyph_transform;
|
| + FT_Glyph_GetBBoxFunc glyph_bbox;
|
| + FT_Glyph_PrepareFunc glyph_prepare;
|
| + };
|
| +
|
| +
|
| + typedef FT_Error
|
| + (*FT_Renderer_RenderFunc)( FT_Renderer renderer,
|
| + FT_GlyphSlot slot,
|
| + FT_UInt mode,
|
| + const FT_Vector* origin );
|
| +
|
| + typedef FT_Error
|
| + (*FT_Renderer_TransformFunc)( FT_Renderer renderer,
|
| + FT_GlyphSlot slot,
|
| + const FT_Matrix* matrix,
|
| + const FT_Vector* delta );
|
| +
|
| +
|
| + typedef void
|
| + (*FT_Renderer_GetCBoxFunc)( FT_Renderer renderer,
|
| + FT_GlyphSlot slot,
|
| + FT_BBox* cbox );
|
| +
|
| +
|
| + typedef FT_Error
|
| + (*FT_Renderer_SetModeFunc)( FT_Renderer renderer,
|
| + FT_ULong mode_tag,
|
| + FT_Pointer mode_ptr );
|
| +
|
| +/* deprecated identifiers */
|
| +#define FTRenderer_render FT_Renderer_RenderFunc
|
| +#define FTRenderer_transform FT_Renderer_TransformFunc
|
| +#define FTRenderer_getCBox FT_Renderer_GetCBoxFunc
|
| +#define FTRenderer_setMode FT_Renderer_SetModeFunc
|
| +
|
| +
|
| + /*************************************************************************/
|
| + /* */
|
| + /* <Struct> */
|
| + /* FT_Renderer_Class */
|
| + /* */
|
| + /* <Description> */
|
| + /* The renderer module class descriptor. */
|
| + /* */
|
| + /* <Fields> */
|
| + /* root :: The root @FT_Module_Class fields. */
|
| + /* */
|
| + /* glyph_format :: The glyph image format this renderer handles. */
|
| + /* */
|
| + /* render_glyph :: A method used to render the image that is in a */
|
| + /* given glyph slot into a bitmap. */
|
| + /* */
|
| + /* transform_glyph :: A method used to transform the image that is in */
|
| + /* a given glyph slot. */
|
| + /* */
|
| + /* get_glyph_cbox :: A method used to access the glyph's cbox. */
|
| + /* */
|
| + /* set_mode :: A method used to pass additional parameters. */
|
| + /* */
|
| + /* raster_class :: For @FT_GLYPH_FORMAT_OUTLINE renderers only. */
|
| + /* This is a pointer to its raster's class. */
|
| + /* */
|
| + typedef struct FT_Renderer_Class_
|
| + {
|
| + FT_Module_Class root;
|
| +
|
| + FT_Glyph_Format glyph_format;
|
| +
|
| + FT_Renderer_RenderFunc render_glyph;
|
| + FT_Renderer_TransformFunc transform_glyph;
|
| + FT_Renderer_GetCBoxFunc get_glyph_cbox;
|
| + FT_Renderer_SetModeFunc set_mode;
|
| +
|
| + FT_Raster_Funcs* raster_class;
|
| +
|
| + } FT_Renderer_Class;
|
| +
|
| +
|
| + /*************************************************************************/
|
| + /* */
|
| + /* <Function> */
|
| + /* FT_Get_Renderer */
|
| + /* */
|
| + /* <Description> */
|
| + /* Retrieve the current renderer for a given glyph format. */
|
| + /* */
|
| + /* <Input> */
|
| + /* library :: A handle to the library object. */
|
| + /* */
|
| + /* format :: The glyph format. */
|
| + /* */
|
| + /* <Return> */
|
| + /* A renderer handle. 0~if none found. */
|
| + /* */
|
| + /* <Note> */
|
| + /* An error will be returned if a module already exists by that name, */
|
| + /* or if the module requires a version of FreeType that is too great. */
|
| + /* */
|
| + /* To add a new renderer, simply use @FT_Add_Module. To retrieve a */
|
| + /* renderer by its name, use @FT_Get_Module. */
|
| + /* */
|
| + FT_EXPORT( FT_Renderer )
|
| + FT_Get_Renderer( FT_Library library,
|
| + FT_Glyph_Format format );
|
| +
|
| +
|
| + /*************************************************************************/
|
| + /* */
|
| + /* <Function> */
|
| + /* FT_Set_Renderer */
|
| + /* */
|
| + /* <Description> */
|
| + /* Set the current renderer to use, and set additional mode. */
|
| + /* */
|
| + /* <InOut> */
|
| + /* library :: A handle to the library object. */
|
| + /* */
|
| + /* <Input> */
|
| + /* renderer :: A handle to the renderer object. */
|
| + /* */
|
| + /* num_params :: The number of additional parameters. */
|
| + /* */
|
| + /* parameters :: Additional parameters. */
|
| + /* */
|
| + /* <Return> */
|
| + /* FreeType error code. 0~means success. */
|
| + /* */
|
| + /* <Note> */
|
| + /* In case of success, the renderer will be used to convert glyph */
|
| + /* images in the renderer's known format into bitmaps. */
|
| + /* */
|
| + /* This doesn't change the current renderer for other formats. */
|
| + /* */
|
| + /* Currently, no FreeType renderer module uses `parameters'; you */
|
| + /* should thus always pass NULL as the value. */
|
| + /* */
|
| + FT_EXPORT( FT_Error )
|
| + FT_Set_Renderer( FT_Library library,
|
| + FT_Renderer renderer,
|
| + FT_UInt num_params,
|
| + FT_Parameter* parameters );
|
| +
|
| + /* */
|
| +
|
| +
|
| +FT_END_HEADER
|
| +
|
| +#endif /* __FTRENDER_H__ */
|
| +
|
| +
|
| +/* END */
|
|
|