packages feed

simple-cairo-0.1.0.5: test/test-rotate.hs

{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}

import Graphics.Cairo.Exception
import Graphics.Cairo.Values
import Graphics.Cairo.Drawing.CairoT
import Graphics.Cairo.Drawing.CairoPatternT
import Graphics.Cairo.Drawing.Transformations
import Graphics.Cairo.Surfaces.ImageSurfaces
import Graphics.Cairo.Surfaces.PngSupport

import Paths_simple_cairo

main :: IO ()
main = do
	putStrLn "*** TEST ROTATE BEGIN ***"
	sfc0 <- cairoImageSurfaceCreate cairoFormatArgb32 256 256
	cr <- cairoCreate sfc0
	sfc <- cairoSurfaceCreateFromPng =<< getDataFileName "HaskellLogo.png"
	ptn <- cairoPatternCreateForSurface sfc
	cairoTranslate cr 128 ((256 - sqrt 2 * 128) / 2)
	cairoRotate cr (pi / 4)
	cairoSetSource cr ptn
	cairoPaint cr
	cairoStatusToThrowError . (\(CairoStatusT w) -> w) =<< cairoSurfaceWriteToPng sfc0 "HaskellLogoRotated.png"
	putStrLn "*** TEST ROTATE END ***"