115 if ( boldenAmount == 0 && !stemDarkened )
139 stemWidthPer1000 =
FT_MulFix( stemWidth + boldenAmount, emRatio );
155 logBase2 =
FT_MSB( (FT_UInt32)stemWidthPer1000 ) +
156 FT_MSB( (FT_UInt32)ppem );
158 if ( logBase2 >= 46 )
162 scaledStem =
FT_MulFix( stemWidthPer1000, ppem );
180 *darkenAmount =
FT_MulDiv(
x, ydelta, xdelta ) +
197 *darkenAmount =
FT_MulDiv(
x, ydelta, xdelta ) +
215 *darkenAmount =
FT_MulDiv(
x, ydelta, xdelta ) +
228 *darkenAmount =
FT_DivFix( *darkenAmount, 2 * emRatio );
232 *darkenAmount += boldenAmount / 2;
268 if (
font->lastSubfont != subFont )
270 font->lastSubfont = subFont;
271 needExtraSetup =
TRUE;
278 hasVariations = ( vstore->
dataCount != 0 );
282#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
283 FT_Service_CFFLoad cffload = (FT_Service_CFFLoad)
font->cffload;
293 if ( cffload->blend_check_vector( &subFont->
blend,
299 cffload->load_private_dict(
decoder->cff,
303 needExtraSetup =
TRUE;
317 font->lenNDV = lenNormalizedV;
318 font->NDV = normalizedV;
326 if (
font->ppem != ppem )
329 needExtraSetup =
TRUE;
338 &
font->currentTransform,
344 font->currentTransform.tx =
350 font->outerTransform.a =
352 font->outerTransform.b =
355 needExtraSetup =
TRUE;
371 needExtraSetup =
TRUE;
376 if ( needExtraSetup )
392 if ( unitsPerEm == 0 )
401 emRatio = cf2_fixedFracMul(
cf2_intToFixed( 1000 ), fontMatrix->a );
410 if (
font->stdVW <= 0 )
417 boldenX =
FT_MAX( boldenX,
431 font->darkenParams );
440 font->darkenParams );
446 emRatio = cf2_fixedFracMul(
cf2_intToFixed( 1000 ), fontMatrix->d );
468 font->darkenParams );
470 if (
font->darkenX != 0 ||
font->darkenY != 0 )
518 needWinding =
font->darkened;
542 if (
font->outline.root.windingMomentum >= 0 )
557 *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