]> git.ameliathe1st.gay Git - cells.git/commitdiff
Dessin bien plus efficace des lignes entre les cases
authorAmélia Coutard-Sander <git@ameliathe1st.gay>
Sun, 12 Jan 2025 17:45:51 +0000 (18:45 +0100)
committerAmélia Coutard-Sander <git@ameliathe1st.gay>
Sun, 12 Jan 2025 17:48:28 +0000 (18:48 +0100)
bin/modes.ml

index c7529183b9f252afff430f2021866cca21a0ebf9..974df92c14ca896f52a9a4b5fefb3003b3e915ad 100644 (file)
@@ -49,8 +49,10 @@ let get_name (m : (module Automata.Automaton)) =
 
 let render_world (EditorState (m, { board; pos = px, py; size })) =
         let module M = (val m) in
-        let w = (Graphics.size_x () / size) + 1
-        and h = (Graphics.size_y () / size) + 1 in
+        let sx = Graphics.size_x ()
+        and sy = Graphics.size_y () in
+        let w = (sx / size) + 1
+        and h = (sy / size) + 1 in
         let wx = px - (w / 2)
         and wy = py - (h / 2) in
         for x = wx to wx + w do
@@ -58,12 +60,18 @@ let render_world (EditorState (m, { board; pos = px, py; size })) =
             let r, g, b = M.color (Automata.get x y board) in
             let r, g, b = (int_of_char r, int_of_char g, int_of_char b) in
             Graphics.set_color (Graphics.rgb r g b);
-            Graphics.fill_rect ((x - wx) * size) ((y - wy) * size) size size;
-            Graphics.set_color (Graphics.rgb 127 127 127);
-            Graphics.draw_rect ((x - wx) * size) ((y - wy) * size) size size
+            Graphics.fill_rect ((x - wx) * size) ((y - wy) * size) size size
           done
         done;
         Graphics.set_color (Graphics.rgb 127 127 127);
+        for x = 0 to w do
+          Graphics.moveto (x * size) 0;
+          Graphics.lineto (x * size) sy
+        done;
+        for y = 0 to h do
+          Graphics.moveto 0 (y * size);
+          Graphics.lineto sx (y * size)
+        done;
         Graphics.draw_rect (((px - wx) * size) + 1) (((py - wy) * size) + 1) (size - 2) (size - 2)
 
 module rec Command : (Mode with type initer = string) = struct