diff --git a/src/membrane/java2d.clj b/src/membrane/java2d.clj index fb48cab..c1977c8 100644 --- a/src/membrane/java2d.clj +++ b/src/membrane/java2d.clj @@ -986,7 +986,9 @@ (.setColor ^Graphics2D *g* Color/white) (.fillRect ^Graphics2D *g* 0 0 (.getWidth ^Component this) (.getHeight ^Component this)) (.setColor ^Graphics2D *g* Color/black) - (draw to-render))))))) + (draw to-render) + (when-let [on-present (::on-present window)] + (on-present to-render)))))))) @@ -1062,9 +1064,11 @@ view-fn (fn [_] (view-fn))) - window {:panel (atom nil) - :ui (atom nil) - :render view-fn} + window (merge + {:panel (atom nil) + :ui (atom nil) + :render view-fn} + (select-keys options [::on-present])) panel (doto ^Component (make-panel window) (.setFocusable true)) _ (reset! (:panel window) diff --git a/src/membrane/skia.clj b/src/membrane/skia.clj index ffa91e9..36d519e 100644 --- a/src/membrane/skia.clj +++ b/src/membrane/skia.clj @@ -2537,7 +2537,11 @@ (Skia/skia_clear skia-resource) (draw view) (Skia/skia_flush skia-resource) - (glfw-call Void/TYPE glfwSwapBuffers window)))))) + + (glfw-call Void/TYPE glfwSwapBuffers window) + + (when-let [on-present (::on-present this)] + (on-present view))))))) (defonce window-chan (chan 1))