1,079
edits
Line 45: | Line 45: | ||
=== OSystem changes === | === OSystem changes === | ||
Now might be a good time for making OSystem more modular. That is, instead of using subclassing, | |||
** | use a "component" approach, were instead of a single monolithic backends interface, we split responsibility for | ||
various features into several components/modules. | |||
** | |||
** | Candidates for modules are | ||
* | * Drawing | ||
** | * Sound (possibly allow for custom mixer implementations?) | ||
* Input (events) | |||
* Timers | |||
* Mutexes (only used when timers are involved, so could be joint with that) | |||
* Virtual keyboard | |||
Examples for existing "backend modules" (in a sense at least) are | |||
* MIDI/Music drivers (see backends/midi/) | |||
* FilesystemNode code (see backends/fs/) | |||
* Scaler code (see common/scaler*) -> we already share some scaler code, but that could probably be done in a better way, and maybe some more generic scalers could be added (e.g. a good & fast downscaler). |
edits