PageRenderTime 10ms CodeModel.GetById 2ms app.highlight 5ms RepoModel.GetById 2ms app.codeStats 0ms

/src/freetype/include/freetype/ftbbox.h

https://bitbucket.org/cabalistic/ogredeps/
C++ Header | 102 lines | 15 code | 22 blank | 65 comment | 0 complexity | 7565405ef43f0d1c22460bac4142a758 MD5 | raw file
  1/***************************************************************************/
  2/*                                                                         */
  3/*  ftbbox.h                                                               */
  4/*                                                                         */
  5/*    FreeType exact bbox computation (specification).                     */
  6/*                                                                         */
  7/*  Copyright 1996-2001, 2003, 2007, 2011 by                               */
  8/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
  9/*                                                                         */
 10/*  This file is part of the FreeType project, and may only be used,       */
 11/*  modified, and distributed under the terms of the FreeType project      */
 12/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
 13/*  this file you indicate that you have read the license and              */
 14/*  understand and accept it fully.                                        */
 15/*                                                                         */
 16/***************************************************************************/
 17
 18
 19  /*************************************************************************/
 20  /*                                                                       */
 21  /* This component has a _single_ role: to compute exact outline bounding */
 22  /* boxes.                                                                */
 23  /*                                                                       */
 24  /* It is separated from the rest of the engine for various technical     */
 25  /* reasons.  It may well be integrated in `ftoutln' later.               */
 26  /*                                                                       */
 27  /*************************************************************************/
 28
 29
 30#ifndef __FTBBOX_H__
 31#define __FTBBOX_H__
 32
 33
 34#include <ft2build.h>
 35#include FT_FREETYPE_H
 36
 37#ifdef FREETYPE_H
 38#error "freetype.h of FreeType 1 has been loaded!"
 39#error "Please fix the directory search order for header files"
 40#error "so that freetype.h of FreeType 2 is found first."
 41#endif
 42
 43
 44FT_BEGIN_HEADER
 45
 46
 47  /*************************************************************************/
 48  /*                                                                       */
 49  /* <Section>                                                             */
 50  /*    outline_processing                                                 */
 51  /*                                                                       */
 52  /*************************************************************************/
 53
 54
 55  /*************************************************************************/
 56  /*                                                                       */
 57  /* <Function>                                                            */
 58  /*    FT_Outline_Get_BBox                                                */
 59  /*                                                                       */
 60  /* <Description>                                                         */
 61  /*    Compute the exact bounding box of an outline.  This is slower      */
 62  /*    than computing the control box.  However, it uses an advanced      */
 63  /*    algorithm which returns _very_ quickly when the two boxes          */
 64  /*    coincide.  Otherwise, the outline BĂŠzier arcs are traversed to     */
 65  /*    extract their extrema.                                             */
 66  /*                                                                       */
 67  /* <Input>                                                               */
 68  /*    outline :: A pointer to the source outline.                        */
 69  /*                                                                       */
 70  /* <Output>                                                              */
 71  /*    abbox   :: The outline's exact bounding box.                       */
 72  /*                                                                       */
 73  /* <Return>                                                              */
 74  /*    FreeType error code.  0~means success.                             */
 75  /*                                                                       */
 76  /* <Note>                                                                */
 77  /*    If the font is tricky and the glyph has been loaded with           */
 78  /*    @FT_LOAD_NO_SCALE, the resulting BBox is meaningless.  To get      */
 79  /*    reasonable values for the BBox it is necessary to load the glyph   */
 80  /*    at a large ppem value (so that the hinting instructions can        */
 81  /*    properly shift and scale the subglyphs), then extracting the BBox  */
 82  /*    which can be eventually converted back to font units.              */
 83  /*                                                                       */
 84  FT_EXPORT( FT_Error )
 85  FT_Outline_Get_BBox( FT_Outline*  outline,
 86                       FT_BBox     *abbox );
 87
 88
 89  /* */
 90
 91
 92FT_END_HEADER
 93
 94#endif /* __FTBBOX_H__ */
 95
 96
 97/* END */
 98
 99
100/* Local Variables: */
101/* coding: utf-8    */
102/* End:             */