You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Java2D backend is a bit of a mess. Clean it up:
Clearly separate Swing components (which exist in the Java-centric world) from Doodle components (which are Scala / Cats Effect). E.g. currently Canvas mixes the two.
Cleanly separate threading models. The current implementation mixes Cats Effect and Java threading and I think this is leading to deadlock. Make the boundaries between the two very clear and implent this correctly.
Follow Swing threading model, as described in Concurrency in Swing, for Swing components.
Make Java2DPanel (or equivalent, if it is replaced) embeddable in other Swing components.
Probably get rid of Reified and replace with the Church encoding, which I think will offer more opportunity for the JIT compiler to get to work, and will be easier to work with.
Look at dropped mouse clicks and attempt to fix
Optimize BlockingCircularQueue for reads over writes and SPSC use case (which might address dropped mouse clicks)
(Optional) Frame configuration to not embed the Canvas in a window, but keep it as an embeddable Swing component that can be used in a larger context.
The text was updated successfully, but these errors were encountered:
It's not a good first issue. (Those that are good first issues are labelled as such.) To undertake this you have to have a good understanding of Scala style and how the Java2D implementation works.
The Java2D backend is a bit of a mess. Clean it up:
Canvas
mixes the two.Java2DPanel
(or equivalent, if it is replaced) embeddable in other Swing components.Reified
and replace with the Church encoding, which I think will offer more opportunity for the JIT compiler to get to work, and will be easier to work with.BlockingCircularQueue
for reads over writes and SPSC use case (which might address dropped mouse clicks)Frame
configuration to not embed theCanvas
in a window, but keep it as an embeddable Swing component that can be used in a larger context.The text was updated successfully, but these errors were encountered: