module Graphics.Rendering.Cairo.Internal.Drawing.Patterns where
import Graphics.Rendering.Cairo.Types
import Foreign
import Foreign.C
patternAddColorStopRGB :: Pattern -> Double -> Double -> Double -> Double -> IO ()
patternAddColorStopRGB a1 a2 a3 a4 a5 =
let {a1' = unPattern a1} in
let {a2' = cFloatConv a2} in
let {a3' = cFloatConv a3} in
let {a4' = cFloatConv a4} in
let {a5' = cFloatConv a5} in
patternAddColorStopRGB'_ a1' a2' a3' a4' a5' >>= \res ->
return ()
patternAddColorStopRGBA :: Pattern -> Double -> Double -> Double -> Double -> Double -> IO ()
patternAddColorStopRGBA a1 a2 a3 a4 a5 a6 =
let {a1' = unPattern a1} in
let {a2' = cFloatConv a2} in
let {a3' = cFloatConv a3} in
let {a4' = cFloatConv a4} in
let {a5' = cFloatConv a5} in
let {a6' = cFloatConv a6} in
patternAddColorStopRGBA'_ a1' a2' a3' a4' a5' a6' >>= \res ->
return ()
patternCreateRGB :: Double -> Double -> Double -> IO (Pattern)
patternCreateRGB a1 a2 a3 =
let {a1' = cFloatConv a1} in
let {a2' = cFloatConv a2} in
let {a3' = cFloatConv a3} in
patternCreateRGB'_ a1' a2' a3' >>= \res ->
let {res' = Pattern res} in
return (res')
patternCreateRGBA :: Double -> Double -> Double -> Double -> IO (Pattern)
patternCreateRGBA a1 a2 a3 a4 =
let {a1' = cFloatConv a1} in
let {a2' = cFloatConv a2} in
let {a3' = cFloatConv a3} in
let {a4' = cFloatConv a4} in
patternCreateRGBA'_ a1' a2' a3' a4' >>= \res ->
let {res' = Pattern res} in
return (res')
patternCreateForSurface :: Surface -> IO (Pattern)
patternCreateForSurface a1 =
withSurface a1 $ \a1' ->
patternCreateForSurface'_ a1' >>= \res ->
let {res' = Pattern res} in
return (res')
patternCreateLinear :: Double -> Double -> Double -> Double -> IO (Pattern)
patternCreateLinear a1 a2 a3 a4 =
let {a1' = cFloatConv a1} in
let {a2' = cFloatConv a2} in
let {a3' = cFloatConv a3} in
let {a4' = cFloatConv a4} in
patternCreateLinear'_ a1' a2' a3' a4' >>= \res ->
let {res' = Pattern res} in
return (res')
patternCreateRadial :: Double -> Double -> Double -> Double -> Double -> Double -> IO (Pattern)
patternCreateRadial a1 a2 a3 a4 a5 a6 =
let {a1' = cFloatConv a1} in
let {a2' = cFloatConv a2} in
let {a3' = cFloatConv a3} in
let {a4' = cFloatConv a4} in
let {a5' = cFloatConv a5} in
let {a6' = cFloatConv a6} in
patternCreateRadial'_ a1' a2' a3' a4' a5' a6' >>= \res ->
let {res' = Pattern res} in
return (res')
patternDestroy :: Pattern -> IO ()
patternDestroy a1 =
let {a1' = unPattern a1} in
patternDestroy'_ a1' >>= \res ->
return ()
patternReference :: Pattern -> IO (Pattern)
patternReference a1 =
let {a1' = unPattern a1} in
patternReference'_ a1' >>= \res ->
let {res' = Pattern res} in
return (res')
patternStatus :: Pattern -> IO (Status)
patternStatus a1 =
let {a1' = unPattern a1} in
patternStatus'_ a1' >>= \res ->
let {res' = cToEnum res} in
return (res')
patternSetExtend :: Pattern -> Extend -> IO ()
patternSetExtend a1 a2 =
let {a1' = unPattern a1} in
let {a2' = cFromEnum a2} in
patternSetExtend'_ a1' a2' >>= \res ->
return ()
patternGetExtend :: Pattern -> IO (Extend)
patternGetExtend a1 =
let {a1' = unPattern a1} in
patternGetExtend'_ a1' >>= \res ->
let {res' = cToEnum res} in
return (res')
patternSetFilter :: Pattern -> Filter -> IO ()
patternSetFilter a1 a2 =
let {a1' = unPattern a1} in
let {a2' = cFromEnum a2} in
patternSetFilter'_ a1' a2' >>= \res ->
return ()
patternGetFilter :: Pattern -> IO (Filter)
patternGetFilter a1 =
let {a1' = unPattern a1} in
patternGetFilter'_ a1' >>= \res ->
let {res' = cToEnum res} in
return (res')
patternSetMatrix :: Pattern -> Matrix -> IO ()
patternSetMatrix a1 a2 =
let {a1' = unPattern a1} in
with a2 $ \a2' ->
patternSetMatrix'_ a1' a2' >>= \res ->
return ()
patternGetMatrix :: Pattern -> IO (Matrix)
patternGetMatrix a1 =
let {a1' = unPattern a1} in
alloca $ \a2' ->
patternGetMatrix'_ a1' a2' >>= \res ->
peek a2'>>= \a2'' ->
return (a2'')
foreign import ccall safe "cairo_pattern_add_color_stop_rgb"
patternAddColorStopRGB'_ :: ((Ptr Pattern) -> (CDouble -> (CDouble -> (CDouble -> (CDouble -> (IO ()))))))
foreign import ccall safe "cairo_pattern_add_color_stop_rgba"
patternAddColorStopRGBA'_ :: ((Ptr Pattern) -> (CDouble -> (CDouble -> (CDouble -> (CDouble -> (CDouble -> (IO ())))))))
foreign import ccall safe "cairo_pattern_create_rgb"
patternCreateRGB'_ :: (CDouble -> (CDouble -> (CDouble -> (IO (Ptr Pattern)))))
foreign import ccall safe "cairo_pattern_create_rgba"
patternCreateRGBA'_ :: (CDouble -> (CDouble -> (CDouble -> (CDouble -> (IO (Ptr Pattern))))))
foreign import ccall safe "cairo_pattern_create_for_surface"
patternCreateForSurface'_ :: ((Ptr Surface) -> (IO (Ptr Pattern)))
foreign import ccall safe "cairo_pattern_create_linear"
patternCreateLinear'_ :: (CDouble -> (CDouble -> (CDouble -> (CDouble -> (IO (Ptr Pattern))))))
foreign import ccall safe "cairo_pattern_create_radial"
patternCreateRadial'_ :: (CDouble -> (CDouble -> (CDouble -> (CDouble -> (CDouble -> (CDouble -> (IO (Ptr Pattern))))))))
foreign import ccall safe "cairo_pattern_destroy"
patternDestroy'_ :: ((Ptr Pattern) -> (IO ()))
foreign import ccall safe "cairo_pattern_reference"
patternReference'_ :: ((Ptr Pattern) -> (IO (Ptr Pattern)))
foreign import ccall safe "cairo_pattern_status"
patternStatus'_ :: ((Ptr Pattern) -> (IO CInt))
foreign import ccall safe "cairo_pattern_set_extend"
patternSetExtend'_ :: ((Ptr Pattern) -> (CInt -> (IO ())))
foreign import ccall safe "cairo_pattern_get_extend"
patternGetExtend'_ :: ((Ptr Pattern) -> (IO CInt))
foreign import ccall safe "cairo_pattern_set_filter"
patternSetFilter'_ :: ((Ptr Pattern) -> (CInt -> (IO ())))
foreign import ccall safe "cairo_pattern_get_filter"
patternGetFilter'_ :: ((Ptr Pattern) -> (IO CInt))
foreign import ccall safe "cairo_pattern_set_matrix"
patternSetMatrix'_ :: ((Ptr Pattern) -> ((Ptr Matrix) -> (IO ())))
foreign import ccall safe "cairo_pattern_get_matrix"
patternGetMatrix'_ :: ((Ptr Pattern) -> ((Ptr Matrix) -> (IO ())))