tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

winfnt.h (3104B)


      1 /****************************************************************************
      2 *
      3 * winfnt.h
      4 *
      5 *   FreeType font driver for Windows FNT/FON files
      6 *
      7 * Copyright (C) 1996-2025 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 */