~alcinnz/harfbuzz-pure

ref: be942b126a16bda5c1ebdae18ed22c512e12d053 harfbuzz-pure/Main.hs -rw-r--r-- 799 bytes
be942b12 — Adrian Cochrane Merge branch 'main' of git.argonaut-constellation.org:~alcinnz/harfbuzz-pure 1 year, 7 months ago
                                                                                
c0f7026e Adrian Cochrane
f2772de8 Adrian Cochrane
843f6415 Adrian Cochrane
c0f7026e Adrian Cochrane
5b7beb1f Adrian Cochrane
c0f7026e Adrian Cochrane
f2772de8 Adrian Cochrane
843f6415 Adrian Cochrane
5b7beb1f Adrian Cochrane
843f6415 Adrian Cochrane
c0f7026e Adrian Cochrane
843f6415 Adrian Cochrane
c0f7026e Adrian Cochrane
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{-# LANGUAGE PackageImports, OverloadedStrings #-}
module Main where

import "harfbuzz-pure" Data.Text.Glyphize
import Control.Parallel.Strategies (parMap, rpar)

import Data.Text.Lazy (pack)
import qualified Data.ByteString as BS
import System.Environment (getArgs)

shapeStr font word = shape font defaultBuffer { text = pack word } []

main :: IO ()
main = do
    print versionString
    words <- getArgs
    if Prelude.null words
    then print $ guessSegmentProperties $ defaultBuffer { text = "Testing, testing"}
    else do
      blob <- BS.readFile "assets/Lora-Regular.ttf"
      let font = createFont $ createFace blob 0
      case words of
        "!":words' -> print $ shape font (defaultBuffer { text = pack $ unwords words' }) []
        _ -> print $ parMap rpar (shapeStr font) words