This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-09-23
Channels
- # announcements (5)
- # babashka (22)
- # beginners (240)
- # calva (51)
- # clj-commons (1)
- # cljsrn (9)
- # clojars (12)
- # clojure (81)
- # clojure-australia (2)
- # clojure-europe (40)
- # clojure-france (10)
- # clojure-italy (1)
- # clojure-nl (2)
- # clojure-uk (37)
- # clojurescript (59)
- # clojureverse-ops (2)
- # copenhagen-clojurians (1)
- # cursive (9)
- # datomic (18)
- # emacs (12)
- # fulcro (24)
- # graalvm (48)
- # hyperfiddle (5)
- # introduce-yourself (1)
- # jackdaw (1)
- # jobs (2)
- # juxt (8)
- # lsp (25)
- # malli (8)
- # missionary (1)
- # music (3)
- # off-topic (32)
- # polylith (16)
- # quil (4)
- # re-frame (52)
- # reitit (5)
- # reveal (3)
- # rewrite-clj (26)
- # rum (1)
- # sci (1)
- # shadow-cljs (14)
- # sql (2)
- # tools-build (40)
- # tools-deps (14)
- # vrac (2)
- # xtdb (63)
I swapped openJDK to JDK 8, and it’s now working. However, as I tried out the https://github.com/quil/quil/wiki/Dynamic-Workflow-(for-REPL)#an-alternative-repl-workflow, I’m getting a peculiar NullPointerException:
Exception in :draw function: #error {
:cause nil
:via
[{:type java.lang.NullPointerException
:message nil
:at [clojure.lang.RT floatCast RT.java 1315]}]
:trace
[[clojure.lang.RT floatCast RT.java 1315]
[quil.core$background invokeStatic core.cljc 510]
[quil.core$background invoke core.cljc 494]
[quil_experiments.dynamic_new$draw_state invokeStatic dynamic_new.clj 18]
[quil_experiments.dynamic_new$draw_state invoke dynamic_new.clj 17]
[clojure.lang.AFn applyToHelper AFn.java 154]
[clojure.lang.AFn applyTo AFn.java 144]
[clojure.lang.Var applyTo Var.java 705]
[clojure.core$apply invokeStatic core.clj 665]
[clojure.core$apply invoke core.clj 660]
[quil.middlewares.pause_on_error$wrap_fn$fn__10983 doInvoke pause_on_error.clj 12]
[clojure.lang.RestFn invoke RestFn.java 408]
[quil.middlewares.fun_mode$wrap_draw_update$quil_draw__10949 invoke fun_mode.cljc 16]
[quil.middlewares.safe_fns$wrap_fn$fn__260 invoke safe_fns.clj 8]
[quil.middlewares.bind_output$bind_output$iter__298__302$fn__303$fn__318 invoke bind_output.clj 21]
[quil.applet$_draw invokeStatic applet.clj 217]
[quil.applet$_draw invoke applet.clj 215]
[quil.Applet draw nil -1]
[processing.core.PApplet handleDraw PApplet.java 2475]
[quil.Applet handleDraw nil -1]
[processing.opengl.PSurfaceJOGL$DrawListener display PSurfaceJOGL.java 866]
[jogamp.opengl.GLDrawableHelper displayImpl GLDrawableHelper.java 692]
[jogamp.opengl.GLDrawableHelper display GLDrawableHelper.java 674]
[jogamp.opengl.GLAutoDrawableBase$2 run GLAutoDrawableBase.java 443]
[jogamp.opengl.GLDrawableHelper invokeGLImpl GLDrawableHelper.java 1293]
[jogamp.opengl.GLDrawableHelper invokeGL GLDrawableHelper.java 1147]
[com.jogamp.newt.opengl.GLWindow display GLWindow.java 759]
[com.jogamp.opengl.util.AWTAnimatorImpl display AWTAnimatorImpl.java 81]
[com.jogamp.opengl.util.AnimatorBase display AnimatorBase.java 452]
[com.jogamp.opengl.util.FPSAnimator$MainTask run FPSAnimator.java 178]
[java.util.TimerThread mainLoop Timer.java 555]
[java.util.TimerThread run Timer.java 505]]}
stacktrace: java.lang.NullPointerException: null
at clojure.lang.RT.floatCast (RT.java:1315)
quil.core$background.invokeStatic (core.cljc:510)
quil.core$background.invoke (core.cljc:494)
quil_experiments.dynamic_new$draw_state.invokeStatic (dynamic_new.clj:18)
quil_experiments.dynamic_new$draw_state.invoke (dynamic_new.clj:17)
clojure.lang.AFn.applyToHelper (AFn.java:154)
clojure.lang.AFn.applyTo (AFn.java:144)
clojure.lang.Var.applyTo (Var.java:705)
clojure.core$apply.invokeStatic (core.clj:665)
clojure.core$apply.invoke (core.clj:660)
quil.middlewares.pause_on_error$wrap_fn$fn__10983.doInvoke (pause_on_error.clj:12)
clojure.lang.RestFn.invoke (RestFn.java:408)
quil.middlewares.fun_mode$wrap_draw_update$quil_draw__10949.invoke (fun_mode.cljc:16)
quil.middlewares.safe_fns$wrap_fn$fn__260.invoke (safe_fns.clj:8)
quil.middlewares.bind_output$bind_output$iter__298__302$fn__303$fn__318.invoke (bind_output.clj:21)
quil.applet$_draw.invokeStatic (applet.clj:217)
quil.applet$_draw.invoke (applet.clj:215)
quil.Applet.draw (:-1)
processing.core.PApplet.handleDraw (PApplet.java:2475)
quil.Applet.handleDraw (:-1)
processing.opengl.PSurfaceJOGL$DrawListener.display (PSurfaceJOGL.java:866)
jogamp.opengl.GLDrawableHelper.displayImpl (GLDrawableHelper.java:692)
jogamp.opengl.GLDrawableHelper.display (GLDrawableHelper.java:674)
jogamp.opengl.GLAutoDrawableBase$2.run (GLAutoDrawableBase.java:443)
jogamp.opengl.GLDrawableHelper.invokeGLImpl (GLDrawableHelper.java:1293)
jogamp.opengl.GLDrawableHelper.invokeGL (GLDrawableHelper.java:1147)
com.jogamp.newt.opengl.GLWindow.display (GLWindow.java:759)
com.jogamp.opengl.util.AWTAnimatorImpl.display (AWTAnimatorImpl.java:81)
com.jogamp.opengl.util.AnimatorBase.display (AnimatorBase.java:452)
com.jogamp.opengl.util.FPSAnimator$MainTask.run (FPSAnimator.java:178)
java.util.TimerThread.mainLoop (Timer.java:555)
java.util.TimerThread.run (Timer.java:505)
I’m gathering the :colour
is not found in state
in the draw-state
function, but the code looks fine. I copy-pasted from wiki, so thought it worked at least for someone 🙂apologies if this is an easy problem, I’m still new to Clojure - and have been on and off. It seems getting started with Quil is a bit more difficult nowadays. Once I’ve got things working I’d be happy to contribute back to make sure getting started is bug-free.
I think that example has a bug in it. In update-state
it's pulling the value from state with :colour
, but then writing back a new state with :color
. I believe if you rename the colors/colours to all have the same spelling it will work.
Omg, I can’t believe I haven’t checked for that! Nice find. It works now, and I’ve updated the snippet on the wiki.