Copyright Noel Welsh.
Doodle is a Scala library for compositional vector graphics.
Distributed under the Apache 2.0 license.
- The current release is 0.9.7 and is on the
master
branch. - The current snapshot is 0.9.7-SNAPSHOT and is on the
develop
branch.
To use doodle add the following to your build.sbt
:
scalaVersion := "2.12.8" // Doodle is currently published for Scala 2.12 only
libraryDependencies += "org.creativescala" %% "doodle" % "0.9.7"
Alternatively you can git clone
or download Doodle and use it directly from the SBT console. See the instructions below.
Documentation is still a work-in-progress.
Creative Scala provides another source of documentation for Doodle. Creative Scala is a free introductory Scala ebook.
Below we have a few tips to get you started.
If you downloaded Doodle, rather than adding it to an existing Scala project, you can play around with it as follows.
-
Start SBT:
bash$ sbt > # This is the SBT prompt. Press Ctrl+D to quit to the OS.
-
Start the console:
> rootJVM/console scala> # This is the Scala prompt. Press Ctrl+D to quit to SBT.
-
Use Scala commands to draw a shape in a native window:
scala> (Image.circle(10).fillColor(Color.red)).draw()
A window should appear containing a red circle.
-
You can also save your masterpieces to a file.
scala> (Image.circle(10).fillColor.(Color.red)).write[Png]("masterpiece.png")
Doodle currently supports writing to PNG, GIF, and JPG formats. Just alter the type parameter of
write
accordingly.
Doodle was written by Noel Welsh with contributions from the contributors listed by Github.
These are notes for developers.
To generate the documentation run the documentation
task in SBT without changing to any project. If you do the task just seems to disappear. I have no idea why. The output will be in docs/target/docs
. Copy this to the website and upload.
If you run out of metaspace you can punch SBT in the face. Alternatively run just the documentation task (i.e. sbt documentation
) and it seems to be happier.
To publish a snapshot:
- update the version number on
develop
inpublish.sbt
- update version number in this
README.md
- run
publishSigned
- run
sonatypeBundleRelease
- tag
develop
with the snapshot version - push tags to
origin
.
To publish a release:
- merge
develop
intomaster
. - update the version number on
master
inpublish.sbt
- update the version number in
README.md
on bothdevelop
andmaster
- update the version number in
docs/src/main/mdoc/index.md
(can this be autogenerated somehow?) - run
publishSigned
- run
sonatypeBundleRelease
- tag
master
with the release version - push tags to
origin
.