Another 'System'?


#1

The current supported systems are Windows, Mac, and *nix. How easy would it be to make a new one so Juce can be used within a virtual system. There is a library being created by a group that is looking for a 2d gui to integrate into a 3d app. I’d think that a new graphics subclass in Juce would be an excellent integration to a texture that would be rendered inside the 3d app. The major obstacle I see is I have no immediate clue on how to inject mouse/keyboard events into Juce. Would this be easily possible; aka, should I point Juce out to them? There is one thing, they are looking for ones that can be statically linked using a bsd style license, or one that can be dynamically linked using the lgpl or similer license. Considering juce has been having dynamic builds being built up in it recently, the lgpl license would work well for that, while the static build would still be identical to the gpl while under the lgpl. Right now they are using CEGUI for the graphics system and it is about as friendly as eating soup with a knife. It’s only redeeming qualities are that already has a wrapper for it for the graphics engine they are using, and it is highly skinnable.

EDIT: For note the graphics system is Ogre3D(nothing but a multi-platform renderer, does nothing else). The only half usable 2d gui for it is CEGUI. You would get a much larger community using Juce considering its overwhelming ease of use if an Ogre system was made for it.

EDIT2: Fixed url, forgot about phpBB’s vast limitations…


#2

It’d be pretty straightforward to add another platform - you’d just need to write another set of native code files.

Handling mouse and keyboard input is easy - all of this goes through the ComponentPeer class, so if you look at the ComponentPeer implementations for windows, mac + linux, you can see that when events come in, they get translated into calls to ComponentPeer methods like “handleMouseMove”, etc.

Not sure about the licencing though - Juce is GPL, so they wouldn’t be able to release it as part of a BSD or LGPL library.


#3

The library is lgpl. All addins for Ogre have to be lgpl (or compatible) or they have no chance of being accepted into the core (as CEGUI has, and yes, they are looking for a drastically easier one to use). lgpl is identical to gpl when juce is static compiled, the only difference is when it is dynamically used as a dll/so/etc…


#4

Oh, well I guess it’s not possible then. Never mind.

And no, the GPL isn’t the same as LGPL when it’s statically compiled. LGPL code can be used in closed-source software, GPL code can only be used for open-source. How you choose to link it together makes no difference.


#5

According to the LGPL, you can statically link to the library and only redistribute object code for the application itself. Under GPL, the source code is required.


#6