{-# LINE 1 "src/Graphics/Cairo/Drawing/Regions.hsc" #-} {-# LANGUAGE BlockArguments #-} {-# OPTIONS_GHC -Wall -fno-warn-tabs #-} module Graphics.Cairo.Drawing.Regions where import Foreign.Ptr import Foreign.ForeignPtr hiding (newForeignPtr) import Foreign.Concurrent import Foreign.C.Types import Control.Monad.Primitive import Graphics.Cairo.Exception import Graphics.Cairo.Utilities.Types newtype CairoRegionT s = CairoRegionT (ForeignPtr (CairoRegionT s)) deriving Int -> CairoRegionT s -> ShowS [CairoRegionT s] -> ShowS CairoRegionT s -> String (Int -> CairoRegionT s -> ShowS) -> (CairoRegionT s -> String) -> ([CairoRegionT s] -> ShowS) -> Show (CairoRegionT s) forall s. Int -> CairoRegionT s -> ShowS forall s. [CairoRegionT s] -> ShowS forall s. CairoRegionT s -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall s. Int -> CairoRegionT s -> ShowS showsPrec :: Int -> CairoRegionT s -> ShowS $cshow :: forall s. CairoRegionT s -> String show :: CairoRegionT s -> String $cshowList :: forall s. [CairoRegionT s] -> ShowS showList :: [CairoRegionT s] -> ShowS Show makeCairoRegionT :: Ptr (CairoRegionT s) -> IO (CairoRegionT s) makeCairoRegionT :: forall s. Ptr (CairoRegionT s) -> IO (CairoRegionT s) makeCairoRegionT Ptr (CairoRegionT s) p = ForeignPtr (CairoRegionT s) -> CairoRegionT s forall s. ForeignPtr (CairoRegionT s) -> CairoRegionT s CairoRegionT (ForeignPtr (CairoRegionT s) -> CairoRegionT s) -> IO (ForeignPtr (CairoRegionT s)) -> IO (CairoRegionT s) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Ptr (CairoRegionT s) -> IO () -> IO (ForeignPtr (CairoRegionT s)) forall a. Ptr a -> IO () -> IO (ForeignPtr a) newForeignPtr Ptr (CairoRegionT s) p (Ptr (CairoRegionT s) -> IO () forall s. Ptr (CairoRegionT s) -> IO () c_cairo_region_destroy Ptr (CairoRegionT s) p) foreign import ccall "cairo_region_destroy" c_cairo_region_destroy :: Ptr (CairoRegionT s) -> IO () foreign import ccall "cairo_region_create" c_cairo_region_create :: IO (Ptr (CairoRegionT s)) cairoRegionCreate :: PrimMonad m => m (CairoRegionT (PrimState m)) cairoRegionCreate :: forall (m :: * -> *). PrimMonad m => m (CairoRegionT (PrimState m)) cairoRegionCreate = IO (CairoRegionT (PrimState m)) -> m (CairoRegionT (PrimState m)) forall (m :: * -> *) a. PrimMonad m => IO a -> m a unsafeIOToPrim do r <- Ptr (CairoRegionT (PrimState m)) -> IO (CairoRegionT (PrimState m)) forall s. Ptr (CairoRegionT s) -> IO (CairoRegionT s) makeCairoRegionT (Ptr (CairoRegionT (PrimState m)) -> IO (CairoRegionT (PrimState m))) -> IO (Ptr (CairoRegionT (PrimState m))) -> IO (CairoRegionT (PrimState m)) forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b =<< IO (Ptr (CairoRegionT (PrimState m))) forall s. IO (Ptr (CairoRegionT s)) c_cairo_region_create r <$ raiseIfErrorRegion r foreign import ccall "cairo_region_create_rectangle" c_cairo_region_create_rectangle :: Ptr CairoRectangleIntT -> IO (Ptr (CairoRegionT s)) cairoRegionCreateRectangle :: PrimMonad m => CairoRectangleIntT -> m (CairoRegionT (PrimState m)) cairoRegionCreateRectangle :: forall (m :: * -> *). PrimMonad m => CairoRectangleIntT -> m (CairoRegionT (PrimState m)) cairoRegionCreateRectangle (CairoRectangleIntT_ ForeignPtr CairoRectangleIntT fr) = IO (CairoRegionT (PrimState m)) -> m (CairoRegionT (PrimState m)) forall (m :: * -> *) a. PrimMonad m => IO a -> m a unsafeIOToPrim (IO (CairoRegionT (PrimState m)) -> m (CairoRegionT (PrimState m))) -> IO (CairoRegionT (PrimState m)) -> m (CairoRegionT (PrimState m)) forall a b. (a -> b) -> a -> b $ ForeignPtr CairoRectangleIntT -> (Ptr CairoRectangleIntT -> IO (CairoRegionT (PrimState m))) -> IO (CairoRegionT (PrimState m)) forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b withForeignPtr ForeignPtr CairoRectangleIntT fr \Ptr CairoRectangleIntT prct -> do r <- Ptr (CairoRegionT (PrimState m)) -> IO (CairoRegionT (PrimState m)) forall s. Ptr (CairoRegionT s) -> IO (CairoRegionT s) makeCairoRegionT (Ptr (CairoRegionT (PrimState m)) -> IO (CairoRegionT (PrimState m))) -> IO (Ptr (CairoRegionT (PrimState m))) -> IO (CairoRegionT (PrimState m)) forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b =<< Ptr CairoRectangleIntT -> IO (Ptr (CairoRegionT (PrimState m))) forall s. Ptr CairoRectangleIntT -> IO (Ptr (CairoRegionT s)) c_cairo_region_create_rectangle Ptr CairoRectangleIntT prct r <$ raiseIfErrorRegion r cairoRegionNumRectangles :: PrimMonad m => CairoRegionT (PrimState m) -> m CInt cairoRegionNumRectangles :: forall (m :: * -> *). PrimMonad m => CairoRegionT (PrimState m) -> m CInt cairoRegionNumRectangles (CairoRegionT ForeignPtr (CairoRegionT (PrimState m)) frg) = IO CInt -> m CInt forall (m :: * -> *) a. PrimMonad m => IO a -> m a unsafeIOToPrim (IO CInt -> m CInt) -> IO CInt -> m CInt forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoRegionT (PrimState m)) -> (Ptr (CairoRegionT (PrimState m)) -> IO CInt) -> IO CInt forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b withForeignPtr ForeignPtr (CairoRegionT (PrimState m)) frg Ptr (CairoRegionT (PrimState m)) -> IO CInt forall s. Ptr (CairoRegionT s) -> IO CInt c_cairo_region_num_rectangles foreign import ccall "cairo_region_num_rectangles" c_cairo_region_num_rectangles :: Ptr (CairoRegionT s) -> IO CInt cairoRegionGetRectangle :: PrimMonad m => CairoRegionT (PrimState m) -> CInt -> CairoRectangleIntTPrim (PrimState m) -> m () cairoRegionGetRectangle :: forall (m :: * -> *). PrimMonad m => CairoRegionT (PrimState m) -> CInt -> CairoRectangleIntTPrim (PrimState m) -> m () cairoRegionGetRectangle rg :: CairoRegionT (PrimState m) rg@(CairoRegionT ForeignPtr (CairoRegionT (PrimState m)) frg) CInt n (CairoRectangleIntTPrim ForeignPtr CairoRectangleIntT frc) = IO () -> m () forall (m :: * -> *) a. PrimMonad m => IO a -> m a unsafeIOToPrim (IO () -> m ()) -> IO () -> m () forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoRegionT (PrimState m)) -> (Ptr (CairoRegionT (PrimState m)) -> IO ()) -> IO () forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b withForeignPtr ForeignPtr (CairoRegionT (PrimState m)) frg \Ptr (CairoRegionT (PrimState m)) prg -> ForeignPtr CairoRectangleIntT -> (Ptr CairoRectangleIntT -> IO ()) -> IO () forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b withForeignPtr ForeignPtr CairoRectangleIntT frc \Ptr CairoRectangleIntT prc -> do Ptr (CairoRegionT (PrimState m)) -> CInt -> Ptr CairoRectangleIntT -> IO () forall s. Ptr (CairoRegionT s) -> CInt -> Ptr CairoRectangleIntT -> IO () c_cairo_region_get_rectangle Ptr (CairoRegionT (PrimState m)) prg CInt n Ptr CairoRectangleIntT prc CairoRegionT (PrimState m) -> IO () forall s. CairoRegionT s -> IO () raiseIfErrorRegion CairoRegionT (PrimState m) rg foreign import ccall "cairo_region_get_rectangle" c_cairo_region_get_rectangle :: Ptr (CairoRegionT s) -> CInt -> Ptr CairoRectangleIntT -> IO ()