    {-# OPTIONS_HADDOCK hide #-}

    module Graphics.Gloss.Internals.Interface.ViewPort.Reshape
    	(callback_viewPort_reshape)
    where
    import Graphics.Gloss.Internals.Interface.Callback
    import Graphics.Gloss.Internals.Interface.Backend
    import Graphics.Rendering.OpenGL			(($=))
    import qualified Graphics.Rendering.OpenGL.GL		as GL

    -- | Callback to handle keyboard and mouse button events
    --	for controlling the viewport.
    callback_viewPort_reshape :: Callback
    callback_viewPort_reshape
     	= Reshape (viewPort_reshape)

    viewPort_reshape :: ReshapeCallback
    viewPort_reshape stateRef (width,height)
     = do
    	-- Setup the viewport
    	--	This controls what part of the window openGL renders to.
    	--	We'll use the whole window.
    	--
     	GL.viewport 	$= ( GL.Position 0 0
                               , GL.Size (fromIntegral width) (fromIntegral height))
    	postRedisplay stateRef