1049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/***************************************************************************/ 2049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 3049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* afwarp.h */ 4049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 5049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* Auto-fitter warping algorithm (specification). */ 6049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* */ 7ec62c527eb34ee4481a0153ceb42dfd35d7e1d26Makoto Onuki/* Copyright 2006-2015 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#ifndef __AFWARP_H__ 20049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define __AFWARP_H__ 21049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 22049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#include "afhints.h" 23049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 24049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_BEGIN_HEADER 25049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 26049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define AF_WARPER_SCALE 27049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 28ec62c527eb34ee4481a0153ceb42dfd35d7e1d26Makoto Onuki#define AF_WARPER_FLOOR( x ) ( (x) & ~TYPEOF( x )63 ) 29049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#define AF_WARPER_CEIL( x ) AF_WARPER_FLOOR( (x) + 63 ) 30049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 31049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 32049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef FT_Int32 AF_WarpScore; 33049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 34049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project typedef struct AF_WarperRec_ 35049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project { 36049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Pos x1, x2; 37049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Pos t1, t2; 38049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Pos x1min, x1max; 39049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Pos x2min, x2max; 40049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Pos w0, wmin, wmax; 41049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 42049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed best_scale; 43049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Pos best_delta; 44049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project AF_WarpScore best_score; 45049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project AF_WarpScore best_distort; 46049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 47049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project } AF_WarperRec, *AF_Warper; 48049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 49049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 50049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_LOCAL( void ) 51049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project af_warper_compute( AF_Warper warper, 52049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project AF_GlyphHints hints, 53049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project AF_Dimension dim, 54049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed *a_scale, 55049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project FT_Fixed *a_delta ); 56049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 57049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 58049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source ProjectFT_END_HEADER 59049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 60049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 61049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project#endif /* __AFWARP_H__ */ 62049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 63049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project 64049d6fea481044fcc000e7782e5bc7046fc70844The Android Open Source Project/* END */ 65