40#include FT_INTERNAL_CALC_H
116 if ( boldenAmount == 0 && !stemDarkened )
140 stemWidthPer1000 =
FT_MulFix( stemWidth + boldenAmount, emRatio );
156 logBase2 =
FT_MSB( (FT_UInt32)stemWidthPer1000 ) +
157 FT_MSB( (FT_UInt32)ppem );
159 if ( logBase2 >= 46 )
163 scaledStem =
FT_MulFix( stemWidthPer1000, ppem );
181 *darkenAmount =
FT_MulDiv(
x, ydelta, xdelta ) +
198 *darkenAmount =
FT_MulDiv(
x, ydelta, xdelta ) +
216 *darkenAmount =
FT_MulDiv(
x, ydelta, xdelta ) +
229 *darkenAmount =
FT_DivFix( *darkenAmount, 2 * emRatio );
233 *darkenAmount += boldenAmount / 2;
269 if (
font->lastSubfont != subFont )
271 font->lastSubfont = subFont;
272 needExtraSetup =
TRUE;
277 FT_Service_CFFLoad cffload = (FT_Service_CFFLoad)
font->cffload;
282 hasVariations = ( vstore->
dataCount != 0 );
286#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
294 if ( cffload->blend_check_vector( &subFont->
blend,
300 cffload->load_private_dict(
decoder->cff,
304 needExtraSetup =
TRUE;
318 font->lenNDV = lenNormalizedV;
319 font->NDV = normalizedV;
327 if (
font->ppem != ppem )
330 needExtraSetup =
TRUE;
339 &
font->currentTransform,
345 font->currentTransform.tx =
351 font->outerTransform.a =
353 font->outerTransform.b =
356 needExtraSetup =
TRUE;
372 needExtraSetup =
TRUE;
377 if ( needExtraSetup )
393 if ( unitsPerEm == 0 )
402 emRatio = cf2_fixedFracMul(
cf2_intToFixed( 1000 ), fontMatrix->a );
411 if (
font->stdVW <= 0 )
418 boldenX =
FT_MAX( boldenX,
432 font->darkenParams );
441 font->darkenParams );
447 emRatio = cf2_fixedFracMul(
cf2_intToFixed( 1000 ), fontMatrix->d );
469 font->darkenParams );
471 if (
font->darkenX != 0 ||
font->darkenY != 0 )
519 needWinding =
font->darkened;
543 if (
font->outline.root.windingMomentum >= 0 )
558 *glyphWidth = advWidth;
FT_DivFix(FT_Long a, FT_Long b)
FT_MulDiv(FT_Long a, FT_Long b, FT_Long c)
FT_MulFix(FT_Long a, FT_Long b)
FT_BEGIN_HEADER typedef unsigned char FT_Bool
GLint GLint GLint GLint GLint x
GLuint GLenum GLenum transform
static float int float int float int x3
static float int float int float int float int x4
static float int float int float int float y3
static float int float int float int float int float y4
cf2_blues_init(CF2_Blues blues, CF2_Font font)
cf2_setError(FT_Error *error, FT_Error value)
#define cf2_intToFixed(i)
#define cf2_doubleToFixed(f)
static void cf2_computeDarkening(CF2_Fixed emRatio, CF2_Fixed ppem, CF2_Fixed stemWidth, CF2_Fixed *darkenAmount, CF2_Fixed boldenAmount, FT_Bool stemDarkened, FT_Int *darkenParams)
cf2_getGlyphOutline(CF2_Font font, CF2_Buffer charstring, const CF2_Matrix *transform, CF2_F16Dot16 *glyphWidth)
static void cf2_font_setup(CF2_Font font, const CF2_Matrix *transform)
cf2_getVStore(PS_Decoder *decoder)
cf2_getStdVW(PS_Decoder *decoder)
cf2_outline_reset(CF2_Outline outline)
cf2_getPpemY(PS_Decoder *decoder)
cf2_getStdHW(PS_Decoder *decoder)
cf2_getSubfont(PS_Decoder *decoder)
cf2_outline_close(CF2_Outline outline)
#define CF2_FlagsDarkened
cf2_interpT2CharString(CF2_Font font, CF2_Buffer buf, CF2_OutlineCallbacks callbacks, const FT_Vector *translation, FT_Bool doingSeac, CF2_Fixed curX, CF2_Fixed curY, CF2_Fixed *width)
FT_BEGIN_HEADER struct CF2_BufferRec_ * CF2_Buffer
CFF_PrivateRec private_dict
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList