packages feed

Chart-fltkhs 0.1.0.4 → 0.1.0.5

raw patch · 2 files changed

+31/−1 lines, 2 files

Files

Chart-fltkhs.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: Chart-fltkhs-version: 0.1.0.4+version: 0.1.0.5 license: BSD-3-Clause license-file: LICENSE maintainer: michael.oswald@onikudaki.net
src/Graphics/Rendering/Chart/Backend/FLTKHS.hs view
@@ -55,7 +55,9 @@ #-} module Graphics.Rendering.Chart.Backend.FLTKHS   ( renderToWidget+  , renderToWidgetOffscreen   , renderToWidgetEC+  , renderToWidgetOffscreenEC   , runBackend   , FLTKHSEnv   , defaultEnv@@ -125,6 +127,23 @@   runBackend (defaultEnv bitmapAlignmentFns)              (withTranslation (Point (fromIntegral x) (fromIntegral y)) cr) +-- | Render a 'Renderable' to a widget, using an 'FlOffscreen' buffer for double buffering. +-- It renders to the full widget (it gets the rectangle+-- of the widgets area) and uses that as the sizes for rendering. The offscreen+-- buffer needs to be allocated beforehand and needs to have the necessary size+-- (see FLTKs documentation for using the offscreen rendering)+{-# INLINABLE renderToWidgetOffscreen #-}+renderToWidgetOffscreen :: Ref Widget -> FlOffscreen -> Renderable a -> IO (PickFn a)+renderToWidgetOffscreen widget offscreen r = do+  rectangle'@(FL.Rectangle pos size) <- getRectangle widget+  let (x, y, w', h') = fromRectangle rectangle'+      cr             = render r (fromIntegral w', fromIntegral h')+  flcBeginOffscreen offscreen +  fun <- runBackend (defaultEnv bitmapAlignmentFns)+             (withTranslation (Point (fromIntegral x) (fromIntegral y)) cr)+  flcEndOffscreen+  flcCopyOffscreen pos size offscreen pos +  return fun  -- | Render a Chart created with the statefull "Graphics.Rendering.Chart.Easy" API. -- Calls 'renderToWidget' internally@@ -133,6 +152,17 @@   :: (Default r, ToRenderable r) => Ref Widget -> EC r () -> IO () renderToWidgetEC widget ec =   void $ renderToWidget widget (toRenderable (execEC ec))++-- | Render a Chart created with the statefull "Graphics.Rendering.Chart.Easy" API.+-- Calls 'renderToWidgetOffscreen' internally, so it also needs a 'FlOffscreen'+-- buffer as argument+{-# INLINABLE renderToWidgetOffscreenEC #-}+renderToWidgetOffscreenEC+  :: (Default r, ToRenderable r) => Ref Widget -> FlOffscreen -> EC r () -> IO ()+renderToWidgetOffscreenEC widget offscreen ec =+  void $ renderToWidgetOffscreen widget offscreen (toRenderable (execEC ec))++  -- | Run this backends renderer {-# INLINABLE runBackend #-}