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
#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"
#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();
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);
}
}
}
+
+ return had_event;
}
update :: (dt: f32) {
gl.clear(gl.COLOR_BUFFER_BIT);
if ui.button(.{ 100, 100, 300, 200 }, "Test") {
- red = math.abs(1 - red);
+ red = 1 - red;
}
gfx.flush();