Commit Graph

23 Commits

Author SHA1 Message Date
Luke Street 74e89130a8 Repaint rework: more responsive, less energy
Previously, we repainted every frame on Windows at full refresh rate.
This is an enormous waste, as the UI will be static most of the time.
This was to work around a bug with `rfd` + `eframe`.
On other platforms, we only repainted every frame when a job was running,
which was better, but still not ideal. We also had a 100ms deadline, so
we'd repaint at ~10fps minimum to catch new events (file watcher, jobs).

This removes all repaint logic from the main loop and moves it into the
individual places where we change state from another thread.
For example, the file watcher thread will now immediately notify egui
to repaint, rather than relying on the 100ms deadline we had previously.
Jobs, when updating their status, also notify egui to repaint.

For `rfd` file dialogs, this migrates to using the async API built on top of
a polling thread + `pollster`. This interacts better with `eframe` on Windows.
Overall, this should reduce repaints and improve responsiveness to
file changes and background tasks.
2023-11-21 14:34:26 -05:00
Luke Street 803eaafee6 Hide hidden symbols by default; add "Diff Options" to menu 2023-10-07 13:27:12 -04:00
Luke Street 57392daaeb Implement click-to-highlight
Highlights registers, instructions, arguments, symbols or addresses on click.

Resolves #7
2023-10-05 23:40:45 -04:00
Luke Street 192a06bc0b Project configuration improvements
- Support `completed` field for objects in project config. In object tree, displays red for incomplete, green for complete.
- Add support for one-sided diffs. A project can include objects without an associated source file for viewing.
- Add versioning to AppConfig, supporting upgrades without losing user configuration.
2023-09-09 23:43:12 -04:00
Luke Street 6b8e469261 Project configuration fixes & improvements
- Allow config to specify object "target_path" and "base_path" explicitly, rather than relying on relative path from the "target_dir" and "base_dir". Useful for more complex directory layouts.
- Fix watch_patterns in project config not using default.
- Fix "Rebuild on changes" not defaulting to true.
- Keep watching project config updates even when "Rebuild on changes" is false.
- Disable some configuration options when loaded from project config file.
2023-09-03 09:28:46 -04:00
Luke Street 3970bc8acf Document configuration file & more cleanup 2023-08-12 14:18:09 -04:00
Luke Street 91d11c83d6 Refactor state & config structs, various cleanup 2023-08-09 21:53:04 -04:00
Luke Street b02e32f2b7 Add dark/light theme toggle (light theme WIP) 2023-07-15 11:17:59 -04:00
Luke Street 100f8f8ac5 Update all dependencies 2023-05-11 02:47:57 -04:00
Luke Street 319b1c35c0 Move reverse_fn_order into ViewConfig 2023-01-21 13:01:21 -05:00
Luke Street 500965aacb Clippy fix 2023-01-21 01:14:16 -05:00
Luke Street a8c2514377 Changes for egui/object upgrades 2023-01-21 01:13:20 -05:00
Luke Street 613e84ecf2 Version 0.2.3
- Fix regression when diffing symbols
  across mismatched section indexes
2022-12-10 20:28:01 -05:00
Luke Street 7219e72acf Version 0.2.2
- Add application icon
- Fixes for objects containing multiple
  sections with the same name
2022-12-10 10:34:03 -05:00
Luke Street a0371dd110 Cargo clippy & cargo deny fixes 2022-12-06 18:09:19 -05:00
Luke Street 771a141110 Version 0.2.0
- Update checker & auto-updater
- Configure font sizes and diff colors
- Data diffing bug fixes & improvements
- Bug fix for low match percent
- Improvements to Jobs UI (cancel, dismiss errors)
- "Demangle" tool

Closes #6, #13, #17, #19
2022-12-06 17:53:32 -05:00
Luke Street d9efa97c30 Initial work on data diffing 2022-11-06 00:49:46 -04:00
Luke Street ff9b378445 Fix MIPS relocation addends; update cwdemangle, ppc750cl 2022-11-05 13:16:44 -04:00
Luke Street 1e44f73b2f Add simple symbol search & handle symbol relocation addends 2022-09-20 18:20:58 -04:00
Luke Street b7b177af4c Symbol diff UI improvements 2022-09-14 13:12:45 -04:00
Luke Street 5259828a2d Option to skip building target obj 2022-09-13 19:52:25 -04:00
Luke Street b55c919f4d Updates & initial MIPS support 2022-09-11 13:52:55 -04:00
Luke Street cb3c6062c7 Initial commit 2022-09-08 17:19:20 -04:00