{-# 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