diff --git a/rc.fnl b/rc.fnl index 4cda004..ba556e7 100644 --- a/rc.fnl +++ b/rc.fnl @@ -1,6 +1,6 @@ -(local { : GdkPixbuf } (require :lgi)) (local { : view } (require :fennel)) +(local texture (require :texture)) (local socket-repl (require :socket-repl)) (let [repl-socket-name @@ -13,25 +13,14 @@ (socket-repl.start repl-socket-name)) -(fn texture-from-file [renderer filename] - (let [pixels - (let [(buf err) (GdkPixbuf.Pixbuf.new_from_file filename)] - (if (not buf) (print :err err)) - buf)] - (renderer:texture_from_pixels - pixels.rowstride - pixels.width - pixels.height - (pixels:get_pixels)))) - (kiwmi:on "output" (fn [output] (output:set_mode 360 720 0) (let [r (output:renderer) - kill (texture-from-file r "close-window.png") - launch (texture-from-file r "launcher.png") - spinner (texture-from-file r "carousel.png")] + kill (texture.from-file r "close-window.png") + launch (texture.from-file r "launcher.png") + spinner (texture.from-file r "carousel.png")] (output:on "render" (fn [{: output : renderer}] (let [bar-height 40 diff --git a/texture.fnl b/texture.fnl new file mode 100644 index 0000000..8f98d53 --- /dev/null +++ b/texture.fnl @@ -0,0 +1,14 @@ +(local { : GdkPixbuf } (require :lgi)) + +(fn from-file [renderer filename] + (let [pixels + (let [(buf err) (GdkPixbuf.Pixbuf.new_from_file filename)] + (if (not buf) (print :err err)) + buf)] + (renderer:texture_from_pixels + pixels.rowstride + pixels.width + pixels.height + (pixels:get_pixels)))) + +{ : from-file }