added config and started using #defined()
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Sun, 4 Jul 2021 03:50:36 +0000 (22:50 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Sun, 4 Jul 2021 03:50:36 +0000 (22:50 -0500)
build.sh
src/build.onyx
src/config.onyx [new file with mode: 0644]
src/main.onyx

index 64aa8986f765f78e1b874aae8ddc4f44a4d05613..132e368e6c206f123384bdec14d2bb1ce19c5202 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -17,7 +17,7 @@ RUNTIME=js
 onyx --no-colors $FLAGS -r $RUNTIME \
     --use-post-mvp-features \
     -I $ONYX_MODULE_DIRECTORY \
-    --doc docs/source_reference \
+    --doc doc/source_reference \
     -o $TARGET \
     src/build.onyx
 
index e11d1adae73c05f3b7b15bac8553756edf6687b1..50c527a1b8836b5c3d1e2e3b985d8f74f34f4450 100644 (file)
@@ -3,6 +3,8 @@
 #load "modules/wasm_utils/module"
 #load "modules/json/module"
 
+#load "src/config"
+
 #if (package runtime).Runtime == (package runtime).Runtime_Js {
     #load "modules/webgl2/module"
     #load "modules/immediate_mode/module"
diff --git a/src/config.onyx b/src/config.onyx
new file mode 100644 (file)
index 0000000..f3921b0
--- /dev/null
@@ -0,0 +1,2 @@
+package config
+
index bf0ad7e3063e351c8a269a65cfa20ced95c3f139..8e08565c22c67df5f43ca2f2b4b1cf5607a3243d 100644 (file)
@@ -4,7 +4,8 @@ use package core
 #private_file events :: package js_events
 #private_file gl     :: package gl
 #private_file gfx    :: package immediate_mode
-#private_file ui :: package ui
+#private_file ui     :: package ui
+#private_file config :: package config
 
 main :: (args: [] cstr) {
     init();
@@ -34,16 +35,27 @@ last_time := 0;
     dt  := cast(f32) (now - last_time) / 1000.0f;
     last_time = now;
 
-    poll_events();
-    update(dt);
-    draw();
+    #if #defined(config.ONLY_UPDATE_ON_EVENTS) {
+        if poll_events() {
+            update(dt);
+            draw();
+        }
+
+    } else {
+        poll_events();
+        update(dt);
+        draw();
+    }
 }
 
 @Temporary window_width := 0
 @Temporary window_height := 0
 
-poll_events :: () {
+poll_events :: () -> bool {
+    had_event := false;
+
     for event: events.consume() {
+        had_event = true;
         switch event.kind {
             case .MouseDown do switch event.mouse.button {
                 case .Left  do ui.button_pressed(.Left);
@@ -87,6 +99,8 @@ poll_events :: () {
             }
         }
     }
+
+    return had_event;
 }
 
 update :: (dt: f32) {
@@ -98,7 +112,7 @@ draw :: () {
     gl.clear(gl.COLOR_BUFFER_BIT);
 
     if ui.button(.{ 100, 100, 300, 200 }, "Test") {
-        red = math.abs(1 - red);
+        red = 1 - red;
     }
 
     gfx.flush();