diff options
| author | Eugen Wissner <belka@caraus.de> | 2023-12-06 11:04:08 +0100 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2023-12-06 11:04:08 +0100 |
| commit | a841f138fc9055f4bc32db292a675f93f081b4e7 (patch) | |
| tree | 6ae8000137a0a76d5537a8be7d20f1a5cc8b2a3e /src/Graphics/Fountainhead/Dumper.hs | |
| parent | b87abcbf2f6453419952ce38dbef1e906b185767 (diff) | |
| download | fountainhead-a841f138fc9055f4bc32db292a675f93f081b4e7.tar.gz | |
Dump the GASP table
Diffstat (limited to 'src/Graphics/Fountainhead/Dumper.hs')
| -rw-r--r-- | src/Graphics/Fountainhead/Dumper.hs | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/Graphics/Fountainhead/Dumper.hs b/src/Graphics/Fountainhead/Dumper.hs index 3bbbf3f..46655cb 100644 --- a/src/Graphics/Fountainhead/Dumper.hs +++ b/src/Graphics/Fountainhead/Dumper.hs @@ -45,6 +45,8 @@ import Graphics.Fountainhead.TrueType ( CmapTable(..) , FontDirectory(..) , FontDirectionHint(..) + , GASPRange(..) + , GASPTable(..) , HeadTable(..) , HheaTable(..) , HmtxTable(..) @@ -84,6 +86,7 @@ import Graphics.Fountainhead.Parser , headTableP , hheaTableP , hmtxTableP + , gaspTableP , locaTableP , maxpTableP , nameTableP @@ -617,6 +620,18 @@ dumpMaxp (OpenMaxp OpenMaxpTable{..}) <> " 'maxp' version: " <> dumpFixed32 version <> newlineBuilder <> newlineBuilder <> " numGlyphs: " <> Text.Builder.decimal numGlyphs <> newlineBuilder +dumpGASP :: GASPTable -> Text.Builder.Builder +dumpGASP GASPTable{..} = dumpCaption "'gasp' Table - Grid-fitting And Scan-conversion Procedure" + <> "'gasp' version: " <> Text.Builder.decimal version <> newlineBuilder + <> "numRanges: " <> Text.Builder.decimal (Prelude.length gaspRange) <> newlineBuilder + <> foldMap dumpGASPRange (zip [0..] gaspRange) + where + dumpGASPRange :: (Int, GASPRange) -> Text.Builder.Builder + dumpGASPRange (index', GASPRange{..}) = newlineBuilder + <> " gasp Range " <> Text.Builder.decimal index' <> newlineBuilder + <> " rangeMaxPPEM: " <> Text.Builder.decimal rangeMaxPPEM <> newlineBuilder + <> " rangeGaspBehavior: 0x" <> halfPaddedHexadecimal rangeGaspBehavior <> newlineBuilder + dumpTables :: Megaparsec.State ByteString Void -> FontDirectory @@ -655,6 +670,7 @@ dumpTables processedState directory@FontDirectory{..} "post" -> Just $ dumpPost <$> parseTable tableEntry postTableP processedState "OS/2" -> Just $ dumpOs2 <$> parseTable tableEntry os2TableP processedState "cvt " -> Just $ dumpCVTable <$> parseTable tableEntry cvTableP processedState + "gasp" -> Just $ dumpGASP <$> parseTable tableEntry gaspTableP processedState _ -> Nothing dumpTrueType :: ByteString -> FilePath -> Either DumpError Text.Builder.Builder |
