miso
Copyright(C) 2016-2025 David M. Johnson
LicenseBSD3-style (see the file LICENSE)
MaintainerDavid M. Johnson <code@dmj.io>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Miso.Canvas

Description

Synopsis

Types

data Canvas a where Source #

DSL for expressing operations on canvas_

Constructors

Bind :: forall a1 a. Canvas a1 -> (a1 -> Canvas a) -> Canvas a 
Pure :: forall a. a -> Canvas a 
LiftIO :: forall a. IO a -> Canvas a 
LiftJSM :: forall a. JSM a -> Canvas a 
IsPointInPath :: Coord -> Canvas Bool 
MeasureText :: MisoString -> Canvas Double 
ClearRect :: (Double, Double, Double, Double) -> Canvas () 
FillRect :: (Double, Double, Double, Double) -> Canvas () 
StrokeRect :: (Double, Double, Double, Double) -> Canvas () 
BeginPath :: Canvas () 
ClosePath :: Canvas () 
MoveTo :: (Double, Double) -> Canvas () 
LineTo :: (Double, Double) -> Canvas () 
Fill :: Canvas () 
Rect :: (Double, Double, Double, Double) -> Canvas () 
Stroke :: Canvas () 
BezierCurveTo :: (Double, Double, Double, Double, Double, Double) -> Canvas () 
Arc :: (Double, Double, Double, Double, Double) -> Canvas () 
ArcTo :: (Double, Double, Double, Double, Double) -> Canvas () 
QuadraticCurveTo :: (Double, Double, Double, Double) -> Canvas () 
Direction :: DirectionType -> Canvas () 
FillText :: (MisoString, Double, Double) -> Canvas () 
Font :: MisoString -> Canvas () 
StrokeText :: (MisoString, Double, Double) -> Canvas () 
TextAlign :: TextAlignType -> Canvas () 
TextBaseline :: TextBaselineType -> Canvas () 
AddColorStop :: Gradient -> Double -> Color -> Canvas () 
CreateLinearGradient :: (Double, Double, Double, Double) -> Canvas Gradient 
CreatePattern :: Image -> PatternType -> Canvas Pattern 
CreateRadialGradient :: (Double, Double, Double, Double, Double, Double) -> Canvas Gradient 
FillStyle :: StyleArg -> Canvas () 
LineCap :: LineCapType -> Canvas () 
LineJoin :: LineJoinType -> Canvas () 
LineWidth :: Double -> Canvas () 
MiterLimit :: Double -> Canvas () 
ShadowBlur :: Double -> Canvas () 
ShadowColor :: Color -> Canvas () 
ShadowOffsetX :: Double -> Canvas () 
ShadowOffsetY :: Double -> Canvas () 
StrokeStyle :: StyleArg -> Canvas () 
Scale :: (Double, Double) -> Canvas () 
Rotate :: Double -> Canvas () 
Translate :: Coord -> Canvas () 
Transform :: (Double, Double, Double, Double, Double, Double) -> Canvas () 
SetTransform :: (Double, Double, Double, Double, Double, Double) -> Canvas () 
DrawImage :: (Image, Double, Double) -> Canvas () 
DrawImage' :: (Image, Double, Double, Double, Double) -> Canvas () 
CreateImageData :: (Double, Double) -> Canvas ImageData 
GetImageData :: (Double, Double, Double, Double) -> Canvas ImageData 
SetImageData :: ImageData -> Int -> Double -> Canvas () 
ImageDataHeight :: ImageData -> Canvas Double 
ImageDataWidth :: ImageData -> Canvas Double 
PutImageData :: (ImageData, Double, Double) -> Canvas () 
GlobalAlpha :: Double -> Canvas () 
GlobalCompositeOperation :: CompositeOperation -> Canvas () 
Clip :: Canvas () 
Save :: Canvas () 
Restore :: Canvas () 

Instances

Instances details
Applicative Canvas Source # 
Instance details

Defined in Miso.Canvas

Methods

pure :: a -> Canvas a #

(<*>) :: Canvas (a -> b) -> Canvas a -> Canvas b #

liftA2 :: (a -> b -> c) -> Canvas a -> Canvas b -> Canvas c #

(*>) :: Canvas a -> Canvas b -> Canvas b #

(<*) :: Canvas a -> Canvas b -> Canvas a #

Functor Canvas Source # 
Instance details

Defined in Miso.Canvas

Methods

fmap :: (a -> b) -> Canvas a -> Canvas b #

(<$) :: a -> Canvas b -> Canvas a #

Monad Canvas Source # 
Instance details

Defined in Miso.Canvas

Methods

(>>=) :: Canvas a -> (a -> Canvas b) -> Canvas b #

(>>) :: Canvas a -> Canvas b -> Canvas b #

return :: a -> Canvas a #

MonadIO Canvas Source # 
Instance details

Defined in Miso.Canvas

Methods

liftIO :: IO a -> Canvas a #

MonadJSM Canvas Source # 
Instance details

Defined in Miso.Canvas

Methods

liftJSM' :: JSM a -> Canvas a Source #

Monoid a => Monoid (Canvas a) Source # 
Instance details

Defined in Miso.Canvas

Methods

mempty :: Canvas a #

mappend :: Canvas a -> Canvas a -> Canvas a #

mconcat :: [Canvas a] -> Canvas a #

Semigroup a => Semigroup (Canvas a) Source # 
Instance details

Defined in Miso.Canvas

Methods

(<>) :: Canvas a -> Canvas a -> Canvas a #

sconcat :: NonEmpty (Canvas a) -> Canvas a #

stimes :: Integral b => b -> Canvas a -> Canvas a #

newtype Pattern Source #

Constructors

Pattern JSVal 

Instances

Instances details
ToJSVal Pattern Source # 
Instance details

Defined in Miso.Canvas

newtype Gradient Source #

Constructors

Gradient JSVal 

Instances

Instances details
ToJSVal Gradient Source # 
Instance details

Defined in Miso.Canvas

newtype ImageData Source #

Constructors

ImageData JSVal 

Instances

Instances details
ToJSVal ImageData Source # 
Instance details

Defined in Miso.Canvas

MakeObject ImageData Source # 
Instance details

Defined in Miso.Canvas

data LineCapType Source #

Instances

Instances details
Show LineCapType Source # 
Instance details

Defined in Miso.Canvas

Eq LineCapType Source # 
Instance details

Defined in Miso.Canvas

data LineJoinType Source #

Instances

Instances details
Show LineJoinType Source # 
Instance details

Defined in Miso.Canvas

Eq LineJoinType Source # 
Instance details

Defined in Miso.Canvas

data DirectionType Source #

Constructors

LTR 
RTL 
Inherit 

Instances

Instances details
Show DirectionType Source # 
Instance details

Defined in Miso.Canvas

Eq DirectionType Source # 
Instance details

Defined in Miso.Canvas

Property

canvas Source #

Arguments

:: [Attribute action] 
-> JSM Function

Callback to render graphics using this canvas' context

-> View action 

Element for drawing on a <canvas>. This function abstracts over the context and interpret callback, including dimension ("2d" or "3d") canvas.

canvas_ :: [Attribute action] -> Canvas a -> View action Source #

Element for drawing on a <canvas>, includes a Canvas DSL. Specialized to "2d" canvas.

API

setImageData :: ImageData -> Int -> Double -> Canvas () Source #

imageData.data[index
= 255](https:/www.w3schools.comtags/canvas_imagedata_data.asp)

Smart constructors