Table of Contents
| About | News | Features | Ideas | Platforms | Building | Utility Programs | Forum |
Ideas
Ideas I have regarding mde or related code but haven't yet fully thought out.
mde reorganisation
Restructure mde as a library or several libraries, to further modularise it. The barriers to further modularising mde are inter-dependence of modules and packages, and the several small modules/packages within mde (e.g. Options.d, paths.d). Modularity is, however, one of the goals of mde, so the package/module structure does need to be better thought out.
SDL replacement
Yes, SDL does work for creating windows and openGL contexts, but, in my opinion at least, it's not ideal. I'm aware of schooner and glfw too, but don't much like them either (although I haven't used them). My issues with SDL are:
- Complexity and ease of use. Working out how to do many things with SDL isn't exactly straight-forward.
- No support for multiple windows.
- No direct support for using the system clipboard or drag-and-drop.
While I'd quite like to design a replacement, at least from the user's point of view, I'm not in a very good position to do so, not having much experience using the X11 or Win32 APIs. But anyway, here's some of my ideas on what (and how) a replacement cross-platform library could do:
- Opening windows, full-screen or not. Operation could be:
- Use a (scope?) class to encapsulate functionality
- Options like size, option to create an OpenGL context, etc., can be set after class creation
- Functions to create/adjust/destroy windows
- Class destructor closes window if open
- Event support. Could be via a queue like SDL or a callback.
- Access to system clipboard.
- Optionally, a wrapper for draw operations like SDL has. But I'm not sure how useful this would be over just using openGL.
- Joystick support, although this could be handled via a separate library.
Obviously it would not need threading or timer functionality since tango/phobos already provide that. And additional functionality, like an audio library, should really be handled independently IMO.
