(root)/
freetype-2.13.2/
src/
winfonts/
winfnt.h
       1  /****************************************************************************
       2   *
       3   * winfnt.h
       4   *
       5   *   FreeType font driver for Windows FNT/FON files
       6   *
       7   * Copyright (C) 1996-2023 by
       8   * David Turner, Robert Wilhelm, and Werner Lemberg.
       9   * Copyright 2007 Dmitry Timoshkov for Codeweavers
      10   *
      11   * This file is part of the FreeType project, and may only be used,
      12   * modified, and distributed under the terms of the FreeType project
      13   * license, LICENSE.TXT.  By continuing to use, modify, or distribute
      14   * this file you indicate that you have read the license and
      15   * understand and accept it fully.
      16   *
      17   */
      18  
      19  
      20  #ifndef WINFNT_H_
      21  #define WINFNT_H_
      22  
      23  
      24  #include <freetype/ftwinfnt.h>
      25  #include <freetype/internal/ftdrv.h>
      26  
      27  
      28  FT_BEGIN_HEADER
      29  
      30  
      31    typedef struct  WinMZ_HeaderRec_
      32    {
      33      FT_UShort  magic;
      34      /* skipped content */
      35      FT_UShort  lfanew;
      36  
      37    } WinMZ_HeaderRec;
      38  
      39  
      40    typedef struct  WinNE_HeaderRec_
      41    {
      42      FT_UShort  magic;
      43      /* skipped content */
      44      FT_UShort  resource_tab_offset;
      45      FT_UShort  rname_tab_offset;
      46  
      47    } WinNE_HeaderRec;
      48  
      49  
      50    typedef struct  WinPE32_HeaderRec_
      51    {
      52      FT_ULong   magic;
      53      FT_UShort  machine;
      54      FT_UShort  number_of_sections;
      55      /* skipped content */
      56      FT_UShort  size_of_optional_header;
      57      /* skipped content */
      58      FT_UShort  magic32;
      59      /* skipped content */
      60      FT_ULong   rsrc_virtual_address;
      61      FT_ULong   rsrc_size;
      62      /* skipped content */
      63  
      64    } WinPE32_HeaderRec;
      65  
      66  
      67    typedef struct  WinPE32_SectionRec_
      68    {
      69      FT_Byte   name[8];
      70      /* skipped content */
      71      FT_ULong  virtual_address;
      72      FT_ULong  size_of_raw_data;
      73      FT_ULong  pointer_to_raw_data;
      74      /* skipped content */
      75  
      76    } WinPE32_SectionRec;
      77  
      78  
      79    typedef struct  WinPE_RsrcDirRec_
      80    {
      81      FT_ULong   characteristics;
      82      FT_ULong   time_date_stamp;
      83      FT_UShort  major_version;
      84      FT_UShort  minor_version;
      85      FT_UShort  number_of_named_entries;
      86      FT_UShort  number_of_id_entries;
      87  
      88    } WinPE_RsrcDirRec;
      89  
      90  
      91    typedef struct  WinPE_RsrcDirEntryRec_
      92    {
      93      FT_ULong  name;
      94      FT_ULong  offset;
      95  
      96    } WinPE_RsrcDirEntryRec;
      97  
      98  
      99    typedef struct  WinPE_RsrcDataEntryRec_
     100    {
     101      FT_ULong  offset_to_data;
     102      FT_ULong  size;
     103      FT_ULong  code_page;
     104      FT_ULong  reserved;
     105  
     106    } WinPE_RsrcDataEntryRec;
     107  
     108  
     109    typedef struct  WinNameInfoRec_
     110    {
     111      FT_UShort  offset;
     112      FT_UShort  length;
     113      FT_UShort  flags;
     114      FT_UShort  id;
     115      FT_UShort  handle;
     116      FT_UShort  usage;
     117  
     118    } WinNameInfoRec;
     119  
     120  
     121    typedef struct  WinResourceInfoRec_
     122    {
     123      FT_UShort  type_id;
     124      FT_UShort  count;
     125  
     126    } WinResourceInfoRec;
     127  
     128  
     129  #define WINFNT_MZ_MAGIC  0x5A4D
     130  #define WINFNT_NE_MAGIC  0x454E
     131  #define WINFNT_PE_MAGIC  0x4550
     132  
     133  
     134    typedef struct  FNT_FontRec_
     135    {
     136      FT_ULong             offset;
     137  
     138      FT_WinFNT_HeaderRec  header;
     139  
     140      FT_Byte*             fnt_frame;
     141      FT_ULong             fnt_size;
     142      FT_String*           family_name;
     143  
     144    } FNT_FontRec, *FNT_Font;
     145  
     146  
     147    typedef struct  FNT_FaceRec_
     148    {
     149      FT_FaceRec     root;
     150      FNT_Font       font;
     151  
     152    } FNT_FaceRec, *FNT_Face;
     153  
     154  
     155    FT_EXPORT_VAR( const FT_Driver_ClassRec )  winfnt_driver_class;
     156  
     157  
     158  FT_END_HEADER
     159  
     160  
     161  #endif /* WINFNT_H_ */
     162  
     163  
     164  /* END */