Sign in to follow this  

Good window and event

This topic is 2050 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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? Edited by DemonRad

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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. Edited by DemonRad

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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?

Share this post


Link to post
Share on other sites
[quote name='DemonRad' timestamp='1335914947' post='4936587']
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?
[/quote]

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)

Share this post


Link to post
Share on other sites

This topic is 2050 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this