{-# LINE 1 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}

{-# LINE 2 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}

{-# LINE 3 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}

-- | <http://directfb.org/docs/DirectFB_Reference_1_4/IDirectFBSurface.html>

module Bindings.DirectFB.IDirectFBSurface where
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word

{-# LINE 8 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
import Bindings.DirectFB.Types
import Bindings.DirectFB.IDirectFBGL
import Bindings.DirectFB.IDirectFBPalette
import Bindings.DirectFB.IDirectFBFont

data C'IDirectFBSurface = C'IDirectFBSurface{
{-# LINE 14 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}

  c'IDirectFBSurface'GetCapabilities :: FunPtr (Ptr C'IDirectFBSurface -> Ptr C'DFBSurfaceCapabilities -> IO C'DFBResult)
{-# LINE 16 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'GetPosition :: FunPtr (Ptr C'IDirectFBSurface -> Ptr CInt -> Ptr CInt -> IO C'DFBResult)
{-# LINE 18 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'GetSize :: FunPtr (Ptr C'IDirectFBSurface -> Ptr CInt -> Ptr CInt -> IO C'DFBResult)
{-# LINE 20 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'GetVisibleRectangle :: FunPtr (Ptr C'IDirectFBSurface -> Ptr C'DFBRectangle -> IO C'DFBResult)
{-# LINE 22 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'GetPixelFormat :: FunPtr (Ptr C'IDirectFBSurface -> Ptr C'DFBSurfacePixelFormat -> IO C'DFBResult)
{-# LINE 24 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'GetAccelerationMask :: FunPtr (Ptr C'IDirectFBSurface -> Ptr C'IDirectFBSurface -> Ptr C'DFBAccelerationMask -> IO C'DFBResult)
{-# LINE 27 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'GetPalette :: FunPtr (Ptr C'IDirectFBSurface -> Ptr (Ptr C'IDirectFBPalette) -> IO C'DFBResult)
{-# LINE 29 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetPalette :: FunPtr (Ptr C'IDirectFBSurface -> Ptr C'IDirectFBPalette -> IO C'DFBResult)
{-# LINE 31 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetAlphaRamp :: FunPtr (Ptr C'IDirectFBSurface -> Word8 -> Word8 -> Word8 -> Word8 -> IO C'DFBResult)
{-# LINE 33 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'Lock :: FunPtr (Ptr C'IDirectFBSurface -> C'DFBSurfaceLockFlags -> Ptr (Ptr ()) -> Ptr CInt -> IO C'DFBResult)
{-# LINE 36 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'GetFramebufferOffset :: FunPtr (Ptr C'IDirectFBSurface -> Ptr CInt -> IO C'DFBResult)
{-# LINE 38 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'Unlock :: FunPtr (Ptr C'IDirectFBSurface -> IO C'DFBResult)
{-# LINE 39 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'Flip :: FunPtr (Ptr C'IDirectFBSurface -> Ptr C'DFBRegion -> C'DFBSurfaceFlipFlags -> IO C'DFBResult)
{-# LINE 41 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetField :: FunPtr (Ptr C'IDirectFBSurface -> CInt -> IO C'DFBResult)
{-# LINE 42 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'Clear :: FunPtr (Ptr C'IDirectFBSurface -> Word8 -> Word8 -> Word8 -> Word8 -> IO C'DFBResult)
{-# LINE 44 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetClip :: FunPtr (Ptr C'IDirectFBSurface -> Ptr C'DFBRegion -> IO C'DFBResult)
{-# LINE 46 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'GetClip :: FunPtr (Ptr C'IDirectFBSurface -> Ptr C'DFBRegion -> IO C'DFBResult)
{-# LINE 48 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetColor :: FunPtr (Ptr C'IDirectFBSurface -> Word8 -> Word8 -> Word8 -> Word8 -> IO C'DFBResult)
{-# LINE 50 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetColorIndex :: FunPtr (Ptr C'IDirectFBSurface -> CUInt -> IO C'DFBResult)
{-# LINE 52 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetSrcBlendFunction :: FunPtr (Ptr C'IDirectFBSurface -> C'DFBSurfaceBlendFunction -> IO C'DFBResult)
{-# LINE 54 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetDstBlendFunction :: FunPtr (Ptr C'IDirectFBSurface -> C'DFBSurfaceBlendFunction -> IO C'DFBResult)
{-# LINE 56 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetPorterDuff :: FunPtr (Ptr C'IDirectFBSurface -> C'DFBSurfacePorterDuffRule -> IO C'DFBResult)
{-# LINE 58 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetSrcColorKey :: FunPtr (Ptr C'IDirectFBSurface -> Word8 -> Word8 -> Word8 -> IO C'DFBResult)
{-# LINE 60 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetSrcColorKeyIndex :: FunPtr (Ptr C'IDirectFBSurface -> CUInt -> IO C'DFBResult)
{-# LINE 62 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetDstColorKey :: FunPtr (Ptr C'IDirectFBSurface -> Word8 -> Word8 -> Word8 -> IO C'DFBResult)
{-# LINE 64 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetDstColorKeyIndex :: FunPtr (Ptr C'IDirectFBSurface -> CUInt -> IO C'DFBResult)
{-# LINE 66 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetBlittingFlags :: FunPtr (Ptr C'IDirectFBSurface -> C'DFBSurfaceBlittingFlags -> IO C'DFBResult)
{-# LINE 68 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'Blit :: FunPtr (Ptr C'IDirectFBSurface -> Ptr C'IDirectFBSurface -> Ptr C'DFBRectangle -> CInt -> CInt -> IO C'DFBResult)
{-# LINE 71 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'TileBlit :: FunPtr (Ptr C'IDirectFBSurface -> Ptr C'IDirectFBSurface -> Ptr C'DFBRectangle -> CInt -> CInt -> IO C'DFBResult)
{-# LINE 74 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'BatchBlit :: FunPtr (Ptr C'IDirectFBSurface -> Ptr C'IDirectFBSurface -> Ptr C'DFBRectangle -> Ptr C'DFBPoint -> CInt -> IO C'DFBResult)
{-# LINE 77 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'StretchBlit :: FunPtr (Ptr C'IDirectFBSurface -> Ptr C'IDirectFBSurface -> Ptr C'DFBRectangle -> Ptr C'DFBRectangle -> IO C'DFBResult)
{-# LINE 80 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'TextureTriangles :: FunPtr (Ptr C'IDirectFBSurface -> Ptr C'IDirectFBSurface -> Ptr C'DFBVertex -> Ptr CInt -> CInt -> C'DFBTriangleFormation -> IO C'DFBResult)
{-# LINE 83 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetDrawingFlags :: FunPtr (Ptr C'IDirectFBSurface -> C'DFBSurfaceDrawingFlags -> IO C'DFBResult)
{-# LINE 85 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'FillRectangle :: FunPtr (Ptr C'IDirectFBSurface -> CInt -> CInt -> CInt -> CInt -> IO C'DFBResult)
{-# LINE 87 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'DrawRectangle :: FunPtr (Ptr C'IDirectFBSurface -> CInt -> CInt -> CInt -> CInt -> IO C'DFBResult)
{-# LINE 89 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'DrawLine :: FunPtr (Ptr C'IDirectFBSurface -> CInt -> CInt -> CInt -> CInt -> IO C'DFBResult)
{-# LINE 91 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'DrawLines :: FunPtr (Ptr C'IDirectFBSurface -> Ptr C'DFBRegion -> CUInt -> IO C'DFBResult)
{-# LINE 93 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'FillTriangle :: FunPtr (Ptr C'IDirectFBSurface -> CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> IO C'DFBResult)
{-# LINE 95 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'FillRectangles :: FunPtr (Ptr C'IDirectFBSurface -> Ptr C'DFBRectangle -> CUInt -> IO C'DFBResult)
{-# LINE 97 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'FillSpans :: FunPtr (Ptr C'IDirectFBSurface -> CInt -> Ptr C'DFBSpan -> CUInt -> IO C'DFBResult)
{-# LINE 99 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'FillTriangles :: FunPtr (Ptr C'IDirectFBSurface -> Ptr C'DFBTriangle -> CUInt -> IO C'DFBResult)
{-# LINE 101 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetFont :: FunPtr (Ptr C'IDirectFBSurface -> Ptr C'IDirectFBFont -> IO C'DFBResult)
{-# LINE 103 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'GetFont :: FunPtr (Ptr C'IDirectFBSurface -> Ptr (Ptr C'IDirectFBFont) -> IO C'DFBResult)
{-# LINE 105 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'DrawString :: FunPtr (Ptr C'IDirectFBSurface -> CString -> CInt -> CInt -> CInt -> C'DFBSurfaceTextFlags -> IO C'DFBResult)
{-# LINE 108 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'DrawGlyph :: FunPtr (Ptr C'IDirectFBSurface -> CUInt -> CInt -> CInt -> C'DFBSurfaceTextFlags -> IO C'DFBResult)
{-# LINE 110 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetEncoding :: FunPtr (Ptr C'IDirectFBSurface -> C'DFBTextEncodingID -> IO C'DFBResult)
{-# LINE 112 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'GetSubSurface :: FunPtr (Ptr C'IDirectFBSurface -> Ptr C'DFBRectangle -> Ptr (Ptr C'IDirectFBSurface) -> IO C'DFBResult)
{-# LINE 115 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'GetGL :: FunPtr (Ptr C'IDirectFBSurface -> Ptr (Ptr C'IDirectFBGL) -> IO C'DFBResult)
{-# LINE 117 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'Dump :: FunPtr (Ptr C'IDirectFBSurface -> CString -> CString -> IO C'DFBResult)
{-# LINE 119 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'DisableAcceleration :: FunPtr (Ptr C'IDirectFBSurface -> C'DFBAccelerationMask -> IO C'DFBResult)
{-# LINE 121 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'ReleaseSource :: FunPtr (Ptr C'IDirectFBSurface -> IO C'DFBResult)
{-# LINE 122 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetIndexTranslation :: FunPtr (Ptr C'IDirectFBSurface -> Ptr CInt -> CInt -> IO C'DFBResult)
{-# LINE 124 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetRenderOptions :: FunPtr (Ptr C'IDirectFBSurface -> C'DFBSurfaceRenderOptions -> IO C'DFBResult)
{-# LINE 126 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetMatrix :: FunPtr (Ptr C'IDirectFBSurface -> Ptr Int32 -> IO C'DFBResult)
{-# LINE 128 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'SetSourceMask :: FunPtr (Ptr C'IDirectFBSurface -> Ptr C'IDirectFBSurface -> CInt -> CInt -> C'DFBSurfaceMaskFlags -> IO C'DFBResult)
{-# LINE 131 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
,
  c'IDirectFBSurface'MakeSubSurface :: FunPtr (Ptr C'IDirectFBSurface -> Ptr C'IDirectFBSurface -> Ptr C'DFBRectangle -> IO C'DFBResult)
{-# LINE 133 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}
-- #field Write , FunPtr (Ptr <IDirectFBSurface> -> \
--     Ptr <DFBRectangle> -> Ptr () -> CInt -> IO <DFBResult>)
-- #field Read , FunPtr (Ptr <IDirectFBSurface> -> \
--     Ptr <DFBRectangle> -> Ptr () -> CInt -> IO <DFBResult>)
-- #field SetColors , FunPtr (Ptr <IDirectFBSurface> -> \
--     Ptr <DFBColorID> -> Ptr <DFBColor> -> CUInt -> IO <DFBResult>)

 } deriving (Eq,Show)
instance Storable C'IDirectFBSurface where
  sizeOf _ = 248
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 16
    v1 <- peekByteOff p 20
    v2 <- peekByteOff p 24
    v3 <- peekByteOff p 28
    v4 <- peekByteOff p 32
    v5 <- peekByteOff p 36
    v6 <- peekByteOff p 40
    v7 <- peekByteOff p 44
    v8 <- peekByteOff p 48
    v9 <- peekByteOff p 52
    v10 <- peekByteOff p 56
    v11 <- peekByteOff p 60
    v12 <- peekByteOff p 64
    v13 <- peekByteOff p 68
    v14 <- peekByteOff p 72
    v15 <- peekByteOff p 76
    v16 <- peekByteOff p 80
    v17 <- peekByteOff p 84
    v18 <- peekByteOff p 88
    v19 <- peekByteOff p 92
    v20 <- peekByteOff p 96
    v21 <- peekByteOff p 100
    v22 <- peekByteOff p 104
    v23 <- peekByteOff p 108
    v24 <- peekByteOff p 112
    v25 <- peekByteOff p 116
    v26 <- peekByteOff p 120
    v27 <- peekByteOff p 124
    v28 <- peekByteOff p 128
    v29 <- peekByteOff p 132
    v30 <- peekByteOff p 136
    v31 <- peekByteOff p 140
    v32 <- peekByteOff p 144
    v33 <- peekByteOff p 148
    v34 <- peekByteOff p 152
    v35 <- peekByteOff p 156
    v36 <- peekByteOff p 160
    v37 <- peekByteOff p 164
    v38 <- peekByteOff p 168
    v39 <- peekByteOff p 172
    v40 <- peekByteOff p 176
    v41 <- peekByteOff p 180
    v42 <- peekByteOff p 184
    v43 <- peekByteOff p 188
    v44 <- peekByteOff p 192
    v45 <- peekByteOff p 196
    v46 <- peekByteOff p 200
    v47 <- peekByteOff p 204
    v48 <- peekByteOff p 208
    v49 <- peekByteOff p 212
    v50 <- peekByteOff p 216
    v51 <- peekByteOff p 220
    v52 <- peekByteOff p 224
    v53 <- peekByteOff p 228
    v54 <- peekByteOff p 232
    v55 <- peekByteOff p 236
    return $ C'IDirectFBSurface v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55
  poke p (C'IDirectFBSurface v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29 v30 v31 v32 v33 v34 v35 v36 v37 v38 v39 v40 v41 v42 v43 v44 v45 v46 v47 v48 v49 v50 v51 v52 v53 v54 v55) = do
    pokeByteOff p 16 v0
    pokeByteOff p 20 v1
    pokeByteOff p 24 v2
    pokeByteOff p 28 v3
    pokeByteOff p 32 v4
    pokeByteOff p 36 v5
    pokeByteOff p 40 v6
    pokeByteOff p 44 v7
    pokeByteOff p 48 v8
    pokeByteOff p 52 v9
    pokeByteOff p 56 v10
    pokeByteOff p 60 v11
    pokeByteOff p 64 v12
    pokeByteOff p 68 v13
    pokeByteOff p 72 v14
    pokeByteOff p 76 v15
    pokeByteOff p 80 v16
    pokeByteOff p 84 v17
    pokeByteOff p 88 v18
    pokeByteOff p 92 v19
    pokeByteOff p 96 v20
    pokeByteOff p 100 v21
    pokeByteOff p 104 v22
    pokeByteOff p 108 v23
    pokeByteOff p 112 v24
    pokeByteOff p 116 v25
    pokeByteOff p 120 v26
    pokeByteOff p 124 v27
    pokeByteOff p 128 v28
    pokeByteOff p 132 v29
    pokeByteOff p 136 v30
    pokeByteOff p 140 v31
    pokeByteOff p 144 v32
    pokeByteOff p 148 v33
    pokeByteOff p 152 v34
    pokeByteOff p 156 v35
    pokeByteOff p 160 v36
    pokeByteOff p 164 v37
    pokeByteOff p 168 v38
    pokeByteOff p 172 v39
    pokeByteOff p 176 v40
    pokeByteOff p 180 v41
    pokeByteOff p 184 v42
    pokeByteOff p 188 v43
    pokeByteOff p 192 v44
    pokeByteOff p 196 v45
    pokeByteOff p 200 v46
    pokeByteOff p 204 v47
    pokeByteOff p 208 v48
    pokeByteOff p 212 v49
    pokeByteOff p 216 v50
    pokeByteOff p 220 v51
    pokeByteOff p 224 v52
    pokeByteOff p 228 v53
    pokeByteOff p 232 v54
    pokeByteOff p 236 v55
    return ()

{-# LINE 140 "src/Bindings/DirectFB/IDirectFBSurface.hsc" #-}