h-raylib-5.1.1.0: examples/custom-font-text/src/Main.hs
{-# OPTIONS -Wall #-}
module Main where
import Control.Monad (unless, void)
import Foreign (fromBool)
import Raylib.Core
( changeDirectory,
clearBackground,
getApplicationDirectory,
isKeyPressed,
)
import Raylib.Core.Text (drawText, drawTextEx, loadFont)
import Raylib.Types (KeyboardKey (KeyDown, KeyUp), Vector2 (Vector2))
import Raylib.Util (inGHCi, whileWindowOpen_, withWindow, drawing)
import Raylib.Util.Colors (black, rayWhite)
mainFontPath :: String
mainFontPath = (if not inGHCi then "../../../../../../../../../../" else "./") ++ "examples/custom-font-text/assets/Lato-Regular.ttf"
main :: IO ()
main = do
withWindow
800
450
"raylib [text] example - custom font text"
60
( \window -> do
unless inGHCi (void $ changeDirectory =<< getApplicationDirectory)
mainFont <- loadFont mainFontPath window
whileWindowOpen_
( \size -> do
drawing
( do
clearBackground rayWhite
drawTextEx mainFont "Testing drawTextEx" (Vector2 20.0 12.0) (fromIntegral size) 1.0 black
drawText "Press the up and down arrows to change the font size" 20 (size + 15) 24 black
)
increaseSize <- isKeyPressed KeyUp
decreaseSize <- isKeyPressed KeyDown
return (size + fromBool increaseSize - fromBool decreaseSize)
)
20
)