@@ -2,8 +2,8 @@ open Webapi.Canvas
22open Webapi .Canvas .Canvas2d
33open Webapi .Dom
44
5- let canvasEl = document -> Document .createElement ("canvas" )
6- let ctx = canvasEl -> CanvasElement .getContext2d
5+ let canvasEl : Dom . element = document -> Document .createElement ("canvas" )
6+ let ctx : t = canvasEl -> CanvasElement .getContext2d
77
88ctx -> save
99ctx -> restore
@@ -25,7 +25,7 @@ setStrokeStyle(ctx, String, "red")
2525setFillStyle (ctx , String , "red" )
2626
2727switch fillStyle (ctx ) {
28- | (Gradient , g ) => g -> addColorStop (0.0 , "red" )
28+ | (Gradient , g : gradient ) => g -> addColorStop (0.0 , "red" )
2929| (String , s ) => Js .log (s )
3030| (Pattern , _ ) => ()
3131}
@@ -53,49 +53,47 @@ ctx->bezierCurveTo(~cp1x=1., ~cp1y=1., ~cp2x=2., ~cp2y=2., ~x=4., ~y=4.)
5353ctx -> arcTo (~x1 = 1 ., ~y1 = 1 ., ~x2 = 2 ., ~y2 = 2 ., ~r = 4 .)
5454ctx -> arc (~x = 1 ., ~y = 1 ., ~r = 4 ., ~startAngle = 1 ., ~endAngle = 3 ., ~anticw = true )
5555ctx -> rect (~x = 0 ., ~y = 0 ., ~w = 10 ., ~h = 10 .)
56- let _ = ctx -> isPointInPath (~x = 0 ., ~y = 0 .)
56+ let pointInPath : bool = ctx -> isPointInPath (~x = 0 ., ~y = 0 .)
5757
58- let linearGradient = ctx -> createLinearGradient (~x0 = 0.0 , ~y0 = 0.0 , ~x1 = 0.0 , ~y1 = 0.0 )
58+ let linearGradient : gradient = ctx -> createLinearGradient (~x0 = 0.0 , ~y0 = 0.0 , ~x1 = 0.0 , ~y1 = 0.0 )
5959setStrokeStyle (ctx , Gradient , linearGradient )
60- let _ = ctx -> createRadialGradient (~x0 = 0.0 , ~y0 = 0.0 , ~x1 = 0.0 , ~y1 = 0.0 , ~r0 = 0.0 , ~r1 = 0.0 )
60+ let radialGradient : gradient = ctx -> createRadialGradient (~x0 = 0.0 , ~y0 = 0.0 , ~x1 = 0.0 , ~y1 = 0.0 , ~r0 = 0.0 , ~r1 = 0.0 )
6161linearGradient -> addColorStop (0.0 , "red" )
62- let _ = List . map (
63- ctx -> createPattern (document -> Document .createElement ("img" )),
64- list { #noRepeat , #repeat , #repeatX , #repeatY },
65- )
62+ let noRepeatPatern : pattern = ctx -> createPattern ( document -> Document . createElement ( "img" ), #noRepeat )
63+ let repeatPatern : pattern = ctx -> createPattern (document -> Document .createElement ("img" ), #repeat )
64+ let repeatXPatern : pattern = ctx -> createPattern ( document -> Document . createElement ( "img" ) , #repeatX )
65+ let repeatYPatern : pattern = ctx -> createPattern ( document -> Document . createElement ( "img" ), #repeatY )
6666
67- let measureText = ctx -> measureText ("foo" )
68- let width = width (measureText )
67+ let measureText : measureText = ctx -> measureText ("foo" )
68+ let width : float = width (measureText )
6969ctx -> fillText ("foo!" , ~x = 0.0 , ~y = 0.0 , ~maxWidth = width , ())
7070ctx -> strokeText ("foo!" , ~x = 0.0 , ~y = 0.0 , ~maxWidth = width , ())
7171
72- let image = HtmlImageElement .makeWithSize (16 , 16 )
73- let _ : unit = ctx -> drawImage (#HtmlImageElement (image ), ~dx = 0.0 , ~dy = 0.0 )
74- let _ : unit =
75- ctx -> drawImageScale (#HtmlImageElement (image ), ~dx = 0.0 , ~dy = 0.0 , ~dWidth = 16.0 , ~dHeight = 16.0 )
76- let _ : unit =
77- ctx -> drawImageFull (
78- #HtmlImageElement (image ),
79- ~sx = 0.0 ,
80- ~sy = 0.0 ,
81- ~sWidth = 16.0 ,
82- ~sHeight = 16.0 ,
83- ~dx = 0.0 ,
84- ~dy = 0.0 ,
85- ~dHeight = 16.0 ,
86- ~dWidth = 16.0 ,
87- )
88-
89- let imageData = createImageDataCoords (ctx , ~width = 0.0 , ~height = 0.0 )
90- let _ = createImageDataFromImage (ctx , imageData )
91- let _ = Image .width (imageData )
92- let _ = Image .height (imageData )
93-
94- let _ = getImageData (ctx , ~sx = 0.0 , ~sy = 0.0 , ~sw = 0.0 , ~sh = 0.0 )
95- let _ : unit = putImageData (ctx , ~imageData , ~dx = 0.0 , ~dy = 0.0 )
96- let _ : unit = putImageDataWithDirtyRect (
72+ let image : HtmlImageElement .t = HtmlImageElement .makeWithSize (16 , 16 )
73+ ctx -> drawImage (#HtmlImageElement (image ), ~dx = 0.0 , ~dy = 0.0 )
74+ ctx -> drawImageScale (#HtmlImageElement (image ), ~dx = 0.0 , ~dy = 0.0 , ~dWidth = 16.0 , ~dHeight = 16.0 )
75+ ctx -> drawImageFull (
76+ #HtmlImageElement (image ),
77+ ~sx = 0.0 ,
78+ ~sy = 0.0 ,
79+ ~sWidth = 16.0 ,
80+ ~sHeight = 16.0 ,
81+ ~dx = 0.0 ,
82+ ~dy = 0.0 ,
83+ ~dHeight = 16.0 ,
84+ ~dWidth = 16.0 ,
85+ )
86+
87+ let imageFromCoords : Image .t = createImageDataCoords (ctx , ~width = 0.0 , ~height = 0.0 )
88+ let imageFromData : Image .t = createImageDataFromImage (ctx , imageFromCoords )
89+ let w : float = Image .width (imageFromCoords )
90+ let h : float = Image .height (imageFromCoords )
91+
92+ let frameFromImage = getImageData (ctx , ~sx = 0.0 , ~sy = 0.0 , ~sw = 0.0 , ~sh = 0.0 )
93+ putImageData (ctx , ~imageData = imageFromCoords , ~dx = 0.0 , ~dy = 0.0 )
94+ putImageDataWithDirtyRect (
9795 ctx ,
98- ~imageData ,
96+ ~imageData = imageFromCoords ,
9997 ~dx = 0.0 ,
10098 ~dy = 0.0 ,
10199 ~dirtyX = 0.0 ,
@@ -114,7 +112,7 @@ ctx->fillRect(~x=1., ~y=0., ~w=10., ~h=10.)
114112ctx -> strokeRect (~x = 1 ., ~y = 0 ., ~w = 10 ., ~h = 10 .)
115113ctx -> clearRect (~x = 1 ., ~y = 0 ., ~w = 10 ., ~h = 10 .)
116114
117- let path = newPath2D ("M24.85,10.126c2.018-4.783,6.628-8.125,11.99-8.125c7.223"
115+ let path : path2d = newPath2D ("M24.85,10.126c2.018-4.783,6.628-8.125,11.99-8.125c7.223"
118116 ++ ",0,12.425,6.179,13.079,13.543 c0,0,0.353,1.828-0.424,5.119c-1.058,4.482"
119117 ++ "-3.545,8.464-6.898,11.503L24.85,48L7.402,32.165c-3.353-3.038-5.84-7.021"
120118 ++ "-6.898-11.503 c-0.777-3.291-0.424-5.119-0.424-5.119C0.734,8.179,5.936,2"
0 commit comments