AbstractAnimationRendererSyntax

doodle.interact.syntax.AbstractAnimationRendererSyntax

Rendering works differently on different platforms. The Javascript runtime must render asynchronously. The JVM runtime can render asychronously or sychronously. However, rendering in a Swing / Java2D context takes places on a daemon thread. This means the JVM will exit if this is the only thread running. The implication is that short Doodle program that does not block the main thread waiting for the Swing thread to complete will usually exit before the output appears. Therefore, at least in the common case, rendering should be synchronous on the JVM. People who want more control can work directly with IO.

Attributes

Source
AbstractAnimationRendererSyntax.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object all.type
object animationRenderer.type

Members list

Type members

Classlikes

implicit class AnimateStreamOps[Alg <: Algebra, A](frames: Stream[IO, Picture[Alg, A]])

This syntax is for streams producing pictures at a rate that is appropriate for animation.

This syntax is for streams producing pictures at a rate that is appropriate for animation.

Attributes

Source
AbstractAnimationRendererSyntax.scala
Supertypes
class Object
trait Matchable
class Any
implicit class AnimateToStreamOps[Alg <: Algebra, A](frames: Stream[IO, Picture[Alg, A]])

This syntax is for streams that are not producing pictures at a rate that is appropriate for animation. They will be throttled to an appropriate rate.

This syntax is for streams that are not producing pictures at a rate that is appropriate for animation. They will be throttled to an appropriate rate.

Attributes

Source
AbstractAnimationRendererSyntax.scala
Supertypes
class Object
trait Matchable
class Any

Value members

Abstract methods

protected def runIO[A](io: IO[A])(implicit runtime: IORuntime): Unit

Subtypes should implement this with unsafeRunSync or unsafeRunAsync as appropriate. Returns Unit because unsafeRunAsync cannot return a value.

Subtypes should implement this with unsafeRunSync or unsafeRunAsync as appropriate. Returns Unit because unsafeRunAsync cannot return a value.

Attributes

Source
AbstractAnimationRendererSyntax.scala

Implicits

Implicits

final implicit def AnimateStreamOps[Alg <: Algebra, A](frames: Stream[IO, Picture[Alg, A]]): AnimateStreamOps[Alg, A]

This syntax is for streams producing pictures at a rate that is appropriate for animation.

This syntax is for streams producing pictures at a rate that is appropriate for animation.

Attributes

Source
AbstractAnimationRendererSyntax.scala
final implicit def AnimateToStreamOps[Alg <: Algebra, A](frames: Stream[IO, Picture[Alg, A]]): AnimateToStreamOps[Alg, A]

This syntax is for streams that are not producing pictures at a rate that is appropriate for animation. They will be throttled to an appropriate rate.

This syntax is for streams that are not producing pictures at a rate that is appropriate for animation. They will be throttled to an appropriate rate.

Attributes

Source
AbstractAnimationRendererSyntax.scala