diff options
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splinechar.c')
-rw-r--r-- | Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splinechar.c | 246 |
1 files changed, 0 insertions, 246 deletions
diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splinechar.c b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splinechar.c deleted file mode 100644 index b123de4827d..00000000000 --- a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/splinechar.c +++ /dev/null @@ -1,246 +0,0 @@ -/* Copyright (C) 2000-2008 by George Williams */ -/* - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - - * The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO - * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "fontforgevw.h" -#include <math.h> -#include <locale.h> -# include <ustring.h> -# include <utype.h> -#ifdef HAVE_IEEEFP_H -# include <ieeefp.h> /* Solaris defines isnan in ieeefp rather than math.h */ -#endif -#include "ttf.h" - -int adjustwidth = true; -int adjustlbearing = true; -int allow_utf8_glyphnames = false; -int clear_tt_instructions_when_needed = true; - -void SCClearRounds(SplineChar *sc,int layer) { - SplineSet *ss; - SplinePoint *sp; - - for ( ss=sc->layers[layer].splines; ss!=NULL; ss=ss->next ) { - for ( sp=ss->first; ; ) { - sp->roundx = sp->roundy = false; - if ( sp->next==NULL ) - break; - sp = sp->next->to; - if ( sp==ss->first ) - break; - } - } -} - - -void SCClearLayer(SplineChar *sc,int layer) { - RefChar *refs, *next; - - SplinePointListsFree(sc->layers[layer].splines); - sc->layers[layer].splines = NULL; - for ( refs=sc->layers[layer].refs; refs!=NULL; refs = next ) { - next = refs->next; - SCRemoveDependent(sc,refs,layer); - } - sc->layers[layer].refs = NULL; - ImageListsFree(sc->layers[layer].images); - sc->layers[layer].images = NULL; -} - -void SCClearContents(SplineChar *sc,int layer) { - int ly_first, ly_last; - - if ( sc==NULL ) -return; - if ( sc->parent!=NULL && sc->parent->multilayer ) { - ly_first = ly_fore; - ly_last = sc->layer_cnt-1; - } else - ly_first = ly_last = layer; - for ( layer = ly_first; layer<=ly_last; ++layer ) - SCClearLayer(sc,layer); - --layer; - - if ( sc->parent!=NULL && - (sc->parent->multilayer || - (!sc->parent->layers[layer].background && SCWasEmpty(sc,layer)))) { - sc->widthset = false; - if ( sc->parent!=NULL && sc->width!=0 ) - sc->width = sc->parent->ascent+sc->parent->descent; - AnchorPointsFree(sc->anchor); - sc->anchor = NULL; - StemInfosFree(sc->hstem); sc->hstem = NULL; - StemInfosFree(sc->vstem); sc->vstem = NULL; - DStemInfosFree(sc->dstem); sc->dstem = NULL; - MinimumDistancesFree(sc->md); sc->md = NULL; - free(sc->ttf_instrs); - sc->ttf_instrs = NULL; - sc->ttf_instrs_len = 0; - SCOutOfDateBackground(sc); - } -} - - -void SplinePointRound(SplinePoint *sp,real factor) { - - sp->nextcp.x = rint(sp->nextcp.x*factor)/factor; - sp->nextcp.y = rint(sp->nextcp.y*factor)/factor; - if ( sp->next!=NULL && sp->next->order2 ) - sp->next->to->prevcp = sp->nextcp; - sp->prevcp.x = rint(sp->prevcp.x*factor)/factor; - sp->prevcp.y = rint(sp->prevcp.y*factor)/factor; - if ( sp->prev!=NULL && sp->prev->order2 ) - sp->prev->from->nextcp = sp->prevcp; - if ( sp->prev!=NULL && sp->next!=NULL && sp->next->order2 && - sp->ttfindex == 0xffff ) { - sp->me.x = (sp->nextcp.x + sp->prevcp.x)/2; - sp->me.y = (sp->nextcp.y + sp->prevcp.y)/2; - } else { - sp->me.x = rint(sp->me.x*factor)/factor; - sp->me.y = rint(sp->me.y*factor)/factor; - } -} - -void SplineSetsRound2Int(SplineSet *spl,real factor, int inspiro, int onlysel) { - SplinePoint *sp; - - for ( ; spl!=NULL; spl=spl->next ) { - if ( inspiro ) { - } else { - for ( sp=spl->first; ; ) { - if ( sp->selected || !onlysel ) - SplinePointRound(sp,factor); - if ( sp->prev!=NULL ) - SplineRefigure(sp->prev); - if ( sp->next==NULL ) - break; - sp = sp->next->to; - if ( sp==spl->first ) - break; - } - if ( spl->first->prev!=NULL ) - SplineRefigure(spl->first->prev); - } - } -} - -void SCOrderAP(SplineChar *sc) { - int lc=0, cnt=0, out=false, i,j; - AnchorPoint *ap, **array; - /* Order so that first ligature index comes first */ - - for ( ap=sc->anchor; ap!=NULL; ap=ap->next ) { - if ( ap->lig_index<lc ) out = true; - if ( ap->lig_index>lc ) lc = ap->lig_index; - ++cnt; - } - if ( !out ) -return; - - array = galloc(cnt*sizeof(AnchorPoint *)); - for ( i=0, ap=sc->anchor; ap!=NULL; ++i, ap=ap->next ) - array[i] = ap; - for ( i=0; i<cnt-1; ++i ) { - for ( j=i+1; j<cnt; ++j ) { - if ( array[i]->lig_index>array[j]->lig_index ) { - ap = array[i]; - array[i] = array[j]; - array[j] = ap; - } - } - } - sc->anchor = array[0]; - for ( i=0; i<cnt-1; ++i ) - array[i]->next = array[i+1]; - array[cnt-1]->next = NULL; - free( array ); -} - - -static void SCUpdateNothing(SplineChar *sc) { -} - -static void SCHintsChng(SplineChar *sc) { - sc->changedsincelasthinted = false; - if ( !sc->changed ) { - sc->changed = true; - sc->parent->changed = true; - } -} - -static void _SCChngNoUpdate(SplineChar *sc,int layer,int changed) { -} - -static void SCChngNoUpdate(SplineChar *sc,int layer) { - _SCChngNoUpdate(sc,layer,true); -} - -static void SCB_MoreLayers(SplineChar *sc,Layer *old) { -} - -static struct sc_interface noui_sc = { - SCUpdateNothing, - SCUpdateNothing, - SCUpdateNothing, - SCHintsChng, - SCChngNoUpdate, - _SCChngNoUpdate, - SCUpdateNothing, - SCUpdateNothing, - SCB_MoreLayers -}; - -struct sc_interface *sc_interface = &noui_sc; - -void FF_SetSCInterface(struct sc_interface *sci) { - sc_interface = sci; -} - -static void CVChngNoUpdate(CharViewBase *cv) { -} - -static void _CVChngNoUpdate(CharViewBase *cv,int changed) { -} - -static void CVGlphRenameFixup(SplineFont *sf,char *oldname, char *newname) { -} - -static void CV__LayerPaletteCheck(SplineFont *sf) { -} - -static struct cv_interface noui_cv = { - CVChngNoUpdate, - _CVChngNoUpdate, - CVGlphRenameFixup, - CV__LayerPaletteCheck -}; - -struct cv_interface *cv_interface = &noui_cv; - -void FF_SetCVInterface(struct cv_interface *cvi) { - cv_interface = cvi; -} |