/***************************************************************************/ | |
/* */ | |
/* ttsubpix.h */ | |
/* */ | |
/* TrueType Subpixel Hinting. */ | |
/* */ | |
/* Copyright 2010-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 __TTSUBPIX_H__ | |
#define __TTSUBPIX_H__ | |
#include <ft2build.h> | |
#include "ttobjs.h" | |
#include "ttinterp.h" | |
FT_BEGIN_HEADER | |
#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING | |
/*************************************************************************/ | |
/* */ | |
/* ID flags to identify special functions at FDEF and runtime. */ | |
/* */ | |
/* */ | |
#define SPH_FDEF_INLINE_DELTA_1 0x0000001 | |
#define SPH_FDEF_INLINE_DELTA_2 0x0000002 | |
#define SPH_FDEF_DIAGONAL_STROKE 0x0000004 | |
#define SPH_FDEF_VACUFORM_ROUND_1 0x0000008 | |
#define SPH_FDEF_TTFAUTOHINT_1 0x0000010 | |
#define SPH_FDEF_SPACING_1 0x0000020 | |
#define SPH_FDEF_SPACING_2 0x0000040 | |
#define SPH_FDEF_TYPEMAN_STROKES 0x0000080 | |
#define SPH_FDEF_TYPEMAN_DIAGENDCTRL 0x0000100 | |
/*************************************************************************/ | |
/* */ | |
/* Tweak flags that are set for each glyph by the below rules. */ | |
/* */ | |
/* */ | |
#define SPH_TWEAK_ALLOW_X_DMOVE 0x0000001UL | |
#define SPH_TWEAK_ALWAYS_DO_DELTAP 0x0000002UL | |
#define SPH_TWEAK_ALWAYS_SKIP_DELTAP 0x0000004UL | |
#define SPH_TWEAK_COURIER_NEW_2_HACK 0x0000008UL | |
#define SPH_TWEAK_DEEMBOLDEN 0x0000010UL | |
#define SPH_TWEAK_DO_SHPIX 0x0000020UL | |
#define SPH_TWEAK_EMBOLDEN 0x0000040UL | |
#define SPH_TWEAK_MIAP_HACK 0x0000080UL | |
#define SPH_TWEAK_NORMAL_ROUND 0x0000100UL | |
#define SPH_TWEAK_NO_ALIGNRP_AFTER_IUP 0x0000200UL | |
#define SPH_TWEAK_NO_CALL_AFTER_IUP 0x0000400UL | |
#define SPH_TWEAK_NO_DELTAP_AFTER_IUP 0x0000800UL | |
#define SPH_TWEAK_PIXEL_HINTING 0x0001000UL | |
#define SPH_TWEAK_RASTERIZER_35 0x0002000UL | |
#define SPH_TWEAK_ROUND_NONPIXEL_Y_MOVES 0x0004000UL | |
#define SPH_TWEAK_SKIP_IUP 0x0008000UL | |
#define SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES 0x0010000UL | |
#define SPH_TWEAK_SKIP_OFFPIXEL_Y_MOVES 0x0020000UL | |
#define SPH_TWEAK_TIMES_NEW_ROMAN_HACK 0x0040000UL | |
#define SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES_DELTAP 0x0080000UL | |
FT_LOCAL( FT_Bool ) | |
sph_test_tweak( TT_Face face, | |
const FT_String* family, | |
FT_UInt ppem, | |
const FT_String* style, | |
FT_UInt glyph_index, | |
const SPH_TweakRule* rule, | |
FT_UInt num_rules ); | |
FT_LOCAL( FT_UInt ) | |
sph_test_tweak_x_scaling( TT_Face face, | |
const FT_String* family, | |
FT_UInt ppem, | |
const FT_String* style, | |
FT_UInt glyph_index ); | |
FT_LOCAL( void ) | |
sph_set_tweaks( TT_Loader loader, | |
FT_UInt glyph_index ); | |
/* These macros are defined absent a method for setting them */ | |
#define SPH_OPTION_BITMAP_WIDTHS FALSE | |
#define SPH_OPTION_SET_SUBPIXEL TRUE | |
#define SPH_OPTION_SET_GRAYSCALE FALSE | |
#define SPH_OPTION_SET_COMPATIBLE_WIDTHS FALSE | |
#define SPH_OPTION_SET_RASTERIZER_VERSION 38 | |
#endif /* TT_CONFIG_OPTION_SUBPIXEL_HINTING */ | |
FT_END_HEADER | |
#endif /* __TTSUBPIX_H__ */ | |
/* END */ |