1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* ftsizes.h */ 4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* FreeType size objects management (specification). */ 6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 7ec0bab5697bb31ba980810145f62e3799946ec60Victoria Lease/* Copyright 1996-2001, 2003, 2004, 2006, 2009, 2013 by */ 8049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 10049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* This file is part of the FreeType project, and may only be used, */ 11049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* modified, and distributed under the terms of the FreeType project */ 12049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* this file you indicate that you have read the license and */ 14049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* understand and accept it fully. */ 15049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 16049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 17049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 18049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 19049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Typical application would normally not need to use these functions. */ 22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* However, they have been placed in a public API for the rare cases */ 23049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* where they are needed. */ 24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 28049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifndef __FTSIZES_H__ 29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define __FTSIZES_H__ 30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 31049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 32049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include <ft2build.h> 33049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include FT_FREETYPE_H 34049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#ifdef FREETYPE_H 36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "freetype.h of FreeType 1 has been loaded!" 37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "Please fix the directory search order for header files" 38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#error "so that freetype.h of FreeType 2 is found first." 39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif 40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER 43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Section> */ 48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* sizes_management */ 49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Title> */ 51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Size Management */ 52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Abstract> */ 54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Managing multiple sizes per face. */ 55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* When creating a new face object (e.g., with @FT_New_Face), an */ 58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* @FT_Size object is automatically created and used to store all */ 59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* pixel-size dependent information, available in the `face->size' */ 60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* field. */ 61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* It is however possible to create more sizes for a given face, */ 63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* mostly in order to manage several character pixel sizes of the */ 64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* same font family and style. See @FT_New_Size and @FT_Done_Size. */ 65049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 66049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Note that @FT_Set_Pixel_Sizes and @FT_Set_Char_Size only */ 67049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* modify the contents of the current `active' size; you thus need */ 68049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* to use @FT_Activate_Size to change it. */ 69049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 70049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* 99% of applications won't need the functions provided here, */ 71049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* especially if they use the caching sub-system, so be cautious */ 72049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* when using these. */ 73049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 74049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 75049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 76049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 77049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 78049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 79049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Function> */ 80049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_New_Size */ 81049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 82049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 83049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Create a new size object from a given face object. */ 84049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 85049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Input> */ 86049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* face :: A handle to a parent face object. */ 87049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 88049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Output> */ 89049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* asize :: A handle to a new size object. */ 90049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 91049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Return> */ 920a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* FreeType error code. 0~means success. */ 93049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 94049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Note> */ 95049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* You need to call @FT_Activate_Size in order to select the new size */ 96049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* for upcoming calls to @FT_Set_Pixel_Sizes, @FT_Set_Char_Size, */ 97049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* @FT_Load_Glyph, @FT_Load_Char, etc. */ 98049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 99049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 100049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_New_Size( FT_Face face, 101049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Size* size ); 102049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 103049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 104049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 105049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 106049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Function> */ 107049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Done_Size */ 108049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 109049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 110049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Discard a given size object. Note that @FT_Done_Face */ 111049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* automatically discards all size objects allocated with */ 112049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* @FT_New_Size. */ 113049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 114049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Input> */ 115049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* size :: A handle to a target size object. */ 116049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 117049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Return> */ 1180a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* FreeType error code. 0~means success. */ 119049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 120049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 121049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Done_Size( FT_Size size ); 122049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 123049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 124049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /*************************************************************************/ 125049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 126049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Function> */ 127049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* FT_Activate_Size */ 128049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 129049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Description> */ 130049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* Even though it is possible to create several size objects for a */ 131049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* given face (see @FT_New_Size for details), functions like */ 132ec0bab5697bb31ba980810145f62e3799946ec60Victoria Lease /* @FT_Load_Glyph or @FT_Load_Char only use the one that has been */ 1330a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* activated last to determine the `current character pixel size'. */ 134049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 135049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* This function can be used to `activate' a previously created size */ 136049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* object. */ 137049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 138049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Input> */ 139049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* size :: A handle to a target size object. */ 140049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 141049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Return> */ 1420a9d06e2b5cf75c3d6ba958026bfdf4745f576d6The Android Open Source Project /* FreeType error code. 0~means success. */ 143049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 144049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* <Note> */ 145049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* If `face' is the size's parent face object, this function changes */ 146049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* the value of `face->size' to the input size handle. */ 147049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 148049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_EXPORT( FT_Error ) 149049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Activate_Size( FT_Size size ); 150049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 151049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project /* */ 152049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 153049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 154049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER 155049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 156049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* __FTSIZES_H__ */ 157049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 158049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 159049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */ 160