~alcinnz/Typograffiti

ref: 5df992eaaa44bc5660c49ec47c1398dedf111d47 Typograffiti/src/Typograffiti.hs -rw-r--r-- 1.9 KiB
5df992ea — Adrian Cochrane Propagate bugfixes to Harfbuzz-Pure. 1 year, 10 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
-- |
-- Module:     Typograffiti
-- Copyright:  (c) 2018 Schell Scivally, 2023 Adrian Cochrane
-- License:    MIT
-- Maintainer: Schell Scivally <schell@takt.com>
--             & Adrian Cochrane <alcinnz@argonaut-constellation.org>
--
-- This module provides easy freetype2 & Harfbuzz based font rendering with a
-- nice Haskell interface, whilst exposing low-level APIs for those who need it.
module Typograffiti(
    TypograffitiError(..),
    allocAtlas, freeAtlas, stringTris, Atlas(..), GlyphMetrics(..),
    makeDrawGlyphs, AllocatedRendering(..), Layout(..),
    SpatialTransform(..), TextTransform(..), move, scale, rotate, skew, color, alpha,
    withFontStore, newFontStore, FontStore(..), Font(..),
    SampleText (..), defaultSample, addSampleFeature, parseSampleFeature, parseSampleFeatures,
        addFontVariant, parseFontVariant, parseFontVariants,
        varItalic, varOptSize, varSlant, varWidth, varWeight,
    RichText (..), str, txt, ($$), style, apply, on, off, alternate,
        alt, case_, centerCJKPunct, capSpace, ctxtSwash, petiteCaps', smallCaps',
        expertJ, finGlyph, fract, fullWidth, hist, hkana, histLig, hojo, halfWidth,
        italic, justifyAlt, jap78, jap83, jap90, jap04, kerning, lBounds, liningFig,
        localized, mathGreek, altAnnotation, nlcKanji, oldFig, ordinals, ornament,
        propAltWidth, petiteCaps, propKana, propFig, propWidth, quarterWidth,
        rBounds, ruby, styleAlt, sciInferior, smallCaps, simpleCJ, subscript,
        superscript, swash, titling, traditionNameJ, tabularFig, traditionCJ,
        thirdWidth, unicase, vAlt, vert, vHalfAlt, vKanaAlt, vKerning, vPropAlt,
        vRotAlt, vrot, slash0, altFrac, ctxtAlt, ctxtLig, optLigs, lig, rand,
    GlyphSize(..), makeDrawTextCached, makeDrawText, makeDrawText'
) where

import Typograffiti.Atlas
import Typograffiti.Cache
import Typograffiti.Store
import Typograffiti.Text
import Typograffiti.Rich