GPipe-GLFW4-2.0.0: test/Graphics/GPipe/Context/GLFW/InputSpec.hs
{-# OPTIONS_GHC -Wno-deferred-type-errors #-}
{-# OPTIONS_GHC -Wno-unused-matches #-}
module Graphics.GPipe.Context.GLFW.InputSpec (spec) where
import Test.Hspec (Spec, describe, it)
import Data.Functor (void)
import Graphics.GPipe
import qualified Graphics.GPipe.Context.GLFW as GLFW
import qualified Graphics.GPipe.Context.GLFW.Input as Input
import qualified Test.Common as C
import qualified Test.Control as A
import Text.Printf (printf)
spec :: Spec
spec = do
describe "Input" $ do
it "should listen for button inputs while rendering a scene to a window" $ do
C.runContext GLFW.defaultHandleConfig $ do
win <- newWindow (WindowFormatColorDepth RGB8 Depth16) (GLFW.defaultWindowConfig "Input")
void $ Input.setCursorPosCallback win $ Just (printf "Cursor pos: %fx%f\n")
void $ Input.setMouseButtonCallback win $ Just (\b s m -> printf "Mouse: %s %s\n" (show b) (show s))
void $ Input.setKeyCallback win $ Just (\k i s m -> printf "Key: %s %s %s\n" (show k) (show i) (show s))
resources <- C.initRenderContext win [C.plane, C.yAxis]
C.mainloop win (A.frames 120) resources C.continue