Romain Goyet
43b7f767ee
[ion/simulator/web] Clean the htmlpack API
2021-03-03 15:37:57 +01:00
Romain Goyet
eb0ca7b118
[ion/simulator/web] Add a loader
2021-03-03 15:37:57 +01:00
Romain Goyet
0cdfc44c6f
[ion/simulator/web] Improve dependency tracking
2021-03-03 15:37:57 +01:00
Romain Goyet
2ebff40c62
[ion/simulator/web] Implement a custom journal with callbacks
...
This journal adds two new callbacks:
- onIonEvent
- onEpsilonIdle
2021-03-03 15:37:57 +01:00
Romain Goyet
c66db8c98d
[ion] Actually send None events to the destination journal
...
Said journal will most likely ignore it, but it gives it the opporunity
to do something about it.
2021-03-03 15:37:57 +01:00
Romain Goyet
a6b13185ab
[ion/simulator] Extrude the QueueJournal class
2021-03-03 15:37:57 +01:00
Romain Goyet
e8956f4293
[build/simulator/web] Add a htmlpack target
2021-03-03 15:37:57 +01:00
Romain Goyet
36a40faaaf
[build/emscripten] Silence the Emterpreter warning
2021-03-03 15:37:57 +01:00
Romain Goyet
2554ec666e
[build] Add a rule to build a ZIP file out of its dependencies
2021-03-03 15:37:57 +01:00
Romain Goyet
1aac2a1d4d
[ion/simulator/web] Use a shared layout.json file
2021-03-03 15:37:57 +01:00
Romain Goyet
32d591317b
[simulator/web] Use specialHTMLTargets to allow picking a canvas
2021-03-03 15:37:57 +01:00
Romain Goyet
2703f9a506
[build] Add prerequisite path when processing through CPP
2021-03-03 15:37:57 +01:00
Romain Goyet
497e4890b1
[ion/simulator/web] Fix the build
2021-03-03 15:37:48 +01:00
Romain Goyet
6c389c9a1d
[ion/simulator] Get rid of useless Ion:: prefixes
2021-03-03 15:37:48 +01:00
Romain Goyet
699cf22023
[ion/simulator] Don't enable the framebuffer in headless mode
...
A quick test on a state file with 64k events took 2.5 seconds to process
with the framebuffer vs 1.9 without.
2021-03-03 15:37:48 +01:00
Romain Goyet
543d3d540e
[ion/simulator] Use shutdown instead of quit
2021-03-03 15:37:48 +01:00
Romain Goyet
2f2e45a6a5
[ion/simulator] Headless simulator maps Ion::Console to stdio
2021-03-03 15:37:48 +01:00
Romain Goyet
a834c954b8
[ion/simulator] Get rid of the headless target
2021-03-03 15:37:48 +01:00
Romain Goyet
2bee7eb267
[ion] Make Ion::Events::Journal optional
2021-03-03 15:37:48 +01:00
Romain Goyet
6d18c33068
[ion/simulator] State files can have a wildcard version
2021-03-03 15:37:48 +01:00
Romain Goyet
8242113641
[ion/simulator] Ignore invalid events in nws files
2021-03-03 15:37:48 +01:00
Romain Goyet
7c8c7f79f6
[ion/simulator] Don't leak file descriptors
2021-03-03 15:37:48 +01:00
Romain Goyet
f578c24af1
[ion/simulator] Used buffer I/O
...
Avoid making a syscall for every single byte
2021-03-03 15:37:48 +01:00
Romain Goyet
8059821025
[ion/simulator] Fix libpng/libjpeg usage
2021-03-03 15:37:48 +01:00
Romain Goyet
b32497da23
[ion/simulator] Remove a useless printf
2021-03-03 15:37:48 +01:00
Romain Goyet
c3c7651ca8
[ion/simulator] Add Termination event when headless
2021-03-03 15:37:48 +01:00
Romain Goyet
e8f1ea6aa5
[ion/simulator/sdl] Backport an Emscripten fix for setWindowTitle
...
See https://bugzilla.libsdl.org/show_bug.cgi?id=5133
2021-03-03 15:37:48 +01:00
Romain Goyet
ba3109e47a
[ion/simulator] Fix the dummy language implementation
2021-03-03 15:37:48 +01:00
Romain Goyet
c2f8bbaf3c
[ion/simulator] Load nws files sent from the host OS
2021-03-03 15:37:48 +01:00
Romain Goyet
0587e41b3c
[ion/simulator] Support writing image files per-platform
...
Linux uses libpng, macOS/iOS use CoreGraphics, Windows GDI+
2021-03-03 15:37:48 +01:00
Romain Goyet
ab1df4fbef
[ion/simulator] Unify iOS/macOS image loading
2021-03-03 15:37:48 +01:00
Romain Goyet
a4213dcca8
[ion/simulator] Allow "-" to designate stdin
2021-03-03 15:37:48 +01:00
Romain Goyet
2cf6f15dde
[ion/simulator] Allow CTRL or GUI for common shortcuts
2021-03-03 15:37:48 +01:00
Romain Goyet
f37008d8d7
[ion/simulator] Ignore empty cli arguments
2021-03-03 15:37:48 +01:00
Romain Goyet
3740e0f135
[ion/simulator] Support headless msleep
2021-03-03 15:37:48 +01:00
Romain Goyet
cb3a6694a5
[ion/simulator/macos] Register the nws file extension
2021-03-03 15:37:48 +01:00
Romain Goyet
cba596dde7
[ion/simulator] Add actions
2021-03-03 15:37:48 +01:00
Romain Goyet
11f2b92e5d
[ion/simulator/windows] Add an icon
2021-03-03 15:37:48 +01:00
Romain Goyet
a69fc679a9
[ion/simulator] Add StateFile support
2021-03-03 15:37:48 +01:00
Romain Goyet
f4905c59a2
[ion] Events::Journal has isEmpty
2021-03-03 15:37:47 +01:00
Romain Goyet
22b6990e63
[ion/simulator/android] Get the language directly
...
Without using the "--language" command-line option
2021-03-03 15:37:47 +01:00
Romain Goyet
09a7b9daca
[ion/simulator] Sort the platform functions
2021-03-03 15:37:47 +01:00
Romain Goyet
0116dc2e07
[ion/simulator] Add a runtime "--headless" option
...
We probably can ditch the static headless version
2021-03-03 15:37:47 +01:00
Romain Goyet
37b8c56b3d
[ion/simulator] Clean the callbacks
2021-03-03 15:37:47 +01:00
Romain Goyet
1a4cb3ad37
[ion/simulator] Add a Journal implementation
2021-03-03 15:37:47 +01:00
Romain Goyet
d4984722cf
[ion/simulator] Rename the events_platform file
2021-03-03 15:37:47 +01:00
Romain Goyet
cbc3951ab1
[ion] Add an event journal
...
It's pretty much just two callbacks that one can hook into to get some
events in or out of Ion.
It adds a couple useless checks and pointers to any build and could be
hidden behind a feature flag, but the extra weight is minimal.
2021-03-03 15:37:47 +01:00
Romain Goyet
62aafa7597
[ion] Fix a comment
2021-03-03 15:37:47 +01:00
Romain Goyet
baf8b8cbf0
[ion/simulator] Clean the Keyboard implementation
2021-03-03 15:37:47 +01:00
Romain Goyet
90b25ecf51
[ion] Clean some dummy files
2021-03-03 15:37:47 +01:00