module Bindings.DirectFB.IDirectFBImageProvider 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
import Bindings.DirectFB.Types
import Bindings.DirectFB.IDirectFBSurface
data C'IDirectFBImageProvider = C'IDirectFBImageProvider{
c'IDirectFBImageProvider'GetSurfaceDescription :: FunPtr (Ptr C'IDirectFBImageProvider -> Ptr C'DFBSurfaceDescription -> IO C'DFBResult)
,
c'IDirectFBImageProvider'GetImageDescription :: FunPtr (Ptr C'IDirectFBImageProvider -> Ptr C'DFBImageDescription -> IO C'DFBResult)
,
c'IDirectFBImageProvider'RenderTo :: FunPtr (Ptr C'IDirectFBImageProvider -> Ptr C'IDirectFBSurface -> Ptr C'DFBRectangle -> IO C'DFBResult)
,
c'IDirectFBImageProvider'SetRenderCallback :: FunPtr (Ptr C'IDirectFBImageProvider -> C'DIRenderCallback -> Ptr () -> IO C'DFBResult)
,
c'IDirectFBImageProvider'WriteBack :: FunPtr (Ptr C'IDirectFBImageProvider -> Ptr C'IDirectFBSurface -> Ptr C'DFBRectangle -> CString -> IO C'DFBResult)
} deriving (Eq,Show)
instance Storable C'IDirectFBImageProvider where
sizeOf _ = 36
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
return $ C'IDirectFBImageProvider v0 v1 v2 v3 v4
poke p (C'IDirectFBImageProvider v0 v1 v2 v3 v4) = do
pokeByteOff p 16 v0
pokeByteOff p 20 v1
pokeByteOff p 24 v2
pokeByteOff p 28 v3
pokeByteOff p 32 v4
return ()