Edit

kc3-lang/freetype/src/otlayout/otlparse.h

Branch :

  • Show log

    Commit

  • Author : David Turner
    Date : 2002-11-07 01:36:29
    Hash : e57ca7de
    Message : * src/otlayout/otlayout.h, src/otlyaout/otlconf.h, src/otlayout/otlgsub.c, src/otlayout/otlgsub.h, src/otlayout/otlparse.c, src/otlayout/otlparse.h, src/otlayout/otlutils.h: updating the OpenType Layout code, adding support fot the first GSUB lookups. Nothing that really compiles for now though * src/autohint/ahhint.c: disabled serif stem width quantization. It produces slightly better shapes though this is not distinguishable with many fonts.

  • src/otlayout/otlparse.h
  • #ifndef __OTL_PARSER_H__
    #define __OTL_PARSER_H__
    
    #include "otlayout.h"
    #include "otlgdef.h"
    #include "otlgsub.h"
    #include "otlgpos.h"
    
    OTL_BEGIN_HEADER
    
      typedef struct OTL_ParserRec_*   OTL_Parser;
    
      typedef struct OTL_StringRec_*   OTL_String;
    
      typedef struct OTL_StringGlyphRec_
      {
        OTL_UInt  gindex;
        OTL_UInt  properties;
        OTL_UInt  lig_component;
        OTL_UInt  lig_id;
    
      } OTL_StringGlyphRec, *OTL_StringGlyph;
    
      typedef struct OTL_StringRec_
      {
        OTL_StringGlyph  glyphs;
        OTL_UInt         cursor;
        OTL_UInt         length;
        OTL_UInt         capacity;
    
      } OTL_StringRec;
    
      typedef struct OTL_ParserRec_
      {
        OTL_Bytes      tab_gdef;
        OTL_Bytes      tab_gsub;
        OTL_Bytes      tab_gpos;
        OTL_Bytes      tab_base;
        OTL_Bytes      tab_jstf;
    
        OTL_Alternate  alternate;  /* external alternate handler */
    
        OTL_UInt       context_len;
        OTL_UInt       markup_flags;
    
        OTL_jmp_buf    jump_buffer;
        OTL_Memory     memory;
        OTL_Error      error;
    
        OTL_StringRec  strings[2];
        OTL_String     str_in;
        OTL_String     str_out;
    
      } OTL_ParserRec;
    
      typedef enum
      {
        OTL_Err_Parser_Ok = 0,
        OTL_Err_Parser_InvalidData,
        OTL_Err_Parser_UncoveredGlyph
    
      } OTL_ParseError;
    
      OTL_LOCAL( OTL_UInt )
      otl_parser_get_gindex( OTL_Parser  parser );
    
    
      OTL_LOCAL( void )
      otl_parser_error( OTL_Parser  parser, OTL_ParserError  error );
    
    #define  OTL_PARSER_UNCOVERED(x)  \
               otl_parser_error( x, OTL_Err_Parser_UncoveredGlyph )
    
      OTL_LOCAL( void )
      otl_parser_check_property( OTL_Parser  parser,
                                 OTL_UInt    gindex,
                                 OTL_UInt    flags,
                                 OTL_UInt   *aproperty );
    
     /* copy current input glyph to output */
      OTL_LOCAL( void )
      otl_parser_copy_1( OTL_Parser  parser );
    
     /* copy current input glyph to output, replacing its index */
      OTL_LOCAL( void )
      otl_parser_replace_1( OTL_Parser  parser,
                            OTL_UInt    gindex );
    
     /* copy current input glyph to output, replacing it by several indices */
     /* read directly from the table                                        */
      OTL_LOCAL( void )
      otl_parser_replace_n( OTL_Parser  parser,
                            OTL_UInt    count,
                            OTL_Bytes   indices );
    
    OTL_END_HEADER
    
    #endif /* __OTL_PARSER_H__ */