PHP 8.2.31
Preview: sfnt.h Size: 4.90 KB
//proc/thread-self/root/opt/alt/libicu65/usr/share/doc/alt-libicu65-devel/samples/layout/sfnt.h

/*
 ******************************************************************************
 *
 *   © 2016 and later: Unicode, Inc. and others.
 *   License & terms of use: http://www.unicode.org/copyright.html#License
 *
 ******************************************************************************
 ****************************************************************************** *
 *
 *   Copyright (C) 1999-2001, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 ****************************************************************************** *
 *   file name:  sfnt.h
 *
 *   created on: ??/??/2001
 *   created by: Eric R. Mader
 */

#ifndef __SFNT_H
#define __SFNT_H

#include "LETypes.h"


#ifndef ANY_NUMBER
#define ANY_NUMBER 1
#endif

struct DirectoryEntry
{
    le_uint32   tag;
    le_uint32   checksum;
    le_uint32   offset;
    le_uint32   length;
};

struct SFNTDirectory
{
    le_uint32       scalerType;
    le_uint16       numTables;
    le_uint16       searchRange;
    le_uint16       entrySelector;
    le_uint16       rangeShift;
    DirectoryEntry  tableDirectory[ANY_NUMBER];
};


struct CMAPEncodingSubtableHeader
{
    le_uint16   platformID;
    le_uint16   platformSpecificID;
    le_uint32   encodingOffset;
};

struct CMAPTable
{
    le_uint16   version;
    le_uint16   numberSubtables;
    CMAPEncodingSubtableHeader encodingSubtableHeaders[ANY_NUMBER];
};

struct CMAPEncodingSubtable
{
    le_uint16   format;
    le_uint16   length;
    le_uint16   language;
};

struct CMAPFormat0Encoding : CMAPEncodingSubtable
{
    le_uint8    glyphIndexArray[256];
};

struct CMAPFormat2Subheader
{
    le_uint16   firstCode;
    le_uint16   entryCount;
    le_int16    idDelta;
    le_uint16   idRangeOffset;
};

struct CMAPFormat2Encoding : CMAPEncodingSubtable
{
    le_uint16  subHeadKeys[256];
    CMAPFormat2Subheader subheaders[ANY_NUMBER];
};

struct CMAPFormat4Encoding : CMAPEncodingSubtable
{
    le_uint16   segCountX2;
    le_uint16   searchRange;
    le_uint16   entrySelector;
    le_uint16   rangeShift;
    le_uint16   endCodes[ANY_NUMBER];
//  le_uint16   reservedPad;
//  le_uint16   startCodes[ANY_NUMBER];
//  le_uint16   idDelta[ANY_NUMBER];
//  le_uint16   idRangeOffset[ANY_NUMBER];
//  le_uint16   glyphIndexArray[ANY_NUMBER];
};

struct CMAPFormat6Encoding : CMAPEncodingSubtable
{
    le_uint16   firstCode;
    le_uint16   entryCount;
    le_uint16   glyphIndexArray[ANY_NUMBER];
};

struct CMAPEncodingSubtable32
{
    le_uint32   format;
    le_uint32   length;
    le_uint32   language;
};

struct CMAPGroup
{
    le_uint32   startCharCode;
    le_uint32   endCharCode;
    le_uint32   startGlyphCode;
};

struct CMAPFormat8Encoding : CMAPEncodingSubtable32
{
    le_uint32   is32[65536/32];
    le_uint32   nGroups;
    CMAPGroup   groups[ANY_NUMBER];
};

struct CMAPFormat10Encoding : CMAPEncodingSubtable32
{
    le_uint32   startCharCode;
    le_uint32   numCharCodes;
    le_uint16   glyphs[ANY_NUMBER];
};

struct CMAPFormat12Encoding : CMAPEncodingSubtable32
{
    le_uint32   nGroups;
    CMAPGroup   groups[ANY_NUMBER];
};

typedef le_int32 fixed;

struct BigDate
{
    le_uint32   bc;
    le_uint32   ad;
};

struct HEADTable
{
    fixed       version;
    fixed       fontRevision;
    le_uint32   checksumAdjustment;
    le_uint32   magicNumber;
    le_uint16   flags;
    le_uint16   unitsPerEm;
    BigDate     created;
    BigDate     modified;
    le_int16    xMin;
    le_int16    yMin;
    le_int16    xMax;
    le_int16    yMax;
    le_int16    lowestRecPPEM;
    le_int16    fontDirectionHint;
    le_int16    indexToLocFormat;
    le_int16    glyphDataFormat;
};

struct MAXPTable
{
    fixed       version;
    le_uint16   numGlyphs;
    le_uint16   maxPoints;
    le_uint16   maxContours;
    le_uint16   maxComponentPoints;
    le_uint16   maxComponentContours;
    le_uint16   maxZones;
    le_uint16   maxTwilightPoints;
    le_uint16   maxStorage;
    le_uint16   maxFunctionDefs;
    le_uint16   maxInstructionDefs;
    le_uint16   maxStackElements;
    le_uint16   maxSizeOfInstructions;
    le_uint16   maxComponentElements;
    le_uint16   maxComponentDepth;
};

struct HHEATable
{
    fixed       version;
    le_int16    ascent;
    le_int16    descent;
    le_int16    lineGap;
    le_uint16   advanceWidthMax;
    le_int16    minLeftSideBearing;
    le_int16    minRightSideBearing;
    le_int16    xMaxExtent;
    le_int16    caretSlopeRise;
    le_int16    caretSlopeRun;
    le_int16    caretOffset;
    le_int16    reserved1;
    le_int16    reserved2;
    le_int16    reserved3;
    le_int16    reserved4;
    le_int16    metricDataFormat;
    le_uint16   numOfLongHorMetrics;
};

struct LongHorMetric
{
    le_uint16   advanceWidth;
    le_int16    leftSideBearing;
};

struct HMTXTable
{
    LongHorMetric hMetrics[ANY_NUMBER];        // ANY_NUMBER = numOfLongHorMetrics from hhea table
//  le_int16      leftSideBearing[ANY_NUMBER]; // ANY_NUMBER = numGlyphs - numOfLongHorMetrics
};

#endif

Directory Contents

Dirs: 0 × Files: 56

Name Size Perms Modified Actions
646 B lrw-r--r-- 2019-10-03 11:16:41
Edit Download
8.45 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
9.82 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
5.30 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
2.06 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
7.34 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
426 B lrw-r--r-- 2019-10-03 11:16:41
Edit Download
392 B lrw-r--r-- 2019-10-03 11:16:41
Edit Download
1.84 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
2.37 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
1.06 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
9.60 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
3.60 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
1.32 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
1.23 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
1.67 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
983 B lrw-r--r-- 2019-10-03 11:16:41
Edit Download
862 B lrw-r--r-- 2019-10-03 11:16:41
Edit Download
949 B lrw-r--r-- 2019-10-03 11:16:41
Edit Download
5.43 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
3.79 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
1.39 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
1.21 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
1.64 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
986 B lrw-r--r-- 2019-10-03 11:16:41
Edit Download
1.05 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
961 B lrw-r--r-- 2019-10-03 11:16:41
Edit Download
8.50 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
370 B lrw-r--r-- 2019-10-03 11:16:41
Edit Download
890 B lrw-r--r-- 2019-10-03 11:16:41
Edit Download
9.80 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
1.17 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
12.92 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
3.06 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
3.37 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
2.92 KB lrw-r--r-- 2026-06-02 15:59:40
Edit Download
2.92 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
7.58 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
2.18 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
9.27 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
940 B lrw-r--r-- 2019-10-03 11:16:41
Edit Download
7.32 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
1.09 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
907 B lrw-r--r-- 2019-10-03 11:16:41
Edit Download
712 B lrw-r--r-- 2019-10-03 11:16:41
Edit Download
528 B lrw-r--r-- 2019-10-03 11:16:41
Edit Download
1.66 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
3.20 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
6.15 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
4.90 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
892 B lrw-r--r-- 2019-10-03 11:16:41
Edit Download
519 B lrw-r--r-- 2019-10-03 11:16:41
Edit Download
509 B lrw-r--r-- 2019-10-03 11:16:41
Edit Download
422 B lrw-r--r-- 2019-10-03 11:16:41
Edit Download
4.10 KB lrw-r--r-- 2019-10-03 11:16:41
Edit Download
999 B lrw-r--r-- 2019-10-03 11:16:41
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).