{-# LINE 1 "Graphics/X11/Xrender.hsc" #-}
module Graphics.X11.Xrender (
peekCUShort,
pokeCUShort,
peekCShort,
pokeCShort,
XRenderColor (..),
XGlyphInfo (..),
XRenderDirectFormat (..),
) where
import Foreign
import Foreign.C
peekCUShort :: Ptr a -> CInt -> IO Int
peekCUShort :: forall a. Ptr a -> CInt -> IO Int
peekCUShort Ptr a
ptr CInt
off = do
v <- Ptr a -> Int -> IO CUShort
forall b. Ptr b -> Int -> IO CUShort
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr a
ptr (CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral CInt
off)
return (fromIntegral (v::CUShort))
pokeCUShort :: Ptr a -> CInt -> Int -> IO ()
pokeCUShort :: forall a. Ptr a -> CInt -> Int -> IO ()
pokeCUShort Ptr a
ptr CInt
off Int
v =
Ptr a -> Int -> CUShort -> IO ()
forall b. Ptr b -> Int -> CUShort -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr a
ptr (CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral CInt
off) (Int -> CUShort
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
v::CUShort)
peekCShort :: Ptr a -> CInt -> IO Int
peekCShort :: forall a. Ptr a -> CInt -> IO Int
peekCShort Ptr a
ptr CInt
off = do
v <- Ptr a -> Int -> IO CShort
forall b. Ptr b -> Int -> IO CShort
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr a
ptr (CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral CInt
off)
return (fromIntegral (v::CShort))
pokeCShort :: Ptr a -> CInt -> Int -> IO ()
pokeCShort :: forall a. Ptr a -> CInt -> Int -> IO ()
pokeCShort Ptr a
ptr CInt
off Int
v =
Ptr a -> Int -> CShort -> IO ()
forall b. Ptr b -> Int -> CShort -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr a
ptr (CInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral CInt
off) (Int -> CShort
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
v::CShort)
data XRenderColor = XRenderColor {
XRenderColor -> Int
xrendercolor_red :: Int,
XRenderColor -> Int
xrendercolor_green :: Int,
XRenderColor -> Int
xrendercolor_blue :: Int,
XRenderColor -> Int
xrendercolor_alpha :: Int
}
instance Storable XRenderColor where
sizeOf :: XRenderColor -> Int
sizeOf XRenderColor
_ = (Int
8)
{-# LINE 51 "Graphics/X11/Xrender.hsc" #-}
alignment :: XRenderColor -> Int
alignment XRenderColor
_ = CInt -> Int
forall a. Storable a => a -> Int
alignment (CInt
forall a. HasCallStack => a
undefined::CInt)
peek :: Ptr XRenderColor -> IO XRenderColor
peek Ptr XRenderColor
p = do
red <- Ptr XRenderColor -> CInt -> IO Int
forall a. Ptr a -> CInt -> IO Int
peekCUShort Ptr XRenderColor
p (CInt
0)
{-# LINE 54 "Graphics/X11/Xrender.hsc" #-}
blue <- peekCUShort p (4)
{-# LINE 55 "Graphics/X11/Xrender.hsc" #-}
green <- peekCUShort p (2)
{-# LINE 56 "Graphics/X11/Xrender.hsc" #-}
alpha <- peekCUShort p (6)
{-# LINE 57 "Graphics/X11/Xrender.hsc" #-}
return (XRenderColor red green blue alpha)
poke :: Ptr XRenderColor -> XRenderColor -> IO ()
poke Ptr XRenderColor
p (XRenderColor Int
red Int
green Int
blue Int
alpha) = do
Ptr XRenderColor -> CInt -> Int -> IO ()
forall a. Ptr a -> CInt -> Int -> IO ()
pokeCUShort Ptr XRenderColor
p (CInt
0) Int
red
{-# LINE 60 "Graphics/X11/Xrender.hsc" #-}
Ptr XRenderColor -> CInt -> Int -> IO ()
forall a. Ptr a -> CInt -> Int -> IO ()
pokeCUShort Ptr XRenderColor
p (CInt
4) Int
blue
{-# LINE 61 "Graphics/X11/Xrender.hsc" #-}
Ptr XRenderColor -> CInt -> Int -> IO ()
forall a. Ptr a -> CInt -> Int -> IO ()
pokeCUShort Ptr XRenderColor
p (CInt
2) Int
green
{-# LINE 62 "Graphics/X11/Xrender.hsc" #-}
Ptr XRenderColor -> CInt -> Int -> IO ()
forall a. Ptr a -> CInt -> Int -> IO ()
pokeCUShort Ptr XRenderColor
p (CInt
6) Int
alpha
{-# LINE 63 "Graphics/X11/Xrender.hsc" #-}
data XGlyphInfo = XGlyphInfo {
XGlyphInfo -> Int
xglyphinfo_width :: Int,
XGlyphInfo -> Int
xglyphinfo_height :: Int,
XGlyphInfo -> Int
xglyphinfo_x :: Int,
XGlyphInfo -> Int
xglyphinfo_y :: Int,
XGlyphInfo -> Int
xglyphinfo_xOff :: Int,
XGlyphInfo -> Int
xglyphinfo_yOff :: Int
}
instance Storable XGlyphInfo where
sizeOf :: XGlyphInfo -> Int
sizeOf XGlyphInfo
_ = (Int
12)
{-# LINE 75 "Graphics/X11/Xrender.hsc" #-}
alignment :: XGlyphInfo -> Int
alignment XGlyphInfo
_ = CInt -> Int
forall a. Storable a => a -> Int
alignment (CInt
forall a. HasCallStack => a
undefined::CInt)
peek :: Ptr XGlyphInfo -> IO XGlyphInfo
peek Ptr XGlyphInfo
p = do
width <- Ptr XGlyphInfo -> CInt -> IO Int
forall a. Ptr a -> CInt -> IO Int
peekCUShort Ptr XGlyphInfo
p (CInt
0)
{-# LINE 78 "Graphics/X11/Xrender.hsc" #-}
height <- peekCUShort p (2)
{-# LINE 79 "Graphics/X11/Xrender.hsc" #-}
x <- peekCShort p (4)
{-# LINE 80 "Graphics/X11/Xrender.hsc" #-}
y <- peekCShort p (6)
{-# LINE 81 "Graphics/X11/Xrender.hsc" #-}
xOff <- peekCShort p (8)
{-# LINE 82 "Graphics/X11/Xrender.hsc" #-}
yOff <- peekCShort p (10)
{-# LINE 83 "Graphics/X11/Xrender.hsc" #-}
return (XGlyphInfo width height x y xOff yOff)
poke :: Ptr XGlyphInfo -> XGlyphInfo -> IO ()
poke Ptr XGlyphInfo
p (XGlyphInfo Int
width Int
height Int
x Int
y Int
xOff Int
yOff) = do
Ptr XGlyphInfo -> CInt -> Int -> IO ()
forall a. Ptr a -> CInt -> Int -> IO ()
pokeCUShort Ptr XGlyphInfo
p (CInt
0) Int
width
{-# LINE 86 "Graphics/X11/Xrender.hsc" #-}
Ptr XGlyphInfo -> CInt -> Int -> IO ()
forall a. Ptr a -> CInt -> Int -> IO ()
pokeCUShort Ptr XGlyphInfo
p (CInt
2) Int
height
{-# LINE 87 "Graphics/X11/Xrender.hsc" #-}
Ptr XGlyphInfo -> CInt -> Int -> IO ()
forall a. Ptr a -> CInt -> Int -> IO ()
pokeCShort Ptr XGlyphInfo
p (CInt
4) Int
x
{-# LINE 88 "Graphics/X11/Xrender.hsc" #-}
Ptr XGlyphInfo -> CInt -> Int -> IO ()
forall a. Ptr a -> CInt -> Int -> IO ()
pokeCShort Ptr XGlyphInfo
p (CInt
6) Int
y
{-# LINE 89 "Graphics/X11/Xrender.hsc" #-}
Ptr XGlyphInfo -> CInt -> Int -> IO ()
forall a. Ptr a -> CInt -> Int -> IO ()
pokeCShort Ptr XGlyphInfo
p (CInt
8) Int
xOff
{-# LINE 90 "Graphics/X11/Xrender.hsc" #-}
Ptr XGlyphInfo -> CInt -> Int -> IO ()
forall a. Ptr a -> CInt -> Int -> IO ()
pokeCShort Ptr XGlyphInfo
p (CInt
10) Int
yOff
{-# LINE 91 "Graphics/X11/Xrender.hsc" #-}
data XRenderDirectFormat = XRenderDirectFormat {
XRenderDirectFormat -> Int
xrenderdirectformat_red :: Int,
XRenderDirectFormat -> Int
xrenderdirectformat_redMask :: Int,
XRenderDirectFormat -> Int
xrenderdirectformat_green :: Int,
XRenderDirectFormat -> Int
xrenderdirectformat_greenMask :: Int,
XRenderDirectFormat -> Int
xrenderdirectformat_blue :: Int,
XRenderDirectFormat -> Int
xrenderdirectformat_blueMask :: Int,
XRenderDirectFormat -> Int
xrenderdirectformat_alpha :: Int,
XRenderDirectFormat -> Int
xrenderdirectformat_alphaMask :: Int
}
instance Storable XRenderDirectFormat where
sizeOf :: XRenderDirectFormat -> Int
sizeOf XRenderDirectFormat
_ = (Int
16)
{-# LINE 106 "Graphics/X11/Xrender.hsc" #-}
alignment :: XRenderDirectFormat -> Int
alignment XRenderDirectFormat
_ = CInt -> Int
forall a. Storable a => a -> Int
alignment (CInt
forall a. HasCallStack => a
undefined::CInt)
peek :: Ptr XRenderDirectFormat -> IO XRenderDirectFormat
peek Ptr XRenderDirectFormat
p = do
red <- Ptr XRenderDirectFormat -> CInt -> IO Int
forall a. Ptr a -> CInt -> IO Int
peekCShort Ptr XRenderDirectFormat
p (CInt
0)
{-# LINE 109 "Graphics/X11/Xrender.hsc" #-}
redMask <- peekCShort p (2)
{-# LINE 110 "Graphics/X11/Xrender.hsc" #-}
green <- peekCShort p (4)
{-# LINE 111 "Graphics/X11/Xrender.hsc" #-}
greenMask <- peekCShort p (6)
{-# LINE 112 "Graphics/X11/Xrender.hsc" #-}
blue <- peekCShort p (8)
{-# LINE 113 "Graphics/X11/Xrender.hsc" #-}
blueMask <- peekCShort p (10)
{-# LINE 114 "Graphics/X11/Xrender.hsc" #-}
alpha <- peekCShort p (12)
{-# LINE 115 "Graphics/X11/Xrender.hsc" #-}
alphaMask <- peekCShort p (14)
{-# LINE 116 "Graphics/X11/Xrender.hsc" #-}
return (XRenderDirectFormat red redMask green greenMask blue blueMask alpha alphaMask)
poke :: Ptr XRenderDirectFormat -> XRenderDirectFormat -> IO ()
poke Ptr XRenderDirectFormat
p (XRenderDirectFormat Int
red Int
redMask Int
green Int
greenMask Int
blue Int
blueMask Int
alpha Int
alphaMask) = do
Ptr XRenderDirectFormat -> CInt -> Int -> IO ()
forall a. Ptr a -> CInt -> Int -> IO ()
pokeCShort Ptr XRenderDirectFormat
p (CInt
0) Int
red
{-# LINE 119 "Graphics/X11/Xrender.hsc" #-}
Ptr XRenderDirectFormat -> CInt -> Int -> IO ()
forall a. Ptr a -> CInt -> Int -> IO ()
pokeCShort Ptr XRenderDirectFormat
p (CInt
2) Int
redMask
{-# LINE 120 "Graphics/X11/Xrender.hsc" #-}
Ptr XRenderDirectFormat -> CInt -> Int -> IO ()
forall a. Ptr a -> CInt -> Int -> IO ()
pokeCShort Ptr XRenderDirectFormat
p (CInt
8) Int
blue
{-# LINE 121 "Graphics/X11/Xrender.hsc" #-}
Ptr XRenderDirectFormat -> CInt -> Int -> IO ()
forall a. Ptr a -> CInt -> Int -> IO ()
pokeCShort Ptr XRenderDirectFormat
p (CInt
10) Int
blueMask
{-# LINE 122 "Graphics/X11/Xrender.hsc" #-}
Ptr XRenderDirectFormat -> CInt -> Int -> IO ()
forall a. Ptr a -> CInt -> Int -> IO ()
pokeCShort Ptr XRenderDirectFormat
p (CInt
4) Int
green
{-# LINE 123 "Graphics/X11/Xrender.hsc" #-}
Ptr XRenderDirectFormat -> CInt -> Int -> IO ()
forall a. Ptr a -> CInt -> Int -> IO ()
pokeCShort Ptr XRenderDirectFormat
p (CInt
6) Int
greenMask
{-# LINE 124 "Graphics/X11/Xrender.hsc" #-}
Ptr XRenderDirectFormat -> CInt -> Int -> IO ()
forall a. Ptr a -> CInt -> Int -> IO ()
pokeCShort Ptr XRenderDirectFormat
p (CInt
12) Int
alpha
{-# LINE 125 "Graphics/X11/Xrender.hsc" #-}
Ptr XRenderDirectFormat -> CInt -> Int -> IO ()
forall a. Ptr a -> CInt -> Int -> IO ()
pokeCShort Ptr XRenderDirectFormat
p (CInt
14) Int
alphaMask
{-# LINE 126 "Graphics/X11/Xrender.hsc" #-}