diff --git a/generated-docs/Graphics/Canvas.md b/generated-docs/Graphics/Canvas.md index f1381f0..dea33fe 100644 --- a/generated-docs/Graphics/Canvas.md +++ b/generated-docs/Graphics/Canvas.md @@ -43,6 +43,159 @@ data CanvasImageSource :: Type Opaque object for drawing elements and things to the canvas. +#### `Arc` + +``` purescript +type Arc = { x :: Number, y :: Number, r :: Number, start :: Number, end :: Number } +``` + +A type representing an arc object: + +- The center coordinates `x` and `y`, +- The radius `r`, +- The starting and ending angles, `start` and `end`. + +#### `Composite` + +``` purescript +data Composite + = SourceOver + | SourceIn + | SourceOut + | SourceAtop + | DestinationOver + | DestinationIn + | DestinationOut + | DestinationAtop + | Lighter + | Copy + | Xor + | Multiply + | Screen + | Overlay + | Darken + | Lighten + | ColorDodge + | ColorBurn + | HardLight + | SoftLight + | Difference + | Exclusion + | Hue + | Saturation + | Color + | Luminosity +``` + +Enumerates the different types of composite operations and blend modes. + +##### Instances +``` purescript +Show Composite +``` + +#### `Dimensions` + +``` purescript +type Dimensions = { width :: Number, height :: Number } +``` + +Canvas dimensions (width and height) in pixels. + +#### `LineCap` + +``` purescript +data LineCap + = Round + | Square + | Butt +``` + +Enumerates the different types of line cap. + +##### Instances +``` purescript +Eq LineCap +``` + +#### `LineJoin` + +``` purescript +data LineJoin + = BevelJoin + | RoundJoin + | MiterJoin +``` + +Enumerates the different types of line join + +#### `Rectangle` + +``` purescript +type Rectangle = { x :: Number, y :: Number, w :: Number, h :: Number } +``` + +A type representing a rectangle object: + +- The top-left corner coordinates `x` and `y`, +- The width and height `w` and `h`. + +#### `ScaleTransform` + +``` purescript +type ScaleTransform = { scaleX :: Number, scaleY :: Number } +``` + +An object representing a scaling transform: + +- The scale factors in the `x` and `y` directions, `scaleX` and `scaleY`. + +#### `TextMetrics` + +``` purescript +type TextMetrics = { width :: Number } +``` + +Text metrics: + +- The text width in pixels. + +#### `Transform` + +``` purescript +type Transform = { m11 :: Number, m12 :: Number, m21 :: Number, m22 :: Number, m31 :: Number, m32 :: Number } +``` + +An object representing a general transformation as a homogeneous matrix. + +#### `TranslateTransform` + +``` purescript +type TranslateTransform = { translateX :: Number, translateY :: Number } +``` + +An object representing a translation: + +- The translation amounts in the `x` and `y` directions, `translateX` and `translateY`. + +#### `TextAlign` + +``` purescript +data TextAlign + = AlignLeft + | AlignRight + | AlignCenter + | AlignStart + | AlignEnd +``` + +Enumerates types of text alignment. + +##### Instances +``` purescript +Show TextAlign +``` + #### `CanvasPattern` ``` purescript @@ -51,6 +204,23 @@ data CanvasPattern :: Type Opaque object describing a pattern. +#### `PatternRepeat` + +``` purescript +data PatternRepeat + = Repeat + | RepeatX + | RepeatY + | NoRepeat +``` + +Enumerates the different types of pattern repetitions. + +##### Instances +``` purescript +Show PatternRepeat +``` + #### `CanvasGradient` ``` purescript @@ -59,19 +229,48 @@ data CanvasGradient :: Type Opaque object describing a gradient. -#### `canvasElementToImageSource` +#### `LinearGradient` ``` purescript -canvasElementToImageSource :: CanvasElement -> CanvasImageSource +type LinearGradient = { x0 :: Number, y0 :: Number, x1 :: Number, y1 :: Number } ``` -#### `tryLoadImage` +A type representing a linear gradient. + - Starting point coordinates: (`x0`, `y0`) + - Ending point coordinates: (`x1`, `y1`) + +#### `RadialGradient` ``` purescript -tryLoadImage :: forall eff. String -> (Maybe CanvasImageSource -> Eff (canvas :: CANVAS | eff) Unit) -> Eff (canvas :: CANVAS | eff) Unit +type RadialGradient = { x0 :: Number, y0 :: Number, r0 :: Number, x1 :: Number, y1 :: Number, r1 :: Number } ``` -Asynchronously load an image file by specifying its path. +A type representing a radial gradient. + - Starting circle center coordinates: (`x0`, `y0`) + - Starting circle radius: `r0` + - Ending circle center coordinates: (`x1`, `y1`) + - Ending circle radius: `r1` + +#### `QuadraticCurve` + +``` purescript +type QuadraticCurve = { cpx :: Number, cpy :: Number, x :: Number, y :: Number } +``` + +A type representing a quadratic Bézier curve. + - Bézier control point: (`cpx`, `cpy`) + - Ending point coordinates: (`x`, `y`) + +#### `BezierCurve` + +``` purescript +type BezierCurve = { cp1x :: Number, cp1y :: Number, cp2x :: Number, cp2y :: Number, x :: Number, y :: Number } +``` + +A type representing a cubic Bézier curve. + - First Bézier control point: (`cp1x`, `cp1y`) + - Second Bézier control point: (`cp2x`, `cp2y`) + - Ending point: (`x`, `y`) #### `getCanvasElementById` @@ -97,37 +296,29 @@ getCanvasWidth :: forall eff. CanvasElement -> Eff (canvas :: CANVAS | eff) Numb Get the canvas width in pixels. -#### `getCanvasHeight` - -``` purescript -getCanvasHeight :: forall eff. CanvasElement -> Eff (canvas :: CANVAS | eff) Number -``` - -Get the canvas height in pixels. - #### `setCanvasWidth` ``` purescript -setCanvasWidth :: forall eff. Number -> CanvasElement -> Eff (canvas :: CANVAS | eff) CanvasElement +setCanvasWidth :: forall eff. CanvasElement -> Number -> Eff (canvas :: CANVAS | eff) Unit ``` Set the canvas width in pixels. -#### `setCanvasHeight` +#### `getCanvasHeight` ``` purescript -setCanvasHeight :: forall eff. Number -> CanvasElement -> Eff (canvas :: CANVAS | eff) CanvasElement +getCanvasHeight :: forall eff. CanvasElement -> Eff (canvas :: CANVAS | eff) Number ``` -Set the canvas height in pixels. +Get the canvas height in pixels. -#### `Dimensions` +#### `setCanvasHeight` ``` purescript -type Dimensions = { width :: Number, height :: Number } +setCanvasHeight :: forall eff. CanvasElement -> Number -> Eff (canvas :: CANVAS | eff) Unit ``` -Canvas dimensions (width and height) in pixels. +Set the canvas height in pixels. #### `getCanvasDimensions` @@ -140,7 +331,7 @@ Get the canvas dimensions in pixels. #### `setCanvasDimensions` ``` purescript -setCanvasDimensions :: forall eff. Dimensions -> CanvasElement -> Eff (canvas :: CANVAS | eff) CanvasElement +setCanvasDimensions :: forall eff. CanvasElement -> Dimensions -> Eff (canvas :: CANVAS | eff) Unit ``` Set the canvas dimensions in pixels. @@ -156,7 +347,7 @@ Create a data URL for the current canvas contents #### `setLineWidth` ``` purescript -setLineWidth :: forall eff. Number -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +setLineWidth :: forall eff. Context2D -> Number -> Eff (canvas :: CANVAS | eff) Unit ``` Set the current line width. @@ -164,7 +355,7 @@ Set the current line width. #### `setFillStyle` ``` purescript -setFillStyle :: forall eff. String -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +setFillStyle :: forall eff. Context2D -> String -> Eff (canvas :: CANVAS | eff) Unit ``` Set the current fill style/color. @@ -172,23 +363,15 @@ Set the current fill style/color. #### `setStrokeStyle` ``` purescript -setStrokeStyle :: forall eff. String -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +setStrokeStyle :: forall eff. Context2D -> String -> Eff (canvas :: CANVAS | eff) Unit ``` Set the current stroke style/color. -#### `setShadowColor` - -``` purescript -setShadowColor :: forall eff. String -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D -``` - -Set the current shadow color. - #### `setShadowBlur` ``` purescript -setShadowBlur :: forall eff. Number -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +setShadowBlur :: forall eff. Context2D -> Number -> Eff (canvas :: CANVAS | eff) Unit ``` Set the current shadow blur radius. @@ -196,7 +379,7 @@ Set the current shadow blur radius. #### `setShadowOffsetX` ``` purescript -setShadowOffsetX :: forall eff. Number -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +setShadowOffsetX :: forall eff. Context2D -> Number -> Eff (canvas :: CANVAS | eff) Unit ``` Set the current shadow x-offset. @@ -204,100 +387,47 @@ Set the current shadow x-offset. #### `setShadowOffsetY` ``` purescript -setShadowOffsetY :: forall eff. Number -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +setShadowOffsetY :: forall eff. Context2D -> Number -> Eff (canvas :: CANVAS | eff) Unit ``` Set the current shadow y-offset. -#### `setMiterLimit` +#### `setShadowColor` ``` purescript -setMiterLimit :: forall eff. Number -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +setShadowColor :: forall eff. Context2D -> String -> Eff (canvas :: CANVAS | eff) Unit ``` -Set the current miter limit. +Set the current shadow color. -#### `LineCap` +#### `setMiterLimit` ``` purescript -data LineCap - = Round - | Square - | Butt +setMiterLimit :: forall eff. Context2D -> Number -> Eff (canvas :: CANVAS | eff) Unit ``` -Enumerates the different types of line cap. +Set the current miter limit. #### `setLineCap` ``` purescript -setLineCap :: forall eff. LineCap -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +setLineCap :: forall eff. Context2D -> LineCap -> Eff (canvas :: CANVAS | eff) Unit ``` Set the current line cap type. -#### `LineJoin` - -``` purescript -data LineJoin - = BevelJoin - | RoundJoin - | MiterJoin -``` - -Enumerates the different types of line join - #### `setLineJoin` ``` purescript -setLineJoin :: forall eff. LineJoin -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +setLineJoin :: forall eff. Context2D -> LineJoin -> Eff (canvas :: CANVAS | eff) Unit ``` Set the current line join type. -#### `Composite` - -``` purescript -data Composite - = SourceOver - | SourceIn - | SourceOut - | SourceAtop - | DestinationOver - | DestinationIn - | DestinationOut - | DestinationAtop - | Lighter - | Copy - | Xor - | Multiply - | Screen - | Overlay - | Darken - | Lighten - | ColorDodge - | ColorBurn - | HardLight - | SoftLight - | Difference - | Exclusion - | Hue - | Saturation - | Color - | Luminosity -``` - -Enumerates the different types of composite operations and blend modes. - -##### Instances -``` purescript -Show Composite -``` - #### `setGlobalCompositeOperation` ``` purescript -setGlobalCompositeOperation :: forall eff. Context2D -> Composite -> Eff (canvas :: CANVAS | eff) Context2D +setGlobalCompositeOperation :: forall eff. Context2D -> Composite -> Eff (canvas :: CANVAS | eff) Unit ``` Set the current composite operation. @@ -305,7 +435,7 @@ Set the current composite operation. #### `setGlobalAlpha` ``` purescript -setGlobalAlpha :: forall eff. Context2D -> Number -> Eff (canvas :: CANVAS | eff) Context2D +setGlobalAlpha :: forall eff. Context2D -> Number -> Eff (canvas :: CANVAS | eff) Unit ``` Set the current global alpha level. @@ -313,7 +443,7 @@ Set the current global alpha level. #### `beginPath` ``` purescript -beginPath :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Context2D +beginPath :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Unit ``` Begin a path object. @@ -321,7 +451,7 @@ Begin a path object. #### `stroke` ``` purescript -stroke :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Context2D +stroke :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Unit ``` Stroke the current object. @@ -329,7 +459,7 @@ Stroke the current object. #### `fill` ``` purescript -fill :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Context2D +fill :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Unit ``` Fill the current object. @@ -337,7 +467,7 @@ Fill the current object. #### `clip` ``` purescript -clip :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Context2D +clip :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Unit ``` Clip to the current object. @@ -345,7 +475,7 @@ Clip to the current object. #### `lineTo` ``` purescript -lineTo :: forall eff. Context2D -> Number -> Number -> Eff (canvas :: CANVAS | eff) Context2D +lineTo :: forall eff. Context2D -> Number -> Number -> Eff (canvas :: CANVAS | eff) Unit ``` Move the path to the specified coordinates, drawing a line segment. @@ -353,7 +483,7 @@ Move the path to the specified coordinates, drawing a line segment. #### `moveTo` ``` purescript -moveTo :: forall eff. Context2D -> Number -> Number -> Eff (canvas :: CANVAS | eff) Context2D +moveTo :: forall eff. Context2D -> Number -> Number -> Eff (canvas :: CANVAS | eff) Unit ``` Move the path to the specified coordinates, without drawing a line segment. @@ -361,7 +491,7 @@ Move the path to the specified coordinates, without drawing a line segment. #### `closePath` ``` purescript -closePath :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Context2D +closePath :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Unit ``` Close the current path. @@ -402,41 +532,18 @@ fillPath ctx $ do closePath ctx ``` -#### `Arc` - -``` purescript -type Arc = { x :: Number, y :: Number, r :: Number, start :: Number, end :: Number } -``` - -A type representing an arc object: - -- The center coordinates `x` and `y`, -- The radius `r`, -- The starting and ending angles, `start` and `end`. - #### `arc` ``` purescript -arc :: forall eff. Context2D -> Arc -> Eff (canvas :: CANVAS | eff) Context2D +arc :: forall eff. Context2D -> Arc -> Eff (canvas :: CANVAS | eff) Unit ``` Render an arc object. -#### `Rectangle` - -``` purescript -type Rectangle = { x :: Number, y :: Number, w :: Number, h :: Number } -``` - -A type representing a rectangle object: - -- The top-left corner coordinates `x` and `y`, -- The width and height `w` and `h`. - #### `rect` ``` purescript -rect :: forall eff. Context2D -> Rectangle -> Eff (canvas :: CANVAS | eff) Context2D +rect :: forall eff. Context2D -> Rectangle -> Eff (canvas :: CANVAS | eff) Unit ``` Render a rectangle. @@ -444,7 +551,7 @@ Render a rectangle. #### `fillRect` ``` purescript -fillRect :: forall eff. Context2D -> Rectangle -> Eff (canvas :: CANVAS | eff) Context2D +fillRect :: forall eff. Context2D -> Rectangle -> Eff (canvas :: CANVAS | eff) Unit ``` Fill a rectangle. @@ -452,7 +559,7 @@ Fill a rectangle. #### `strokeRect` ``` purescript -strokeRect :: forall eff. Context2D -> Rectangle -> Eff (canvas :: CANVAS | eff) Context2D +strokeRect :: forall eff. Context2D -> Rectangle -> Eff (canvas :: CANVAS | eff) Unit ``` Stroke a rectangle. @@ -460,25 +567,15 @@ Stroke a rectangle. #### `clearRect` ``` purescript -clearRect :: forall eff. Context2D -> Rectangle -> Eff (canvas :: CANVAS | eff) Context2D +clearRect :: forall eff. Context2D -> Rectangle -> Eff (canvas :: CANVAS | eff) Unit ``` Clear a rectangle. -#### `ScaleTransform` - -``` purescript -type ScaleTransform = { scaleX :: Number, scaleY :: Number } -``` - -An object representing a scaling transform: - -- The scale factors in the `x` and `y` directions, `scaleX` and `scaleY`. - #### `scale` ``` purescript -scale :: forall eff. ScaleTransform -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +scale :: forall eff. Context2D -> ScaleTransform -> Eff (canvas :: CANVAS | eff) Unit ``` Apply a scaling transform. @@ -486,62 +583,34 @@ Apply a scaling transform. #### `rotate` ``` purescript -rotate :: forall eff. Number -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +rotate :: forall eff. Context2D -> Number -> Eff (canvas :: CANVAS | eff) Unit ``` Apply a rotation. -#### `TranslateTransform` - -``` purescript -type TranslateTransform = { translateX :: Number, translateY :: Number } -``` - -An object representing a translation: - -- The translation amounts in the `x` and `y` directions, `translateX` and `translateY`. - #### `translate` ``` purescript -translate :: forall eff. TranslateTransform -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +translate :: forall eff. Context2D -> TranslateTransform -> Eff (canvas :: CANVAS | eff) Unit ``` Apply a translation -#### `Transform` - -``` purescript -type Transform = { m11 :: Number, m12 :: Number, m21 :: Number, m22 :: Number, m31 :: Number, m32 :: Number } -``` - -An object representing a general transformation as a homogeneous matrix. - #### `transform` ``` purescript -transform :: forall eff. Transform -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +transform :: forall eff. Context2D -> Transform -> Eff (canvas :: CANVAS | eff) Unit ``` -Apply a general transformation. +Apply a general transformation to the current transformation matrix -#### `TextAlign` +#### `setTransform` ``` purescript -data TextAlign - = AlignLeft - | AlignRight - | AlignCenter - | AlignStart - | AlignEnd +setTransform :: forall eff. Context2D -> Transform -> Eff (canvas :: CANVAS | eff) Unit ``` -Enumerates types of text alignment. - -##### Instances -``` purescript -Show TextAlign -``` +Set the transformation matrix #### `textAlign` @@ -554,21 +623,11 @@ Get the current text alignment. #### `setTextAlign` ``` purescript -setTextAlign :: forall eff. Context2D -> TextAlign -> Eff (canvas :: CANVAS | eff) Context2D +setTextAlign :: forall eff. Context2D -> TextAlign -> Eff (canvas :: CANVAS | eff) Unit ``` Set the current text alignment. -#### `TextMetrics` - -``` purescript -type TextMetrics = { width :: Number } -``` - -Text metrics: - -- The text width in pixels. - #### `font` ``` purescript @@ -580,7 +639,7 @@ Get the current font. #### `setFont` ``` purescript -setFont :: forall eff. String -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +setFont :: forall eff. Context2D -> String -> Eff (canvas :: CANVAS | eff) Unit ``` Set the current font. @@ -588,7 +647,7 @@ Set the current font. #### `fillText` ``` purescript -fillText :: forall eff. Context2D -> String -> Number -> Number -> Eff (canvas :: CANVAS | eff) Context2D +fillText :: forall eff. Context2D -> String -> Number -> Number -> Eff (canvas :: CANVAS | eff) Unit ``` Fill some text. @@ -596,7 +655,7 @@ Fill some text. #### `strokeText` ``` purescript -strokeText :: forall eff. Context2D -> String -> Number -> Number -> Eff (canvas :: CANVAS | eff) Context2D +strokeText :: forall eff. Context2D -> String -> Number -> Number -> Eff (canvas :: CANVAS | eff) Unit ``` Stroke some text. @@ -612,7 +671,7 @@ Measure some text. #### `save` ``` purescript -save :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Context2D +save :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Unit ``` Save the current context. @@ -620,7 +679,7 @@ Save the current context. #### `restore` ``` purescript -restore :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Context2D +restore :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Unit ``` Restore the previous context. @@ -641,6 +700,14 @@ withContext ctx $ do ... ``` +#### `tryLoadImage` + +``` purescript +tryLoadImage :: forall eff. String -> (Maybe CanvasImageSource -> Eff (canvas :: CANVAS | eff) Unit) -> Eff (canvas :: CANVAS | eff) Unit +``` + +Asynchronously load an image file by specifying its path. + #### `getImageData` ``` purescript @@ -649,18 +716,18 @@ getImageData :: forall eff. Context2D -> Number -> Number -> Number -> Number -> Get image data for a portion of the canvas. -#### `putImageDataFull` +#### `putImageData` ``` purescript -putImageDataFull :: forall eff. Context2D -> ImageData -> Number -> Number -> Number -> Number -> Number -> Number -> Eff (canvas :: CANVAS | eff) Context2D +putImageData :: forall eff. Context2D -> ImageData -> Number -> Number -> Eff (canvas :: CANVAS | eff) Unit ``` Set image data for a portion of the canvas. -#### `putImageData` +#### `putImageDataFull` ``` purescript -putImageData :: forall eff. Context2D -> ImageData -> Number -> Number -> Eff (canvas :: CANVAS | eff) Context2D +putImageDataFull :: forall eff. Context2D -> ImageData -> Number -> Number -> Number -> Number -> Number -> Number -> Eff (canvas :: CANVAS | eff) Unit ``` Set image data for a portion of the canvas. @@ -705,45 +772,34 @@ imageDataBuffer :: ImageData -> Uint8ClampedArray Get the underlying buffer from an `ImageData` object. -#### `drawImage` - -``` purescript -drawImage :: forall eff. Context2D -> CanvasImageSource -> Number -> Number -> Eff (canvas :: CANVAS | eff) Context2D -``` - -#### `drawImageScale` +#### `canvasElementToImageSource` ``` purescript -drawImageScale :: forall eff. Context2D -> CanvasImageSource -> Number -> Number -> Number -> Number -> Eff (canvas :: CANVAS | eff) Context2D +canvasElementToImageSource :: CanvasElement -> CanvasImageSource ``` -#### `drawImageFull` +#### `drawImage` ``` purescript -drawImageFull :: forall eff. Context2D -> CanvasImageSource -> Number -> Number -> Number -> Number -> Number -> Number -> Number -> Number -> Eff (canvas :: CANVAS | eff) Context2D +drawImage :: forall eff. Context2D -> CanvasImageSource -> Number -> Number -> Eff (canvas :: CANVAS | eff) Unit ``` -#### `PatternRepeat` +#### `drawImageScale` ``` purescript -data PatternRepeat - = Repeat - | RepeatX - | RepeatY - | NoRepeat +drawImageScale :: forall eff. Context2D -> CanvasImageSource -> Number -> Number -> Number -> Number -> Eff (canvas :: CANVAS | eff) Unit ``` -Enumerates the different types of pattern repetitions. +#### `drawImageFull` -##### Instances ``` purescript -Show PatternRepeat +drawImageFull :: forall eff. Context2D -> CanvasImageSource -> Number -> Number -> Number -> Number -> Number -> Number -> Number -> Number -> Eff (canvas :: CANVAS | eff) Unit ``` #### `createPattern` ``` purescript -createPattern :: forall eff. CanvasImageSource -> PatternRepeat -> Context2D -> Eff (canvas :: CANVAS | eff) CanvasPattern +createPattern :: forall eff. Context2D -> CanvasImageSource -> PatternRepeat -> Eff (canvas :: CANVAS | eff) CanvasPattern ``` Create a new canvas pattern (repeatable image). @@ -751,45 +807,23 @@ Create a new canvas pattern (repeatable image). #### `setPatternFillStyle` ``` purescript -setPatternFillStyle :: forall eff. CanvasPattern -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +setPatternFillStyle :: forall eff. Context2D -> CanvasPattern -> Eff (canvas :: CANVAS | eff) Unit ``` Set the Context2D fillstyle to the CanvasPattern. -#### `LinearGradient` - -``` purescript -type LinearGradient = { x0 :: Number, y0 :: Number, x1 :: Number, y1 :: Number } -``` - -A type representing a linear gradient. - - Starting point coordinates: (`x0`, `y0`) - - Ending point coordinates: (`x1`, `y1`) - #### `createLinearGradient` ``` purescript -createLinearGradient :: forall eff. LinearGradient -> Context2D -> Eff (canvas :: CANVAS | eff) CanvasGradient +createLinearGradient :: forall eff. Context2D -> LinearGradient -> Eff (canvas :: CANVAS | eff) CanvasGradient ``` Create a linear CanvasGradient. -#### `RadialGradient` - -``` purescript -type RadialGradient = { x0 :: Number, y0 :: Number, r0 :: Number, x1 :: Number, y1 :: Number, r1 :: Number } -``` - -A type representing a radial gradient. - - Starting circle center coordinates: (`x0`, `y0`) - - Starting circle radius: `r0` - - Ending circle center coordinates: (`x1`, `y1`) - - Ending circle radius: `r1` - #### `createRadialGradient` ``` purescript -createRadialGradient :: forall eff. RadialGradient -> Context2D -> Eff (canvas :: CANVAS | eff) CanvasGradient +createRadialGradient :: forall eff. Context2D -> RadialGradient -> Eff (canvas :: CANVAS | eff) CanvasGradient ``` Create a radial CanvasGradient. @@ -797,7 +831,7 @@ Create a radial CanvasGradient. #### `addColorStop` ``` purescript -addColorStop :: forall eff. Number -> String -> CanvasGradient -> Eff (canvas :: CANVAS | eff) CanvasGradient +addColorStop :: forall eff. CanvasGradient -> Number -> String -> Eff (canvas :: CANVAS | eff) Unit ``` Add a single color stop to a CanvasGradient. @@ -805,44 +839,23 @@ Add a single color stop to a CanvasGradient. #### `setGradientFillStyle` ``` purescript -setGradientFillStyle :: forall eff. CanvasGradient -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +setGradientFillStyle :: forall eff. Context2D -> CanvasGradient -> Eff (canvas :: CANVAS | eff) Unit ``` Set the Context2D fillstyle to the CanvasGradient. -#### `QuadraticCurve` - -``` purescript -type QuadraticCurve = { cpx :: Number, cpy :: Number, x :: Number, y :: Number } -``` - -A type representing a quadratic Bézier curve. - - Bézier control point: (`cpx`, `cpy`) - - Ending point coordinates: (`x`, `y`) - #### `quadraticCurveTo` ``` purescript -quadraticCurveTo :: forall eff. QuadraticCurve -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +quadraticCurveTo :: forall eff. Context2D -> QuadraticCurve -> Eff (canvas :: CANVAS | eff) Unit ``` Draw a quadratic Bézier curve. -#### `BezierCurve` - -``` purescript -type BezierCurve = { cp1x :: Number, cp1y :: Number, cp2x :: Number, cp2y :: Number, x :: Number, y :: Number } -``` - -A type representing a cubic Bézier curve. - - First Bézier control point: (`cp1x`, `cp1y`) - - Second Bézier control point: (`cp2x`, `cp2y`) - - Ending point: (`x`, `y`) - #### `bezierCurveTo` ``` purescript -bezierCurveTo :: forall eff. BezierCurve -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +bezierCurveTo :: forall eff. Context2D -> BezierCurve -> Eff (canvas :: CANVAS | eff) Unit ``` Draw a cubic Bézier curve. diff --git a/psc-package.json b/psc-package.json deleted file mode 100644 index 0e565ee..0000000 --- a/psc-package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "canvas", - "source": "https://github.com/purescript/package-sets.git", - "set": "psc-0.10.1", - "depends": [ - "arraybuffer-types", - "bifunctors", - "control", - "eff", - "either", - "exceptions", - "foldable-traversable", - "functions", - "invariant", - "maybe", - "monoid", - "newtype", - "prelude" - ] -} diff --git a/src/Graphics/Canvas.js b/src/Graphics/Canvas.js index c08316b..6c2cb0d 100644 --- a/src/Graphics/Canvas.js +++ b/src/Graphics/Canvas.js @@ -17,8 +17,6 @@ exports.tryLoadImageImpl = function (src) { img.addEventListener("error", function(error) { e(); }, false); - - return {}; } } }; @@ -53,20 +51,18 @@ exports.getCanvasHeight = function(canvas) { }; }; -exports.setCanvasWidth = function(width) { - return function(canvas) { +exports.setCanvasWidth = function(canvas) { + return function(width) { return function() { canvas.width = width; - return canvas; }; }; }; -exports.setCanvasHeight = function(height) { - return function(canvas) { +exports.setCanvasHeight = function(canvas) { + return function(height) { return function() { canvas.height = height; - return canvas; }; }; }; @@ -77,92 +73,82 @@ exports.canvasToDataURL = function(canvas) { }; }; -exports.setLineWidth = function(width) { - return function(ctx) { +exports.setLineWidth = function(ctx) { + return function(width) { return function() { ctx.lineWidth = width; - return ctx; }; }; }; -exports.setFillStyle = function(style) { - return function(ctx) { +exports.setFillStyle = function(ctx) { + return function(style) { return function() { ctx.fillStyle = style; - return ctx; }; }; }; -exports.setStrokeStyle = function(style) { - return function(ctx) { +exports.setStrokeStyle = function(ctx) { + return function(style) { return function() { ctx.strokeStyle = style; - return ctx; }; }; }; -exports.setShadowColor = function(color) { - return function(ctx) { +exports.setShadowColor = function(ctx) { + return function(color) { return function() { ctx.shadowColor = color; - return ctx; }; }; }; -exports.setShadowBlur = function(blur) { - return function(ctx) { +exports.setShadowBlur = function(ctx) { + return function(blur) { return function() { ctx.shadowBlur = blur; - return ctx; }; }; }; -exports.setShadowOffsetX = function(offsetX) { - return function(ctx) { +exports.setShadowOffsetX = function(ctx) { + return function(offsetX) { return function() { ctx.shadowOffsetX = offsetX; - return ctx; }; }; }; -exports.setShadowOffsetY = function(offsetY) { - return function(ctx) { +exports.setShadowOffsetY = function(ctx) { + return function(offsetY) { return function() { ctx.shadowOffsetY = offsetY; - return ctx; }; }; }; -exports.setMiterLimit = function(limit) { - return function(ctx) { +exports.setMiterLimit = function(ctx) { + return function(limit) { return function() { ctx.miterLimit = limit; - return ctx; }; }; }; -exports.setLineCapImpl = function(cap) { - return function(ctx) { +exports.setLineCapImpl = function(ctx) { + return function(cap) { return function() { ctx.lineCap = cap; - return ctx; }; }; }; -exports.setLineJoinImpl = function(join) { - return function(ctx) { +exports.setLineJoinImpl = function(ctx) { + return function(join) { return function() { ctx.lineJoin = join; - return ctx; }; }; }; @@ -171,7 +157,6 @@ exports.setGlobalCompositeOperationImpl = function(ctx) { return function(op) { return function() { ctx.globalCompositeOperation = op; - return ctx; }; }; }; @@ -180,7 +165,6 @@ exports.setGlobalAlpha = function(ctx) { return function(alpha) { return function() { ctx.globalAlpha = alpha; - return ctx; }; }; }; @@ -188,28 +172,24 @@ exports.setGlobalAlpha = function(ctx) { exports.beginPath = function(ctx) { return function() { ctx.beginPath(); - return ctx; }; }; exports.stroke = function(ctx) { return function() { ctx.stroke(); - return ctx; }; }; exports.fill = function(ctx) { return function() { ctx.fill(); - return ctx; }; }; exports.clip = function(ctx) { return function() { ctx.clip(); - return ctx; }; }; @@ -218,7 +198,6 @@ exports.lineTo = function(ctx) { return function(y) { return function() { ctx.lineTo(x, y); - return ctx; }; }; }; @@ -229,7 +208,6 @@ exports.moveTo = function(ctx) { return function(y) { return function() { ctx.moveTo(x, y); - return ctx; }; }; }; @@ -238,7 +216,6 @@ exports.moveTo = function(ctx) { exports.closePath = function(ctx) { return function() { ctx.closePath(); - return ctx; }; }; @@ -246,7 +223,6 @@ exports.arc = function(ctx) { return function(a) { return function() { ctx.arc(a.x, a.y, a.r, a.start, a.end); - return ctx; }; }; }; @@ -255,7 +231,6 @@ exports.rect = function(ctx) { return function(r) { return function() { ctx.rect(r.x, r.y, r.w, r.h); - return ctx; }; }; }; @@ -264,7 +239,6 @@ exports.fillRect = function(ctx) { return function(r) { return function() { ctx.fillRect(r.x, r.y, r.w, r.h); - return ctx; }; }; }; @@ -273,52 +247,54 @@ exports.strokeRect = function(ctx) { return function(r) { return function() { ctx.strokeRect(r.x, r.y, r.w, r.h); - return ctx; }; }; }; -exports.scale = function(t) { - return function(ctx) { +exports.clearRect = function(ctx) { + return function(r) { + return function() { + ctx.clearRect(r.x, r.y, r.w, r.h); + }; + }; +}; + +exports.scale = function(ctx) { + return function(t) { return function() { ctx.scale(t.scaleX, t.scaleY); - return ctx; }; }; }; -exports.rotate = function(angle) { - return function(ctx) { +exports.rotate = function(ctx) { + return function(angle) { return function() { ctx.rotate(angle); - return ctx; }; }; }; -exports.translate = function(t) { - return function(ctx) { +exports.translate = function(ctx) { + return function(t) { return function() { ctx.translate(t.translateX, t.translateY); - return ctx; }; }; }; -exports.transform = function(t) { - return function(ctx) { +exports.transform = function(ctx) { + return function(t) { return function() { ctx.transform(t.m11, t.m12, t.m21, t.m22, t.m31, t.m32); - return ctx; }; }; }; -exports.setTransform = function(t) { - return function(ctx) { +exports.setTransform = function(ctx) { + return function(t) { return function() { ctx.setTransform(t.m11, t.m12, t.m21, t.m22, t.m31, t.m32); - return ctx; }; }; }; @@ -327,7 +303,6 @@ exports.clearRect = function(ctx) { return function(r) { return function() { ctx.clearRect(r.x, r.y, r.w, r.h); - return ctx; }; }; }; @@ -342,7 +317,6 @@ exports.setTextAlignImpl = function(ctx) { return function(textAlign) { return function() { ctx.textAlign = textAlign; - return ctx; } } }; @@ -353,11 +327,10 @@ exports.font = function(ctx) { }; }; -exports.setFont = function(fontspec) { - return function(ctx) { +exports.setFont = function(ctx) { + return function(fontspec) { return function() { ctx.font = fontspec; - return ctx; }; }; }; @@ -368,7 +341,6 @@ exports.fillText = function(ctx) { return function(y) { return function() { ctx.fillText(text, x, y); - return ctx; }; }; }; @@ -381,7 +353,6 @@ exports.strokeText = function(ctx) { return function(y) { return function() { ctx.strokeText(text, x, y); - return ctx; }; }; }; @@ -399,14 +370,12 @@ exports.measureText = function(ctx) { exports.save = function(ctx) { return function() { ctx.save(); - return ctx; }; }; exports.restore = function(ctx) { return function() { ctx.restore(); - return ctx; }; }; @@ -446,7 +415,6 @@ exports.putImageDataFull = function(ctx) { return function(dh) { return function() { ctx.putImageData(image_data, x, y, dx, dy, dw, dh); - return ctx; }; }; }; @@ -463,7 +431,6 @@ exports.putImageData = function(ctx) { return function(y) { return function() { ctx.putImageData(image_data, x, y); - return ctx; }; }; }; @@ -494,7 +461,6 @@ exports.drawImage = function(ctx) { return function(dy) { return function() { ctx.drawImage(image_source, dx, dy); - return ctx; }; }; }; @@ -509,7 +475,6 @@ exports.drawImageScale = function(ctx) { return function(dHeight) { return function() { ctx.drawImage(image_source, dx, dy, dWidth, dHeight); - return ctx; }; }; }; @@ -530,7 +495,6 @@ exports.drawImageFull = function(ctx) { return function(dHeight) { return function() { ctx.drawImage(image_source, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight); - return ctx; }; }; }; @@ -543,9 +507,9 @@ exports.drawImageFull = function(ctx) { }; }; -exports.createPatternImpl = function(img) { - return function(repeat) { - return function(ctx) { +exports.createPatternImpl = function(ctx) { + return function(img) { + return function(repeat) { return function() { return ctx.createPattern(img, repeat); }; @@ -553,65 +517,60 @@ exports.createPatternImpl = function(img) { }; }; -exports.setPatternFillStyle = function(pattern) { - return function(ctx) { +exports.setPatternFillStyle = function(ctx) { + return function(pattern) { return function() { ctx.fillStyle = pattern; - return ctx; }; }; }; -exports.createLinearGradient = function(linearGradient) { - return function(ctx) { +exports.createLinearGradient = function(ctx) { + return function(linearGradient) { return function() { return ctx.createLinearGradient(linearGradient.x0, linearGradient.y0, linearGradient.x1, linearGradient.y1); }; }; }; -exports.createRadialGradient = function(radialGradient) { - return function(ctx) { +exports.createRadialGradient = function(ctx) { + return function(radialGradient) { return function() { return ctx.createRadialGradient(radialGradient.x0, radialGradient.y0, radialGradient.r0, radialGradient.x1, radialGradient.y1, radialGradient.r1); }; }; }; -exports.addColorStop = function(stop) { - return function(color) { - return function(gradient) { +exports.addColorStop = function(gradient) { + return function(stop) { + return function(color) { return function() { gradient.addColorStop(stop, color); - return gradient; }; }; }; }; -exports.setGradientFillStyle = function(gradient) { - return function(ctx) { +exports.setGradientFillStyle = function(ctx) { + return function(gradient) { return function() { ctx.fillStyle = gradient; - return ctx; }; }; }; -exports.quadraticCurveTo = function(qCurve) { - return function(ctx) { +exports.quadraticCurveTo = function(ctx) { + return function(qCurve) { return function() { ctx.quadraticCurveTo(qCurve.cpx, qCurve.cpy, qCurve.x, qCurve.y); - return ctx; }; }; }; -exports.bezierCurveTo = function(bCurve) { - return function(ctx) { +exports.bezierCurveTo = function(ctx) { + return function(bCurve) { return function() { ctx.bezierCurveTo(bCurve.cp1x, bCurve.cp1y, bCurve.cp2x, bCurve.cp2y, bCurve.x, bCurve.y); - return ctx; }; }; }; diff --git a/src/Graphics/Canvas.purs b/src/Graphics/Canvas.purs index f627a40..0ae61e1 100644 --- a/src/Graphics/Canvas.purs +++ b/src/Graphics/Canvas.purs @@ -71,7 +71,7 @@ module Graphics.Canvas , rotate , translate , transform - , setTransform + , setTransform , textAlign , setTextAlign @@ -178,10 +178,10 @@ foreign import getCanvasWidth :: forall eff. CanvasElement -> Eff (canvas :: CAN foreign import getCanvasHeight :: forall eff. CanvasElement -> Eff (canvas :: CANVAS | eff) Number -- | Set the canvas width in pixels. -foreign import setCanvasWidth :: forall eff. Number -> CanvasElement -> Eff (canvas :: CANVAS | eff) CanvasElement +foreign import setCanvasWidth :: forall eff. CanvasElement -> Number -> Eff (canvas :: CANVAS | eff) Unit -- | Set the canvas height in pixels. -foreign import setCanvasHeight :: forall eff. Number -> CanvasElement -> Eff (canvas :: CANVAS | eff) CanvasElement +foreign import setCanvasHeight :: forall eff. CanvasElement -> Number -> Eff (canvas :: CANVAS | eff) Unit -- | Canvas dimensions (width and height) in pixels. type Dimensions = { width :: Number, height :: Number } @@ -194,61 +194,61 @@ getCanvasDimensions ce = do pure {width : w, height : h} -- | Set the canvas dimensions in pixels. -setCanvasDimensions :: forall eff. Dimensions -> CanvasElement -> Eff (canvas :: CANVAS | eff) CanvasElement -setCanvasDimensions d ce = setCanvasHeight d.height ce >>= setCanvasWidth d.width +setCanvasDimensions :: forall eff. CanvasElement -> Dimensions -> Eff (canvas :: CANVAS | eff) Unit +setCanvasDimensions ce d = setCanvasHeight ce d.height *> setCanvasWidth ce d.width -- | Create a data URL for the current canvas contents foreign import canvasToDataURL :: forall eff. CanvasElement -> Eff (canvas :: CANVAS | eff) String -- | Set the current line width. -foreign import setLineWidth :: forall eff. Number -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import setLineWidth :: forall eff. Context2D -> Number -> Eff (canvas :: CANVAS | eff) Unit -- | Set the current fill style/color. -foreign import setFillStyle :: forall eff. String -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import setFillStyle :: forall eff. Context2D -> String -> Eff (canvas :: CANVAS | eff) Unit -- | Set the current stroke style/color. -foreign import setStrokeStyle :: forall eff. String -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import setStrokeStyle :: forall eff. Context2D -> String -> Eff (canvas :: CANVAS | eff) Unit -- | Set the current shadow color. -foreign import setShadowColor :: forall eff. String -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import setShadowColor :: forall eff. Context2D -> String -> Eff (canvas :: CANVAS | eff) Unit -- | Set the current shadow blur radius. -foreign import setShadowBlur :: forall eff. Number -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import setShadowBlur :: forall eff. Context2D -> Number -> Eff (canvas :: CANVAS | eff) Unit -- | Set the current shadow x-offset. -foreign import setShadowOffsetX :: forall eff. Number -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import setShadowOffsetX :: forall eff. Context2D -> Number -> Eff (canvas :: CANVAS | eff) Unit -- | Set the current shadow y-offset. -foreign import setShadowOffsetY :: forall eff. Number -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import setShadowOffsetY :: forall eff. Context2D -> Number -> Eff (canvas :: CANVAS | eff) Unit -- | Set the current miter limit. -foreign import setMiterLimit :: forall eff. Number -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import setMiterLimit :: forall eff. Context2D -> Number -> Eff (canvas :: CANVAS | eff) Unit -- | Enumerates the different types of line cap. data LineCap = Round | Square | Butt derive instance eqLineCap :: Eq LineCap -foreign import setLineCapImpl :: forall eff. String -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import setLineCapImpl :: forall eff. Context2D -> String -> Eff (canvas :: CANVAS | eff) Unit -- | Set the current line cap type. -setLineCap :: forall eff. LineCap -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D -setLineCap Round = setLineCapImpl "round" -setLineCap Square = setLineCapImpl "square" -setLineCap Butt = setLineCapImpl "butt" +setLineCap :: forall eff. Context2D -> LineCap -> Eff (canvas :: CANVAS | eff) Unit +setLineCap context Round = setLineCapImpl context "round" +setLineCap context Square = setLineCapImpl context "square" +setLineCap context Butt = setLineCapImpl context "butt" -- Note that we can't re-use `Round` from LineCap, so I've added `Join` to all of these -- | Enumerates the different types of line join data LineJoin = BevelJoin | RoundJoin | MiterJoin -foreign import setLineJoinImpl :: forall eff. String -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import setLineJoinImpl :: forall eff. Context2D -> String -> Eff (canvas :: CANVAS | eff) Unit -- | Set the current line join type. -setLineJoin :: forall eff. LineJoin -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D -setLineJoin BevelJoin = setLineJoinImpl "bevel" -setLineJoin RoundJoin = setLineJoinImpl "round" -setLineJoin MiterJoin = setLineJoinImpl "miter" +setLineJoin :: forall eff. Context2D -> LineJoin -> Eff (canvas :: CANVAS | eff) Unit +setLineJoin context BevelJoin = setLineJoinImpl context "bevel" +setLineJoin context RoundJoin = setLineJoinImpl context "round" +setLineJoin context MiterJoin = setLineJoinImpl context "miter" -- | Enumerates the different types of composite operations and blend modes. data Composite @@ -310,10 +310,10 @@ instance showComposite :: Show Composite where show Color = "Color" show Luminosity = "Luminosity" -foreign import setGlobalCompositeOperationImpl :: forall eff. Context2D -> String -> Eff (canvas :: CANVAS | eff) Context2D +foreign import setGlobalCompositeOperationImpl :: forall eff. Context2D -> String -> Eff (canvas :: CANVAS | eff) Unit -- | Set the current composite operation. -setGlobalCompositeOperation :: forall eff. Context2D -> Composite -> Eff (canvas :: CANVAS | eff) Context2D +setGlobalCompositeOperation :: forall eff. Context2D -> Composite -> Eff (canvas :: CANVAS | eff) Unit setGlobalCompositeOperation ctx composite = setGlobalCompositeOperationImpl ctx (toString composite) where toString SourceOver = "source-over" @@ -344,28 +344,28 @@ setGlobalCompositeOperation ctx composite = setGlobalCompositeOperationImpl ctx toString Luminosity = "luminosity" -- | Set the current global alpha level. -foreign import setGlobalAlpha :: forall eff. Context2D -> Number -> Eff (canvas :: CANVAS | eff) Context2D +foreign import setGlobalAlpha :: forall eff. Context2D -> Number -> Eff (canvas :: CANVAS | eff) Unit -- | Begin a path object. -foreign import beginPath :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import beginPath :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Unit -- | Stroke the current object. -foreign import stroke :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import stroke :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Unit -- | Fill the current object. -foreign import fill :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import fill :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Unit -- | Clip to the current object. -foreign import clip :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import clip :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Unit -- | Move the path to the specified coordinates, drawing a line segment. -foreign import lineTo :: forall eff. Context2D -> Number -> Number -> Eff (canvas :: CANVAS | eff) Context2D +foreign import lineTo :: forall eff. Context2D -> Number -> Number -> Eff (canvas :: CANVAS | eff) Unit -- | Move the path to the specified coordinates, without drawing a line segment. -foreign import moveTo :: forall eff. Context2D -> Number -> Number -> Eff (canvas :: CANVAS | eff) Context2D +foreign import moveTo :: forall eff. Context2D -> Number -> Number -> Eff (canvas :: CANVAS | eff) Unit -- | Close the current path. -foreign import closePath :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import closePath :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Unit -- | A convenience function for drawing a stroked path. -- | @@ -417,7 +417,7 @@ type Arc = } -- | Render an arc object. -foreign import arc :: forall eff. Context2D -> Arc -> Eff (canvas :: CANVAS | eff) Context2D +foreign import arc :: forall eff. Context2D -> Arc -> Eff (canvas :: CANVAS | eff) Unit -- | A type representing a rectangle object: -- | @@ -431,16 +431,16 @@ type Rectangle = } -- | Render a rectangle. -foreign import rect :: forall eff. Context2D -> Rectangle -> Eff (canvas :: CANVAS | eff) Context2D +foreign import rect :: forall eff. Context2D -> Rectangle -> Eff (canvas :: CANVAS | eff) Unit -- | Fill a rectangle. -foreign import fillRect :: forall eff. Context2D -> Rectangle -> Eff (canvas :: CANVAS | eff) Context2D +foreign import fillRect :: forall eff. Context2D -> Rectangle -> Eff (canvas :: CANVAS | eff) Unit -- | Stroke a rectangle. -foreign import strokeRect :: forall eff. Context2D -> Rectangle -> Eff (canvas :: CANVAS | eff) Context2D +foreign import strokeRect :: forall eff. Context2D -> Rectangle -> Eff (canvas :: CANVAS | eff) Unit -- | Clear a rectangle. -foreign import clearRect :: forall eff. Context2D -> Rectangle -> Eff (canvas :: CANVAS | eff) Context2D +foreign import clearRect :: forall eff. Context2D -> Rectangle -> Eff (canvas :: CANVAS | eff) Unit -- | An object representing a scaling transform: -- | @@ -451,10 +451,10 @@ type ScaleTransform = } -- | Apply a scaling transform. -foreign import scale :: forall eff. ScaleTransform -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import scale :: forall eff. Context2D -> ScaleTransform -> Eff (canvas :: CANVAS | eff) Unit -- | Apply a rotation. -foreign import rotate :: forall eff. Number -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import rotate :: forall eff. Context2D -> Number -> Eff (canvas :: CANVAS | eff) Unit -- | An object representing a translation: -- | @@ -465,7 +465,7 @@ type TranslateTransform = } -- | Apply a translation -foreign import translate :: forall eff. TranslateTransform -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import translate :: forall eff. Context2D -> TranslateTransform -> Eff (canvas :: CANVAS | eff) Unit -- | An object representing a general transformation as a homogeneous matrix. type Transform = @@ -478,10 +478,10 @@ type Transform = } -- | Apply a general transformation to the current transformation matrix -foreign import transform :: forall eff. Transform -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import transform :: forall eff. Context2D -> Transform -> Eff (canvas :: CANVAS | eff) Unit -- | Set the transformation matrix -foreign import setTransform :: forall eff. Transform -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import setTransform :: forall eff. Context2D -> Transform -> Eff (canvas :: CANVAS | eff) Unit -- | Enumerates types of text alignment. data TextAlign @@ -509,10 +509,10 @@ textAlign ctx = unsafeParseTextAlign <$> textAlignImpl ctx unsafeParseTextAlign align = unsafeThrow $ "invalid TextAlign: " <> align -- ^ dummy to silence compiler warnings -foreign import setTextAlignImpl :: forall eff. Context2D -> String -> (Eff (canvas :: CANVAS | eff) Context2D) +foreign import setTextAlignImpl :: forall eff. Context2D -> String -> Eff (canvas :: CANVAS | eff) Unit -- | Set the current text alignment. -setTextAlign :: forall eff. Context2D -> TextAlign -> Eff (canvas :: CANVAS | eff) Context2D +setTextAlign :: forall eff. Context2D -> TextAlign -> Eff (canvas :: CANVAS | eff) Unit setTextAlign ctx textalign = setTextAlignImpl ctx (toString textalign) where @@ -531,22 +531,22 @@ type TextMetrics = { width :: Number } foreign import font :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) String -- | Set the current font. -foreign import setFont :: forall eff. String -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import setFont :: forall eff. Context2D -> String -> Eff (canvas :: CANVAS | eff) Unit -- | Fill some text. -foreign import fillText :: forall eff. Context2D -> String -> Number -> Number -> Eff (canvas :: CANVAS | eff) Context2D +foreign import fillText :: forall eff. Context2D -> String -> Number -> Number -> Eff (canvas :: CANVAS | eff) Unit -- | Stroke some text. -foreign import strokeText :: forall eff. Context2D -> String -> Number -> Number -> Eff (canvas :: CANVAS | eff) Context2D +foreign import strokeText :: forall eff. Context2D -> String -> Number -> Number -> Eff (canvas :: CANVAS | eff) Unit -- | Measure some text. foreign import measureText :: forall eff. Context2D -> String -> Eff (canvas :: CANVAS | eff) TextMetrics -- | Save the current context. -foreign import save :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import save :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Unit -- | Restore the previous context. -foreign import restore :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import restore :: forall eff. Context2D -> Eff (canvas :: CANVAS | eff) Unit -- | A convenience function: run the action, preserving the existing context. -- | @@ -568,10 +568,10 @@ withContext ctx action = do foreign import getImageData :: forall eff. Context2D -> Number -> Number -> Number -> Number -> Eff (canvas :: CANVAS | eff) ImageData -- | Set image data for a portion of the canvas. -foreign import putImageDataFull :: forall eff. Context2D -> ImageData -> Number -> Number -> Number -> Number -> Number -> Number -> Eff (canvas :: CANVAS | eff) Context2D +foreign import putImageDataFull :: forall eff. Context2D -> ImageData -> Number -> Number -> Number -> Number -> Number -> Number -> Eff (canvas :: CANVAS | eff) Unit -- | Set image data for a portion of the canvas. -foreign import putImageData :: forall eff. Context2D -> ImageData -> Number -> Number -> Eff (canvas :: CANVAS | eff) Context2D +foreign import putImageData :: forall eff. Context2D -> ImageData -> Number -> Number -> Eff (canvas :: CANVAS | eff) Unit -- | Create an image data object. foreign import createImageData :: forall eff. Context2D -> Number -> Number -> Eff (canvas :: CANVAS | eff) ImageData @@ -588,11 +588,11 @@ foreign import imageDataHeight :: ImageData -> Int -- | Get the underlying buffer from an `ImageData` object. foreign import imageDataBuffer :: ImageData -> Uint8ClampedArray -foreign import drawImage :: forall eff. Context2D -> CanvasImageSource -> Number -> Number -> Eff (canvas :: CANVAS | eff) Context2D +foreign import drawImage :: forall eff. Context2D -> CanvasImageSource -> Number -> Number -> Eff (canvas :: CANVAS | eff) Unit -foreign import drawImageScale :: forall eff. Context2D -> CanvasImageSource -> Number -> Number -> Number -> Number -> Eff (canvas :: CANVAS | eff) Context2D +foreign import drawImageScale :: forall eff. Context2D -> CanvasImageSource -> Number -> Number -> Number -> Number -> Eff (canvas :: CANVAS | eff) Unit -foreign import drawImageFull :: forall eff. Context2D -> CanvasImageSource -> Number -> Number -> Number -> Number -> Number -> Number -> Number -> Number -> Eff (canvas :: CANVAS | eff) Context2D +foreign import drawImageFull :: forall eff. Context2D -> CanvasImageSource -> Number -> Number -> Number -> Number -> Number -> Number -> Number -> Number -> Eff (canvas :: CANVAS | eff) Unit -- | Enumerates the different types of pattern repetitions. data PatternRepeat = Repeat | RepeatX | RepeatY | NoRepeat @@ -603,11 +603,11 @@ instance showPatternRepeat :: Show PatternRepeat where show RepeatY = "RepeatY" show NoRepeat = "NoRepeat" -foreign import createPatternImpl :: forall eff. CanvasImageSource -> String -> Context2D -> Eff (canvas :: CANVAS | eff) CanvasPattern +foreign import createPatternImpl :: forall eff. Context2D -> CanvasImageSource -> String -> Eff (canvas :: CANVAS | eff) CanvasPattern -- | Create a new canvas pattern (repeatable image). -createPattern :: forall eff. CanvasImageSource -> PatternRepeat -> Context2D -> Eff (canvas :: CANVAS | eff) CanvasPattern -createPattern img repeat = createPatternImpl img (toString repeat) +createPattern :: forall eff. Context2D -> CanvasImageSource -> PatternRepeat -> Eff (canvas :: CANVAS | eff) CanvasPattern +createPattern context img repeat = createPatternImpl context img (toString repeat) where toString Repeat = "repeat" toString RepeatX = "repeat-x" @@ -615,7 +615,7 @@ createPattern img repeat = createPatternImpl img (toString repeat) toString NoRepeat = "no-repeat" -- | Set the Context2D fillstyle to the CanvasPattern. -foreign import setPatternFillStyle :: forall eff. CanvasPattern -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import setPatternFillStyle :: forall eff. Context2D -> CanvasPattern -> Eff (canvas :: CANVAS | eff) Unit -- | A type representing a linear gradient. -- | - Starting point coordinates: (`x0`, `y0`) @@ -629,7 +629,7 @@ type LinearGradient = } -- | Create a linear CanvasGradient. -foreign import createLinearGradient :: forall eff. LinearGradient -> Context2D -> Eff (canvas :: CANVAS | eff) CanvasGradient +foreign import createLinearGradient :: forall eff. Context2D -> LinearGradient -> Eff (canvas :: CANVAS | eff) CanvasGradient -- | A type representing a radial gradient. -- | - Starting circle center coordinates: (`x0`, `y0`) @@ -647,13 +647,13 @@ type RadialGradient = } -- | Create a radial CanvasGradient. -foreign import createRadialGradient :: forall eff. RadialGradient -> Context2D -> Eff (canvas :: CANVAS | eff) CanvasGradient +foreign import createRadialGradient :: forall eff. Context2D -> RadialGradient -> Eff (canvas :: CANVAS | eff) CanvasGradient -- | Add a single color stop to a CanvasGradient. -foreign import addColorStop :: forall eff. Number -> String -> CanvasGradient -> Eff (canvas :: CANVAS | eff) CanvasGradient +foreign import addColorStop :: forall eff. CanvasGradient -> Number -> String -> Eff (canvas :: CANVAS | eff) Unit -- | Set the Context2D fillstyle to the CanvasGradient. -foreign import setGradientFillStyle :: forall eff. CanvasGradient -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import setGradientFillStyle :: forall eff. Context2D -> CanvasGradient -> Eff (canvas :: CANVAS | eff) Unit -- | A type representing a quadratic Bézier curve. -- | - Bézier control point: (`cpx`, `cpy`) @@ -667,7 +667,7 @@ type QuadraticCurve = } -- | Draw a quadratic Bézier curve. -foreign import quadraticCurveTo :: forall eff. QuadraticCurve -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import quadraticCurveTo :: forall eff. Context2D -> QuadraticCurve -> Eff (canvas :: CANVAS | eff) Unit -- | A type representing a cubic Bézier curve. -- | - First Bézier control point: (`cp1x`, `cp1y`) @@ -684,4 +684,4 @@ type BezierCurve = } -- | Draw a cubic Bézier curve. -foreign import bezierCurveTo :: forall eff. BezierCurve -> Context2D -> Eff (canvas :: CANVAS | eff) Context2D +foreign import bezierCurveTo :: forall eff. Context2D -> BezierCurve -> Eff (canvas :: CANVAS | eff) Unit