SFML-0.2.0.0: src/SFML/Graphics/SFRenderTarget.hs
module SFML.Graphics.SFRenderTarget
where
import SFML.Graphics.PrimitiveType
import SFML.Graphics.RenderStates
import SFML.Graphics.Types
import SFML.Graphics.Vertex
import Foreign.Ptr (Ptr)
class SFRenderTarget a where
-- | Draw a sprite to the render-target.
drawSprite
:: a
-> Sprite -- ^ Sprite to draw
-> Maybe RenderStates -- ^ Render states to use for drawing ('Nothing' to use the default states)
-> IO ()
-- | Draw text to the render-target.
drawText
:: a
-> Text -- ^ Text to draw
-> Maybe RenderStates -- ^ Render states to use for drawing ('Nothing' to use the default states)
-> IO ()
-- | Draw a sprite to the render-target.
drawShape
:: a
-> Shape -- ^ Shape to draw
-> Maybe RenderStates -- ^ Render states to use for drawing ('Nothing' to use the default states)
-> IO ()
-- | Draw a sprite to the render-target.
drawCircle
:: a
-> CircleShape -- ^ CircleShape to draw
-> Maybe RenderStates -- ^ Render states to use for drawing ('Nothing' to use the default states)
-> IO ()
-- | Draw a sprite to the render-target.
drawConvexShape
:: a
-> ConvexShape -- ^ ConvexShape to draw
-> Maybe RenderStates -- ^ Render states to use for drawing ('Nothing' to use the default states)
-> IO ()
-- | Draw a sprite to the render-target.
drawRectangle
:: a
-> RectangleShape -- ^ RectangleShape to draw
-> Maybe RenderStates -- ^ Render states to use for drawing ('Nothing' to use the default states)
-> IO ()
-- | Draw a sprite to the render-target.
drawVertexArray
:: a
-> VertexArray -- ^ VertexArray to draw
-> Maybe RenderStates -- ^ Render states to use for drawing ('Nothing' to use the default states)
-> IO ()
-- | Draw primitives defined by an array of vertices to a render texture.
drawPrimitives
:: a
-> [Vertex] -- ^ Vertices to render
-> PrimitiveType -- ^ Type of primitives to draw
-> Maybe RenderStates -- ^ Render states to use for drawing ('Nothing' to use the default states)
-> IO ()
drawPrimitives'
:: a
-> Ptr Vertex -- ^ Pointer to the vertices
-> Int -- ^ Number of vertices in the array
-> PrimitiveType -- ^ Type of primitives to draw
-> Maybe RenderStates -- ^ Render states to use for drawing ('Nothing' to use the default states)
-> IO ()
-- | Save the current OpenGL render states and matrices.
--
-- This function can be used when you mix SFML drawing
-- and direct OpenGL rendering. Combined with popGLStates,
-- it ensures that:
--
-- * SFML's internal states are not messed up by your OpenGL code
--
-- * Your OpenGL states are not modified by a call to a SFML function
--
-- Note that this function is quite expensive: it saves all the
-- possible OpenGL states and matrices, even the ones you
-- don't care about. Therefore it should be used wisely.
-- It is provided for convenience, but the best results will
-- be achieved if you handle OpenGL states yourself (because
-- you know which states have really changed, and need to be
-- saved and restored). Take a look at the resetGLStates
-- function if you do so.
pushGLStates :: a -> IO ()
-- | Restore the previously saved OpenGL render states and matrices.
--
-- See the description of pushGLStates to get a detailed
-- description of these functions.
popGLStates :: a -> IO ()
-- | Reset the internal OpenGL states so that the target is ready for drawing
--
-- This function can be used when you mix SFML drawing
-- and direct OpenGL rendering, if you choose not to use
-- 'pushGLStates' or 'popGLStates'. It makes sure that all OpenGL
-- states needed by SFML are set, so that subsequent draw
-- calls will work as expected.
resetGLStates :: a -> IO ()