4 | import Rhone.JS.ElemRef
7 | import public Rhone.Canvas.Angle
8 | import public Rhone.Canvas.Scene
9 | import public Rhone.Canvas.Shape
10 | import public Rhone.Canvas.Style
11 | import public Rhone.Canvas.Transformation
17 | constructor MkCanvas
18 | ref : ElemRef HTMLCanvasElement
19 | width, height : Double
27 | context2D : ElemRef HTMLCanvasElement -> JSIO CanvasRenderingContext2D
29 | canvas <- getElementByRef ref
30 | m <- getContext canvas "2d"
31 | case m >>= project CanvasRenderingContext2D of
33 | Nothing => throwError $
Caught "Rhone.Canvas.context2d: No rendering context for canvas"
36 | render : Canvas -> JSIO ()
37 | render (MkCanvas ref w h scene) = do
38 | ctxt <- context2D ref
39 | apply ctxt $
Rect 0 0 w h Clear