Hi,
just the following questions: Would Irrlicht be faster/smaller without GUI?
Is it possible to compile Irrlicht without GUI and to use another GUI to draw Images etc.? Would it have some vantages?
Would it be better to compile Irrlicht as a simple Graphics Engine (without collision detection, gui, xml reader and so on)?
Woldn't it be better to concentrate on the development of the graphics system and to improve it?
I'm really interested in the answers and I hope, this won't start a "flamewar".
D.
Irrlicht without GUI
If you're not actually using parts of irrlicht then i don't think there's any performance loss for those bits actually being present in the library.
For example if you don't want to GUI because you don't actually use it in any way then irrlicht just won't run the update functions for the GUI presumably, or would do a very minimal amount of work due to the fact that the GUI has no elements to update/render. Similarly for the XML reader, that's not going affect performance at all if you don't use it.
But i imagine it would shrink the size of the DLL if you could compile it without certain bits, though i don't know by how much, probably not a huge amount so the huge amount of work it would take would be pretty pointless i imagine.
If you're hellbent on trying this out for yourself you could go ahead and remove all references to the stuff you don't want in the engine and then recompile it, it would take a long time and possibly cause a lot of hard to detect bugs but it's very possible. But then you'd basically be stuck with that version of irrlicht forever. It would be very hard to bring your edited version of irrlicht up to date with future releases. You'd either have to find all the changes in the new version and apply them to your edited version or re-edit the new release to get all the crap out of it again. So really it's not the best idea.
But i imagine you were hoping the irrlicht devs would take your idea on board and do it for you. Certainly they're happy to take suggestions and will implement decent ideas i'm sure but i don't think they'll go for this one because it would take a lot of effort and not necessarily reap any rewards for anyone. Plus i'm sure they've considered it before and decided against it, i think it's certainly been suggested before anyway.
For example if you don't want to GUI because you don't actually use it in any way then irrlicht just won't run the update functions for the GUI presumably, or would do a very minimal amount of work due to the fact that the GUI has no elements to update/render. Similarly for the XML reader, that's not going affect performance at all if you don't use it.
But i imagine it would shrink the size of the DLL if you could compile it without certain bits, though i don't know by how much, probably not a huge amount so the huge amount of work it would take would be pretty pointless i imagine.
If you're hellbent on trying this out for yourself you could go ahead and remove all references to the stuff you don't want in the engine and then recompile it, it would take a long time and possibly cause a lot of hard to detect bugs but it's very possible. But then you'd basically be stuck with that version of irrlicht forever. It would be very hard to bring your edited version of irrlicht up to date with future releases. You'd either have to find all the changes in the new version and apply them to your edited version or re-edit the new release to get all the crap out of it again. So really it's not the best idea.
But i imagine you were hoping the irrlicht devs would take your idea on board and do it for you. Certainly they're happy to take suggestions and will implement decent ideas i'm sure but i don't think they'll go for this one because it would take a lot of effort and not necessarily reap any rewards for anyone. Plus i'm sure they've considered it before and decided against it, i think it's certainly been suggested before anyway.
LOL..Dorth wrote:...
...
...
or comment "#define _IRR_COMPILE_WITH_GUI_" in IrrCompileConfig.h where you can also enable or disable most of Irrlicht.
By the way, because Irrlicht is a DLL doesn't things you don't use aren't linked or something like that?
P.S
@JP: He can also make a patch with his changes and apply on future releases so updates won't be a trouble .
Thanks. I did confused the two.Dorth wrote:MasterGod (man, I hate that nick), you are thinking of a static linked library, per opposition to a Dynamic Linked Library. A dll will pack everything in case you need it, since it doesn't know what you'll use.
P.S
I thought of it about 8 years ago..But you can just call me M.G