I don't love this structure, but it was the only way I could really get the `scene` example to work (which has an `on_draw` call that calls the next draw immediately afterward).