-- GENERATED by C->Haskell Compiler, version 0.28.6 Switcheroo, 25 November 2017 (Haskell)
-- Edit the ORIGNAL .chs file instead!


{-# LINE 1 "./GI/Cairo/Render/Internal/Surfaces/PNG.chs" #-}
{-# LANGUAGE CPP #-}
-----------------------------------------------------------------------------
-- |
-- Module      :  GI.Cairo.Render.Internal.Surfaces.PNG
-- Copyright   :  (c) Paolo Martini 2005
-- License     :  BSD-style (see cairo/COPYRIGHT)
--
-- Maintainer  :  p.martini@neuralnoise.com
-- Stability   :  experimental
-- Portability :  portable
--
-- Reading and writing PNG images.
-----------------------------------------------------------------------------



module GI.Cairo.Render.Internal.Surfaces.PNG where
import qualified Foreign.C.Types as C2HSImp
import qualified Foreign.Ptr as C2HSImp



import GI.Cairo.Render.Types
{-# LINE 19 "./GI/Cairo/Render/Internal/Surfaces/PNG.chs" #-}


import Foreign
import Foreign.C


{-# LINE 24 "./GI/Cairo/Render/Internal/Surfaces/PNG.chs" #-}



imageSurfaceCreateFromPNG :: FilePath -> IO Surface
imageSurfaceCreateFromPNG filename =
  withCAString filename $ \filenamePtr ->
  cairo_image_surface_create_from_png filenamePtr
  >>= mkSurface

surfaceWriteToPNG :: (Surface) -> (FilePath) -> IO ((Status))
surfaceWriteToPNG a1 a2 =
  withSurface a1 $ \a1' ->
  withCAString a2 $ \a2' ->
  surfaceWriteToPNG'_ a1' a2' >>= \res ->
  let {res' = cToEnum res} in
  return (res')

{-# LINE 34 "./GI/Cairo/Render/Internal/Surfaces/PNG.chs" #-}



foreign import ccall unsafe "GI/Cairo/Render/Internal/Surfaces/PNG.chs.h cairo_image_surface_create_from_png"
  cairo_image_surface_create_from_png :: ((C2HSImp.Ptr C2HSImp.CChar) -> (IO (SurfacePtr)))

foreign import ccall safe "GI/Cairo/Render/Internal/Surfaces/PNG.chs.h cairo_surface_write_to_png"
  surfaceWriteToPNG'_ :: ((SurfacePtr) -> ((C2HSImp.Ptr C2HSImp.CChar) -> (IO C2HSImp.CInt)))