diff --git a/dotscape b/dotscape index 7b0e1cf..74f86ac 100755 Binary files a/dotscape and b/dotscape differ diff --git a/dotscape.mlb b/dotscape.mlb index f38ce06..d67cfd6 100644 --- a/dotscape.mlb +++ b/dotscape.mlb @@ -71,5 +71,6 @@ imperative-shell/input-callbacks.sml imperative-shell/update-thread.sml imperative-shell/file-thread.sml imperative-shell/draw-thread.sml +imperative-shell/init-glfw.sml imperative-shell/shell.sml diff --git a/green.dsc b/green.dsc index 89c0772..e16fbe2 100644 --- a/green.dsc +++ b/green.dsc @@ -1,3 +1,3 @@ -50 50 { - [ { 7 26 7 28 0 0 0 1 } { 8 23 8 25 0 0 0 1 } { 8 26 8 28 24 88 176 1 } { 8 28 9 28 24 88 176 1 } { 8 29 11 29 0 0 0 1 } { 8 46 8 50 0 0 0 1 } { 8 49 21 50 0 0 0 1 } { 9 20 9 22 0 0 0 1 } { 9 23 9 25 24 88 176 1 } { 9 26 10 26 120 216 240 1 } { 9 27 9 27 80 160 240 1 } { 9 45 9 45 0 0 0 1 } { 9 46 12 48 32 48 128 1 } { 9 46 13 46 32 48 128 1 } { 9 48 13 48 32 48 128 1 } { 10 17 10 19 0 0 0 1 } { 10 20 10 22 24 88 176 1 } { 10 23 10 27 120 216 240 1 } { 10 28 10 28 80 160 240 1 } { 10 43 10 44 0 0 0 1 } { 10 45 10 48 32 48 128 1 } { 11 15 11 16 0 0 0 1 } { 11 17 11 18 24 88 176 1 } { 11 19 11 19 80 160 240 1 } { 11 20 11 21 120 216 240 1 } { 11 22 11 25 80 160 240 1 } { 11 26 11 28 24 88 176 1 } { 11 40 11 42 0 0 0 1 } { 11 43 14 44 32 48 128 1 } { 11 43 18 43 32 48 128 1 } { 11 45 14 45 0 0 0 1 } { 12 14 12 14 0 0 0 1 } { 12 15 12 16 24 88 176 1 } { 12 17 12 17 80 160 240 1 } { 12 18 12 19 120 216 240 1 } { 12 20 12 21 80 160 240 1 } { 12 22 12 25 24 88 176 1 } { 12 26 12 28 0 0 0 1 } { 12 36 12 39 0 0 0 1 } { 12 40 12 44 32 48 128 1 } { 12 42 13 44 32 48 128 1 } { 13 13 14 13 0 0 0 1 } { 13 14 13 15 24 88 176 1 } { 13 14 14 14 24 88 176 1 } { 13 16 13 16 80 160 240 1 } { 13 17 13 17 120 216 240 1 } { 13 18 13 18 80 160 240 1 } { 13 19 13 22 24 88 176 1 } { 13 23 13 25 0 0 0 1 } { 13 33 13 35 0 0 0 1 } { 13 36 13 40 32 48 128 1 } { 13 36 14 37 32 48 128 1 } { 13 41 14 41 0 64 240 1 } { 13 47 14 47 0 64 240 1 } { 14 15 14 15 80 160 240 1 } { 14 16 14 16 120 216 240 1 } { 14 17 14 17 80 160 240 1 } { 14 18 14 19 24 88 176 1 } { 14 20 14 22 0 0 0 1 } { 14 30 14 32 0 0 0 1 } { 14 33 14 37 32 48 128 1 } { 14 38 14 42 0 64 240 1 } { 14 38 15 40 0 64 240 1 } { 14 42 17 42 0 64 240 1 } { 14 46 14 48 0 64 240 1 } { 14 48 15 48 0 64 240 1 } { 15 12 18 12 0 0 0 1 } { 15 13 16 13 24 88 176 1 } { 15 14 16 14 80 160 240 1 } { 15 15 15 15 120 216 240 1 } { 15 16 15 16 80 160 240 1 } { 15 17 15 18 24 88 176 1 } { 15 19 15 19 0 0 0 1 } { 15 29 15 29 0 0 0 1 } { 15 30 15 31 32 48 128 1 } { 15 32 15 40 0 64 240 1 } { 15 32 16 37 0 64 240 1 } { 15 41 17 41 0 128 248 1 } { 15 44 17 44 0 0 0 1 } { 15 45 15 46 0 64 240 1 } { 15 45 17 45 0 64 240 1 } { 15 47 18 47 0 128 248 1 } { 16 14 16 15 80 160 240 1 } { 16 16 16 17 24 88 176 1 } { 16 18 18 18 0 0 0 1 } { 16 28 18 28 0 0 0 1 } { 16 29 16 30 32 48 128 1 } { 16 29 18 29 32 48 128 1 } { 16 31 16 37 0 64 240 1 } { 16 38 17 41 0 128 248 1 } { 16 46 17 48 0 128 248 1 } { 16 47 18 48 0 128 248 1 } { 16 48 19 48 0 128 248 1 } { 17 13 17 13 32 48 128 1 } { 17 14 17 16 24 88 176 1 } { 17 17 19 17 32 48 128 1 } { 17 25 17 28 0 0 0 1 } { 17 30 17 31 0 64 240 1 } { 17 32 17 41 0 128 248 1 } { 17 34 18 40 0 128 248 1 } { 17 35 19 36 0 128 248 1 } { 18 6 18 10 0 0 0 1 } { 18 13 18 13 0 64 240 1 } { 18 14 18 17 32 48 128 1 } { 18 24 18 24 0 0 0 1 } { 18 25 18 27 24 88 176 1 } { 18 25 19 26 24 88 176 1 } { 18 29 18 31 32 48 128 1 } { 18 32 18 33 0 64 240 1 } { 18 41 18 41 0 64 240 1 } { 18 42 18 44 32 48 128 1 } { 18 45 18 45 0 0 0 1 } { 18 46 18 46 0 64 240 1 } { 19 5 19 5 0 0 0 1 } { 19 11 19 11 0 0 0 1 } { 19 12 19 12 32 48 128 1 } { 19 13 19 13 0 128 248 1 } { 19 14 19 16 0 64 240 1 } { 19 17 19 18 32 48 128 1 } { 19 19 19 23 0 0 0 1 } { 19 24 19 26 24 88 176 1 } { 19 24 20 24 24 88 176 1 } { 19 27 19 28 80 160 240 1 } { 19 29 19 30 0 0 0 1 } { 19 31 19 33 32 48 128 1 } { 19 34 19 34 0 64 240 1 } { 19 37 19 40 0 64 240 1 } { 19 41 19 44 0 0 0 1 } { 19 46 19 46 0 0 0 1 } { 19 47 19 47 0 64 240 1 } { 20 4 20 4 0 0 0 1 } { 20 12 20 12 0 0 0 1 } { 20 13 20 13 0 64 240 1 } { 20 14 20 16 0 128 248 1 } { 20 15 21 16 0 128 248 1 } { 20 17 20 18 0 64 240 1 } { 20 19 20 23 32 48 128 1 } { 20 22 21 23 32 48 128 1 } { 20 25 20 26 80 160 240 1 } { 20 27 20 28 120 216 240 1 } { 20 29 20 29 80 160 240 1 } { 20 30 20 30 24 88 176 1 } { 20 31 20 33 0 0 0 1 } { 20 34 20 34 32 48 128 1 } { 20 35 20 36 0 64 240 1 } { 20 37 20 37 32 48 128 1 } { 20 38 20 40 0 0 0 1 } { 20 47 20 47 0 0 0 1 } { 20 48 20 48 0 64 240 1 } { 21 3 25 3 0 0 0 1 } { 21 13 25 13 0 0 0 1 } { 21 14 21 14 0 64 240 1 } { 21 15 21 18 0 128 248 1 } { 21 16 26 18 0 128 248 1 } { 21 16 27 17 0 128 248 1 } { 21 19 21 21 0 64 240 1 } { 21 24 21 24 80 160 240 1 } { 21 25 21 26 120 216 240 1 } { 21 27 21 28 80 160 240 1 } { 21 29 21 30 0 0 0 1 } { 21 34 21 37 0 0 0 1 } { 21 48 21 50 0 0 0 1 } { 22 14 26 14 32 48 128 1 } { 22 15 26 15 0 64 240 1 } { 22 16 26 21 0 128 248 1 } { 22 22 22 22 0 64 240 1 } { 22 23 22 24 32 48 128 1 } { 22 25 22 26 80 160 240 1 } { 22 27 22 28 0 0 0 1 } { 23 16 25 22 0 128 248 1 } { 23 23 23 23 0 64 240 1 } { 23 24 23 25 32 48 128 1 } { 23 25 25 25 32 48 128 1 } { 23 26 24 26 0 0 0 1 } { 24 16 24 23 0 128 248 1 } { 24 24 24 24 0 64 240 1 } { 25 23 25 23 0 64 240 1 } { 25 24 25 25 32 48 128 1 } { 25 26 26 26 24 88 176 1 } { 25 27 25 27 0 0 0 1 } { 26 4 26 4 0 0 0 1 } { 26 12 26 12 0 0 0 1 } { 26 13 26 14 32 48 128 1 } { 26 22 26 22 0 64 240 1 } { 26 23 26 24 32 48 128 1 } { 26 25 26 27 24 88 176 1 } { 26 28 26 28 0 0 0 1 } { 27 5 27 5 0 0 0 1 } { 27 11 27 11 0 0 0 1 } { 27 12 27 13 32 48 128 1 } { 27 14 27 14 0 64 240 1 } { 27 15 27 17 0 128 248 1 } { 27 15 28 16 0 128 248 1 } { 27 18 27 21 0 64 240 1 } { 27 22 27 23 32 48 128 1 } { 27 24 27 27 80 160 240 1 } { 27 24 29 24 80 160 240 1 } { 27 28 27 28 24 88 176 1 } { 27 29 27 31 0 0 0 1 } { 27 45 27 50 0 0 0 1 } { 27 49 42 50 0 0 0 1 } { 28 6 28 10 0 0 0 1 } { 28 12 35 12 0 0 0 1 } { 28 13 33 13 0 64 240 1 } { 28 14 28 16 0 128 248 1 } { 28 14 29 15 0 128 248 1 } { 28 14 33 14 0 128 248 1 } { 28 17 28 17 0 64 240 1 } { 28 18 28 18 32 48 128 1 } { 28 19 28 23 0 0 0 1 } { 28 23 29 23 0 0 0 1 } { 28 25 28 27 120 216 240 1 } { 28 25 29 26 120 216 240 1 } { 28 28 28 28 80 160 240 1 } { 28 29 28 31 24 88 176 1 } { 28 32 28 35 0 0 0 1 } { 28 44 28 44 0 0 0 1 } { 28 45 28 48 32 48 128 1 } { 28 46 31 48 32 48 128 1 } { 28 47 32 48 32 48 128 1 } { 28 48 33 48 32 48 128 1 } { 29 16 29 16 0 64 240 1 } { 29 17 35 17 32 48 128 1 } { 29 18 35 18 0 0 0 1 } { 29 27 29 27 80 160 240 1 } { 29 28 29 31 0 0 0 1 } { 29 32 29 35 32 48 128 1 } { 29 36 29 43 0 0 0 1 } { 29 44 32 44 32 48 128 1 } { 29 45 32 45 0 0 0 1 } { 30 15 33 15 0 64 240 1 } { 30 16 34 17 32 48 128 1 } { 30 24 30 24 0 0 0 1 } { 30 25 30 26 80 160 240 1 } { 30 27 32 27 0 0 0 1 } { 30 28 30 28 32 48 128 1 } { 30 29 30 35 0 64 240 1 } { 30 36 30 44 32 48 128 1 } { 30 41 31 44 32 48 128 1 } { 30 42 32 44 32 48 128 1 } { 30 43 33 43 32 48 128 1 } { 31 25 31 27 0 0 0 1 } { 31 28 31 28 0 64 240 1 } { 31 29 31 35 0 128 248 1 } { 31 30 32 35 0 128 248 1 } { 31 33 33 35 0 128 248 1 } { 31 36 31 40 0 64 240 1 } { 32 28 32 28 32 48 128 1 } { 32 29 32 29 0 64 240 1 } { 32 30 32 40 0 128 248 1 } { 32 33 33 40 0 128 248 1 } { 32 37 34 40 0 128 248 1 } { 32 41 32 41 0 64 240 1 } { 32 46 33 46 0 64 240 1 } { 33 28 33 28 0 0 0 1 } { 33 29 33 29 32 48 128 1 } { 33 30 33 32 0 64 240 1 } { 33 33 33 41 0 128 248 1 } { 33 42 33 42 0 64 240 1 } { 33 44 33 44 0 0 0 1 } { 33 45 33 47 0 64 240 1 } { 34 13 35 13 32 48 128 1 } { 34 14 34 14 0 64 240 1 } { 34 15 34 17 32 48 128 1 } { 34 29 34 30 0 0 0 1 } { 34 31 34 32 32 48 128 1 } { 34 33 34 36 0 64 240 1 } { 34 41 34 41 0 64 240 1 } { 34 42 35 42 32 48 128 1 } { 34 43 37 43 0 0 0 1 } { 34 44 34 45 0 64 240 1 } { 34 44 37 44 0 64 240 1 } { 34 46 38 46 0 128 248 1 } { 34 47 34 48 0 64 240 1 } { 34 48 35 48 0 64 240 1 } { 35 14 35 16 0 0 0 1 } { 35 31 35 35 0 0 0 1 } { 35 36 35 36 32 48 128 1 } { 35 37 35 40 0 64 240 1 } { 35 41 35 42 32 48 128 1 } { 35 45 37 47 0 128 248 1 } { 36 13 36 13 0 0 0 1 } { 36 14 36 16 32 48 128 1 } { 36 15 37 16 32 48 128 1 } { 36 17 36 17 0 0 0 1 } { 36 36 36 43 0 0 0 1 } { 36 45 37 48 0 128 248 1 } { 36 46 38 48 0 128 248 1 } { 36 47 39 48 0 128 248 1 } { 36 48 40 48 0 128 248 1 } { 37 12 37 12 0 0 0 1 } { 37 13 37 13 32 48 128 1 } { 37 14 37 14 0 64 240 1 } { 37 15 37 17 32 48 128 1 } { 37 16 38 17 32 48 128 1 } { 37 18 37 18 0 0 0 1 } { 38 11 46 11 0 0 0 1 } { 38 12 43 12 32 48 128 1 } { 38 13 42 13 0 64 240 1 } { 38 14 43 14 0 128 248 1 } { 38 15 38 15 0 64 240 1 } { 38 16 38 18 32 48 128 1 } { 38 17 39 18 32 48 128 1 } { 38 18 41 18 32 48 128 1 } { 38 19 46 19 0 0 0 1 } { 38 44 38 44 0 0 0 1 } { 38 45 38 45 0 64 240 1 } { 39 14 43 15 0 128 248 1 } { 39 16 39 16 0 64 240 1 } { 39 45 39 45 0 0 0 1 } { 39 46 39 46 0 64 240 1 } { 40 14 43 16 0 128 248 1 } { 40 17 41 17 0 64 240 1 } { 40 46 40 46 0 0 0 1 } { 40 47 40 47 0 64 240 1 } { 41 47 41 47 0 0 0 1 } { 41 48 41 48 0 64 240 1 } { 42 14 43 17 0 128 248 1 } { 42 18 43 18 0 64 240 1 } { 42 48 42 50 0 0 0 1 } { 43 13 43 17 0 128 248 1 } { 43 13 44 13 0 128 248 1 } { 44 12 44 12 0 64 240 1 } { 44 14 44 16 0 0 0 1 } { 44 17 44 18 0 128 248 1 } { 44 18 46 18 0 128 248 1 } { 45 12 46 12 0 128 248 1 } { 45 13 46 13 0 0 0 1 } { 45 14 45 16 32 48 128 1 } { 45 17 46 17 0 0 0 1 } { 46 14 46 16 24 88 176 1 } { 47 12 47 12 0 0 0 1 } { 47 13 47 13 0 128 248 1 } { 47 14 47 16 0 0 0 1 } { 47 17 47 17 0 128 248 1 } { 47 18 47 18 0 0 0 1 } { 47 43 47 45 24 88 176 1 } { 47 46 47 48 0 128 248 1 } { 48 13 48 13 0 0 0 1 } { 48 14 48 16 0 128 248 1 } { 48 17 48 17 0 0 0 1 } { 48 43 48 45 80 160 240 1 } { 48 46 48 48 0 64 240 1 } { 49 14 49 16 0 0 0 1 } { 49 43 49 45 120 216 240 1 } { 49 46 49 48 32 48 128 1 } ] +28 32 { + [ { 0 25 0 26 0 0 0 1 } { 1 7 1 9 0 0 0 1 } { 1 24 5 24 0 0 0 1 } { 1 25 3 25 184 216 248 1 } { 1 26 1 26 120 152 232 1 } { 1 27 5 27 0 0 0 1 } { 2 6 2 6 0 0 0 1 } { 2 7 2 7 184 216 248 1 } { 2 8 2 8 240 248 248 1 } { 2 9 4 9 184 216 248 1 } { 2 10 2 10 0 0 0 1 } { 2 25 2 26 184 216 248 1 } { 3 5 6 5 0 0 0 1 } { 3 6 3 6 184 216 248 1 } { 3 7 3 7 240 248 248 1 } { 3 8 3 10 184 216 248 1 } { 3 8 4 9 184 216 248 1 } { 3 11 3 16 0 0 0 1 } { 3 11 5 11 0 0 0 1 } { 3 26 3 26 120 152 232 1 } { 4 2 4 5 0 0 0 1 } { 4 6 4 6 240 248 248 1 } { 4 7 4 9 184 216 248 1 } { 4 7 5 8 184 216 248 1 } { 4 7 6 7 184 216 248 1 } { 4 10 4 10 120 152 232 1 } { 4 12 5 16 184 216 248 1 } { 4 14 9 16 184 216 248 1 } { 4 14 10 15 184 216 248 1 } { 4 17 4 18 0 0 0 1 } { 4 25 4 25 120 152 232 1 } { 4 26 5 26 64 96 184 1 } { 5 1 5 1 0 0 0 1 } { 5 2 5 2 120 152 232 1 } { 5 3 5 3 184 216 248 1 } { 5 4 6 4 120 152 232 1 } { 5 6 5 8 184 216 248 1 } { 5 9 5 9 120 152 232 1 } { 5 10 5 10 104 128 216 1 } { 5 12 5 18 184 216 248 1 } { 5 14 6 18 184 216 248 1 } { 5 14 8 17 184 216 248 1 } { 5 19 5 20 0 0 0 1 } { 5 25 5 26 64 96 184 1 } { 6 0 8 0 0 0 0 1 } { 6 1 6 1 120 152 232 1 } { 6 2 6 2 184 216 248 1 } { 6 3 6 4 120 152 232 1 } { 6 5 6 6 0 0 0 1 } { 6 8 6 8 120 152 232 1 } { 6 9 6 9 104 128 216 1 } { 6 10 6 10 0 0 0 1 } { 6 11 6 13 104 128 216 1 } { 6 14 6 19 184 216 248 1 } { 6 20 10 20 240 248 248 1 } { 6 21 6 21 0 0 0 1 } { 6 25 6 26 0 0 0 1 } { 7 1 7 1 184 216 248 1 } { 7 2 7 3 120 152 232 1 } { 7 2 9 2 120 152 232 1 } { 7 4 7 4 0 0 0 1 } { 7 5 19 6 184 216 248 1 } { 7 7 7 9 0 0 0 1 } { 7 10 8 17 184 216 248 1 } { 7 18 7 18 104 128 216 1 } { 7 19 9 21 240 248 248 1 } { 7 22 7 22 0 0 0 1 } { 8 1 8 2 120 152 232 1 } { 8 3 10 3 0 0 0 1 } { 8 4 8 17 184 216 248 1 } { 8 4 13 9 184 216 248 1 } { 8 4 21 4 184 216 248 1 } { 8 18 8 22 240 248 248 1 } { 8 18 9 21 240 248 248 1 } { 8 18 10 20 240 248 248 1 } { 8 23 9 23 0 0 0 1 } { 9 1 9 1 0 0 0 1 } { 9 10 9 13 104 128 216 1 } { 9 17 9 21 240 248 248 1 } { 9 17 10 20 240 248 248 1 } { 9 17 13 17 240 248 248 1 } { 9 22 19 22 184 216 248 1 } { 10 2 10 3 0 0 0 1 } { 10 2 11 2 0 0 0 1 } { 10 4 10 15 184 216 248 1 } { 10 4 11 11 184 216 248 1 } { 10 4 12 10 184 216 248 1 } { 10 16 10 20 240 248 248 1 } { 10 16 11 19 240 248 248 1 } { 10 16 12 18 240 248 248 1 } { 10 21 17 23 184 216 248 1 } { 10 24 11 24 0 0 0 1 } { 11 3 11 11 184 216 248 1 } { 11 3 12 10 184 216 248 1 } { 11 3 19 6 184 216 248 1 } { 11 3 20 5 184 216 248 1 } { 11 12 11 14 0 0 0 1 } { 11 15 11 19 240 248 248 1 } { 11 20 17 23 184 216 248 1 } { 12 1 18 1 0 0 0 1 } { 12 2 12 10 184 216 248 1 } { 12 2 13 9 184 216 248 1 } { 12 2 17 8 184 216 248 1 } { 12 2 18 7 184 216 248 1 } { 12 11 12 11 0 0 0 1 } { 12 15 12 15 0 0 0 1 } { 12 19 16 24 184 216 248 1 } { 12 25 18 25 0 0 0 1 } { 13 10 13 10 0 0 0 1 } { 13 16 13 16 0 0 0 1 } { 13 18 16 24 184 216 248 1 } { 13 18 17 23 184 216 248 1 } { 13 18 19 22 184 216 248 1 } { 14 9 16 9 0 0 0 1 } { 14 17 16 17 0 0 0 1 } { 17 9 21 9 240 248 248 1 } { 17 10 17 10 0 0 0 1 } { 17 16 17 16 0 0 0 1 } { 17 17 17 23 184 216 248 1 } { 17 17 19 22 184 216 248 1 } { 17 24 17 24 120 152 232 1 } { 17 29 17 30 0 0 0 1 } { 18 8 20 10 240 248 248 1 } { 18 11 18 11 0 0 0 1 } { 18 15 18 15 0 0 0 1 } { 18 16 19 22 184 216 248 1 } { 18 16 21 21 184 216 248 1 } { 18 23 19 23 120 152 232 1 } { 18 24 18 24 104 128 216 1 } { 18 28 22 28 0 0 0 1 } { 18 29 20 29 240 248 248 1 } { 18 30 18 30 184 216 248 1 } { 18 31 22 32 0 0 0 1 } { 19 2 20 2 0 0 0 1 } { 19 7 19 11 240 248 248 1 } { 19 7 20 10 240 248 248 1 } { 19 12 19 14 0 0 0 1 } { 19 15 19 22 184 216 248 1 } { 19 15 21 21 184 216 248 1 } { 19 24 20 24 0 0 0 1 } { 19 29 19 30 240 248 248 1 } { 20 6 20 10 240 248 248 1 } { 20 6 21 9 240 248 248 1 } { 20 6 22 8 240 248 248 1 } { 20 6 24 6 240 248 248 1 } { 20 11 21 21 184 216 248 1 } { 20 11 22 20 184 216 248 1 } { 20 11 24 17 184 216 248 1 } { 20 22 21 22 120 152 232 1 } { 20 23 20 23 104 128 216 1 } { 20 30 20 30 184 216 248 1 } { 21 3 22 3 0 0 0 1 } { 21 5 21 9 240 248 248 1 } { 21 5 22 8 240 248 248 1 } { 21 5 23 7 240 248 248 1 } { 21 10 21 21 184 216 248 1 } { 21 10 22 20 184 216 248 1 } { 21 10 26 13 184 216 248 1 } { 21 23 22 23 0 0 0 1 } { 21 29 21 29 184 216 248 1 } { 21 30 22 30 120 152 232 1 } { 22 4 22 8 240 248 248 1 } { 22 9 22 20 184 216 248 1 } { 22 9 23 19 184 216 248 1 } { 22 9 24 17 184 216 248 1 } { 22 21 22 21 120 152 232 1 } { 22 22 22 22 104 128 216 1 } { 22 29 22 30 120 152 232 1 } { 23 4 23 4 0 0 0 1 } { 23 8 23 19 184 216 248 1 } { 23 8 24 17 184 216 248 1 } { 23 8 25 15 184 216 248 1 } { 23 20 23 20 120 152 232 1 } { 23 21 23 21 104 128 216 1 } { 23 22 23 22 0 0 0 1 } { 23 29 23 30 0 0 0 1 } { 24 5 24 5 0 0 0 1 } { 24 7 24 17 184 216 248 1 } { 24 18 24 19 120 152 232 1 } { 24 20 24 20 104 128 216 1 } { 24 21 24 21 0 0 0 1 } { 25 6 25 7 0 0 0 1 } { 25 16 25 17 120 152 232 1 } { 25 18 25 18 104 128 216 1 } { 25 19 25 20 0 0 0 1 } { 26 8 26 9 0 0 0 1 } { 26 14 26 15 120 152 232 1 } { 26 16 26 16 104 128 216 1 } { 26 17 26 18 0 0 0 1 } { 27 10 27 16 0 0 0 1 } ] } diff --git a/imperative-shell/init-glfw.sml b/imperative-shell/init-glfw.sml new file mode 100644 index 0000000..3d0b27f --- /dev/null +++ b/imperative-shell/init-glfw.sml @@ -0,0 +1,63 @@ +structure InitGlfw = +struct + open CML + + fun init () = + let + (* Set up GLFW. *) + val _ = Glfw.init () + val _ = Glfw.windowHint (Glfw.CONTEXT_VERSION_MAJOR (), 3) + val _ = Glfw.windowHint (Glfw.DEPRECATED (), Glfw.FALSE ()) + val _ = Glfw.windowHint (Glfw.SAMPLES (), 0) + val window = + Glfw.createWindow + (Constants.windowWidth, Constants.windowHeight, "Dotscape") + val _ = Glfw.makeContextCurrent window + val _ = Gles3.loadGlad () + + val initialModel = AppInit.fromWindowWidthAndHeight + ( Constants.windowWidth + , Constants.windowHeight + , Constants.initialWidthClickPoints + , Constants.initialHeightClickPoints + ) + + val graphLines = GraphLines.generate initialModel + val graphDrawObject = AppDraw.initGraphLines () + val _ = AppDraw.uploadGraphLines (graphDrawObject, graphLines) + + val dotDrawObject = AppDraw.initDot () + val squareDrawObject = AppDraw.initSquares () + + val modalTextDrawObject = AppDraw.initModalText () + + val inputMailbox = Mailbox.mailbox () + val drawMailbox = Mailbox.mailbox () + val fileMailbox = Mailbox.mailbox () + + val _ = InputCallbacks.registerCallbacks (window, inputMailbox) + + val _ = CML.spawn (fn () => + UpdateThread.run (inputMailbox, drawMailbox, fileMailbox, initialModel)) + + val _ = CML.spawn (fn () => + DrawThread.run + ( drawMailbox + , window + , graphDrawObject + , Vector.length graphLines div 2 + , dotDrawObject + , 0 + , squareDrawObject + , 0 + , modalTextDrawObject + , 0 + )) + + val _ = CML.spawn (fn () => FileThread.run (fileMailbox, inputMailbox)) + in + () + end + + fun main () = RunCML.doit (init, NONE) +end diff --git a/imperative-shell/shell.sml b/imperative-shell/shell.sml index a261f96..1ed32c9 100644 --- a/imperative-shell/shell.sml +++ b/imperative-shell/shell.sml @@ -1,63 +1,6 @@ structure Shell = struct - open CML - - fun main () = - let - (* Set up GLFW. *) - val _ = Glfw.init () - val _ = Glfw.windowHint (Glfw.CONTEXT_VERSION_MAJOR (), 3) - val _ = Glfw.windowHint (Glfw.DEPRECATED (), Glfw.FALSE ()) - val _ = Glfw.windowHint (Glfw.SAMPLES (), 0) - val window = - Glfw.createWindow - (Constants.windowWidth, Constants.windowHeight, "Dotscape") - val _ = Glfw.makeContextCurrent window - val _ = Gles3.loadGlad () - - val initialModel = AppInit.fromWindowWidthAndHeight - ( Constants.windowWidth - , Constants.windowHeight - , Constants.initialWidthClickPoints - , Constants.initialHeightClickPoints - ) - - val graphLines = GraphLines.generate initialModel - val graphDrawObject = AppDraw.initGraphLines () - val _ = AppDraw.uploadGraphLines (graphDrawObject, graphLines) - - val dotDrawObject = AppDraw.initDot () - val squareDrawObject = AppDraw.initSquares () - - val modalTextDrawObject = AppDraw.initModalText () - - val inputMailbox = Mailbox.mailbox () - val drawMailbox = Mailbox.mailbox () - val fileMailbox = Mailbox.mailbox () - - val _ = InputCallbacks.registerCallbacks (window, inputMailbox) - - val _ = CML.spawn (fn () => - UpdateThread.run (inputMailbox, drawMailbox, fileMailbox, initialModel)) - - val _ = CML.spawn (fn () => - DrawThread.run - ( drawMailbox - , window - , graphDrawObject - , Vector.length graphLines div 2 - , dotDrawObject - , 0 - , squareDrawObject - , 0 - , modalTextDrawObject - , 0 - )) - - val _ = CML.spawn (fn () => FileThread.run (fileMailbox, inputMailbox)) - in - () - end + fun main () = InitGlfw.main () end -val _ = RunCML.doit (Shell.main, NONE) +val _ = Shell.main ()