aboutsummaryrefslogtreecommitdiff
path: root/src/Chelleport/Draw.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Chelleport/Draw.hs')
-rw-r--r--src/Chelleport/Draw.hs25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/Chelleport/Draw.hs b/src/Chelleport/Draw.hs
index c042e32..8401966 100644
--- a/src/Chelleport/Draw.hs
+++ b/src/Chelleport/Draw.hs
@@ -2,24 +2,31 @@ module Chelleport.Draw where
import Chelleport.AppShell (DrawContext (ctxFont, ctxRenderer))
import Data.Text (Text)
+import Data.Word (Word8)
+import Foreign.C (CInt)
import qualified SDL
import qualified SDL.Font as TTF
--- Render text to the screen
-renderText :: DrawContext -> Text -> IO ()
-renderText ctx text = do
- -- Render text in white
- surface <- TTF.blended (ctxFont ctx) (SDL.V4 255 255 255 255) text
+colorWhite :: SDL.V4 Word8
+colorWhite = SDL.V4 255 255 255 255
+
+colorLightGray :: SDL.V4 Word8
+colorLightGray = SDL.V4 100 100 100 255
+
+renderText :: DrawContext -> SDL.V2 CInt -> SDL.V4 Word8 -> Text -> IO (CInt, CInt)
+renderText ctx position color text = do
+ surface <- TTF.blended (ctxFont ctx) color text
texture <- SDL.createTextureFromSurface (ctxRenderer ctx) surface
SDL.freeSurface surface
-- Get text dimensions
textureInfo <- SDL.queryTexture texture
let textWidth = SDL.textureWidth textureInfo
- textHeight = SDL.textureHeight textureInfo
- position =
- SDL.P (SDL.V2 ((640 - textWidth) `div` 2) ((480 - textHeight) `div` 2))
+ let textHeight = SDL.textureHeight textureInfo
-- Render the texture
- SDL.copy (ctxRenderer ctx) texture Nothing $ Just (SDL.Rectangle position (SDL.V2 textWidth textHeight))
+ SDL.copy (ctxRenderer ctx) texture Nothing $
+ Just (SDL.Rectangle (SDL.P position) (SDL.V2 textWidth textHeight))
SDL.destroyTexture texture
+
+ pure (textWidth, textHeight)