{-# LANGUAGE OverloadedStrings #-}
module Main where
import Graphics.UI.GLUT
import Graphics.GL.Core32
import FreeType.Core.Base
import FreeType.FontConfig
import Graphics.Text.Font.Choose as Font
import System.Environment (getArgs)
import System.Exit (exitFailure)
import Data.Function (fix)
import Control.Monad (unless)
import Data.Maybe (fromMaybe)
main :: IO ()
main = do
(progName, args) <- getArgsAndInitialize
w <- createWindow progName
args <- getArgs
let query = nameParse $ case args of
[] -> "serif"
(q:_) -> q
let query' = defaultSubstitute $ configSubstitute' query MatchPattern
font <- case fontSort' query' False of
Just (f:_, _) -> return f
_ -> do
putStrLn ("Failed to locate font " ++ show query)
exitFailure
ft_With_FreeType $ \ft -> do
inst <- instantiatePattern ft font (fromMaybe 12 $ getValue' "size" font, 20)
let text = shape
displayCallback $= do
clear [ ColorBuffer ]
flush
mainLoop