Good window and event

Started by
6 comments, last by Dario Oliveri 11 years, 11 months ago
I think that Open source world is still missing some good Opensource library. Let me explain,

I will take into account several libraries, GLFW. provides simple functionalities, but no event system (polling key is not event system and is limited)
SFML is Object Oriented designed, easy extensible and provide events.
OIS is a input system that supports also Force feedback an multiple input devices (multiple mouses/keyboards).

Unluckily we are still missing more functionalities.

What it would be good is to have something like SFML (so designed used some common patterns), but with plus features of OIS. And we are still missing the ability to send custom messages through multiple threads using the OS messages.


Library needed:
-Creating Multiple windows with various settings each with GL context (already provided by SMFL)
-Handle input in a great way + window (OIS provide input but no window, tried to add into SFML but not worked since SFML already eat all events and prevent OIS to get those events.)
-Send custom messages (would be usefull for signaling to main thread for example that loading of a file is finished in a 2nd thread)
-crossplatform
-opensource , zlib/libpng license or similiar (not GPL!)
-lightweight

Probably some GUI toolkit provide those functionalities. But gui toolkits are heavy. while providing only those functionalities will be lightweight. I can make similiar library myself but only for windows. Does any similiar library already exist or have we to create ourself?

Peace and love, now I understand really what it means! Guardian Angels exist! Thanks!

Advertisement
seems that OGLWF is something similiar to what I want to see. unluckily certain features are still not ready (like user configurable messagin system)

Peace and love, now I understand really what it means! Guardian Angels exist! Thanks!

Does SDL meet the criteria?

SDL 2 supports multiple windows. Both SDL 2 and SDL 1.2.X support OpenGL contexts, many event types, including custom user defined events. I have never used force feedback controls, but I know SDL provides a "haptic" API. It is also cross platform and has recently come under a much more liberal license. I think it is lightweight too, but that is more subjective.
What I need are not events hardcoded in C++/C. But events handled by the RING (using operative system specific API, with some c++ wrapping of course). there is still no Opensource project with them. If I remember correct SDL has events but done in C wich is not what I want. Events system working without the RING are polluting the web infact.

Peace and love, now I understand really what it means! Guardian Angels exist! Thanks!

I do not understand what kind of event system you are talking about. Do you have a link or an example? SDL's event system is very flexible, I'd be surprised if it cannot cater to your needs.
basically I can't link dynamic. So LGPL is not an option, but If new SDL will come under a more liberal license thant it's great.
is SDL using operative system API for messages right?

Peace and love, now I understand really what it means! Guardian Angels exist! Thanks!


basically I can't link dynamic. So LGPL is not an option, but If new SDL will come under a more liberal license thant it's great.
is SDL using operative system API for messages right?


It is using the OS API for system messages atleast (It is the only way to do it on a protected mode OS so all libraries use the OS APIs for that), for internal messages it doesn't use the OS API, you can use the SDL_SysWMEvent to catch custom event (or standard events not handled by SDL) but you cannot send custom events to the OS or to other applications using SDL. (There is no easy crossplatform way to do this as these things are done in very different ways on different platforms)

If all you need is to send messages between threads or windows belonging to the same application then this isn't a problem though and SDL 2.0 should be able to handle it just fine. (it also has a more liberal license), (1.2 does not support multiple windows).

Another option is QT, it has a more robust IPC system (supporting shared memory, sockets, D-Bus(Unix only) and QCOM (Embedded Linux only) and will make it far easier to mix OpenGL and standard GUI windows in a single application, if you can't link dynamically you can get a commercial license from qt.digia.com, its not exactly lightweight though. (For communication between threads within the same application normal messages or signals/slots work aswell)
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
ok thx!

Peace and love, now I understand really what it means! Guardian Angels exist! Thanks!

This topic is closed to new replies.

Advertisement