packages feed

Chart-tests-1.9.3: tests/Drawing/DiagramsCairo.hs

module Drawing.DiagramsCairo where

import Control.Monad(forM_)

import Graphics.Rendering.Chart.Backend
import Graphics.Rendering.Chart.Backend.Diagrams

import Diagrams.Core ( renderDia )
import Diagrams.Prelude ( dims, V2(..) )
import Diagrams.Backend.Cairo
import Diagrams.Backend.Cairo.Internal

import Drawing.Tests (tests)

main :: IO ()
main = do
  fonts <- loadCommonFonts
  forM_ tests $ \(name, w, h, draw) -> do
    render fonts (name ++ ".png") w h draw


render :: FontSelector Double -> FilePath -> Int -> Int -> BackendProgram a -> IO ()
render fonts f w h m = do
  let env = createEnv bitmapAlignmentFns (fromIntegral w) (fromIntegral h) fonts
  let (d, _) = runBackend env m
  fst $ renderDia Cairo (CairoOptions f (dims $ V2 (fromIntegral w) (fromIntegral h)) PNG False) d