diagrams-rasterific 1.4.1 → 1.4.1.1
raw patch · 8 files changed
+104/−48 lines, 8 filesdep ~JuicyPixelsdep ~Rasterificdep ~basePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: JuicyPixels, Rasterific, base, containers, lens
API changes (from Hackage documentation)
- Diagrams.Backend.Rasterific: instance Data.Semigroup.Semigroup (Diagrams.Core.Types.Render Diagrams.Backend.Rasterific.Rasterific Linear.V2.V2 n)
- Diagrams.Backend.Rasterific.CmdLine: instance Diagrams.Backend.CmdLine.ToResult [(Diagrams.Core.Types.QDiagram Diagrams.Backend.Rasterific.Rasterific Linear.V2.V2 n Data.Monoid.Any, Codec.Picture.Gif.GifDelay)]
- Diagrams.Backend.Rasterific.CmdLine: instance Diagrams.Core.Types.TypeableFloat n => Diagrams.Backend.CmdLine.Mainable (Diagrams.Core.Types.QDiagram Diagrams.Backend.Rasterific.Rasterific Linear.V2.V2 n Data.Monoid.Any)
- Diagrams.Backend.Rasterific.CmdLine: instance Diagrams.Core.Types.TypeableFloat n => Diagrams.Backend.CmdLine.Mainable [(Diagrams.Core.Types.QDiagram Diagrams.Backend.Rasterific.Rasterific Linear.V2.V2 n Data.Monoid.Any, Codec.Picture.Gif.GifDelay)]
- Diagrams.Backend.Rasterific.CmdLine: instance Diagrams.Core.Types.TypeableFloat n => Diagrams.Backend.CmdLine.Mainable [(GHC.Base.String, Diagrams.Core.Types.QDiagram Diagrams.Backend.Rasterific.Rasterific Linear.V2.V2 n Data.Monoid.Any)]
+ Diagrams.Backend.Rasterific: instance GHC.Base.Semigroup (Diagrams.Core.Types.Render Diagrams.Backend.Rasterific.Rasterific Linear.V2.V2 n)
+ Diagrams.Backend.Rasterific.CmdLine: instance Diagrams.Backend.CmdLine.ToResult [(Diagrams.Core.Types.QDiagram Diagrams.Backend.Rasterific.Rasterific Linear.V2.V2 n Data.Semigroup.Internal.Any, Codec.Picture.Gif.GifDelay)]
+ Diagrams.Backend.Rasterific.CmdLine: instance Diagrams.Core.Types.TypeableFloat n => Diagrams.Backend.CmdLine.Mainable (Diagrams.Core.Types.QDiagram Diagrams.Backend.Rasterific.Rasterific Linear.V2.V2 n Data.Semigroup.Internal.Any)
+ Diagrams.Backend.Rasterific.CmdLine: instance Diagrams.Core.Types.TypeableFloat n => Diagrams.Backend.CmdLine.Mainable [(Diagrams.Core.Types.QDiagram Diagrams.Backend.Rasterific.Rasterific Linear.V2.V2 n Data.Semigroup.Internal.Any, Codec.Picture.Gif.GifDelay)]
+ Diagrams.Backend.Rasterific.CmdLine: instance Diagrams.Core.Types.TypeableFloat n => Diagrams.Backend.CmdLine.Mainable [(GHC.Base.String, Diagrams.Core.Types.QDiagram Diagrams.Backend.Rasterific.Rasterific Linear.V2.V2 n Data.Semigroup.Internal.Any)]
- Diagrams.Backend.Rasterific: data GifLooping :: *
+ Diagrams.Backend.Rasterific: data GifLooping
- Diagrams.Backend.Rasterific: data PaletteOptions :: *
+ Diagrams.Backend.Rasterific: data PaletteOptions
- Diagrams.Backend.Rasterific: size :: ((~) (* -> *) V a v, (~) * N a n, Enveloped a, HasBasis v) => a -> v n
+ Diagrams.Backend.Rasterific: size :: (V a ~ v, N a ~ n, Enveloped a, HasBasis v) => a -> v n
- Diagrams.Backend.Rasterific.CmdLine: mainWith :: (Mainable d, Parseable MainOpts d) => d -> IO ()
+ Diagrams.Backend.Rasterific.CmdLine: mainWith :: Mainable d => d -> IO ()
Files
- CHANGELOG.md +12/−0
- diagrams-rasterific.cabal +24/−13
- src/Diagrams/Backend/Rasterific.hs +15/−1
- test/test-render.hs +13/−0
- test/test-size.hs +20/−0
- test/test-widths.hs +20/−0
- test/test0.hs +0/−14
- test/test1.hs +0/−20
CHANGELOG.md view
@@ -1,3 +1,15 @@+## [v1.4.1.1](https://github.com/diagrams/diagrams-rasterific/tree/v1.4.1.1) (2018-10-12)++- Require `Rasterific-0.7.4` to+ - fix PDF rendering of zero-width paths ([#43](https://github.com/diagrams/diagrams-rasterific/issues/43))+ - fix disappearing small elements ([#51](https://github.com/diagrams/diagrams-rasterific/issues/51))++- Allow:+ - `base-4.12` (GHC 8.6)+ - `lens-4.17`+ - `containers-0.6`+ - `JuicyPixels-3.3`+ ## [v1.4.1](https://github.com/diagrams/diagrams-rasterific/tree/v1.4.1) (2018-05-09) - Bug fix: stroke entire paths at once ([#42](https://github.com/diagrams/diagrams-rasterific/issues/42))
diagrams-rasterific.cabal view
@@ -1,5 +1,5 @@ name: diagrams-rasterific-version: 1.4.1+version: 1.4.1.1 synopsis: Rasterific backend for diagrams. description: A full-featured backend for rendering diagrams using the Rasterific rendering engine.@@ -13,7 +13,7 @@ build-type: Simple data-files: fonts/*.ttf extra-source-files: README.md, CHANGELOG.md-tested-with: GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.2+tested-with: GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.3, GHC == 8.6.1 cabal-version: 1.18 Source-repository head type: git@@ -25,17 +25,17 @@ Diagrams.Backend.Rasterific.Text hs-source-dirs: src other-modules: Paths_diagrams_rasterific- build-depends: base >= 4.2 && < 4.12,+ build-depends: base >= 4.2 && < 4.13, diagrams-core >= 1.4 && < 1.5, diagrams-lib >= 1.4 && < 1.5, hashable >= 1.1 && < 1.3,- Rasterific >= 0.6.1 && < 0.8,+ Rasterific >= 0.7.4 && < 0.8, FontyFruity >= 0.5 && < 0.6,- JuicyPixels >= 3.1.5 && < 3.3,- lens >= 4.0 && < 4.17,+ JuicyPixels >= 3.1.5 && < 3.4,+ lens >= 4.0 && < 4.18, mtl >= 2.1 && < 2.3, data-default-class >= 0.0 && < 0.2,- containers >= 0.5 && < 0.6,+ containers >= 0.5 && < 0.7, filepath >= 1.2 && < 1.5, optparse-applicative >= 0.13 && < 0.15, bytestring >= 0.9 && < 0.11,@@ -44,22 +44,33 @@ default-language: Haskell2010 ghc-options: -Wall -test-suite test0+test-suite test-render type: exitcode-stdio-1.0- main-is: test0.hs+ main-is: test-render.hs hs-source-dirs: test- build-depends: base >= 4.2 && < 4.12,+ build-depends: base >= 4.2 && < 4.13, diagrams-rasterific, diagrams-core >= 1.4 && < 1.5, diagrams-lib >= 1.4 && < 1.5 ghc-options: -Wall default-language: Haskell2010 -test-suite test1+test-suite test-widths type: exitcode-stdio-1.0- main-is: test1.hs+ main-is: test-widths.hs hs-source-dirs: test- build-depends: base >= 4.2 && < 4.12,+ build-depends: base >= 4.2 && < 4.13,+ diagrams-rasterific,+ diagrams-core >= 1.4 && < 1.5,+ diagrams-lib >= 1.4 && < 1.5+ ghc-options: -Wall+ default-language: Haskell2010++test-suite test-size+ type: exitcode-stdio-1.0+ main-is: test-size.hs+ hs-source-dirs: test+ build-depends: base >= 4.2 && < 4.13, diagrams-rasterific, diagrams-core >= 1.4 && < 1.5, diagrams-lib >= 1.4 && < 1.5
src/Diagrams/Backend/Rasterific.hs view
@@ -448,7 +448,21 @@ _ -> writePng outFile img where img = renderDia Rasterific (RasterificOptions spec) d- V2 w h = specToSize 100 spec+ (w, h) = specToDims (aspectRatio d) spec++aspectRatio :: (V a ~ V2, Enveloped a) => a -> N a+aspectRatio d = h / w+ where+ V2 w h = boxExtents (boundingBox d)++specToDims :: (Fractional a, Ord a) => a -> SizeSpec V2 a -> (a, a)+specToDims ar s =+ case getSpec s of+ V2 (Just w) (Just h) -> (w, h)+ V2 (Just w) Nothing -> (w, ar * w)+ V2 Nothing (Just h) -> (h / ar, h)+ V2 Nothing Nothing -> (100, 100)+ -- | Render a 'Rasterific' diagram to an animated gif with the given -- size and uniform delay. Diagrams should be the same size.
+ test/test-render.hs view
@@ -0,0 +1,13 @@+import Diagrams.Prelude+import Diagrams.Backend.Rasterific++dia :: Diagram B+dia = circle 35 # fc red+ <> regPoly 16 200 # fc blue+ <> regPoly 5 400 # fc orange # rotateBy (1/6)++sizeSpec :: SizeSpec V2 Double+sizeSpec = mkSizeSpec2D (Just 600) Nothing++main :: IO ()+main = renderRasterific "test-render.png" sizeSpec dia
+ test/test-size.hs view
@@ -0,0 +1,20 @@+import Diagrams.Prelude+import Diagrams.Backend.Rasterific++{- non-square diagram should yield non-square output -}++dia :: Diagram B+dia = ellipseXY 1 1.5++sizeSpec :: SizeSpec V2 Double+sizeSpec = mkSizeSpec2D (Just 200) Nothing++sizeSpecBoth :: SizeSpec V2 Double+sizeSpecBoth = mkSizeSpec2D (Just 200) (Just 300)++main :: IO ()+main = do+ renderRasterific "test-size.png" sizeSpec dia+ renderRasterific "test-size.pdf" sizeSpec dia+ renderRasterific "test-size-both.png" sizeSpecBoth dia+ renderRasterific "test-size-both.pdf" sizeSpecBoth dia
+ test/test-widths.hs view
@@ -0,0 +1,20 @@+import Diagrams.Prelude+import Diagrams.Backend.Rasterific++dia :: Diagram B+dia = bgFrame 1 white $+ vsep 0.5+ [ l # lw thick+ , l # lw thin+ , l # lwG 0+ ]+ where+ l = stroke (straight unitX `at` origin)++sizeSpec :: SizeSpec V2 Double+sizeSpec = mkSizeSpec2D (Just 600) Nothing++main :: IO ()+main = do+ renderRasterific "test-widths.png" sizeSpec dia+ renderRasterific "test-widths.pdf" sizeSpec dia
− test/test0.hs
@@ -1,14 +0,0 @@-import Diagrams.Prelude-import Diagrams.Backend.Rasterific--dia :: Diagram B-dia = circle 35 # fc red- <> regPoly 16 200 # fc blue- <> regPoly 5 400 # fc orange # rotateBy (1/6)--sizeSpec :: SizeSpec V2 Double-sizeSpec = mkSizeSpec2D (Just 600) Nothing--main :: IO ()-main = renderRasterific "test0.png" sizeSpec dia- --(dia # translateX 0 # translateY (-300))
− test/test1.hs
@@ -1,20 +0,0 @@-import Diagrams.Prelude-import Diagrams.Backend.Rasterific--dia :: Diagram B-dia = bgFrame 1 white $- vsep 0.5- [ l # lw thick- , l # lw thin- , l # lwG 0- ]- where- l = stroke (straight unitX `at` origin)--sizeSpec :: SizeSpec V2 Double-sizeSpec = mkSizeSpec2D (Just 600) Nothing--main :: IO ()-main = do- renderRasterific "test1.png" sizeSpec dia- renderRasterific "test1.pdf" sizeSpec dia