epaint (and render backends) as a standalone crate.
- Dominant language
- Rust
- Stars
- 30.6k
- Forks
- 2.1k
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 72
Description
**Is your feature request related to a problem? Please describe.**
The tessellator in epaint is really good and I would like to use it as a library in another project. That is quite possible right now, but to alto get the render backend, e.g. egui-wgpu, you have to pull in egui as well. That in itself is not a huge issue, but unnecessary.
The only dependency on egui, for egui-wgpu at least, is to use the ViewportId for multi-window support.
**Describe the solution you'd like**
Removal of the dependency to egui on egui-wgpu and maybe egui-glow.
ViewportId is only used as the key in a hashmap, so there is no special need for the full type. It could be reduced to just storing the NonZeroU64 type that it contains within?
**Describe alternatives you've considered**
- Just dealing the the egui dependency, which isn't bad, but projects bloat up so quick, its nice to keep things to a minimal.
- Using another library.
**Additional context**
Contributor guide
Research direction
Start by tracing how egui-wgpu and egui-glow use ViewportId, especially its role as a hashmap key, and review how epaint is currently exposed. Check the existing backend builds or tests, then verify that the render backends no longer depend on egui while multi-window support still works and epaint can be consumed independently.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- computer-graphics
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100