{-# LANGUAGE BlockArguments #-} {-# OPTIONS_GHC -Wall -fno-warn-tabs #-} module Graphics.Cairo.Drawing.Paths.CopyAppend where import Foreign.Ptr import Foreign.ForeignPtr import Control.Monad.Primitive import Data.CairoContext import Graphics.Cairo.Drawing.Paths.CairoPathT cairoCopyPath :: PrimMonad m => CairoT r (PrimState m) -> m CairoPathT cairoCopyPath :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> m CairoPathT cairoCopyPath (CairoT ForeignPtr (CairoT r (PrimState m)) fcr) = IO CairoPathT -> m CairoPathT forall (m :: * -> *) a. PrimMonad m => IO a -> m a unsafeIOToPrim (IO CairoPathT -> m CairoPathT) -> IO CairoPathT -> m CairoPathT forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoT r (PrimState m)) -> (Ptr (CairoT r (PrimState m)) -> IO CairoPathT) -> IO CairoPathT forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b withForeignPtr ForeignPtr (CairoT r (PrimState m)) fcr \Ptr (CairoT r (PrimState m)) pcr -> Ptr CairoPathT -> IO CairoPathT mkCairoPathT (Ptr CairoPathT -> IO CairoPathT) -> IO (Ptr CairoPathT) -> IO CairoPathT forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b =<< Ptr (CairoT r (PrimState m)) -> IO (Ptr CairoPathT) forall r s. Ptr (CairoT r s) -> IO (Ptr CairoPathT) c_cairo_copy_path Ptr (CairoT r (PrimState m)) pcr foreign import ccall "cairo_copy_path" c_cairo_copy_path :: Ptr (CairoT r s) -> IO (Ptr CairoPathT) cairoCopyPathFlat :: PrimMonad m => CairoT r (PrimState m) -> m CairoPathT cairoCopyPathFlat :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> m CairoPathT cairoCopyPathFlat (CairoT ForeignPtr (CairoT r (PrimState m)) fcr) = IO CairoPathT -> m CairoPathT forall (m :: * -> *) a. PrimMonad m => IO a -> m a unsafeIOToPrim (IO CairoPathT -> m CairoPathT) -> IO CairoPathT -> m CairoPathT forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoT r (PrimState m)) -> (Ptr (CairoT r (PrimState m)) -> IO CairoPathT) -> IO CairoPathT forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b withForeignPtr ForeignPtr (CairoT r (PrimState m)) fcr \Ptr (CairoT r (PrimState m)) pcr -> Ptr CairoPathT -> IO CairoPathT mkCairoPathT (Ptr CairoPathT -> IO CairoPathT) -> IO (Ptr CairoPathT) -> IO CairoPathT forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b =<< Ptr (CairoT r (PrimState m)) -> IO (Ptr CairoPathT) forall r s. Ptr (CairoT r s) -> IO (Ptr CairoPathT) c_cairo_copy_path_flat Ptr (CairoT r (PrimState m)) pcr foreign import ccall "cairo_copy_path_flat" c_cairo_copy_path_flat :: Ptr (CairoT r s) -> IO (Ptr CairoPathT) cairoAppendPath :: PrimMonad m => CairoT r (PrimState m) -> CairoPathT -> m () cairoAppendPath :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> CairoPathT -> m () cairoAppendPath (CairoT ForeignPtr (CairoT r (PrimState m)) fcr) CairoPathT pth = IO () -> m () forall (m :: * -> *) a. PrimMonad m => IO a -> m a unsafeIOToPrim (IO () -> m ()) -> IO () -> m () forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoT r (PrimState m)) -> (Ptr (CairoT r (PrimState m)) -> IO ()) -> IO () forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b withForeignPtr ForeignPtr (CairoT r (PrimState m)) fcr \Ptr (CairoT r (PrimState m)) pcr -> CairoPathT -> (Ptr CairoPathT -> IO ()) -> IO () forall a. CairoPathT -> (Ptr CairoPathT -> IO a) -> IO a withCairoPathT CairoPathT pth \Ptr CairoPathT ppth -> Ptr (CairoT r (PrimState m)) -> Ptr CairoPathT -> IO () forall r s. Ptr (CairoT r s) -> Ptr CairoPathT -> IO () c_cairo_append_path Ptr (CairoT r (PrimState m)) pcr Ptr CairoPathT ppth foreign import ccall "cairo_append_path" c_cairo_append_path :: Ptr (CairoT r s) -> Ptr CairoPathT -> IO ()