Commit Graph

11 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 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 91d11c83d6 Refactor state & config structs, various cleanup 2023-08-09 21:53:04 -04:00
Luke Street 94924047b7 Job state handling cleanup 2023-08-09 19:39:06 -04:00
Luke Street f5f6869029 Start project config file support & rework UI 2023-08-07 20:11:56 -04:00
Luke Street b02e32f2b7 Add dark/light theme toggle (light theme WIP) 2023-07-15 11:17:59 -04:00
Luke Street c7a326b160 Update all dependencies (again) 2023-07-06 10:37:57 -04:00
Nick Condron 20dcc50695
Let-else reformatting (#23)
* Use let-else in App::post_rendering

* Use let-else in diff::reloc_eq

* Use let-else in diff::diff_objs

* Use let-else in views::data_diff::data_diff_ui

* Use let-else in views::function_diff::function_diff_ui

* Use let-else in views::function_diff::asm_row_ui

* Use let-else in views::jobs::jobs_ui

* Update rust-version in Cargo.toml
2023-01-16 16:51:40 -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 cb3c6062c7 Initial commit 2022-09-08 17:19:20 -04:00