ogreSwf/vektrix

A place to show off your latest screenshots and for people to comment on them. Only start a new thread here if you have some nice images to show off!
Post Reply
User avatar
my.name
Goblin
Posts: 222
Joined: Tue Aug 08, 2006 2:58 pm
Location: Moscow
x 1

Re: ogreSwf/vektrix

Post by my.name »

swftools is GPL not LGPL
Oo
Image
Image
User avatar
stoneCold
OGRE Expert User
OGRE Expert User
Posts: 867
Joined: Fri Oct 01, 2004 9:13 pm
Location: Carinthia, Austria
x 1

Re: ogreSwf/vektrix

Post by stoneCold »

Yep, that's why it's loaded as plugin during runtime only, it's not at all linked from within the core lib :wink:
I'm currently working on implementing button + AS3 functionality maybe I can finish this before the weekend, we'll see.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: ogreSwf/vektrix

Post by Assaf Raman »

I are you sure that it is still legal to use this way? If you load dynamically it isn't considered as derivative work?
I didn't know that...
Watch out for my OGRE related tweets here.
User avatar
Wolfmanfx
OGRE Team Member
OGRE Team Member
Posts: 1525
Joined: Fri Feb 03, 2006 10:37 pm
Location: Austria - Leoben
x 99
Contact:

Re: ogreSwf/vektrix

Post by Wolfmanfx »

http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins
Can I release a non-free program that's designed to load a GPL-covered plug-in?

It depends on how the program invokes its plug-ins. For instance, if the program uses only simple fork and exec to invoke and communicate with plug-ins, then the plug-ins are separate programs, so the license of the plug-in makes no requirements about the main program.

If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. In order to use the GPL-covered plug-ins, the main program must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when the main program is distributed for use with these plug-ins.

If the program dynamically links plug-ins, but the communication between them is limited to invoking the ‘main’ function of the plug-in with some options and waiting for it to return, that is a borderline case.

Using shared memory to communicate with complex data structures is pretty much equivalent to dynamic linking.

See also the question I am writing free software that uses a non-free library.
i do not know if the lgpl is legal or the gpl plugin infect your main app as gpl.
User avatar
stoneCold
OGRE Expert User
OGRE Expert User
Posts: 867
Joined: Fri Oct 01, 2004 9:13 pm
Location: Carinthia, Austria
x 1

Re: ogreSwf/vektrix

Post by stoneCold »

Assaf Raman wrote:I are you sure that it is still legal to use this way? If you load dynamically it isn't considered as derivative work?
I didn't know that...
It's kind of a grey area, there are quite some projects out there that do the same because they don't want to infect their core code with the GPL.
But imo it should be legit, since otherwhise you could write a GPL licensed plugin for a propritary software, and that would suddenly force the propritary software to be licensed under the GPL as well :lol:
On the other side I know the main developer of swftools quite well, I'm gonna ask him if he sees a problem in that, but iirc I already did once and he said that it shouldn't be a problem.

Thx wolfman for posting this snippet, I was actually searching for this one but didn't find it at the moment, from the wording above I guess it shouldn't affect the core code in my case.
User avatar
my.name
Goblin
Posts: 222
Joined: Tue Aug 08, 2006 2:58 pm
Location: Moscow
x 1

Re: ogreSwf/vektrix

Post by my.name »

Now it is a problem
Image
Image
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: ogreSwf/vektrix

Post by Assaf Raman »

Well, if you are right, and this is ok, it means that you can use any GPL code in the project - as long as you load it dynamically, so - any GPL dll can be used in a non-GPL project, that sounds too good to be true.
I hope you are right.
Watch out for my OGRE related tweets here.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: ogreSwf/vektrix

Post by Assaf Raman »

Look at this: http://www.afterdawn.com/news/archive/2041.cfm
Same case - but the GPL author didn't think that loading a GPL dll is allowed:
...
Dynamic linking does not save you from the source code requirements of the GPL. The requirement of the GPL is that your application must be reasonably independent from the GPLed code, with no mention of static or dynamic linkage. I do not consider an application that automatically installs the GPL modules, each of which exports specific, individual functions from the original program, and automatically and invisibly loads the DLLs on startup to provide major functionality to be "independent" of the the GPLed code. The company has taken various token methods to try to ward me off, such as providing token useless capability when the DLLs are not available (AVI input with no resizing), and putting disclaimers on their web site. None satisfy me as long as Vidomi still advertises VirtualDub functionality in its UI and on its front web page, and places the recommended "with GPL" download in big, highlighted type, away from the tiny download in the corner that doesn't have it.

I don't consider it independent as long as it still needs my code to do what it is supposed to do.
...
Watch out for my OGRE related tweets here.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: ogreSwf/vektrix

Post by Assaf Raman »

Dynamic loading the dll - is not a clear case.
A clear case is Inter-process communication, this is legal for sure, a clear case is a commercial web browser that serfs a GPL web server - on the same computer.
We have here two executable that communicate through Inter-process communication (in this case TCP\IP).
So - basically as I understand it - you can use any GPL project by creating a derivative GPL project that exposes the GPL project functionality through Inter-process communication, then use the service that the new project exposes from any license project.
You will have to release the modified derivative GPL project code - but not the code of the project that uses its services.
Inter-process communication can be very efficient, and boost has the base to get you started - http://www.boost.org/doc/libs/1_40_0/do ... ocess.html

The funny thing is - that this can't be right - because if it was so - LGPL wouldn't exist.
What didn't I get right?
Watch out for my OGRE related tweets here.
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Re: ogreSwf/vektrix

Post by jacmoe »

I am not totally sure, but I think GPL v3 is meant to fix that issue.
In other words: don't choose GPL v3 if you want people to use the library without 'getting infected' - use GPL v2.
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
stoneCold
OGRE Expert User
OGRE Expert User
Posts: 867
Joined: Fri Oct 01, 2004 9:13 pm
Location: Carinthia, Austria
x 1

Re: ogreSwf/vektrix

Post by stoneCold »

my.name wrote:Now it is a problem
I can't suppress the feeling that you are just here to troll, if this was not your intention I'm sorry for asuming it, otherwhise please just keep your comments to yourself :roll:
I fully respect the work that you've done with MyGUI, it's a neat library, so I think I can at least expect the same from you. Constructive criticism is of course very welcome though.

I agree that it's not very clear in the GPL v2 how dynamically loaded code is influenced by the license, however, I'm gonna try and ask the lead dev of swftools if it would be possible to get a special permission to use swftools under the LGPL. That would end all the confusion / discusson.
Assaf Raman wrote:A clear case is Inter-process communication, ...
Agreed, but I'd not like to do it that way, since this would automatically mean that only platforms with IPC functionality could use the plugin.

[edit]: another option would be to write swf parsing from scratch, since the swf format definition is publicly available that wouldn't be that much of an issue, but I really hate reinventing weels (most of the time).
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Re: ogreSwf/vektrix

Post by jacmoe »

GPL is really an awful license for a library.. :(
So, yes, unless Swftools switches to LGPL or add a linking exception to their GPL license, I don't think it can be used.
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
xavier
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 9481
Joined: Fri Feb 18, 2005 2:03 am
Location: Dublin, CA, US
x 22

Re: ogreSwf/vektrix

Post by xavier »

stoneCold wrote: [edit]: another option would be to write swf parsing from scratch, since the swf format definition is publicly available that wouldn't be that much of an issue, but I really hate reinventing weels (most of the time).
Sometimes it has to be done. It certainly makes for a more widely usable library overall.

I was under the impression that you had actually rewritten all of the code yourself -- I didn't know that it depended on other libs such as cairo -- I personally am not a huge fan of lots of dependencies.
Do you need help? What have you tried?

Image

Angels can fly because they take themselves lightly.
User avatar
stoneCold
OGRE Expert User
OGRE Expert User
Posts: 867
Joined: Fri Oct 01, 2004 9:13 pm
Location: Carinthia, Austria
x 1

Re: ogreSwf/vektrix

Post by stoneCold »

xavier wrote:Sometimes it has to be done. It certainly makes for a more widely usable library overall.
Yeah, I'm already trying to get used to the idea of writing it all from scratch, in case the license clash with swftools doesn't go away.
On the other side, it's another load of code that has to be written, kept up to date, etc. ... by using an external solution you can save yourself this hassle :wink:
So I'm not that eager on reinventing THIS particular wheel.
xavier wrote:I was under the impression that you had actually rewritten all of the code yourself -- I didn't know that it depended on other libs such as cairo -- I personally am not a huge fan of lots of dependencies.
Besides swftools for swf parsing and cairo for rendering shapes, there's no dependencies at all. As said swftools might be dropped as well if the license issue doesn't go away, and about cairo ... I think I already mentioned it, the rendering part is abstracted away from the core of the library, so cairo is just an option of rendering the vector graphics, it's easily possible to just triangulate the vector data and display it as plain ogre meshes. Currently cairo is still in the core, but just because it's not my number one priority of moving it into a seperate plugin. Before the next commit I'll see if I can strap it out though :wink:

Tbh, at first I only used triangulated ogre meshes to draw the vector graphics, but over the time I played arround with several methods of rendering the vector graphics, and one of them included cairo, and since then I've not thought about removing it.
For systems without GPU acceleration, it might be the best solution to render the vector graphics even, so I'll just move it to its own plugin. After that the core of the library is completely dependency free.
User avatar
my.name
Goblin
Posts: 222
Joined: Tue Aug 08, 2006 2:58 pm
Location: Moscow
x 1

Re: ogreSwf/vektrix

Post by my.name »

I do not have possibility to write long and beautiful words. I did not wish you to upset. Your work is interesting to me.
Image
Image
User avatar
mikeInside
Kobold
Posts: 37
Joined: Thu Apr 26, 2007 5:46 pm
Location: Sydney, Australia
Contact:

Re: ogreSwf/vektrix

Post by mikeInside »

stoneCold wrote:Yep, that's why it's loaded as plugin during runtime only, it's not at all linked from within the core lib :wink:
I'm currently working on implementing button + AS3 functionality maybe I can finish this before the weekend, we'll see.
That's awesome. Graphics, buttons - that's pretty much all that's needed to start making an interface with it.

And to cover the vast majority of GUI uses, you wouldn't need much else... a way to display text fields, and perhaps type into them, and some common form stuff like scroll bars should do it.

(Apologies if I am oversimplifying things, just excited about the possibilities :) )
ramgv
Gnoblar
Posts: 3
Joined: Wed May 13, 2009 3:01 pm

Re: ogreSwf/vektrix

Post by ramgv »

Hi, some1 can tell me if the actual version of vektrix available support buttons ?
User avatar
stoneCold
OGRE Expert User
OGRE Expert User
Posts: 867
Joined: Fri Oct 01, 2004 9:13 pm
Location: Carinthia, Austria
x 1

Re: ogreSwf/vektrix

Post by stoneCold »

Hi, I'm currently working on it, there's button support already working to some extent, although the full "mouse vs. widgets" collision checking algorithm has to be finished still (currently I'm just doing bounding box collisions).
Also the ActionScript3 virtual machine has been integrated and is working with buttons, etc. Now I'm working on my own SWF parser to replace swftools and get rid of the only piece of GPL code that would interfere with a license change to the MIT license.
I haven't commited for a while, so the latest revision of the repository hasn't got the button/AS3 stuff in it, but once I'm finished with the basic construct of the SWF parser and got all basic SWF tags working, I'll comit the whole thing. You can expect my commit somewhen during this or maybe next week, due to the holidays I'll have some more time available to work on vektrix, yay :D
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: ogreSwf/vektrix

Post by Assaf Raman »

Sounds good, keep up the good work.
Writing a parser can be fun.
Watch out for my OGRE related tweets here.
Jusas
Halfling
Posts: 91
Joined: Mon May 14, 2007 9:14 am
x 8

Re: ogreSwf/vektrix

Post by Jusas »

This thread makes me happy in my pants :lol:
User avatar
AshMcConnell
Silver Sponsor
Silver Sponsor
Posts: 605
Joined: Fri Dec 14, 2007 11:44 am
Location: Northern Ireland
x 16
Contact:

Re: ogreSwf/vektrix

Post by AshMcConnell »

This sounds fantastic, can't wait to try it out :)
User avatar
mikeInside
Kobold
Posts: 37
Joined: Thu Apr 26, 2007 5:46 pm
Location: Sydney, Australia
Contact:

Re: ogreSwf/vektrix

Post by mikeInside »

Seeing as how I was the last responder to this topic for over a month I was beginning to feel as if I had killed the project :P Love the updates, thanks SC
User avatar
stoneCold
OGRE Expert User
OGRE Expert User
Posts: 867
Joined: Fri Oct 01, 2004 9:13 pm
Location: Carinthia, Austria
x 1

Re: ogreSwf/vektrix

Post by stoneCold »

mikeInside wrote:Seeing as how I was the last responder to this topic for over a month I was beginning to feel as if I had killed the project :P
Nah, thanks to everyone for the kind comments, they're really motivating for me to get things done :wink:
ramgv
Gnoblar
Posts: 3
Joined: Wed May 13, 2009 3:01 pm

Re: ogreSwf/vektrix

Post by ramgv »

Hi Stone Cold, lately our team have been searching for GUI options and by far Vektrix is the most interesting one. Being able to use AS3 is a huge advantage.

I know that you already could implement onClick event and you are ultimating details so keep the good work ^^ gratz. And we are looking foward for your last update to be able to use buttons on vektrix.
User avatar
stoneCold
OGRE Expert User
OGRE Expert User
Posts: 867
Joined: Fri Oct 01, 2004 9:13 pm
Location: Carinthia, Austria
x 1

Re: ogreSwf/vektrix

Post by stoneCold »

ramgv wrote:Hi Stone Cold, lately our team have been searching for GUI options and by far Vektrix is the most interesting one. Being able to use AS3 is a huge advantage.
Thanks, I'm glad you like it.

Yesterday I've commited the latest changes to the vektrix repository. From this revision on, vektrix is now licensed under the MIT License. :D
Besides that, I've added support for loading compressed SWFs (using ZLIB), swftools was removed completely and I replaced it with my own SWF parser that I started writing from scratch.
Also pixel-perfect mouse vs. widget collision checking has been implemented and ActionScript 3.0 support has been developed further. Furthermore it's now quite easy to develop and add native ActionScript 3.0 classes to the AVM2+, which will be one major task of the future development.

You can read more about the latest development status of vektrix at...

www.fuse-software.com

There are now also precompiled win32 dependency packages available for vektrix, which should ease the compilation process quite a bit.
For detailed build instructions have a look at the following Wiki article: "building vektrix from source"
Also, everyone interested in vektrix is very welcome to join the official forums, the best place to ask questions about how to build or run vektrix, discuss wanted features, etc.

Looking forward to see you there :wink:

Cheers
Post Reply