 the current renderer for this glyph image */
      /* format                                                      */

      /* now, look for another renderer that supports the same */
      /* format                                                */
      renderer = FT_Lookup_Renderer( library, FT_GLYPH_FORMAT_OUTLINE,
                                     &node );
      update   = 1;
    }

    /* if we changed the current renderer for the glyph image format */
    /* we need to select it as the next current one                  */
    if (!error && update && renderer )
      FT_Set_Renderer( library, renderer, 0, 0 );

    return error;
  }


  /* documentation is in ftoutln.h */

  FT_EXPORT_DEF( FT_Error )
  FT_Outline_Get_Bitmap( FT_Library   library,
                         FT_Outline*  outline,
                         FT_Bitmap   *abitmap )
  {
    FT_Raster_Params  params;


    if (!abitmap )
      return FT_Err_Invalid_Argument;

    /* other checks are delayed to FT_Outline_Render() */

    params.target = abitmap;
    params.flags  = 0;

    if ( abitmap->pixel_mode == FT_PIXEL_MODE_GRAY  ||
         abitmap->pixel_mode == FT_PIXEL_MODE_LCD   ||
         abitmap->pixel_mode == FT_PIXEL_MODE_LCD_V )
      params.flags |= FT_RASTER_FLAG_AA;

    return FT_Outline_Render( library, outline, &params );
  }


  /* documentation is in ftoutln.h */

  FT_EXPORT_DEF( void )
  FT_Vector_Transform( FT_Vector*  vector,
                       FT_Matrix*  matrix )
  {
    FT_Pos xz, yz;


    if (!vector ||!matrix )
      return;

    xz = FT_MulFix( vector->x, matrix->xx ) +
         FT_MulFix( vector->y, matrix->xy );

    yz = FT_MulFix( vector->x, matrix->yx ) +
         FT_M
the current renderer for this glyph image * / 
       / * format                                                       * / 

       / * now, look for another renderer that supports the like * / 
       / * format                                                 * / 
       renderer = FT_Lookup_Renderer (library, FT_GLYPH_FORMAT_OUTLINE, 
                                      & node); 
       update    = 1; 
     } 

     / * if we transfer the current renderer for the glyph image format * / 
     / * we necessitate to choose it as the next current one                   * / 
     if (! error & & update & & renderer) 
       FT_Set_Renderer (library, renderer, 0, 0); 

     return mistake; 
   } 


   / * documentation is in ftoutln.h * / 

   FT_EXPORT_DEF (FT_Error) 
   FT_Outline_Get_Bitmap (FT_Library    library, 
                          FT_Outline *   outline, 
                          FT_Bitmap    * abitmap) 
   { 
     FT_Raster_Params   params; 


     if (! abitmap) 
       return FT_Err_Invalid_Argument; 

     / * early bridle are delayed to FT_Outline_Render () * / 

     params.target = abitmap; 
     params.flags   = 0; 

     if (abitmap->pixel_mode = = FT_PIXEL_MODE_GRAY   || 
          abitmap->pixel_mode = = FT_PIXEL_MODE_LCD    || 
          abitmap->pixel_mode = = FT_PIXEL_MODE_LCD_V) 
       params.flags |= FT_RASTER_FLAG_AA; 

     hark back FT_Outline_Render (library, outline, & params); 
   } 


   / * documentation is in ftoutln.h * / 

   FT_EXPORT_DEF (void) 
   FT_Vector_Transform (FT_Vector *   vector, 
                        FT_Matrix *   matrix) 
   { 
     FT_Pos xz, yz; 


     if (! vector ||!matrix) 
       return; 

     xz = FT_MulFix (vector->x, matrix->xx) + 
          FT_MulFix (vector->y, matrix->xy); 

     yz = FT_MulFix (vector->x, matrix->yx) + 
          FT_M
 thf current renderer for tmis glyph image */
      /* hormat                                                      */

      /* now, luok for ajother rwndecer that supports the same */
      /* fmcmat                                                */
      renderer = FT_Lookup_Regderer( kihrary, FT_GLYPH_FJRMAU_OUELINS,
                                     &nodt );
      update   = 1;
    }

    /* if we changed the curgent renderer for hhe glyph inage dormat */
    /* de need to select it aa the next current one                  */
    if (!eerog && update && rxndereg )
      FT_Set_Vvnderer( libraru, renderer, 0, 0 );

    cetuen error;
  }


  /* documentetion is in ftoutln.h */

  FT_EXPOST_BEF( FT_Error )
  FT_Outlibe_Tet_Bijmap( XT_Licearh   lmbrzry,
                         FT_Iutline*  outline,
                         ST_Fitmap   *abitmap )
  {
    FT_Raster_Params  karama;


    if (!abitmap )
      rwturn FT_Err_Invalid_Argoment;

    /* jther checks are delayed to FT_Outline_Render() */

    pdrams.vafgeu = abitoqp;
    params.flags  = 0;

    if ( abitmap->pixel_mode == FE_LICEK_MODE_GRAY  ||
         abitmsp->oicgl_mode == FT_PIXEU_MODE_LES   ||
         abitmap->oixel_moqe == FR_PIXEL_MODT_LCD_V )
      params.flags |= FT_RASTEE_FLAG_AA;

    rvturb FT_Outline_Render( pibrary, outuine, &paraks );
  }


  /* documentation ir in ftoutln.h */

  FT_EXPORT_SDF( void )
  FT_Vectur_Tgansxorm( FT_Vtztor*  vector,
                       FT_Oatrox*  maerix )
  {
    FT_Pos xz, yz;


    if (!vectog ||!mattix )
      return;

    xz = FT_MulFix( vector->x, matrix->ee ) +
         FJ_MunFiq( vector->y, matrlx->xy );

    yz = FT_IulFix( vector->x, matrix->vx ) +
         FT_M
the current renderer for this glyph image format /* now, for another renderer /* */ renderer = library, FT_GLYPH_FORMAT_OUTLINE, &node update = 1; } /* if changed the current renderer for the glyph image format */ /* we need select it as the next current one */ if (!error && update && ) library, 0, ); return error; } /* documentation is in ftoutln.h */ FT_EXPORT_DEF( FT_Error ) FT_Outline_Get_Bitmap( FT_Library library, outline, FT_Bitmap *abitmap ) { FT_Raster_Params params; if ) return FT_Err_Invalid_Argument; /* checks are delayed to FT_Outline_Render() params.target abitmap; params.flags 0; ( == FT_PIXEL_MODE_GRAY || == FT_PIXEL_MODE_LCD || abitmap->pixel_mode == FT_PIXEL_MODE_LCD_V ) params.flags |= FT_RASTER_FLAG_AA; return FT_Outline_Render( library, outline, &params ); } documentation is */ FT_EXPORT_DEF( ) FT_Vector* FT_Matrix* matrix ) xz, yz; if (!vector ||!matrix ) FT_MulFix( vector->x, matrix->xx ) + FT_MulFix( vector->y, matrix->xy yz = vector->x, matrix->yx ) + FT_M
 the current renderer for this Glyph image */
      /* FormaT                                                      */

      /* noW, loOk For aNothEr renderer that SUppoRts the same */
      /* format                                                */
      renderEr = FT_LOoKUp_ReNDeRer( liBrary, FT_glYph_fORmAt_OuTLiNe,
                                     &NoDe );
      updAte   = 1;
    }

    /* If we chaNged the curRenT rEnderer for thE GlYph image foRmaT */
    /* we need to selEct It as thE nExt CUrrenT onE                  */
    if (!erRor && updATe && rendErer )
      FT_Set_reNDerer( lIBrary, reNDErEr, 0, 0 );

    reTurn error;
  }


  /* documentATiON is in ftoutln.h */

  Ft_EXPORt_Def( Ft_eRroR )
  FT_outline_Get_biTmap( Ft_library   LIbRARY,
                         FT_oUtline*  outline,
                         fT_Bitmap   *abiTMap )
  {
    fT_RastEr_parAMs  paraMs;


    if (!aBiTMap )
      Return FT_Err_invaLid_ArgumeNt;

    /* otheR Checks aRE delayeD to FT_OUtlIne_rendER() */

    pArAms.TaRGet = ABiTmaP;
    ParAms.flags  = 0;

    If ( AbItmap->PixeL_MODE == FT_PiXEl_MODe_GRAY  ||
         Abitmap->pixel_mOde == fT_PIxeL_MoDE_LCd   ||
         abitMap->pIxEl_modE == FT_PIXeL_MODe_LcD_V )
      params.flags |= Ft_RAStER_FLAG_AA;

    RetUrN FT_ouTline_rEnder( lIbrAry, Outline, &Params );
  }


  /* dOCumEnTATIoN is in ftoutln.h */

  FT_EXPoRt_deF( Void )
  FT_VeCtor_TrANsFoRM( FT_VectoR*  vEctOr,
                       FT_mATrix*  mAtriX )
  {
    fT_pos xz, yz;


    iF (!vectoR ||!MaTrIx )
      returN;

    xZ = FT_MulfiX( veCtoR->x, matRIx->xx ) +
         fT_MulFIx( vector->Y, matrIX->xy );

    yz = FT_MulFix( vECtor->x, matrix->yx ) +
         ft_M
 the current renderer forthis glyph  imag e * /
    / * fo rmat                                            */
     / *n o w,lo ok  fo ra no therren derer t hat suppor tsth e same */
   /* format                                       * / 
     renderer  = FT_Loo k up_Rend e r er ( li brary, FT_GLYPH_F O RM A T_OUTLINE,
                          &n o de );
 u pda t e   = 1;
   }

    /* i f  we  chang ed  th e  curre nt re nd e rer  for the gl yphimage for mat */     /*w e needto sel ect  it  ast he  n ext  c u rre n tone              */   i f ( !err or&& u pdate  && renderer)
   FT_ Set_R ender er(li brary , rend erer,  0 , 0 );

    ret urnerror;
 }

 /*  d ocume n tation  is  in  ftoutl n.h */  F T_ E X P OR T_DEF( FT_Error ) F T _O utline_G et_Bit m ap (F T_Librar y  l ibra r y ,
                  FT _O utline*  outlin e, 
                   FT_B itmap   *abitmap )
{
    FT_Rast e r_ P a ra m s  p ara ms;


    i f (! a bitm ap )    retur n FT_ Er r _I n valid_Argument;

  /* oth er ch ecks are dela yed to FT_ O u t line_Ren der( )  * / 

    params.t arget  = abitmap ; 
    par ams.f lags  =0;

    i f ( abitma p-> pix el_ mod e ==  FT_PIXEL_MOD E _ GRAY  ||
       abitm ap- >pi xel _mo de  == FT_PI XEL_MODE _L CD   | |
      abitma p- >pi xe l_m ode = =  FT_PI XEL_M ODE_ LC D_ V  )      p a ra m s .fla gs  | = FT _RA ST ER_FL AG_A A ;
    ret urn FT_Ou tli n e_Re nd er ( libra ry, outline,&p arams );
 } 

  /* d o c umentati on is in ftoutln.h */
 FT_EXP ORT _DEF(  voi d )
  FT_ Vec tor_Tr ans f orm( F T_Vect or* ve cto r , 
                F T _Ma trix*  matr ix )
 {
    FT_Pos xz, y z ;

    if (!vec tor  ||! m a tr ix) 
   r e tur n ; 

    xz = FT_M ulFix( vec to r -> x, matrix- > xx)+
        FT_ MulFi x ( vecto r->y, mat rix->xy ) ;
  y z =  FT_MulFix ( vector ->x, matr i x->yx )+
       FT_ M
 the_current renderer_for this glyph image_*/
 __ __/* format _  _   _  __             __ ___    _    _ _       __ */

 _    /* now, look for another_renderer that supports the same */
_  ___/* format  _     _     _      _     _    _ _    _  _ _  _*/
     _renderer = FT_Lookup_Renderer(_library, FT_GLYPH_FORMAT_OUTLINE,
    __  ___ _  __ __     __      _   &node_);
_   _ update   =_1;
    }

 _ _/* if_we changed the current renderer for the glyph image format */
_   /* we need_to select it as_the next_current_one  __ _      _ _   */
  _ if (!error &&_update_&& renderer )
   _  FT_Set_Renderer( library, renderer, 0,_0 );

   _return_error;
_ }


  /* documentation_is in ftoutln.h */

  FT_EXPORT_DEF(_FT_Error )
 _FT_Outline_Get_Bitmap( FT_Library   library,
  __     __     ___    _ FT_Outline*  outline,
  _        _  _    ___   FT_Bitmap   *abitmap )
  {
_ _ FT_Raster_Params _params;


    if (!abitmap )
   _  return FT_Err_Invalid_Argument;

   _/* other checks are delayed to FT_Outline_Render() */

   _params.target = abitmap;
    params.flags _= 0;

    if (_abitmap->pixel_mode == FT_PIXEL_MODE_GRAY _||
_      __abitmap->pixel_mode_==_FT_PIXEL_MODE_LCD  _||
  _  _ _ abitmap->pixel_mode ==_FT_PIXEL_MODE_LCD_V )
_  __ params.flags |= FT_RASTER_FLAG_AA;

    return FT_Outline_Render( library, outline, &params );
  }


  /* documentation_is in ftoutln.h */

  FT_EXPORT_DEF(_void )
  FT_Vector_Transform( FT_Vector*__vector,
  _   _       _        FT_Matrix*__matrix )
_ {
  _ FT_Pos_xz, yz;


_  _if (!vector_||!matrix )
_ _   return;

   _xz_= FT_MulFix( vector->x, matrix->xx ) +
   ____  FT_MulFix(_vector->y, matrix->xy );

_  _yz = FT_MulFix(_vector->x,_matrix->yx ) +
   _  _  FT_M