ogreSwf/vektrix
-
- Goblin
- Posts: 222
- Joined: Tue Aug 08, 2006 2:58 pm
- Location: Moscow
- x 1
-
- OGRE Expert User
- Posts: 867
- Joined: Fri Oct 01, 2004 9:13 pm
- Location: Carinthia, Austria
- x 1
Re: ogreSwf/vektrix
Yep, that's why it's loaded as plugin during runtime only, it's not at all linked from within the core lib 
I'm currently working on implementing button + AS3 functionality maybe I can finish this before the weekend, we'll see.

I'm currently working on implementing button + AS3 functionality maybe I can finish this before the weekend, we'll see.
-
- OGRE Team Member
- Posts: 3092
- Joined: Tue Apr 11, 2006 3:58 pm
- Location: TLV, Israel
- x 76
Re: ogreSwf/vektrix
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...
I didn't know that...
Watch out for my OGRE related tweets here.
-
- OGRE Team Member
- Posts: 1525
- Joined: Fri Feb 03, 2006 10:37 pm
- Location: Austria - Leoben
- x 99
Re: ogreSwf/vektrix
http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins
i do not know if the lgpl is legal or the gpl plugin infect your main app as gpl.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.
-
- OGRE Expert User
- Posts: 867
- Joined: Fri Oct 01, 2004 9:13 pm
- Location: Carinthia, Austria
- x 1
Re: ogreSwf/vektrix
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.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...
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

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.
-
- Goblin
- Posts: 222
- Joined: Tue Aug 08, 2006 2:58 pm
- Location: Moscow
- x 1
-
- OGRE Team Member
- Posts: 3092
- Joined: Tue Apr 11, 2006 3:58 pm
- Location: TLV, Israel
- x 76
Re: ogreSwf/vektrix
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.
I hope you are right.
Watch out for my OGRE related tweets here.
-
- OGRE Team Member
- Posts: 3092
- Joined: Tue Apr 11, 2006 3:58 pm
- Location: TLV, Israel
- x 76
Re: ogreSwf/vektrix
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:
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.
-
- OGRE Team Member
- Posts: 3092
- Joined: Tue Apr 11, 2006 3:58 pm
- Location: TLV, Israel
- x 76
Re: ogreSwf/vektrix
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?
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.
-
- OGRE Retired Moderator
- Posts: 20570
- Joined: Thu Jan 22, 2004 10:13 am
- Location: Denmark
- x 179
Re: ogreSwf/vektrix
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.
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.
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
-
- OGRE Expert User
- Posts: 867
- Joined: Fri Oct 01, 2004 9:13 pm
- Location: Carinthia, Austria
- x 1
Re: ogreSwf/vektrix
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 yourselfmy.name wrote:Now it is a problem

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.
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.Assaf Raman wrote:A clear case is Inter-process communication, ...
[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).
-
- OGRE Retired Moderator
- Posts: 20570
- Joined: Thu Jan 22, 2004 10:13 am
- Location: Denmark
- x 179
Re: ogreSwf/vektrix
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.

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.
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
-
- OGRE Retired Moderator
- Posts: 9481
- Joined: Fri Feb 18, 2005 2:03 am
- Location: Dublin, CA, US
- x 22
Re: ogreSwf/vektrix
Sometimes it has to be done. It certainly makes for a more widely usable library overall.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).
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.
-
- OGRE Expert User
- Posts: 867
- Joined: Fri Oct 01, 2004 9:13 pm
- Location: Carinthia, Austria
- x 1
Re: ogreSwf/vektrix
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.xavier wrote:Sometimes it has to be done. It certainly makes for a more widely usable library overall.
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

So I'm not that eager on reinventing THIS particular wheel.
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 thoughxavier 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.

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.
-
- Goblin
- Posts: 222
- Joined: Tue Aug 08, 2006 2:58 pm
- Location: Moscow
- x 1
Re: ogreSwf/vektrix
I do not have possibility to write long and beautiful words. I did not wish you to upset. Your work is interesting to me.
-
- Kobold
- Posts: 37
- Joined: Thu Apr 26, 2007 5:46 pm
- Location: Sydney, Australia
Re: ogreSwf/vektrix
That's awesome. Graphics, buttons - that's pretty much all that's needed to start making an interface with it.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
I'm currently working on implementing button + AS3 functionality maybe I can finish this before the weekend, we'll see.
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

-
- Gnoblar
- Posts: 3
- Joined: Wed May 13, 2009 3:01 pm
Re: ogreSwf/vektrix
Hi, some1 can tell me if the actual version of vektrix available support buttons ?
-
- OGRE Expert User
- Posts: 867
- Joined: Fri Oct 01, 2004 9:13 pm
- Location: Carinthia, Austria
- x 1
Re: ogreSwf/vektrix
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
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

-
- OGRE Team Member
- Posts: 3092
- Joined: Tue Apr 11, 2006 3:58 pm
- Location: TLV, Israel
- x 76
Re: ogreSwf/vektrix
Sounds good, keep up the good work.
Writing a parser can be fun.
Writing a parser can be fun.
Watch out for my OGRE related tweets here.
-
- Halfling
- Posts: 91
- Joined: Mon May 14, 2007 9:14 am
- x 8
Re: ogreSwf/vektrix
This thread makes me happy in my pants 

-
- Silver Sponsor
- Posts: 605
- Joined: Fri Dec 14, 2007 11:44 am
- Location: Northern Ireland
- x 16
Re: ogreSwf/vektrix
This sounds fantastic, can't wait to try it out 

-
- Kobold
- Posts: 37
- Joined: Thu Apr 26, 2007 5:46 pm
- Location: Sydney, Australia
Re: ogreSwf/vektrix
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
Love the updates, thanks SC

-
- OGRE Expert User
- Posts: 867
- Joined: Fri Oct 01, 2004 9:13 pm
- Location: Carinthia, Austria
- x 1
Re: ogreSwf/vektrix
Nah, thanks to everyone for the kind comments, they're really motivating for me to get things donemikeInside 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![]()

-
- Gnoblar
- Posts: 3
- Joined: Wed May 13, 2009 3:01 pm
Re: ogreSwf/vektrix
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.
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.
-
- OGRE Expert User
- Posts: 867
- Joined: Fri Oct 01, 2004 9:13 pm
- Location: Carinthia, Austria
- x 1
Re: ogreSwf/vektrix
Thanks, I'm glad you like it.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.
Yesterday I've commited the latest changes to the vektrix repository. From this revision on, vektrix is now licensed under the MIT License.

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

Cheers