40#include FT_INTERNAL_CALC_H
116 if ( boldenAmount == 0 && !stemDarkened )
129 FT_Int x3 = darkenParams[4];
130 FT_Int y3 = darkenParams[5];
131 FT_Int x4 = darkenParams[6];
132 FT_Int y4 = darkenParams[7];
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
288 font->error = cf2_getNormalizedVector( decoder,
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
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 _In_ LONG _In_ LONG x2
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList