Greetings,
I've been using evancz/elm-graphics (alongside elm-lang/animation-frame,
elm-community/easing-functions, mgold/elm-animation) to develop overlay
graphics (in the style of http://nodecg.com
/ https://www.youtube.com/watch?v=x9PzBHgN29U ), and I've had a lot more
fun using it.
But I found some of the canvas APIs are not available, which is why I'm
currently interested in creating an alternative to elm-graphics, focusing
on implementing a low-level interface to the HTML5 Canvas, which could then
be used to recreate the higher-level API elm-graphics offers.
I've come to ask help about API design, I can see a few ways of doing it:
One being somewhat similar to elm-graphics, which would be passing
instructions to the render function
view model =
Html.div []
[ Canvas.draw2D ( 200, 300 )
[ Canvas.fillStyleColor <| Color.rgb 0 255 0
, Canvas.fillRect 10 10 100 100
]
]
or even pipeline-style
view model =
Html.div []
[ Canvas.draw2D ( 200, 300 )
|> Canvas.fillStyleColor (Color.rgb 0 255 0)
|> Canvas.fillRect 10 10 100 100
]
or instead through Messages and in the style of The Elm Architecture, the
Canvas would be its own component
update msg model =
case msg of
Alert message color ->
model
! List.map MsgCanvas
[ Canvas.fillStyleColor color
, Canvas.fillText 10 10 message
]
MsgCanvas msg ->
{ model | canvas = Canvas.update msg model.canvas } ! []
view model =
Html.div [] [ Canvas.draw2D ( 200, 300 ) model.canvas ]
How do you feel about them? What else should I know about canvas,
interfacing with JS, etc?
Thanks
--
You received this message because you are subscribed to the Google Groups "Elm
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to elm-discuss+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.