]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/snake-game/ui/ui.factor
factor: trim using lists
[factor.git] / extra / snake-game / ui / ui.factor
index e610370c11791a7ac0a2b88571522349095bc472..41d94016e99f83d33d33bebd08df3755b4533d2e 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2015 Sankaranarayanan Viswanathan.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors assocs calendar combinators
-combinators.short-circuit destructors formatting fry kernel math
+combinators.short-circuit destructors formatting kernel math
 math.vectors namespaces opengl opengl.textures sequences sets
 snake-game.game snake-game.sprites timers ui ui.gadgets
 ui.gadgets.worlds ui.gestures ui.render ;
@@ -95,14 +95,14 @@ CONSTANT: snake-game-cell-size 20
 : toggle-game-pause ( snake-gadget -- )
     snake-game>> [ not ] change-paused? drop ;
 
-: load-game-textures ( snake-gadget -- textures )
-    dup textures>> [ ] [ snake-textures >>textures textures>> ] ?if ;
-
 M: snake-gadget graft*
-    [ '[ _ do-updates ] 200 milliseconds every ] keep timer<< ;
+    dup '[ _ do-updates ] 200 milliseconds every >>timer
+    snake-textures >>textures
+    drop ;
 
 M: snake-gadget ungraft*
     [ stop-timer f ] change-timer
+    dup find-gl-context ! so texture disposing works properly
     [ values dispose-each f ] change-textures
     drop ;
 
@@ -110,7 +110,7 @@ M: snake-gadget pref-dim*
     drop snake-game-dim [ snake-game-cell-size * 20 + ] map ;
 
 M: snake-gadget draw-gadget*
-    [ load-game-textures game-textures ] keep '[
+    [ textures>> game-textures ] keep '[
         draw-background
         { 10 10 } [
             _ snake-game>>