/*******************************************************************
 *
 *  t1objs.h                                                    1.0
 *
 *    Type1 objects definition.         
 *
 *  Copyright 1996-1999 by
 *  David Turner, Robert Wilhelm, and Werner Lemberg.
 *
 *  This file is part of the FreeType project, and may only be used
 *  modified and distributed under the terms of the FreeType project
 *  license, LICENSE.TXT.  By continuing to use, modify, or distribute
 *  this file you indicate that you have read the license and
 *  understand and accept it fully.
 *
 ******************************************************************/

#ifndef T1OBJS_H
#define T1OBJS_H

#include <ftobjs.h>
#include <ftconfig.h>
#include <t1errors.h>
#include <t1types.h>

#ifdef __cplusplus
  extern "C" {
#endif

  /* The following structures must be defined by the hinter */
  typedef struct T1_Size_Hints_   T1_Size_Hints;
  typedef struct T1_Glyph_Hints_  T1_Glyph_Hints;

  /***********************************************************************/
  /*                                                                     */
  /* <Type> T1_Driver                                                    */
  /*                                                                     */
  /* <Description>                                                       */
  /*    A handle to a Type 1 driver object.                              */
  /*                                                                     */
  typedef struct T1_DriverRec_   *T1_Driver;


  /***********************************************************************/
  /*                                                                     */
  /* <Type> T1_Size                                                      */
  /*                                                                     */
  /* <Description>                                                       */
  /*    A handle to a Type 1 size object.                                */
  /*                                                                     */
  typedef struct T1_SizeRec_*  T1_Size;


  /***********************************************************************/
  /*                                                                     */
  /* <Type> T1_GlyphSlot                                                 */
  /*                                                                     */
  /* <Description>                                                       */
  /*    A handle to a Type 1 glyph slot object.                          */
  /*                                                                     */
  typedef struct T1_GlyphSlotRec_*  T1_GlyphSlot;


  /***********************************************************************/
  /*                                                                     */
  /* <Type> T1_CharMap                                                   */
  /*                                                                     */
  /* <Description>                                                       */
  /*    A handle to a Type 1 character mapping object.                   */
  /*                                                                     */
  /* <Note>                                                              */
  /*    The Type 1 format doesn't use a charmap but an encoding table.   */
  /*    The driver is responsible for making up charmap objects          */
  /*    corresponding to these tables..                                  */
  /*                                                                     */
  typedef struct T1_CharMapRec_*   T1_CharMap;



 /**************************************************************************/
 /*                                                                        */
 /*    NOW BEGINS THE TYPE1 SPECIFIC STUFF ..............................  */
 /*                                                                        */
 /**************************************************************************/
 

  /***************************************************/
  /*                                                 */
  /*  T1_Size :                                      */
  /*                                                 */
  /*    Type 1 size record..                         */
  /*                                                 */
  
  typedef struct T1_SizeRec_
  {
    FT_SizeRec      root;
    T1_Bool         valid;
    T1_Size_Hints*  hints;  /* defined in the hinter. This allows */
                            /* us to experiment with different    */
                            /* hinting schemes without having to  */
                            /* change 't1objs' each time..        */
  } T1_SizeRec;



  /***************************************************/
  /*                                                 */
  /*  T1_GlyphSlot :                                 */
  /*                                                 */
  /*    TrueDoc glyph record..                       */
  /*                                                 */
  
  typedef struct T1_GlyphSlotRec_
  {
    FT_GlyphSlotRec  root;

    T1_Bool          hint;
    T1_Bool          scaled;
    
    T1_Int           max_points;
    T1_Int           max_contours;

    FT_Fixed         x_scale;
    FT_Fixed         y_scale;

    T1_Glyph_Hints*  hints;  /* defined in the hinter */

  } T1_GlyphSlotRec;


/*******************************************************************
 *
 *  <Function>  T1_Init_Face
 *
 *  <Description>
 *     Initialise a given Type 1 face object
 *
 *  <Input>
 *     face_index :: index of font face in resource
 *     resource   :: source font resource
 *     face       ::  face record to build
 *
 *  <Return>
 *     Error code.
 *
 ******************************************************************/

  LOCAL_DEF
  T1_Error  T1_Init_Face( FT_Stream    stream,
                          FT_Int       face_index,
                          T1_Face      face );



/*******************************************************************
 *
 *  <Function> T1_Done_Face
 *
 *  <Description>
 *     Finalise a given face object
 *
 *  <Input>
 *     face  :: handle  to the face object to destroy
 *
 ******************************************************************/

  LOCAL_DEF
  void  T1_Done_Face( T1_Face  face );



/*******************************************************************
 *
 *  <Function> T1_Init_Size
 *
 *  <Description>
 *     Initialise a new Type 1 size object
 *
 *  <Input>
 *     size  :: handle to size object
 *
 *  <Return>
 *     Type 1 error code. 0 means success.
 *
 ******************************************************************/

  LOCAL_DEF
  T1_Error  T1_Init_Size( T1_Size  size );



/*******************************************************************
 *
 * <Function>  T1_Done_Size
 *
 * <Description>
 *    The Type 1 size object finaliser.
 *
 * <Input>
 *    size   :: handle to the target size object.
 *
 ******************************************************************/

  LOCAL_DEF
  void  T1_Done_Size( T1_Size  size );


/*******************************************************************
 *
 * <Function>  T1_Reset_Size
 *
 * <Description>
 *    Reset a Type 1 size when resolutions and character dimensions
 *    have been changed..
 *
 * <Input>
 *    size   :: handle to the target size object.
 *
 ******************************************************************/

  LOCAL_DEF
  T1_Error  T1_Reset_Size( T1_Size  size );



/*******************************************************************
 *
 *  <Function> T1_Init_GlyphSlot
 *
 *  <Description> The TrueType glyph slot initialiser
 *
 *  <Input>  glyph ::  glyph record to build.
 *
 *  <Output> Error code.
 *
 ******************************************************************/

  LOCAL_DEF
  T1_Error  T1_Init_GlyphSlot( T1_GlyphSlot  slot );



/*******************************************************************
 *
 *  <Function> T1_Done_GlyphSlot
 *
 *  <Description> The Type 1 glyph slot finaliser
 *
 *  <Input>  glyph  :: handle to glyph slot object
 *
 *  <Output>  Error code.                       
 *
 ******************************************************************/

  LOCAL_DEF
  void  T1_Done_GlyphSlot( T1_GlyphSlot  slot );



/*******************************************************************
 *
 *  <Function>  T1_Init_Driver
 *
 *  <Description>
 *     Initialise a given Type 1 driver object
 *
 *  <Input>
 *     driver ::  handle to target driver object
 *
 *  <Return>
 *     Error code.
 *
 ******************************************************************/

  LOCAL_DEF
  T1_Error  T1_Init_Driver( T1_Driver  driver );



/*******************************************************************
 *
 *  <Function> T1_Done_Driver
 *
 *  <Description>
 *     finalise a given Type 1 driver
 *
 *  <Input>
 *     driver  :: handle to target Type 1 driver
 *
 ******************************************************************/

  LOCAL_DEF
  void  T1_Done_Driver( T1_Driver  driver );

#ifdef __cplusplus
  }
#endif

#endif /* T1OBJS_H */


/* END */
