1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/***************************************************************************/ 2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* ftsizes.h */ 4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* FreeType size objects management (specification). */ 6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* Copyright 1996-2001, 2003, 2004, 2006, 2009 by */ 8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* This file is part of the FreeType project, and may only be used, */ 11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* modified, and distributed under the terms of the FreeType project */ 12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* this file you indicate that you have read the license and */ 14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* understand and accept it fully. */ 15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/***************************************************************************/ 17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /*************************************************************************/ 20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* Typical application would normally not need to use these functions. */ 22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* However, they have been placed in a public API for the rare cases */ 23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* where they are needed. */ 24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /*************************************************************************/ 26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef __FTSIZES_H__ 29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define __FTSIZES_H__ 30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../ft2build.h" 33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "freetype.h" 34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifdef FREETYPE_H 36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#error "freetype.h of FreeType 1 has been loaded!" 37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#error "Please fix the directory search order for header files" 38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#error "so that freetype.h of FreeType 2 is found first." 39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif 40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 42ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFT_BEGIN_HEADER 43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /*************************************************************************/ 46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Section> */ 48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* sizes_management */ 49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Title> */ 51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* Size Management */ 52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Abstract> */ 54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* Managing multiple sizes per face. */ 55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Description> */ 57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* When creating a new face object (e.g., with @FT_New_Face), an */ 58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* @FT_Size object is automatically created and used to store all */ 59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* pixel-size dependent information, available in the `face->size' */ 60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* field. */ 61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* It is however possible to create more sizes for a given face, */ 63ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* mostly in order to manage several character pixel sizes of the */ 64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* same font family and style. See @FT_New_Size and @FT_Done_Size. */ 65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 66ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* Note that @FT_Set_Pixel_Sizes and @FT_Set_Char_Size only */ 67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* modify the contents of the current `active' size; you thus need */ 68ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* to use @FT_Activate_Size to change it. */ 69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* 99% of applications won't need the functions provided here, */ 71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* especially if they use the caching sub-system, so be cautious */ 72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* when using these. */ 73ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 74ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /*************************************************************************/ 75ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 76ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 77ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /*************************************************************************/ 78ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 79ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Function> */ 80ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* FT_New_Size */ 81ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 82ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Description> */ 83ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* Create a new size object from a given face object. */ 84ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 85ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Input> */ 86ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* face :: A handle to a parent face object. */ 87ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 88ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Output> */ 89ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* asize :: A handle to a new size object. */ 90ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 91ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Return> */ 92ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* FreeType error code. 0~means success. */ 93ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 94ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Note> */ 95ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* You need to call @FT_Activate_Size in order to select the new size */ 96ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* for upcoming calls to @FT_Set_Pixel_Sizes, @FT_Set_Char_Size, */ 97ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* @FT_Load_Glyph, @FT_Load_Char, etc. */ 98ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 99ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_EXPORT( FT_Error ) 100ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_New_Size( FT_Face face, 101ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Size* size ); 102ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 103ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 104ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /*************************************************************************/ 105ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 106ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Function> */ 107ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* FT_Done_Size */ 108ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 109ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Description> */ 110ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* Discard a given size object. Note that @FT_Done_Face */ 111ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* automatically discards all size objects allocated with */ 112ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* @FT_New_Size. */ 113ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 114ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Input> */ 115ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* size :: A handle to a target size object. */ 116ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 117ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Return> */ 118ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* FreeType error code. 0~means success. */ 119ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 120ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_EXPORT( FT_Error ) 121ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Done_Size( FT_Size size ); 122ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 123ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 124ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /*************************************************************************/ 125ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 126ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Function> */ 127ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* FT_Activate_Size */ 128ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 129ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Description> */ 130ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* Even though it is possible to create several size objects for a */ 131ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* given face (see @FT_New_Size for details), functions like */ 132ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* @FT_Load_Glyph or @FT_Load_Char only use the one which has been */ 133ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* activated last to determine the `current character pixel size'. */ 134ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 135ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* This function can be used to `activate' a previously created size */ 136ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* object. */ 137ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 138ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Input> */ 139ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* size :: A handle to a target size object. */ 140ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 141ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Return> */ 142ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* FreeType error code. 0~means success. */ 143ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 144ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* <Note> */ 145ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* If `face' is the size's parent face object, this function changes */ 146ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* the value of `face->size' to the input size handle. */ 147ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 148ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_EXPORT( FT_Error ) 149ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Activate_Size( FT_Size size ); 150ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 151ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 152ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 153ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 154ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFT_END_HEADER 155ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 156ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif /* __FTSIZES_H__ */ 157ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 158ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 159ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* END */ 160