{-# LINE 1 "src/Graphics/Cairo/Drawing/CairoT/Clip.hsc" #-} {-# LANGUAGE BlockArguments #-} {-# OPTIONS_GHC -Wall -fno-warn-tabs #-} module Graphics.Cairo.Drawing.CairoT.Clip where import Foreign.Ptr import Foreign.C.Types import Foreign.Marshal import Foreign.Storable import Control.Monad.Primitive import Data.Int import Data.CairoContext import Graphics.Cairo.Drawing.Extents cairoClip, cairoClipPreserve :: PrimMonad m => CairoT r (PrimState m) -> m () cairoClip :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> m () cairoClip = (CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO ()) -> m () forall (m :: * -> *) r a. PrimMonad m => CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO a) -> m a `withCairoT` Ptr (CairoT r (PrimState m)) -> IO () forall r s. Ptr (CairoT r s) -> IO () c_cairo_clip) cairoClipPreserve :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> m () cairoClipPreserve = (CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO ()) -> m () forall (m :: * -> *) r a. PrimMonad m => CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO a) -> m a `withCairoT` Ptr (CairoT r (PrimState m)) -> IO () forall r s. Ptr (CairoT r s) -> IO () c_cairo_clip_preserve) foreign import ccall "cairo_clip" c_cairo_clip :: Ptr (CairoT r s) -> IO () foreign import ccall "cairo_clip_preserve" c_cairo_clip_preserve :: Ptr (CairoT r s) -> IO () cairoClipExtents :: PrimMonad m => CairoT r (PrimState m) -> m CairoExtents cairoClipExtents :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> m CairoExtents cairoClipExtents = (CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO CairoExtents) -> m CairoExtents) -> (Ptr (CairoT r (PrimState m)) -> IO CairoExtents) -> CairoT r (PrimState m) -> m CairoExtents forall a b c. (a -> b -> c) -> b -> a -> c flip CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO CairoExtents) -> m CairoExtents forall (m :: * -> *) r a. PrimMonad m => CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO a) -> m a withCairoT \Ptr (CairoT r (PrimState m)) pcr -> (Ptr CDouble -> IO CairoExtents) -> IO CairoExtents forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble x1 -> (Ptr CDouble -> IO CairoExtents) -> IO CairoExtents forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble y1 -> (Ptr CDouble -> IO CairoExtents) -> IO CairoExtents forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble x2 -> (Ptr CDouble -> IO CairoExtents) -> IO CairoExtents forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble y2 -> do Ptr (CairoT r (PrimState m)) -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO () forall r s. Ptr (CairoT r s) -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO () c_cairo_clip_extents Ptr (CairoT r (PrimState m)) pcr Ptr CDouble x1 Ptr CDouble y1 Ptr CDouble x2 Ptr CDouble y2 CDouble -> CDouble -> CDouble -> CDouble -> CairoExtents CairoExtentsLeftTopRightBottom (CDouble -> CDouble -> CDouble -> CDouble -> CairoExtents) -> IO CDouble -> IO (CDouble -> CDouble -> CDouble -> CairoExtents) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Ptr CDouble -> IO CDouble forall a. Storable a => Ptr a -> IO a peek Ptr CDouble x1 IO (CDouble -> CDouble -> CDouble -> CairoExtents) -> IO CDouble -> IO (CDouble -> CDouble -> CairoExtents) forall a b. IO (a -> b) -> IO a -> IO b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Ptr CDouble -> IO CDouble forall a. Storable a => Ptr a -> IO a peek Ptr CDouble y1 IO (CDouble -> CDouble -> CairoExtents) -> IO CDouble -> IO (CDouble -> CairoExtents) forall a b. IO (a -> b) -> IO a -> IO b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Ptr CDouble -> IO CDouble forall a. Storable a => Ptr a -> IO a peek Ptr CDouble x2 IO (CDouble -> CairoExtents) -> IO CDouble -> IO CairoExtents forall a b. IO (a -> b) -> IO a -> IO b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Ptr CDouble -> IO CDouble forall a. Storable a => Ptr a -> IO a peek Ptr CDouble y2 foreign import ccall "cairo_clip_extents" c_cairo_clip_extents :: Ptr (CairoT r s) -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO () cairoInClip :: PrimMonad m => CairoT r (PrimState m) -> CDouble -> CDouble -> m Bool cairoInClip :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> CDouble -> CDouble -> m Bool cairoInClip CairoT r (PrimState m) cr CDouble x CDouble y = CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO Bool) -> m Bool forall (m :: * -> *) r a. PrimMonad m => CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO a) -> m a withCairoT CairoT r (PrimState m) cr \Ptr (CairoT r (PrimState m)) pcr -> (Int32 -> Int32 -> Bool forall a. Eq a => a -> a -> Bool /= Int32 0) (Int32 -> Bool) -> IO Int32 -> IO Bool forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Ptr (CairoT r (PrimState m)) -> CDouble -> CDouble -> IO Int32 forall r s. Ptr (CairoT r s) -> CDouble -> CDouble -> IO Int32 c_cairo_in_clip Ptr (CairoT r (PrimState m)) pcr CDouble x CDouble y foreign import ccall "cairo_in_clip" c_cairo_in_clip :: Ptr (CairoT r s) -> CDouble -> CDouble -> IO Int32 {-# LINE 38 "src/Graphics/Cairo/Drawing/CairoT/Clip.hsc" #-} cairoResetClip :: PrimMonad m => CairoT r (PrimState m) -> m () cairoResetClip :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> m () cairoResetClip = (CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO ()) -> m () forall (m :: * -> *) r a. PrimMonad m => CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO a) -> m a `withCairoT` Ptr (CairoT r (PrimState m)) -> IO () forall r s. Ptr (CairoT r s) -> IO () c_cairo_reset_clip) foreign import ccall "cairo_reset_clip" c_cairo_reset_clip :: Ptr (CairoT r s) -> IO ()