{-# LINE 1 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LINE 2 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}
module Graphics.Rendering.FreeType.Internal.Bitmap
( FT_Bitmap(..)
) where

import Foreign
import Foreign.C.Types


{-# LINE 10 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}


{-# LINE 12 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}

{-# LINE 13 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}

data FT_Bitmap = FT_Bitmap
  { rows         :: CInt
  , width        :: CInt
  , pitch        :: CInt
  , buffer       :: Ptr CChar
  , num_grays    :: CShort
  , pixel_mode   :: CChar
  , palette_mode :: CChar
  , palette      :: Ptr ()
  }

instance Storable FT_Bitmap where
  sizeOf _    = (24)
{-# LINE 27 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}
  alignment _ = 4
{-# LINE 28 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}
  peek ptr = do
    rows'         <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) ptr
{-# LINE 30 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}
    width'        <- ((\hsc_ptr -> peekByteOff hsc_ptr 4)) ptr
{-# LINE 31 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}
    pitch'        <- ((\hsc_ptr -> peekByteOff hsc_ptr 8)) ptr
{-# LINE 32 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}
    buffer'       <- ((\hsc_ptr -> peekByteOff hsc_ptr 12)) ptr
{-# LINE 33 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}
    num_grays'    <- ((\hsc_ptr -> peekByteOff hsc_ptr 16)) ptr
{-# LINE 34 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}
    pixel_mode'   <- ((\hsc_ptr -> peekByteOff hsc_ptr 18)) ptr
{-# LINE 35 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}
    palette_mode' <- ((\hsc_ptr -> peekByteOff hsc_ptr 19)) ptr
{-# LINE 36 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}
    palette'      <- ((\hsc_ptr -> peekByteOff hsc_ptr 20)) ptr
{-# LINE 37 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}
    return $ FT_Bitmap
      { rows = rows'
      , width = width'
      , pitch = pitch'
      , buffer = buffer'
      , num_grays = num_grays'
      , pixel_mode = pixel_mode'
      , palette_mode = palette_mode'
      , palette = palette'
      }
  poke ptr val = do
    ((\hsc_ptr -> pokeByteOff hsc_ptr 0)) ptr (rows val)
{-# LINE 49 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 4)) ptr (width val)
{-# LINE 50 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 8)) ptr (pitch val)
{-# LINE 51 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 12)) ptr (buffer val)
{-# LINE 52 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 16)) ptr (num_grays val)
{-# LINE 53 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 18)) ptr (pixel_mode val)
{-# LINE 54 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 19)) ptr (palette_mode val)
{-# LINE 55 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}
    ((\hsc_ptr -> pokeByteOff hsc_ptr 20)) ptr (palette val)
{-# LINE 56 "Graphics/Rendering/FreeType/Internal/Bitmap.hsc" #-}