mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-10-13 06:43:20 -04:00
218c6705d9
This PR primarily focuses on upbringing constexpr maps for handlers. Each time an HLE object of a service is construed, it registers it's own handlers, over and over. Regardless of whetever it needs them at the moment or not. Additionally we don't require to keep track of different function pointers amongst each object. This can be done by overriding the given function instead, as opposed to having a separate hash map for every given object. In other words: Remove handlers (and handlers_tipc) map for every instance then read from a static defined per-class. - [x] Migrate all HLE functions to new `frozen::map` constexpr time finder - [ ] Measure if this approach actually makes better codegen Optional: - [x] Properly gate all functions (that have versions commented next to them) - [x] Maybe store `HandlerFnP<>` and `const char*` separately, version gating can go in a different map as well Information such as name can be used on debug builds, but doesn't particularly help on release as one can consult an external reference (or have an annotated IPC map) Signed-off-by: lizzie <lizzie@eden-emu.dev> - [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions). - [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md) - [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability. ------------------- Co-authored-by: Maufeat <sahyno1996@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4480 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Eden Build Documentation
Are you just a casual user? Take a look at our User Handbook then!
If you want to register/signup as a contributor, take a gander at CONTRIBUTING.md.
This contains documentation created by developers, build instructions, guidelines, instructions/layouts for cool stuff we made, and more.
- General Build Instructions
- CMake Options
- Cross Compiling
- Development Guidelines
- Dependencies
- Debug Guidelines
- CPM - CMake Package Manager
- Platform-Specific Caveats
- The NVIDIA SM86 (Maxwell) GPU
- Driver Bugs
- Building Older Commits
- Subsystems:
Policies
Policies and information on development.
Externals
Other useful resources in general, take a quick read if you need.