Chart-tests-1.9.3: tests/DiagramsCairo.hs
module DiagramsCairo where
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 Graphics.Rendering.Chart.Renderable ( render, Renderable )
import System.Environment ( getArgs )
import Tests ( allTests, showTests )
import qualified Tests as T
main = do
args <- getArgs
main1 args
main1 :: [String] -> IO ()
main1 args = do
-- Only load the environment once, to speed things up.
env <- defaultEnv bitmapAlignmentFns 500 500
let renderDiagram :: (String, (Int, Int), T.LineWidth -> Renderable ()) -> IO ()
renderDiagram (n,(w,h),ir) = do
let env' = env { envOutputSize = (fromIntegral w, fromIntegral h) }
(d, _) = runBackendR env' (ir 1.0)
fst $ renderDia Cairo (CairoOptions (n ++ ".png") (dims $ V2 (fromIntegral w) (fromIntegral h)) PNG False) d
showTests (fmap (\(x,_,_) -> x) allTests) renderDiagram