Imlib 0.1.1 → 0.1.2
raw patch · 2 files changed
+219/−210 lines, 2 filesnew-uploaderPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
+ Graphics.Imlib: colorFromBits :: Word32 -> ImlibColor
+ Graphics.Imlib: colorToBits :: ImlibColor -> Word32
- Graphics.Imlib: ImlibBorder :: Int -> Int -> Int -> Int -> ImlibBorder
+ Graphics.Imlib: ImlibBorder :: CInt -> CInt -> CInt -> CInt -> ImlibBorder
- Graphics.Imlib: blendImageOntoImage :: ImlibImage -> (Bool, Int, Int, Int) -> (Int, Int, Int, Int) -> Int -> IO ()
+ Graphics.Imlib: blendImageOntoImage :: (Integral a7, Integral a5, Integral a3, Integral a1, Integral a, Integral a2, Integral a4, Integral a6) => ImlibImage -> Bool -> (a, a1, a2, a3) -> (a4, a5, a6, a7) -> IO ()
- Graphics.Imlib: blendImageOntoImageAtAngle :: Ptr ImlibImage -> Bool -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> IO ()
+ Graphics.Imlib: blendImageOntoImageAtAngle :: (Integral a7, Integral a5, Integral a3, Integral a1, Integral a, Integral a2, Integral a4, Integral a6) => Ptr ImlibImage -> Bool -> a -> a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> IO ()
- Graphics.Imlib: blendImageOntoImageSkewed :: Ptr ImlibImage -> Bool -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> Int -> IO ()
+ Graphics.Imlib: blendImageOntoImageSkewed :: (Integral a9, Integral a7, Integral a5, Integral a3, Integral a1, Integral a, Integral a2, Integral a4, Integral a6, Integral a8) => Ptr ImlibImage -> Bool -> a -> a1 -> a2 -> a3 -> a4 -> a5 -> a6 -> a7 -> a8 -> a9 -> IO ()
- Graphics.Imlib: contextSetColorHlsa :: Int -> Int -> Int -> Int -> IO ()
+ Graphics.Imlib: contextSetColorHlsa :: (Integral a3, Integral a1, Integral a, Integral a2) => a -> a1 -> a2 -> a3 -> IO ()
- Graphics.Imlib: contextSetColorHsva :: Int -> Int -> Int -> Int -> IO ()
+ Graphics.Imlib: contextSetColorHsva :: (Integral a3, Integral a1, Integral a, Integral a2) => a -> a1 -> a2 -> a3 -> IO ()
- Graphics.Imlib: createCroppedImage :: Int -> Int -> Int -> Int -> IO ImlibImage
+ Graphics.Imlib: createCroppedImage :: (Integral a3, Integral a1, Integral a, Integral a2) => a -> a1 -> a2 -> a3 -> IO ImlibImage
- Graphics.Imlib: createCroppedScaledImage :: Int -> Int -> Int -> Int -> Int -> Int -> IO ImlibImage
+ Graphics.Imlib: createCroppedScaledImage :: (Integral a5, Integral a3, Integral a1, Integral a, Integral a2, Integral a4) => a -> a1 -> a2 -> a3 -> a4 -> a5 -> IO ImlibImage
- Graphics.Imlib: createImageUsingCopiedData :: Int -> Int -> Ptr Word32 -> IO ImlibImage
+ Graphics.Imlib: createImageUsingCopiedData :: (Integral a1, Integral a) => a -> a1 -> Ptr Word32 -> IO ImlibImage
- Graphics.Imlib: filterSet :: Int -> Int -> Int -> Int -> Int -> Int -> IO ()
+ Graphics.Imlib: filterSet :: (Integral a5, Integral a3, Integral a1, Integral a, Integral a2, Integral a4) => a -> a1 -> a2 -> a3 -> a4 -> a5 -> IO ()
- Graphics.Imlib: filterSetAlpha :: Int -> Int -> Int -> Int -> Int -> Int -> IO ()
+ Graphics.Imlib: filterSetAlpha :: (Integral a5, Integral a3, Integral a1, Integral a, Integral a2, Integral a4) => a -> a1 -> a2 -> a3 -> a4 -> a5 -> IO ()
- Graphics.Imlib: filterSetBlue :: Int -> Int -> Int -> Int -> Int -> Int -> IO ()
+ Graphics.Imlib: filterSetBlue :: (Integral a5, Integral a3, Integral a1, Integral a, Integral a2, Integral a4) => a -> a1 -> a2 -> a3 -> a4 -> a5 -> IO ()
- Graphics.Imlib: filterSetGreen :: Int -> Int -> Int -> Int -> Int -> Int -> IO ()
+ Graphics.Imlib: filterSetGreen :: (Integral a5, Integral a3, Integral a1, Integral a, Integral a2, Integral a4) => a -> a1 -> a2 -> a3 -> a4 -> a5 -> IO ()
- Graphics.Imlib: filterSetRed :: Int -> Int -> Int -> Int -> Int -> Int -> IO ()
+ Graphics.Imlib: filterSetRed :: (Integral a5, Integral a3, Integral a1, Integral a, Integral a2, Integral a4) => a -> a1 -> a2 -> a3 -> a4 -> a5 -> IO ()
- Graphics.Imlib: imageCopyAlphaRectangleToImage :: ImlibImage -> Int -> Int -> Int -> Int -> Int -> Int -> IO ()
+ Graphics.Imlib: imageCopyAlphaRectangleToImage :: (Integral a5, Integral a3, Integral a1, Integral a, Integral a2, Integral a4) => ImlibImage -> a -> a1 -> a2 -> a3 -> a4 -> a5 -> IO ()
- Graphics.Imlib: imageCopyRect :: Int -> Int -> Int -> Int -> Int -> Int -> IO ()
+ Graphics.Imlib: imageCopyRect :: (Integral a5, Integral a3, Integral a1, Integral a, Integral a2, Integral a4) => a -> a1 -> a2 -> a3 -> a4 -> a5 -> IO ()
- Graphics.Imlib: imageDrawEllipse :: Int -> Int -> Int -> Int -> IO ()
+ Graphics.Imlib: imageDrawEllipse :: (Integral a3, Integral a1, Integral a, Integral a2) => a -> a1 -> a2 -> a3 -> IO ()
- Graphics.Imlib: imageFillColorRangeRectangle :: Int -> Int -> Int -> Int -> Double -> IO ()
+ Graphics.Imlib: imageFillColorRangeRectangle :: (Integral a3, Integral a1, Integral a, Integral a2, Real a4) => a -> a1 -> a2 -> a3 -> a4 -> IO ()
- Graphics.Imlib: imageFillEllipse :: Int -> Int -> Int -> Int -> IO ()
+ Graphics.Imlib: imageFillEllipse :: (Integral a3, Integral a1, Integral a, Integral a2) => a -> a1 -> a2 -> a3 -> IO ()
- Graphics.Imlib: imageFillHsvaColorRangeRectangle :: Int -> Int -> Int -> Int -> Double -> IO ()
+ Graphics.Imlib: imageFillHsvaColorRangeRectangle :: (Integral a3, Integral a1, Integral a, Integral a2, Real a4) => a -> a1 -> a2 -> a3 -> a4 -> IO ()
- Graphics.Imlib: imageScrollRect :: Int -> Int -> Int -> Int -> Int -> Int -> IO ()
+ Graphics.Imlib: imageScrollRect :: (Integral a5, Integral a3, Integral a1, Integral a, Integral a2, Integral a4) => a -> a1 -> a2 -> a3 -> a4 -> a5 -> IO ()
- Graphics.Imlib: polygonAddPoint :: ImlibPolygon -> Int -> Int -> IO ()
+ Graphics.Imlib: polygonAddPoint :: (Integral a1, Integral a) => ImlibPolygon -> a -> a1 -> IO ()
- Graphics.Imlib: polygonContainsPoint :: ImlibPolygon -> Int -> Int -> IO Bool
+ Graphics.Imlib: polygonContainsPoint :: (Integral a1, Integral a) => ImlibPolygon -> a -> a1 -> IO Bool
- Graphics.Imlib: polygonGetBounds :: ImlibPolygon -> IO (Int, Int, Int, Int)
+ Graphics.Imlib: polygonGetBounds :: Num b => ImlibPolygon -> IO (b, b, b, b)
- Graphics.Imlib: textDrawWithReturnMetrics :: Int -> Int -> String -> IO (Int, Int, Int, Int)
+ Graphics.Imlib: textDrawWithReturnMetrics :: (Integral a1, Integral a, Num b) => a -> a1 -> String -> IO (b, b, b, b)
- Graphics.Imlib: textGetIndexAndLocation :: String -> Int -> Int -> IO (Int, Int, Int, Int, Int)
+ Graphics.Imlib: textGetIndexAndLocation :: (Num b4, Num b2, Num b, Num b1, Num b3) => String -> CInt -> CInt -> IO (b, b1, b2, b3, b4)
- Graphics.Imlib: textGetLocationAtIndex :: String -> Int -> IO (Int, Int, Int, Int)
+ Graphics.Imlib: textGetLocationAtIndex :: (Num b3, Num b1, Num b, Num b2) => String -> CInt -> IO (b, b1, b2, b3)
- Graphics.Imlib: type ImlibProgressFunction = ImlibImage -> Word8 -> Int -> Int -> Int -> Int -> IO Int
+ Graphics.Imlib: type ImlibProgressFunction = ImlibImage -> Word8 -> CInt -> CInt -> CInt -> CInt -> IO CInt
- Graphics.Imlib: updateAppendRect :: ImlibUpdates -> Int -> Int -> Int -> Int -> IO ImlibUpdates
+ Graphics.Imlib: updateAppendRect :: (Integral a3, Integral a1, Integral a, Integral a2) => ImlibUpdates -> a -> a1 -> a2 -> a3 -> IO ImlibUpdates
- Graphics.Imlib: updatesMerge :: ImlibUpdates -> Int -> Int -> IO ImlibUpdates
+ Graphics.Imlib: updatesMerge :: (Integral a1, Integral a) => ImlibUpdates -> a -> a1 -> IO ImlibUpdates
- Graphics.Imlib: updatesMergeForRendering :: ImlibUpdates -> Int -> Int -> IO ImlibUpdates
+ Graphics.Imlib: updatesMergeForRendering :: (Integral a1, Integral a) => ImlibUpdates -> a -> a1 -> IO ImlibUpdates
- Graphics.Imlib: updatesSetCoordinates :: ImlibUpdates -> Int -> Int -> Int -> Int -> IO ()
+ Graphics.Imlib: updatesSetCoordinates :: (Integral a3, Integral a1, Integral a, Integral a2) => ImlibUpdates -> a -> a1 -> a2 -> a3 -> IO ()
Files
- Graphics/Imlib.hs +217/−207
- Imlib.cabal +2/−3
Graphics/Imlib.hs view
@@ -154,7 +154,7 @@ polygonContainsPoint, imageDrawEllipse, imageFillEllipse, imageFilter, createFilter, freeFilter, filterSet, filterSetAlpha, filterSetRed, filterSetGreen, filterSetBlue, filterConstants, filterDivisors,- createImageUsingArray, withImageBits, withImage+ createImageUsingArray, withImageBits, withImage, colorFromBits, colorToBits ) where @@ -198,7 +198,7 @@ newtype ImlibFilter = ImlibFilter (Ptr ImlibFilter) newtype ImlibPolygon = ImlibPolygon (Ptr ImlibPolygon) -data ImlibBorder = ImlibBorder Int Int Int Int deriving (Show, Eq) -- left, right, top, bottom+data ImlibBorder = ImlibBorder CInt CInt CInt CInt deriving (Show, Eq) -- left, right, top, bottom instance Storable ImlibBorder where sizeOf _ = 16 alignment _ = 4@@ -258,11 +258,11 @@ type ImlibProgressFunction = ImlibImage -- image -> Word8 -- percent- -> Int -- update x- -> Int -- update y- -> Int -- update w- -> Int -- update h- -> IO Int -- return value (not sure what this means)+ -> CInt -- update x+ -> CInt -- update y+ -> CInt -- update w+ -> CInt -- update h+ -> IO CInt -- return value (not sure what this means) foreign import ccall "wrapper" mkProgressFunction :: ImlibProgressFunction -> IO (FunPtr ImlibProgressFunction) colorToBits :: ImlibColor -> Word32@@ -306,9 +306,9 @@ contextSetColorModifier = imlibContextSetColorModifier --void imlib_context_set_operation(Imlib_Operation operation);-foreign import ccall "static Imlib2.h imlib_context_set_operation" imlibContextSetOperation :: Int -> IO ()+foreign import ccall "static Imlib2.h imlib_context_set_operation" imlibContextSetOperation :: CInt -> IO () contextSetOperation :: ImlibOperation -> IO ()-contextSetOperation op = imlibContextSetOperation (fromEnum op)+contextSetOperation op = imlibContextSetOperation (fromIntegral $ fromEnum op) --void imlib_context_set_font(Imlib_Font font); foreign import ccall "static Imlib2.h imlib_context_set_font" imlibContextSetFont :: ImlibFont -> IO ()@@ -316,32 +316,32 @@ contextSetFont = imlibContextSetFont --void imlib_context_set_direction(Imlib_Text_Direction direction);-foreign import ccall "static Imlib2.h imlib_context_set_direction" imlibContextSetDirection :: Int -> IO ()+foreign import ccall "static Imlib2.h imlib_context_set_direction" imlibContextSetDirection :: CInt -> IO () contextSetDirection :: ImlibTextDirection -> IO ()-contextSetDirection dir = imlibContextSetDirection (fromEnum dir)+contextSetDirection dir = imlibContextSetDirection (fromIntegral $ fromEnum dir) --void imlib_context_set_angle(double angle);-foreign import ccall "static Imlib2.h imlib_context_set_angle" imlibContextSetAngle :: Double -> IO ()+foreign import ccall "static Imlib2.h imlib_context_set_angle" imlibContextSetAngle :: CDouble -> IO () contextSetAngle :: Double -> IO ()-contextSetAngle = imlibContextSetAngle+contextSetAngle = imlibContextSetAngle . realToFrac --void imlib_context_set_color(int red, int green, int blue, int alpha);-foreign import ccall "static Imlib2.h imlib_context_set_color" imlibContextSetColor :: Int -> Int -> Int -> Int -> IO ()+foreign import ccall "static Imlib2.h imlib_context_set_color" imlibContextSetColor :: CInt -> CInt -> CInt -> CInt -> IO () contextSetColor :: Int -> Int -> Int -> Int -> IO ()-contextSetColor = imlibContextSetColor+contextSetColor r g b a = imlibContextSetColor (fromIntegral r) (fromIntegral g) (fromIntegral b) (fromIntegral a) --void imlib_context_set_color_cmya(int cyan, magenta, int yellow, int alpha);-foreign import ccall "static Imlib2.h imlib_context_set_color_cmya" imlibContextSetColorCmya :: Int -> Int -> Int -> Int -> IO ()+foreign import ccall "static Imlib2.h imlib_context_set_color_cmya" imlibContextSetColorCmya :: CInt -> CInt -> CInt -> CInt -> IO () contextSetColorCmya :: Int -> Int -> Int -> Int -> IO ()-contextSetColorCmya = imlibContextSetColorCmya+contextSetColorCmya c m y a = imlibContextSetColorCmya (fromIntegral c) (fromIntegral m) (fromIntegral y) (fromIntegral a) --void imlib_context_set_color_hsva(float hue, float saturation, float value, int alpha);-foreign import ccall "static Imlib2.h imlib_context_set_color_hsva" imlibContextSetColorHsva :: Int -> Int -> Int -> Int -> IO ()-contextSetColorHsva = imlibContextSetColorHsva+foreign import ccall "static Imlib2.h imlib_context_set_color_hsva" imlibContextSetColorHsva :: CInt -> CInt -> CInt -> CInt -> IO ()+contextSetColorHsva h s v a = imlibContextSetColorHsva (fromIntegral h) (fromIntegral s) (fromIntegral v) (fromIntegral a) --void imlib_context_set_color_hlsa(float hue, float lightness, float saturation, int alpha);-foreign import ccall "static Imlib2.h imlib_context_set_color_hlsa" imlibContextSetColorHlsa :: Int -> Int -> Int -> Int -> IO ()-contextSetColorHlsa = imlibContextSetColorHlsa+foreign import ccall "static Imlib2.h imlib_context_set_color_hlsa" imlibContextSetColorHlsa :: CInt -> CInt -> CInt -> CInt -> IO ()+contextSetColorHlsa h l s a = imlibContextSetColorHlsa (fromIntegral h) (fromIntegral l) (fromIntegral s) (fromIntegral a) --void imlib_context_set_color_range(Imlib_Color_Range color_range); foreign import ccall "static Imlib2.h imlib_context_set_color_range" imlibContextSetColorRange :: ImlibColorRange -> IO ()@@ -395,11 +395,11 @@ contextGetColorModifier = imlibContextGetColorModifier -- Imlib_Operation imlib_context_get_operation(void);-foreign import ccall "static Imlib2.h imlib_context_get_operation" imlibContextGetOperation :: IO Int+foreign import ccall "static Imlib2.h imlib_context_get_operation" imlibContextGetOperation :: IO CInt contextGetOperation :: IO ImlibOperation contextGetOperation = do i <- imlibContextGetOperation- return (toEnum i)+ return (toEnum $ fromIntegral i) -- Imlib_Font imlib_context_get_font(void); foreign import ccall "static Imlib2.h imlib_context_get_font" imlibContextGetFont :: IO ImlibFont@@ -407,54 +407,54 @@ contextGetFont = imlibContextGetFont -- double imlib_context_get_angle(void);-foreign import ccall "static Imlib2.h imlib_context_get_angle" imlibContextGetAngle :: IO Double+foreign import ccall "static Imlib2.h imlib_context_get_angle" imlibContextGetAngle :: IO CDouble contextGetAngle :: IO Double-contextGetAngle = imlibContextGetAngle+contextGetAngle = imlibContextGetAngle >>= return . realToFrac -- Imlib_Text_Direction imlib_context_get_direction(void);-foreign import ccall "static Imlib2.h imlib_context_get_direction" imlibContextGetDirection :: IO Int+foreign import ccall "static Imlib2.h imlib_context_get_direction" imlibContextGetDirection :: IO CInt contextGetDirection :: IO ImlibTextDirection contextGetDirection = do d <- imlibContextGetDirection- return (toEnum d)+ return (toEnum $ fromIntegral d) -- void imlib_context_get_color(int *red, int *green, int *blue, int *alpha);-foreign import ccall "static Imlib2.h imlib_context_get_color" imlibContextGetColor :: Ptr Int -> Ptr Int -> Ptr Int -> Ptr Int -> IO ()+foreign import ccall "static Imlib2.h imlib_context_get_color" imlibContextGetColor :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO () contextGetColor :: IO (Int, Int, Int, Int) contextGetColor = do [r,g,b,a] <- nmalloc 4 imlibContextGetColor r g b a- [rr,gg,bb,aa] <- mapM peek [r,g,b,a]+ [rr,gg,bb,aa] <- liftM (map fromIntegral) $ mapM peek [r,g,b,a] mapM free [r,g,b,a] return (rr,gg,bb,aa) -- void imlib_context_get_color_cmya(int *cyan, int *magenta, int *yellow, int *alpha);-foreign import ccall "static Imlib2.h imlib_context_get_color_cmya" imlibContextGetColorCmya :: Ptr Int -> Ptr Int -> Ptr Int -> Ptr Int -> IO ()+foreign import ccall "static Imlib2.h imlib_context_get_color_cmya" imlibContextGetColorCmya :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO () contextGetColorCmya :: IO (Int, Int, Int, Int) contextGetColorCmya = do [c,m,y,a] <- nmalloc 4 imlibContextGetColorCmya c m y a- [cc,mm,yy,aa] <- mapM peek [c,m,y,a]+ [cc,mm,yy,aa] <- liftM (map fromIntegral) $ mapM peek [c,m,y,a] mapM free [c,m,y,a] return (cc,mm,yy,aa) -- void imlib_context_get_color_hsva(float *hue, float *saturation, float *value, int *alpha);-foreign import ccall "static Imlib2.h imlib_context_get_color_hsva" imlibContextGetColorHsva :: Ptr Int -> Ptr Int -> Ptr Int -> Ptr Int -> IO ()+foreign import ccall "static Imlib2.h imlib_context_get_color_hsva" imlibContextGetColorHsva :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO () contextGetColorHsva :: IO (Int, Int, Int, Int) contextGetColorHsva = do [h,s,v,a] <- nmalloc 4 imlibContextGetColorHsva h s v a- [hh,ss,vv,aa] <- mapM peek [h,s,v,a]+ [hh,ss,vv,aa] <- liftM (map fromIntegral) $ mapM peek [h,s,v,a] mapM free [h,s,v,a] return (hh,ss,vv,aa) -- void imlib_context_get_color_hlsa(float *hue, float * lightness, float *saturation, int *alpha);-foreign import ccall "static Imlib2.h imlib_context_get_color_hlsa" imlibContextGetColorHlsa :: Ptr Int -> Ptr Int -> Ptr Int -> Ptr Int -> IO ()+foreign import ccall "static Imlib2.h imlib_context_get_color_hlsa" imlibContextGetColorHlsa :: Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO () contextGetColorHlsa :: IO (Int, Int, Int, Int) contextGetColorHlsa = do [h,l,s,a] <- nmalloc 4 imlibContextGetColorHlsa h l s a- [hh,ll,ss,aa] <- mapM peek [h,l,s,a]+ [hh,ll,ss,aa] <- liftM (map fromIntegral) $ mapM peek [h,l,s,a] mapM free [h,l,s,a] return (hh,ll,ss,aa) @@ -492,9 +492,9 @@ contextGetFilter = imlibContextGetFilter -- int imlib_get_cache_size(void);-foreign import ccall "static Imlib2.h imlib_get_cache_size" imlibGetCacheSize :: IO Int+foreign import ccall "static Imlib2.h imlib_get_cache_size" imlibGetCacheSize :: IO CInt getCacheSize :: IO Int-getCacheSize = imlibGetCacheSize+getCacheSize = imlibGetCacheSize >>= return . fromIntegral -- void imlib_set_cache_size(int bytes); foreign import ccall "static Imlib2.h imlib_set_cache_size" imlibSetCacheSize :: Int -> IO ()@@ -502,14 +502,14 @@ setCacheSize = imlibSetCacheSize -- int imlib_get_color_usage(void);-foreign import ccall "static Imlib2.h imlib_get_color_usage" imlibGetColorUsage :: IO Int+foreign import ccall "static Imlib2.h imlib_get_color_usage" imlibGetColorUsage :: IO CInt getColorUsage :: IO Int-getColorUsage = imlibGetColorUsage+getColorUsage = imlibGetColorUsage >>= return . fromIntegral -- void imlib_set_color_usage(int max);-foreign import ccall "static Imlib2.h imlib_set_color_usage" imlibSetColorUsage :: Int -> IO ()+foreign import ccall "static Imlib2.h imlib_set_color_usage" imlibSetColorUsage :: CInt -> IO () setColorUsage :: Int -> IO ()-setColorUsage = imlibSetColorUsage+setColorUsage = imlibSetColorUsage . fromIntegral -- void imlib_flush_loaders(void); foreign import ccall "static Imlib2.h imlib_flush_loaders" imlibFlushLoaders :: IO ()@@ -536,14 +536,14 @@ loadImageImmediatelyWithoutCache str = withCString str imlibLoadImageImmediatelyWithoutCache --Imlib_Image imlib_load_image_with_error_return(const char *file, Imlib_Load_Error *error_return);-foreign import ccall "static Imlib2.h imlib_load_image_with_error_return" imlibLoadImageWithErrorReturn :: CString -> Ptr Int -> IO ImlibImage+foreign import ccall "static Imlib2.h imlib_load_image_with_error_return" imlibLoadImageWithErrorReturn :: CString -> Ptr CInt -> IO ImlibImage loadImageWithErrorReturn :: String -> IO (ImlibImage, ImlibLoadError) loadImageWithErrorReturn str = do pe <- malloc im <- withCString str (\s -> imlibLoadImageWithErrorReturn s pe) e <- peek pe free pe- return (im, toEnum e)+ return (im, toEnum $ fromIntegral e) --void imlib_free_image(void); foreign import ccall "static Imlib2.h imlib_free_image" imlibFreeImage :: IO ()@@ -556,14 +556,14 @@ freeImageAndDecache = imlibFreeImageAndDecache --int imlib_image_get_width(void);-foreign import ccall "static Imlib2.h imlib_image_get_width" imlibImageGetWidth :: IO Int+foreign import ccall "static Imlib2.h imlib_image_get_width" imlibImageGetWidth :: IO CInt imageGetWidth :: IO Int-imageGetWidth = imlibImageGetWidth+imageGetWidth = imlibImageGetWidth >>= return . fromIntegral --int imlib_image_get_height(void);-foreign import ccall "static Imlib2.h imlib_image_get_height" imlibImageGetHeight :: IO Int+foreign import ccall "static Imlib2.h imlib_image_get_height" imlibImageGetHeight :: IO CInt imageGetHeight :: IO Int-imageGetHeight = imlibImageGetHeight+imageGetHeight = imlibImageGetHeight >>= return . fromIntegral --const char *imlib_image_get_filename(void); foreign import ccall "static Imlib2.h imlib_image_get_filename" imlibImageGetFilename :: IO CString@@ -683,30 +683,30 @@ foreign import ccall "static Imlib2.h imlib_blend_image_onto_image" imlibBlendImageOntoImage :: ImlibImage -> Bool -- merge alpha- -> Int -- source x- -> Int -- source y- -> Int -- source width- -> Int -- source height- -> Int -- dest x- -> Int -- dest y- -> Int -- dest width- -> Int -- dest height+ -> CInt -- source x+ -> CInt -- source y+ -> CInt -- source width+ -> CInt -- source height+ -> CInt -- dest x+ -> CInt -- dest y+ -> CInt -- dest width+ -> CInt -- dest height -> IO ()-blendImageOntoImage mergeAlpha (sx, sy, sw, sh) (dx, dy, dw, dh) = imlibBlendImageOntoImage mergeAlpha sx sy sw sh dx dy dw dh+blendImageOntoImage img mergeAlpha (sx, sy, sw, sh) (dx, dy, dw, dh) = imlibBlendImageOntoImage img mergeAlpha (fromIntegral sx) (fromIntegral sy) (fromIntegral sw) (fromIntegral sh) (fromIntegral dx) (fromIntegral dy) (fromIntegral dw) (fromIntegral dh) --Imlib_Image imlib_create_image(int width, int height);-foreign import ccall "static Imlib2.h imlib_create_image" imlibCreateImage :: Int -> Int -> IO ImlibImage+foreign import ccall "static Imlib2.h imlib_create_image" imlibCreateImage :: CInt -> CInt -> IO ImlibImage createImage :: Int -> Int -> IO ImlibImage-createImage = imlibCreateImage+createImage w h = imlibCreateImage (fromIntegral w) (fromIntegral h) --Imlib_Image imlib_create_image_using_data(int width, int height, DATA32 *data);-foreign import ccall "static Imlib2.h imlib_create_image_using_data" imlibCreateImageUsingData :: Int -> Int -> Ptr Word32 -> IO ImlibImage+foreign import ccall "static Imlib2.h imlib_create_image_using_data" imlibCreateImageUsingData :: CInt -> CInt -> Ptr Word32 -> IO ImlibImage createImageUsingData :: Int -> Int -> Ptr Word32 -> IO ImlibImage-createImageUsingData = imlibCreateImageUsingData+createImageUsingData w h ptr = imlibCreateImageUsingData (fromIntegral w) (fromIntegral h) ptr --Imlib_Image imlib_create_image_using_copied_data(int width, int height, DATA32 *data);-foreign import ccall "static Imlib2.h imlib_create_image_using_copied_data" imlibCreateImageUsingCopiedData :: Int -> Int -> Ptr(Word32) -> IO ImlibImage-createImageUsingCopiedData = imlibCreateImageUsingCopiedData+foreign import ccall "static Imlib2.h imlib_create_image_using_copied_data" imlibCreateImageUsingCopiedData :: CInt -> CInt -> Ptr(Word32) -> IO ImlibImage+createImageUsingCopiedData w h ptr = imlibCreateImageUsingCopiedData (fromIntegral w) (fromIntegral h) ptr createImageUsingList :: Int -> Int -> [ImlibColor] -> IO ImlibImage createImageUsingList w h xs = withArray (map colorToBits xs) (createImageUsingCopiedData w h)@@ -721,12 +721,12 @@ cloneImage = imlibCloneImage --Imlib_Image imlib_create_cropped_image(int x, int y, int width, int height);-foreign import ccall "static Imlib2.h imlib_create_cropped_image" imlibCreateCroppedImage :: Int -> Int -> Int -> Int -> IO ImlibImage-createCroppedImage = imlibCreateCroppedImage+foreign import ccall "static Imlib2.h imlib_create_cropped_image" imlibCreateCroppedImage :: CInt -> CInt -> CInt -> CInt -> IO ImlibImage+createCroppedImage x y w h = imlibCreateCroppedImage (fromIntegral x) (fromIntegral y) (fromIntegral w) (fromIntegral h) --Imlib_Image imlib_create_cropped_scaled_image(int source_x, int source_y, int source_width, int source_height, int destination_width, int destination_height);-foreign import ccall "static Imlib2.h imlib_create_cropped_scaled_image" imlibCreateCroppedScaledImage :: Int -> Int -> Int -> Int -> Int -> Int -> IO ImlibImage-createCroppedScaledImage = imlibCreateCroppedScaledImage+foreign import ccall "static Imlib2.h imlib_create_cropped_scaled_image" imlibCreateCroppedScaledImage :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> IO ImlibImage+createCroppedScaledImage sx sy sw sh dw dh = imlibCreateCroppedScaledImage (fromIntegral sx) (fromIntegral sy) (fromIntegral sw) (fromIntegral sh) (fromIntegral dw) (fromIntegral dh) --Imlib_Updates imlib_updates_clone(Imlib_Updates updates); foreign import ccall "static Imlib2.h imlib_updates_clone" imlibUpdatesClone :: ImlibUpdates -> IO ImlibUpdates@@ -734,16 +734,16 @@ updatesClone = imlibUpdatesClone --Imlib_Updates imlib_update_append_rect(Imlib_Updates updates, int x, int y, int w, int h);-foreign import ccall "static Imlib2.h imlib_update_append_rect" imlibUpdateAppendRect :: ImlibUpdates -> Int -> Int -> Int -> Int -> IO ImlibUpdates-updateAppendRect = imlibUpdateAppendRect+foreign import ccall "static Imlib2.h imlib_update_append_rect" imlibUpdateAppendRect :: ImlibUpdates -> CInt -> CInt -> CInt -> CInt -> IO ImlibUpdates+updateAppendRect u x y w h = imlibUpdateAppendRect u (fromIntegral x) (fromIntegral y) (fromIntegral w) (fromIntegral h) --Imlib_Updates imlib_updates_merge(Imlib_Updates updates, int w, int h);-foreign import ccall "static Imlib2.h imlib_updates_merge" imlibUpdatesMerge :: ImlibUpdates -> Int -> Int -> IO ImlibUpdates-updatesMerge = imlibUpdatesMerge+foreign import ccall "static Imlib2.h imlib_updates_merge" imlibUpdatesMerge :: ImlibUpdates -> CInt -> CInt -> IO ImlibUpdates+updatesMerge u w h = imlibUpdatesMerge u (fromIntegral w) (fromIntegral h) --Imlib_Updates imlib_updates_merge_for_rendering(Imlib_Updates updates, int w, int h);-foreign import ccall "static Imlib2.h imlib_updates_merge_for_rendering" imlibUpdatesMergeForRendering :: ImlibUpdates -> Int -> Int -> IO ImlibUpdates-updatesMergeForRendering = imlibUpdatesMergeForRendering+foreign import ccall "static Imlib2.h imlib_updates_merge_for_rendering" imlibUpdatesMergeForRendering :: ImlibUpdates -> CInt -> CInt -> IO ImlibUpdates+updatesMergeForRendering u w h = imlibUpdatesMergeForRendering u (fromIntegral w) (fromIntegral h) --void imlib_updates_free(Imlib_Updates updates); foreign import ccall "static Imlib2.h imlib_updates_free" imlibUpdatesFree :: ImlibUpdates -> IO ()@@ -756,18 +756,18 @@ updatesGetNext = imlibUpdatesGetNext --void imlib_updates_get_coordinates(Imlib_Updates updates, int *x_return, int *y_return, int *width_return, int *height_return);-foreign import ccall "static Imlib2.h imlib_updates_get_coordinates" imlibUpdatesGetCoordinates :: ImlibUpdates -> Ptr Int -> Ptr Int -> Ptr Int -> Ptr Int -> IO ()+foreign import ccall "static Imlib2.h imlib_updates_get_coordinates" imlibUpdatesGetCoordinates :: ImlibUpdates -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO () updatesGetCoordinates :: ImlibUpdates -> IO (Int, Int, Int, Int) updatesGetCoordinates u = do [x,y,w,h] <- nmalloc 4 imlibUpdatesGetCoordinates u x y w h- [xx,yy,ww,hh] <- mapM peek [x,y,w,h]+ [xx,yy,ww,hh] <- liftM (map fromIntegral) $ mapM peek [x,y,w,h] mapM free [x,y,w,h] return (xx,yy,ww,hh) --void imlib_updates_set_coordinates(Imlib_Updates updates, int x, int y, int width, int height);-foreign import ccall "static Imlib2.h imlib_updates_set_coordinates" imlibUpdatesSetCoordinates :: ImlibUpdates -> Int -> Int -> Int -> Int -> IO ()-updatesSetCoordinates = imlibUpdatesSetCoordinates+foreign import ccall "static Imlib2.h imlib_updates_set_coordinates" imlibUpdatesSetCoordinates :: ImlibUpdates -> CInt -> CInt -> CInt -> CInt -> IO ()+updatesSetCoordinates u x y w h = imlibUpdatesSetCoordinates u (fromIntegral x) (fromIntegral y) (fromIntegral w) (fromIntegral h) --Imlib_Updates imlib_updates_init(void); foreign import ccall "static Imlib2.h imlib_updates_init" imlibUpdatesInit :: IO ImlibUpdates@@ -794,19 +794,19 @@ imageFlipDiagonal = imlibImageFlipDiagonal --void imlib_image_orientate(int orientation);-foreign import ccall "static Imlib2.h imlib_image_orientate" imlibImageOrientate :: Int -> IO ()+foreign import ccall "static Imlib2.h imlib_image_orientate" imlibImageOrientate :: CInt -> IO () imageOrientate :: Int -> IO ()-imageOrientate = imlibImageOrientate+imageOrientate = imlibImageOrientate . fromIntegral --void imlib_image_blur(int radius);-foreign import ccall "static Imlib2.h imlib_image_blur" imlibImageBlur :: Int -> IO ()+foreign import ccall "static Imlib2.h imlib_image_blur" imlibImageBlur :: CInt -> IO () imageBlur :: Int -> IO ()-imageBlur = imlibImageBlur+imageBlur = imlibImageBlur . fromIntegral --void imlib_image_sharpen(int radius);-foreign import ccall "static Imlib2.h imlib_image_sharpen" imlibImageSharpen :: Int -> IO ()+foreign import ccall "static Imlib2.h imlib_image_sharpen" imlibImageSharpen :: CInt -> IO () imageSharpen :: Int -> IO ()-imageSharpen = imlibImageSharpen+imageSharpen = imlibImageSharpen . fromIntegral --void imlib_image_tile_horizontal(void); foreign import ccall "static Imlib2.h imlib_image_tile_horizontal" imlibImageTileHorizontal :: IO ()@@ -835,43 +835,43 @@ --void imlib_text_draw(int x, int y, const char *text);-foreign import ccall "static Imlib2.h imlib_text_draw" imlibTextDraw :: Int -> Int -> CString -> IO ()+foreign import ccall "static Imlib2.h imlib_text_draw" imlibTextDraw :: CInt -> CInt -> CString -> IO () textDraw :: Int -> Int -> String -> IO ()-textDraw x y str = withCString str (imlibTextDraw x y)+textDraw x y str = withCString str (imlibTextDraw (fromIntegral x) (fromIntegral y)) --void imlib_text_draw_with_return_metrics(int x, int y, const char *text, int *width_return, int *height_return, int *horizontal_advance_return, int *vertical_advance_return);-foreign import ccall "static Imlib2.h imlib_text_draw_with_return_metrics" imlibTextDrawWithReturnMetrics :: Int -> Int -> CString -> Ptr Int -> Ptr Int -> Ptr Int -> Ptr Int -> IO ()+foreign import ccall "static Imlib2.h imlib_text_draw_with_return_metrics" imlibTextDrawWithReturnMetrics :: CInt -> CInt -> CString -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO () textDrawWithReturnMetrics x y str = do [w,h,ah,av] <- nmalloc 4- withCString str (\s -> imlibTextDrawWithReturnMetrics x y s w h ah av)- [rw,rh,rah,rav] <- mapM peek [w,h,ah,av]+ withCString str (\s -> imlibTextDrawWithReturnMetrics (fromIntegral x) (fromIntegral y) s w h ah av)+ [rw,rh,rah,rav] <- liftM (map fromIntegral) $ mapM peek [w,h,ah,av] mapM free [w,h,ah,av] return (rw,rh,rah,rav) --void imlib_get_text_size(const char *text, int *width_return, int *height_return);-foreign import ccall "static Imlib2.h imlib_get_text_size" imlibGetTextSize :: CString -> Ptr Int -> Ptr Int -> IO ()+foreign import ccall "static Imlib2.h imlib_get_text_size" imlibGetTextSize :: CString -> Ptr CInt -> Ptr CInt -> IO () getTextSize :: String -> IO (Int, Int) getTextSize str = do- [w,h] <- nmalloc 4+ [w,h] <- nmalloc 2 withCString str (\s -> imlibGetTextSize s w h) [rw,rh] <- mapM peek [w,h] mapM free [w,h]- return (rw,rh)+ return (fromIntegral rw,fromIntegral rh) --void imlib_get_text_advance(const char *text, int *horizontal_advance_return, int *vertical_advance_return);-foreign import ccall "static Imlib2.h imlib_get_text_advance" imlibGetTextAdvance :: CString -> Ptr Int -> Ptr Int -> IO ()+foreign import ccall "static Imlib2.h imlib_get_text_advance" imlibGetTextAdvance :: CString -> Ptr CInt -> Ptr CInt -> IO () getTextAdvance :: String -> IO (Int, Int) getTextAdvance str = do- [h,v] <- nmalloc 4+ [h,v] <- nmalloc 2 withCString str (\s -> imlibGetTextAdvance s h v) [rh,rv] <- mapM peek [h,v] mapM free [h,v]- return (rh,rv)+ return (fromIntegral rh,fromIntegral rv) --int imlib_get_text_inset(const char *text);-foreign import ccall "static Imlib2.h imlib_get_text_inset" imlibGetTextInset :: CString -> IO Int+foreign import ccall "static Imlib2.h imlib_get_text_inset" imlibGetTextInset :: CString -> IO CInt getTextInset :: String -> IO Int-getTextInset str = withCString str imlibGetTextInset+getTextInset str = withCString str $ liftM fromIntegral . imlibGetTextInset --void imlib_add_path_to_font_path(const char *path); foreign import ccall "static Imlib2.h imlib_add_path_to_font_path" imlibAddPathToFontPath :: CString -> IO ()@@ -884,60 +884,60 @@ removePathFromFontPath str = withCString str imlibRemovePathFromFontPath --char **imlib_list_font_path(int *number_return);-foreign import ccall "static Imlib2.h imlib_list_font_path" imlibListFontPath :: Ptr Int -> IO (Ptr CString)+foreign import ccall "static Imlib2.h imlib_list_font_path" imlibListFontPath :: Ptr CInt -> IO (Ptr CString) listFontPath :: IO [String] listFontPath = do pn <- malloc pxs <- imlibListFontPath pn n <- peek pn free pn- xs <- peekArray n pxs+ xs <- peekArray (fromIntegral n) pxs ys <- mapM peekCString xs return ys --int imlib_text_get_index_and_location(const char *text, int x, int y, int *char_x_return, int *char_y_return, int *char_width_return, int *char_height_return);-foreign import ccall "static Imlib2.h imlib_text_get_index_and_location" imlibTextGetIndexAndLocation :: CString -> Int -> Int -> Ptr Int -> Ptr Int -> Ptr Int -> Ptr Int -> IO Int+foreign import ccall "static Imlib2.h imlib_text_get_index_and_location" imlibTextGetIndexAndLocation :: CString -> CInt -> CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO CInt textGetIndexAndLocation str x y = do [xp,yp,wp,hp] <- nmalloc 4 n <- withCString str (\s -> imlibTextGetIndexAndLocation s x y xp yp wp hp) [xr,yr,wr,hr] <- mapM peek [xp,yp,wp,hp] mapM free [xp,yp,wp,hp]- return (n,xr,yr,wr,hr)+ return (fromIntegral n, fromIntegral xr, fromIntegral yr, fromIntegral wr, fromIntegral hr) --void imlib_text_get_location_at_index(const char *text, int index, int *char_x_return, int *char_y_return, int *char_width_return, int *char_height_return);-foreign import ccall "static Imlib2.h imlib_text_get_location_at_index" imlibTextGetLocationAtIndex :: CString -> Int -> Ptr Int -> Ptr Int -> Ptr Int -> Ptr Int -> IO ()+foreign import ccall "static Imlib2.h imlib_text_get_location_at_index" imlibTextGetLocationAtIndex :: CString -> CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO () textGetLocationAtIndex str k = do [xp,yp,wp,hp] <- nmalloc 4 withCString str (\s -> imlibTextGetLocationAtIndex s k xp yp wp hp) [xr,yr,wr,hr] <- mapM peek [xp,yp,wp,hp] mapM free [xp,yp,wp,hp]- return (xr,yr,wr,hr)+ return (fromIntegral xr, fromIntegral yr, fromIntegral wr, fromIntegral hr) --char **imlib_list_fonts(int *number_return); --void imlib_free_font_list(char **font_list, int number);-foreign import ccall "static Imlib2.h imlib_list_fonts" imlibListFonts :: Ptr Int -> IO (Ptr CString)-foreign import ccall "static Imlib2.h imlib_free_font_list" imlibFreeFontList :: Ptr (CString) -> Int -> IO ()+foreign import ccall "static Imlib2.h imlib_list_fonts" imlibListFonts :: Ptr CInt -> IO (Ptr CString)+foreign import ccall "static Imlib2.h imlib_free_font_list" imlibFreeFontList :: Ptr (CString) -> CInt -> IO () listFonts :: IO [String] listFonts = do pn <- malloc pxs <- imlibListFonts pn n <- peek pn free pn- xs <- peekArray n pxs+ xs <- peekArray (fromIntegral n) pxs ys <- mapM peekCString xs imlibFreeFontList pxs n return ys --int imlib_get_font_cache_size(void);-foreign import ccall "static Imlib2.h imlib_get_font_cache_size" imlibGetFontCacheSize :: IO Int+foreign import ccall "static Imlib2.h imlib_get_font_cache_size" imlibGetFontCacheSize :: IO CInt getFontCacheSize :: IO Int-getFontCacheSize = imlibGetFontCacheSize+getFontCacheSize = liftM fromIntegral imlibGetFontCacheSize --void imlib_set_font_cache_size(int bytes);-foreign import ccall "static Imlib2.h imlib_set_font_cache_size" imlibSetFontCacheSize :: Int -> IO ()+foreign import ccall "static Imlib2.h imlib_set_font_cache_size" imlibSetFontCacheSize :: CInt -> IO () setFontCacheSize :: Int -> IO ()-setFontCacheSize = imlibSetFontCacheSize+setFontCacheSize = imlibSetFontCacheSize . fromIntegral --void imlib_flush_font_cache(void); foreign import ccall "static Imlib2.h imlib_flush_font_cache" imlibFlushFontCache :: IO ()@@ -945,24 +945,24 @@ flushFontCache = imlibFlushFontCache --int imlib_get_font_ascent(void);-foreign import ccall "static Imlib2.h imlib_get_font_ascent" imlibGetFontAscent :: IO Int+foreign import ccall "static Imlib2.h imlib_get_font_ascent" imlibGetFontAscent :: IO CInt getFontAscent :: IO Int-getFontAscent = imlibGetFontAscent+getFontAscent = liftM fromIntegral imlibGetFontAscent --int imlib_get_font_descent(void);-foreign import ccall "static Imlib2.h imlib_get_font_descent" imlibGetFontDescent :: IO Int+foreign import ccall "static Imlib2.h imlib_get_font_descent" imlibGetFontDescent :: IO CInt getFontDescent :: IO Int-getFontDescent = imlibGetFontDescent+getFontDescent = liftM fromIntegral imlibGetFontDescent --int imlib_get_maximum_font_ascent(void);-foreign import ccall "static Imlib2.h imlib_get_maximum_font_ascent" imlibGetMaximumFontAscent :: IO Int+foreign import ccall "static Imlib2.h imlib_get_maximum_font_ascent" imlibGetMaximumFontAscent :: IO CInt getMaximumFontAscent :: IO Int-getMaximumFontAscent = imlibGetMaximumFontAscent+getMaximumFontAscent = liftM fromIntegral imlibGetMaximumFontAscent --int imlib_get_maximum_font_descent(void);-foreign import ccall "static Imlib2.h imlib_get_maximum_font_descent" imlibGetMaximumFontDescent :: IO Int+foreign import ccall "static Imlib2.h imlib_get_maximum_font_descent" imlibGetMaximumFontDescent :: IO CInt getMaximumFontDescent :: IO Int-getMaximumFontDescent = imlibGetMaximumFontDescent+getMaximumFontDescent = liftM fromIntegral imlibGetMaximumFontDescent --Imlib_Color_Modifier imlib_create_color_modifier(void); foreign import ccall "static Imlib2.h imlib_create_color_modifier" imlibCreateColorModifier :: IO ImlibColorModifier@@ -975,19 +975,19 @@ freeColorModifier = imlibFreeColorModifier --void imlib_modify_color_modifier_gamma(double gamma_value);-foreign import ccall "static Imlib2.h imlib_modify_color_modifier_gamma" imlibModifyColorModifierGamma :: Double -> IO ()+foreign import ccall "static Imlib2.h imlib_modify_color_modifier_gamma" imlibModifyColorModifierGamma :: CDouble -> IO () modifyColorModifierGamma :: Double -> IO ()-modifyColorModifierGamma = imlibModifyColorModifierGamma+modifyColorModifierGamma = imlibModifyColorModifierGamma . fromRational . toRational --void imlib_modify_color_modifier_brightness(double brightness_value);-foreign import ccall "static Imlib2.h imlib_modify_color_modifier_brightness" imlibModifyColorModifierBrightness :: Double -> IO ()+foreign import ccall "static Imlib2.h imlib_modify_color_modifier_brightness" imlibModifyColorModifierBrightness :: CDouble -> IO () modifyColorModifierBrightness :: Double -> IO ()-modifyColorModifierBrightness = imlibModifyColorModifierBrightness+modifyColorModifierBrightness = imlibModifyColorModifierBrightness . fromRational . toRational --void imlib_modify_color_modifier_contrast(double contrast_value);-foreign import ccall "static Imlib2.h imlib_modify_color_modifier_contrast" imlibModifyColorModifierContrast :: Double -> IO ()+foreign import ccall "static Imlib2.h imlib_modify_color_modifier_contrast" imlibModifyColorModifierContrast :: CDouble -> IO () modifyColorModifierContrast :: Double -> IO ()-modifyColorModifierContrast = imlibModifyColorModifierContrast+modifyColorModifierContrast = imlibModifyColorModifierContrast . fromRational . toRational --void imlib_set_color_modifier_tables(DATA8 *red_table, DATA8 *green_table, DATA8 *blue_table, DATA8 *alpha_table); foreign import ccall "static Imlib2.h imlib_set_color_modifier_tables" imlibSetColorModifierTables :: (Ptr Word8) -> (Ptr Word8) -> (Ptr Word8) -> (Ptr Word8) -> IO ()@@ -1026,36 +1026,46 @@ applyColorModifier = imlibApplyColorModifier --void imlib_apply_color_modifier_to_rectangle(int x, int y, int width, int height);-foreign import ccall "static Imlib2.h imlib_apply_color_modifier_to_rectangle" imlibApplyColorModifierToRectangle :: Int -> Int -> Int -> Int -> IO ()-applyColorModifierToRectangle = imlibApplyColorModifierToRectangle+foreign import ccall "static Imlib2.h imlib_apply_color_modifier_to_rectangle" imlibApplyColorModifierToRectangle :: CInt -> CInt -> CInt -> CInt -> IO ()+applyColorModifierToRectangle :: Int -> Int -> Int -> Int -> IO ()+applyColorModifierToRectangle x y w h = do+ imlibApplyColorModifierToRectangle (fromIntegral x) (fromIntegral x) (fromIntegral w) (fromIntegral h) --Imlib_Updates imlib_image_draw_line(int x1, int y1, int x2, int y2, char make_updates);-foreign import ccall "static Imlib2.h imlib_image_draw_line" imlibImageDrawLine :: Int -> Int -> Int -> Int -> Bool -> IO ImlibUpdates-imageDrawLine = imlibImageDrawLine+foreign import ccall "static Imlib2.h imlib_image_draw_line" imlibImageDrawLine :: CInt -> CInt -> CInt -> CInt -> Bool -> IO ImlibUpdates+imageDrawLine :: Int -> Int -> Int -> Int -> Bool -> IO ImlibUpdates+imageDrawLine x1 y1 x2 y2 mu = do+ imlibImageDrawLine (fromIntegral x1) (fromIntegral y1) (fromIntegral x2) (fromIntegral y2) mu --void imlib_image_draw_rectangle(int x, int y, int width, int height);-foreign import ccall "static Imlib2.h imlib_image_draw_rectangle" imlibImageDrawRectangle :: Int -> Int -> Int -> Int -> IO ()-imageDrawRectangle = imlibImageDrawRectangle+foreign import ccall "static Imlib2.h imlib_image_draw_rectangle" imlibImageDrawRectangle :: CInt -> CInt -> CInt -> CInt -> IO ()+imageDrawRectangle :: Int -> Int -> Int -> Int -> IO ()+imageDrawRectangle x y w h = do+ imlibImageDrawRectangle (fromIntegral x) (fromIntegral y) (fromIntegral w) (fromIntegral h) --void imlib_image_fill_rectangle(int x, int y, int width, int height);-foreign import ccall "static Imlib2.h imlib_image_fill_rectangle" imlibImageFillRectangle :: Int -> Int -> Int -> Int -> IO ()-imageFillRectangle = imlibImageFillRectangle+foreign import ccall "static Imlib2.h imlib_image_fill_rectangle" imlibImageFillRectangle :: CInt -> CInt -> CInt -> CInt -> IO ()+imageFillRectangle :: Int -> Int -> Int -> Int -> IO ()+imageFillRectangle x y w h = do+ imlibImageFillRectangle (fromIntegral x) (fromIntegral y) (fromIntegral w) (fromIntegral h) --void imlib_image_copy_alpha_to_image(Imlib_Image image_source, int x, int y);-foreign import ccall "static Imlib2.h imlib_image_copy_alpha_to_image" imlibImageCopyAlphaToImage :: ImlibImage -> Int -> Int -> IO ()-imageCopyAlphaToImage = imlibImageCopyAlphaToImage+foreign import ccall "static Imlib2.h imlib_image_copy_alpha_to_image" imlibImageCopyAlphaToImage :: ImlibImage -> CInt -> CInt -> IO ()+imageCopyAlphaToImage :: ImlibImage -> Int -> Int -> IO ()+imageCopyAlphaToImage im x y = do+ imlibImageCopyAlphaToImage im (fromIntegral x) (fromIntegral y) --void imlib_image_copy_alpha_rectangle_to_image(Imlib_Image image_source, int x, int y, int width, int height, int destination_x, int destination_y);-foreign import ccall "static Imlib2.h imlib_image_copy_alpha_rectangle_to_image" imlibImageCopyAlphaRectangleToImage :: ImlibImage -> Int -> Int -> Int -> Int -> Int -> Int -> IO ()-imageCopyAlphaRectangleToImage = imlibImageCopyAlphaRectangleToImage+foreign import ccall "static Imlib2.h imlib_image_copy_alpha_rectangle_to_image" imlibImageCopyAlphaRectangleToImage :: ImlibImage -> CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> IO ()+imageCopyAlphaRectangleToImage img x y w h dx dy = imlibImageCopyAlphaRectangleToImage img (fromIntegral x) (fromIntegral y) (fromIntegral w) (fromIntegral h) (fromIntegral dx) (fromIntegral dy) --void imlib_image_scroll_rect(int x, int y, int width, int height, int delta_x, int delta_y);-foreign import ccall "static Imlib2.h imlib_image_scroll_rect" imlibImageScrollRect :: Int -> Int -> Int -> Int -> Int -> Int -> IO ()-imageScrollRect = imlibImageScrollRect+foreign import ccall "static Imlib2.h imlib_image_scroll_rect" imlibImageScrollRect :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> IO ()+imageScrollRect x y w h dx dy = imlibImageScrollRect (fromIntegral x) (fromIntegral y) (fromIntegral w) (fromIntegral h) (fromIntegral dx) (fromIntegral dy) --void imlib_image_copy_rect(int x, int y, int width, int height, int new_x, int new_y);-foreign import ccall "static Imlib2.h imlib_image_copy_rect" imlibImageCopyRect :: Int -> Int -> Int -> Int -> Int -> Int -> IO ()-imageCopyRect = imlibImageCopyRect+foreign import ccall "static Imlib2.h imlib_image_copy_rect" imlibImageCopyRect :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> IO ()+imageCopyRect x y w h dx dy = imlibImageCopyRect (fromIntegral x) (fromIntegral y) (fromIntegral w) (fromIntegral h) (fromIntegral dx) (fromIntegral dy) --Imlib_Color_Range imlib_create_color_range(void); foreign import ccall "static Imlib2.h imlib_create_color_range" imlibCreateColorRange :: IO ImlibColorRange@@ -1068,55 +1078,55 @@ freeColorRange = imlibFreeColorRange --void imlib_add_color_to_color_range(int distance_away);-foreign import ccall "static Imlib2.h imlib_add_color_to_color_range" imlibAddColorToColorRange :: Int -> IO ()+foreign import ccall "static Imlib2.h imlib_add_color_to_color_range" imlibAddColorToColorRange :: CInt -> IO () addColorToColorRange :: Int -> IO ()-addColorToColorRange = imlibAddColorToColorRange+addColorToColorRange = imlibAddColorToColorRange . fromIntegral --void imlib_image_fill_color_range_rectangle(int x, int y, int width, int height, double angle);-foreign import ccall "static Imlib2.h imlib_image_fill_color_range_rectangle" imlibImageFillColorRangeRectangle :: Int -> Int -> Int -> Int -> Double -> IO ()-imageFillColorRangeRectangle = imlibImageFillColorRangeRectangle+foreign import ccall "static Imlib2.h imlib_image_fill_color_range_rectangle" imlibImageFillColorRangeRectangle :: CInt -> CInt -> CInt -> CInt -> CDouble -> IO ()+imageFillColorRangeRectangle x y w h a = imlibImageFillColorRangeRectangle (fromIntegral x) (fromIntegral y) (fromIntegral w) (fromIntegral h) (realToFrac a) --void imlib_image_fill_hsva_color_range_rectangle(int x, int y, int width, int height, double angle);-foreign import ccall "static Imlib2.h imlib_image_fill_hsva_color_range_rectangle" imlibImageFillHsvaColorRangeRectangle :: Int -> Int -> Int -> Int -> Double -> IO ()-imageFillHsvaColorRangeRectangle = imlibImageFillHsvaColorRangeRectangle+foreign import ccall "static Imlib2.h imlib_image_fill_hsva_color_range_rectangle" imlibImageFillHsvaColorRangeRectangle :: CInt -> CInt -> CInt -> CInt -> CDouble -> IO ()+imageFillHsvaColorRangeRectangle x y w h a = imlibImageFillHsvaColorRangeRectangle (fromIntegral x) (fromIntegral y) (fromIntegral w) (fromIntegral h) (realToFrac a) --void imlib_image_query_pixel(int x, int y, Imlib_Color *color_return);-foreign import ccall "static Imlib2.h imlib_image_query_pixel" imlibImageQueryPixel :: Int -> Int -> Ptr ImlibColor -> IO ()+foreign import ccall "static Imlib2.h imlib_image_query_pixel" imlibImageQueryPixel :: CInt -> CInt -> Ptr ImlibColor -> IO () imageQueryPixel :: Int -> Int -> IO ImlibColor imageQueryPixel x y = do c <- malloc- imlibImageQueryPixel x y c+ imlibImageQueryPixel (fromIntegral x) (fromIntegral y) c r <- peek c free c return r --void imlib_image_query_pixel_cmya(int x, int y, int *cyan, int *magenta, int *yellow, int *alpha);-foreign import ccall "static Imlib2.h imlib_image_query_pixel_cmya" imlibImageQueryPixelCmya :: Int -> Int -> Ptr Int -> Ptr Int -> Ptr Int -> Ptr Int -> IO ()+foreign import ccall "static Imlib2.h imlib_image_query_pixel_cmya" imlibImageQueryPixelCmya :: CInt -> CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO () imageQueryPixelCmya :: Int -> Int -> IO (Int, Int, Int, Int) imageQueryPixelCmya cx cy = do [c,m,y,a] <- nmalloc 4- imlibImageQueryPixelCmya cx cy c m y a- [cc,mm,yy,aa] <- mapM peek [c,m,y,a]+ imlibImageQueryPixelCmya (fromIntegral cx) (fromIntegral cy) c m y a+ [cc,mm,yy,aa] <- liftM (map fromIntegral) $ mapM peek [c,m,y,a] mapM free [c,m,y,a] return (cc,mm,yy,aa) --void imlib_image_query_pixel_hsva(int x, int y, float *hue, float *saturation, float *value, int *alpha);-foreign import ccall "static Imlib2.h imlib_image_query_pixel_hsva" imlibImageQueryPixelHsva :: Int -> Int -> Ptr Int -> Ptr Int -> Ptr Int -> Ptr Int -> IO ()+foreign import ccall "static Imlib2.h imlib_image_query_pixel_hsva" imlibImageQueryPixelHsva :: CInt -> CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO () imageQueryPixelHsva :: Int -> Int -> IO (Int, Int, Int, Int) imageQueryPixelHsva cx cy = do [h,s,v,a] <- nmalloc 4- imlibImageQueryPixelHsva cx cy h s v a- [hh,ss,vv,aa] <- mapM peek [h,s,v,a]+ imlibImageQueryPixelHsva (fromIntegral cx) (fromIntegral cy) h s v a+ [hh,ss,vv,aa] <- liftM (map fromIntegral) $ mapM peek [h,s,v,a] mapM free [h,s,v,a] return (hh,ss,vv,aa) --void imlib_image_query_pixel_hlsa(int x, int y, float *hue, float *lightness, float *saturation, int *alpha);-foreign import ccall "static Imlib2.h imlib_image_query_pixel_hlsa" imlibImageQueryPixelHlsa :: Int -> Int -> Ptr Int -> Ptr Int -> Ptr Int -> Ptr Int -> IO ()+foreign import ccall "static Imlib2.h imlib_image_query_pixel_hlsa" imlibImageQueryPixelHlsa :: CInt -> CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO () imageQueryPixelHlsa :: Int -> Int -> IO (Int, Int, Int, Int) imageQueryPixelHlsa cx cy = do [h,l,s,a] <- nmalloc 4- imlibImageQueryPixelHlsa cx cy h l s a- [hh,ll,ss,aa] <- mapM peek [h,l,s,a]+ imlibImageQueryPixelHlsa (fromIntegral cx) (fromIntegral cy) h l s a+ [hh,ll,ss,aa] <- liftM (map fromIntegral) $ mapM peek [h,l,s,a] mapM free [h,l,s,a] return (hh,ll,ss,aa) @@ -1132,9 +1142,9 @@ imageGetAttachedData key = withCString key imlibImageGetAttachedData --int imlib_image_get_attached_value(const char *key);-foreign import ccall "static Imlib2.h imlib_image_get_attached_value" imlibImageGetAttachedValue :: CString -> IO Int+foreign import ccall "static Imlib2.h imlib_image_get_attached_value" imlibImageGetAttachedValue :: CString -> IO CInt imageGetAttachedValue :: String -> IO Int-imageGetAttachedValue key = withCString key imlibImageGetAttachedValue+imageGetAttachedValue key = withCString key imlibImageGetAttachedValue >>= return . fromIntegral --void imlib_image_remove_attached_data_value(const char *key); foreign import ccall "static Imlib2.h imlib_image_remove_attached_data_value" imlibImageRemoveAttachedDataValue :: CString -> IO ()@@ -1151,49 +1161,49 @@ saveImage str = withCString str imlibSaveImage --void imlib_save_image_with_error_return(const char *filename, Imlib_Load_Error *error_return);-foreign import ccall "static Imlib2.h imlib_save_image_with_error_return" imlibSaveImageWithErrorReturn :: CString -> Ptr Int -> IO ()+foreign import ccall "static Imlib2.h imlib_save_image_with_error_return" imlibSaveImageWithErrorReturn :: CString -> Ptr CInt -> IO () saveImageWithErrorReturn :: String -> IO ImlibLoadError saveImageWithErrorReturn str = do pe <- malloc im <- withCString str (\s -> imlibSaveImageWithErrorReturn s pe) -- Unused? e <- peek pe free pe- return (toEnum e)+ return (toEnum $ fromIntegral e) --Imlib_Image imlib_create_rotated_image(double angle);-foreign import ccall "static Imlib2.h imlib_create_rotated_image" imlibCreateRotatedImage :: Double -> IO ImlibImage+foreign import ccall "static Imlib2.h imlib_create_rotated_image" imlibCreateRotatedImage :: CDouble -> IO ImlibImage createRotatedImage :: Double -> IO ImlibImage-createRotatedImage = imlibCreateRotatedImage+createRotatedImage = imlibCreateRotatedImage . realToFrac --void imlib_blend_image_onto_image_at_angle(Imlib_Image source_image, char merge_alpha, int source_x, int source_y, int source_width, int source_height, int destination_x, int destination_y, int angle_x, int angle_y); foreign import ccall "static Imlib2.h imlib_blend_image_onto_image_at_angle" imlibBlendImageOntoImageAtAngle :: Ptr(ImlibImage) -> Bool -- merge alpha- -> Int -- source x- -> Int -- source y- -> Int -- source width- -> Int -- source height- -> Int -- dest x- -> Int -- dest y- -> Int -- angle x- -> Int -- angle y+ -> CInt -- source x+ -> CInt -- source y+ -> CInt -- source width+ -> CInt -- source height+ -> CInt -- dest x+ -> CInt -- dest y+ -> CInt -- angle x+ -> CInt -- angle y -> IO ()-blendImageOntoImageAtAngle = imlibBlendImageOntoImageAtAngle+blendImageOntoImageAtAngle ptr mergeAlpha sx sy sw sh dx dy ax ay = imlibBlendImageOntoImageAtAngle ptr mergeAlpha (fromIntegral sx) (fromIntegral sy) (fromIntegral sw) (fromIntegral sh) (fromIntegral dx) (fromIntegral dy) (fromIntegral ax) (fromIntegral ay) --void imlib_blend_image_onto_image_skewed(Imlib_Image source_image, char merge_alpha, int source_x, int source_y, int source_width, int source_height, int destination_x, int destination_y, int h_angle_x, int h_angle_y, int v_angle_x, int v_angle_y); foreign import ccall "static Imlib2.h imlib_blend_image_onto_image_skewed" imlibBlendImageOntoImageSkewed :: Ptr(ImlibImage) -> Bool -- merge alpha- -> Int -- source x- -> Int -- source y- -> Int -- source width- -> Int -- source height- -> Int -- dest x- -> Int -- dest y- -> Int -- h angle x- -> Int -- h angle y- -> Int -- v angle x- -> Int -- v angle y+ -> CInt -- source x+ -> CInt -- source y+ -> CInt -- source width+ -> CInt -- source height+ -> CInt -- dest x+ -> CInt -- dest y+ -> CInt -- h angle x+ -> CInt -- h angle y+ -> CInt -- v angle x+ -> CInt -- v angle y -> IO ()-blendImageOntoImageSkewed = imlibBlendImageOntoImageSkewed+blendImageOntoImageSkewed ptr mergeAlpha sx sy sw sh dx dy hx hy vx vy = imlibBlendImageOntoImageSkewed ptr mergeAlpha (fromIntegral sx) (fromIntegral sy) (fromIntegral sw) (fromIntegral sh) (fromIntegral dx) (fromIntegral dy) (fromIntegral hx) (fromIntegral hy) (fromIntegral vx) (fromIntegral vy) --void imlib_context_set_cliprect(int x, int y, int w, int h); foreign import ccall "static Imlib2.h imlib_context_set_cliprect" imlibContextSetCliprect :: Int -> Int -> Int -> Int -> IO ()@@ -1221,8 +1231,8 @@ polygonFree = imlibPolygonFree --void imlib_polygon_add_point(ImlibPolygon poly, int x, int y);-foreign import ccall "static Imlib2.h imlib_polygon_add_point" imlibPolygonAddPoint :: ImlibPolygon -> Int -> Int -> IO ()-polygonAddPoint = imlibPolygonAddPoint+foreign import ccall "static Imlib2.h imlib_polygon_add_point" imlibPolygonAddPoint :: ImlibPolygon -> CInt -> CInt -> IO ()+polygonAddPoint poly x y = imlibPolygonAddPoint poly (fromIntegral x) (fromIntegral y) --void imlib_image_draw_polygon(ImlibPolygon poly, unsigned char closed); foreign import ccall "static Imlib2.h imlib_image_draw_polygon" imlibImageDrawPolygon :: ImlibPolygon -> Bool -> IO ()@@ -1235,25 +1245,25 @@ imageFillPolygon = imlibImageFillPolygon --void imlib_polygon_get_bounds(ImlibPolygon poly, int *px1, int *py1, int *px2, int *py2);-foreign import ccall "static Imlib2.h imlib_polygon_get_bounds" imlibPolygonGetBounds :: ImlibPolygon -> Ptr Int -> Ptr Int -> Ptr Int -> Ptr Int -> IO ()+foreign import ccall "static Imlib2.h imlib_polygon_get_bounds" imlibPolygonGetBounds :: ImlibPolygon -> Ptr CInt -> Ptr CInt -> Ptr CInt -> Ptr CInt -> IO () polygonGetBounds poly = do [x1,y1,x2,y2] <- nmalloc 4 imlibPolygonGetBounds poly x1 y1 x2 y2- [rx1,ry1,rx2,ry2] <- mapM peek [x1,y1,x2,y2]+ [rx1,ry1,rx2,ry2] <- liftM (map fromIntegral) $ mapM peek [x1,y1,x2,y2] mapM free [x1,y1,x2,y2] return (rx1,ry1,rx2,ry2) --unsigned char imlib_polygon_contains_point(ImlibPolygon poly, int x, int y);-foreign import ccall "static Imlib2.h imlib_polygon_contains_point" imlibPolygonContainsPoint :: ImlibPolygon -> Int -> Int -> IO Bool-polygonContainsPoint = imlibPolygonContainsPoint+foreign import ccall "static Imlib2.h imlib_polygon_contains_point" imlibPolygonContainsPoint :: ImlibPolygon -> CInt -> CInt -> IO Bool+polygonContainsPoint poly x y = imlibPolygonContainsPoint poly (fromIntegral x) (fromIntegral y) --void imlib_image_draw_ellipse(int xc, int yc, int a, int b);-foreign import ccall "static Imlib2.h imlib_image_draw_ellipse" imlibImageDrawEllipse :: Int -> Int -> Int -> Int -> IO ()-imageDrawEllipse = imlibImageDrawEllipse+foreign import ccall "static Imlib2.h imlib_image_draw_ellipse" imlibImageDrawEllipse :: CInt -> CInt -> CInt -> CInt -> IO ()+imageDrawEllipse xc yc a b = imlibImageDrawEllipse (fromIntegral xc) (fromIntegral yc) (fromIntegral a) (fromIntegral b) --void imlib_image_fill_ellipse(int xc, int yc, int a, int b);-foreign import ccall "static Imlib2.h imlib_image_fill_ellipse" imlibImageFillEllipse :: Int -> Int -> Int -> Int -> IO ()-imageFillEllipse = imlibImageFillEllipse+foreign import ccall "static Imlib2.h imlib_image_fill_ellipse" imlibImageFillEllipse :: CInt -> CInt -> CInt -> CInt -> IO ()+imageFillEllipse xc yc a b = imlibImageFillEllipse (fromIntegral xc) (fromIntegral yc) (fromIntegral a) (fromIntegral b) --void imlib_image_filter(void); foreign import ccall "static Imlib2.h imlib_image_filter" imlibImageFilter :: IO ()@@ -1261,9 +1271,9 @@ imageFilter = imlibImageFilter --Imlib_Filter imlib_create_filter(int initsize);-foreign import ccall "static Imlib2.h imlib_create_filter" imlibCreateFilter :: Int -> IO ImlibFilter+foreign import ccall "static Imlib2.h imlib_create_filter" imlibCreateFilter :: CInt -> IO ImlibFilter createFilter :: Int -> IO ImlibFilter-createFilter = imlibCreateFilter+createFilter = imlibCreateFilter . fromIntegral --void imlib_free_filter(void); foreign import ccall "static Imlib2.h imlib_free_filter" imlibFreeFilter :: IO ()@@ -1271,33 +1281,33 @@ freeFilter = imlibFreeFilter --void imlib_filter_set(int xoff, int yoff, int a, int r, int g, int b);-foreign import ccall "static Imlib2.h imlib_filter_set" imlibFilterSet :: Int -> Int -> Int -> Int -> Int -> Int -> IO ()-filterSet = imlibFilterSet+foreign import ccall "static Imlib2.h imlib_filter_set" imlibFilterSet :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> IO ()+filterSet xoff yoff a r g b = imlibFilterSet (fromIntegral xoff) (fromIntegral yoff) (fromIntegral a) (fromIntegral r) (fromIntegral g) (fromIntegral b) --void imlib_filter_set_alpha(int xoff, int yoff, int a, int r, int g, int b);-foreign import ccall "static Imlib2.h imlib_filter_set_alpha" imlibFilterSetAlpha :: Int -> Int -> Int -> Int -> Int -> Int -> IO ()-filterSetAlpha = imlibFilterSetAlpha+foreign import ccall "static Imlib2.h imlib_filter_set_alpha" imlibFilterSetAlpha :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> IO ()+filterSetAlpha xoff yoff a r g b = imlibFilterSetAlpha (fromIntegral xoff) (fromIntegral yoff) (fromIntegral a) (fromIntegral r) (fromIntegral g) (fromIntegral b) --void imlib_filter_set_red(int xoff, int yoff, int a, int r, int g, int b);-foreign import ccall "static Imlib2.h imlib_filter_set_red" imlibFilterSetRed :: Int -> Int -> Int -> Int -> Int -> Int -> IO ()-filterSetRed = imlibFilterSetRed+foreign import ccall "static Imlib2.h imlib_filter_set_red" imlibFilterSetRed :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> IO ()+filterSetRed xoff yoff a r g b = imlibFilterSetRed (fromIntegral xoff) (fromIntegral yoff) (fromIntegral a) (fromIntegral r) (fromIntegral g) (fromIntegral b) --void imlib_filter_set_green(int xoff, int yoff, int a, int r, int g, int b);-foreign import ccall "static Imlib2.h imlib_filter_set_green" imlibFilterSetGreen :: Int -> Int -> Int -> Int -> Int -> Int -> IO ()-filterSetGreen = imlibFilterSetGreen+foreign import ccall "static Imlib2.h imlib_filter_set_green" imlibFilterSetGreen :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> IO ()+filterSetGreen xoff yoff a r g b = imlibFilterSetGreen (fromIntegral xoff) (fromIntegral yoff) (fromIntegral a) (fromIntegral r) (fromIntegral g) (fromIntegral b) --void imlib_filter_set_blue(int xoff, int yoff, int a, int r, int g, int b);-foreign import ccall "static Imlib2.h imlib_filter_set_blue" imlibFilterSetBlue :: Int -> Int -> Int -> Int -> Int -> Int -> IO ()-filterSetBlue = imlibFilterSetBlue+foreign import ccall "static Imlib2.h imlib_filter_set_blue" imlibFilterSetBlue :: CInt -> CInt -> CInt -> CInt -> CInt -> CInt -> IO ()+filterSetBlue xoff yoff a r g b = imlibFilterSetBlue (fromIntegral xoff) (fromIntegral yoff) (fromIntegral a) (fromIntegral r) (fromIntegral g) (fromIntegral b) --void imlib_filter_constants(int a, int r, int g, int b);-foreign import ccall "static Imlib2.h imlib_filter_constants" imlibFilterConstants :: Int -> Int -> Int -> Int -> IO ()+foreign import ccall "static Imlib2.h imlib_filter_constants" imlibFilterConstants :: CInt -> CInt -> CInt -> CInt -> IO () filterConstants :: Int -> Int -> Int -> Int -> IO ()-filterConstants = imlibFilterConstants+filterConstants a r g b = imlibFilterConstants (fromIntegral a) (fromIntegral r) (fromIntegral g) (fromIntegral b) --void imlib_filter_divisors(int a, int r, int g, int b);-foreign import ccall "static Imlib2.h imlib_filter_divisors" imlibFilterDivisors :: Int -> Int -> Int -> Int -> IO ()+foreign import ccall "static Imlib2.h imlib_filter_divisors" imlibFilterDivisors :: CInt -> CInt -> CInt -> CInt -> IO () filterDivisors :: Int -> Int -> Int -> Int -> IO ()-filterDivisors = imlibFilterDivisors+filterDivisors a r g b = imlibFilterDivisors (fromIntegral a) (fromIntegral r) (fromIntegral g) (fromIntegral b)
Imlib.cabal view
@@ -1,15 +1,14 @@ Name: Imlib-Version: 0.1.1+Version: 0.1.2 Description: Haskell binding for Imlib 2 Category: Graphics License: BSD3 License-file: LICENSE Author: Cale Gibbard-Maintainer: cgibbard@gmail.com+Maintainer: Andreas Raster <lazor@affenbande.org> Build-Depends: base, array, X11 Build-Type: Simple Exposed-Modules: Graphics.Imlib Extra-Libraries: Imlib2 Extra-Source-Files: examples/value2alpha.hs examples/circle-inversion.hs-ghc-options: -O2 -optl-Wl,-s ghc-prof-options: -prof -auto-all