{-# LINE 1 "src/Graphics/Cairo/Surfaces/CairoSurfaceT/Internal.hsc" #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE PatternSynonyms, ViewPatterns #-} {-# OPTIONS_GHC -Wall -fno-warn-tabs #-} module Graphics.Cairo.Surfaces.CairoSurfaceT.Internal where import Foreign.Ptr import Foreign.ForeignPtr hiding (newForeignPtr) import Foreign.Concurrent import Control.Monad.Primitive import Control.Concurrent.STM import Data.Word import System.IO.Unsafe import Graphics.Cairo.Surfaces.CairoSurfaceTypeT import Graphics.Cairo.Template class IsCairoSurfaceT sr where toCairoSurfaceT :: sr s ps -> CairoSurfaceT s ps cairoSurfaceTFinishChecker :: sr s ps -> STM (TChan ()) cairoSurfaceTFinishChecker sr s ps _ = STM (TChan ()) forall a. STM (TChan a) newTChan STM (TChan ()) -> (TChan () -> STM (TChan ())) -> STM (TChan ()) forall a b. STM a -> (a -> STM b) -> STM b forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b >>= \TChan () c -> TChan () c TChan () -> STM () -> STM (TChan ()) forall a b. a -> STM b -> STM a forall (f :: * -> *) a b. Functor f => a -> f b -> f a <$ TChan () -> () -> STM () forall a. TChan a -> a -> STM () writeTChan TChan () c () instance IsCairoSurfaceT CairoSurfaceT where toCairoSurfaceT :: forall s ps. CairoSurfaceT s ps -> CairoSurfaceT s ps toCairoSurfaceT = CairoSurfaceT s ps -> CairoSurfaceT s ps forall a. a -> a id newtype CairoSurfaceT s ps = CairoSurfaceT (ForeignPtr (CairoSurfaceT s ps)) deriving Int -> CairoSurfaceT s ps -> ShowS [CairoSurfaceT s ps] -> ShowS CairoSurfaceT s ps -> String (Int -> CairoSurfaceT s ps -> ShowS) -> (CairoSurfaceT s ps -> String) -> ([CairoSurfaceT s ps] -> ShowS) -> Show (CairoSurfaceT s ps) forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a forall s ps. Int -> CairoSurfaceT s ps -> ShowS forall s ps. [CairoSurfaceT s ps] -> ShowS forall s ps. CairoSurfaceT s ps -> String $cshowsPrec :: forall s ps. Int -> CairoSurfaceT s ps -> ShowS showsPrec :: Int -> CairoSurfaceT s ps -> ShowS $cshow :: forall s ps. CairoSurfaceT s ps -> String show :: CairoSurfaceT s ps -> String $cshowList :: forall s ps. [CairoSurfaceT s ps] -> ShowS showList :: [CairoSurfaceT s ps] -> ShowS Show mkCairoSurfaceT :: Ptr (CairoSurfaceT s ps) -> IO (CairoSurfaceT s ps) mkCairoSurfaceT :: forall s ps. Ptr (CairoSurfaceT s ps) -> IO (CairoSurfaceT s ps) mkCairoSurfaceT Ptr (CairoSurfaceT s ps) p = ForeignPtr (CairoSurfaceT s ps) -> CairoSurfaceT s ps forall s ps. ForeignPtr (CairoSurfaceT s ps) -> CairoSurfaceT s ps CairoSurfaceT (ForeignPtr (CairoSurfaceT s ps) -> CairoSurfaceT s ps) -> IO (ForeignPtr (CairoSurfaceT s ps)) -> IO (CairoSurfaceT s ps) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Ptr (CairoSurfaceT s ps) -> IO () -> IO (ForeignPtr (CairoSurfaceT s ps)) forall a. Ptr a -> IO () -> IO (ForeignPtr a) newForeignPtr Ptr (CairoSurfaceT s ps) p (Ptr (CairoSurfaceT s ps) -> IO () forall s ps. Ptr (CairoSurfaceT s ps) -> IO () c_cairo_surface_destroy Ptr (CairoSurfaceT s ps) p) foreign import ccall "cairo_surface_destroy" c_cairo_surface_destroy :: Ptr (CairoSurfaceT s ps) -> IO () foreign import ccall "cairo_surface_finish" c_cairo_surface_finish :: Ptr (CairoSurfaceT s ps) -> IO () cairoSurfaceFlush :: (IsCairoSurfaceT sr, PrimMonad m) => sr s (PrimState m) -> m () cairoSurfaceFlush :: forall (sr :: * -> * -> *) (m :: * -> *) s. (IsCairoSurfaceT sr, PrimMonad m) => sr s (PrimState m) -> m () cairoSurfaceFlush (sr s (PrimState m) -> CairoSurfaceT s (PrimState m) forall s ps. sr s ps -> CairoSurfaceT s ps forall (sr :: * -> * -> *) s ps. IsCairoSurfaceT sr => sr s ps -> CairoSurfaceT s ps toCairoSurfaceT -> CairoSurfaceT ForeignPtr (CairoSurfaceT s (PrimState m)) fsr) = IO () -> m () forall (m :: * -> *) a. PrimMonad m => IO a -> m a unsafeIOToPrim (IO () -> m ()) -> IO () -> m () forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoSurfaceT s (PrimState m)) -> (Ptr (CairoSurfaceT s (PrimState m)) -> IO ()) -> IO () forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b withForeignPtr ForeignPtr (CairoSurfaceT s (PrimState m)) fsr Ptr (CairoSurfaceT s (PrimState m)) -> IO () forall s ps. Ptr (CairoSurfaceT s ps) -> IO () c_cairo_surface_flush foreign import ccall "cairo_surface_flush" c_cairo_surface_flush :: Ptr (CairoSurfaceT s ps) -> IO () cairoSurfaceGetType :: IsCairoSurfaceT sr => sr s ps -> CairoSurfaceTypeT cairoSurfaceGetType :: forall (sr :: * -> * -> *) s ps. IsCairoSurfaceT sr => sr s ps -> CairoSurfaceTypeT cairoSurfaceGetType (sr s ps -> CairoSurfaceT s ps forall s ps. sr s ps -> CairoSurfaceT s ps forall (sr :: * -> * -> *) s ps. IsCairoSurfaceT sr => sr s ps -> CairoSurfaceT s ps toCairoSurfaceT -> CairoSurfaceT ForeignPtr (CairoSurfaceT s ps) fsr) = IO CairoSurfaceTypeT -> CairoSurfaceTypeT forall a. IO a -> a unsafePerformIO (IO CairoSurfaceTypeT -> CairoSurfaceTypeT) -> IO CairoSurfaceTypeT -> CairoSurfaceTypeT forall a b. (a -> b) -> a -> b $ Word32 -> CairoSurfaceTypeT CairoSurfaceTypeT (Word32 -> CairoSurfaceTypeT) -> IO Word32 -> IO CairoSurfaceTypeT forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> ForeignPtr (CairoSurfaceT s ps) -> (Ptr (CairoSurfaceT s ps) -> IO Word32) -> IO Word32 forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b withForeignPtr ForeignPtr (CairoSurfaceT s ps) fsr Ptr (CairoSurfaceT s ps) -> IO Word32 forall s ps. Ptr (CairoSurfaceT s ps) -> IO Word32 c_cairo_surface_get_type foreign import ccall "cairo_surface_get_type" c_cairo_surface_get_type :: Ptr (CairoSurfaceT s ps) -> IO Word32 {-# LINE 53 "src/Graphics/Cairo/Surfaces/CairoSurfaceT/Internal.hsc" #-} cairoSurfaceGetContent :: IsCairoSurfaceT sr => sr s ps -> CairoContentT cairoSurfaceGetContent :: forall (sr :: * -> * -> *) s ps. IsCairoSurfaceT sr => sr s ps -> CairoContentT cairoSurfaceGetContent (sr s ps -> CairoSurfaceT s ps forall s ps. sr s ps -> CairoSurfaceT s ps forall (sr :: * -> * -> *) s ps. IsCairoSurfaceT sr => sr s ps -> CairoSurfaceT s ps toCairoSurfaceT -> CairoSurfaceT ForeignPtr (CairoSurfaceT s ps) fsr) = IO CairoContentT -> CairoContentT forall a. IO a -> a unsafePerformIO (IO CairoContentT -> CairoContentT) -> IO CairoContentT -> CairoContentT forall a b. (a -> b) -> a -> b $ Word32 -> CairoContentT CairoContentT (Word32 -> CairoContentT) -> IO Word32 -> IO CairoContentT forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> ForeignPtr (CairoSurfaceT s ps) -> (Ptr (CairoSurfaceT s ps) -> IO Word32) -> IO Word32 forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b withForeignPtr ForeignPtr (CairoSurfaceT s ps) fsr Ptr (CairoSurfaceT s ps) -> IO Word32 forall s ps. Ptr (CairoSurfaceT s ps) -> IO Word32 c_cairo_surface_get_content foreign import ccall "cairo_surface_get_content" c_cairo_surface_get_content :: Ptr (CairoSurfaceT s ps) -> IO Word32 {-# LINE 60 "src/Graphics/Cairo/Surfaces/CairoSurfaceT/Internal.hsc" #-} newtype CairoContentT = CairoContentT Word32 deriving Int -> CairoContentT -> ShowS [CairoContentT] -> ShowS CairoContentT -> String (Int -> CairoContentT -> ShowS) -> (CairoContentT -> String) -> ([CairoContentT] -> ShowS) -> Show CairoContentT forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> CairoContentT -> ShowS showsPrec :: Int -> CairoContentT -> ShowS $cshow :: CairoContentT -> String show :: CairoContentT -> String $cshowList :: [CairoContentT] -> ShowS showList :: [CairoContentT] -> ShowS Show {-# LINE 62 "src/Graphics/Cairo/Surfaces/CairoSurfaceT/Internal.hsc" #-} mkMemberGen ''CairoContentT 'CairoContentT "CairoContentColor" 4096 {-# LINE 64 "src/Graphics/Cairo/Surfaces/CairoSurfaceT/Internal.hsc" #-} mkMemberGen ''CairoContentT 'CairoContentT "CairoContentAlpha" 8192 {-# LINE 65 "src/Graphics/Cairo/Surfaces/CairoSurfaceT/Internal.hsc" #-} mkMemberGen ''CairoContentT 'CairoContentT "CairoContentColorAlpha" 12288 {-# LINE 66 "src/Graphics/Cairo/Surfaces/CairoSurfaceT/Internal.hsc" #-}