Irrlicht stuff

Patches I'm using for Irrlicht (svn version 2407 and later)

Last edit: 2009/06/14

Don't install patches unless you have to.
As I'm now working directly on the engine my good patches will go into the engine directly (I will remove them here when I do that). I haven't found yet time to put some of them into the engine, but also many of those here have to be reworked a lot until they have engine-quality. So they usually do the task for which I needed them, but often in a bad way because formerly my main intention was just getting stuff to work in a way that touches the engine itself as less as possible to make updating easier.

The patches are under the zlib-license, the same license as used in the Irrlicht engine.

- add a fontfactory to the guienvironment

- add a name element to IGUIElement which can be used to identify elements (because working with ID's gets confusing very fast)

- add a textID field which can be used by stringtables

- add a textID field which can be used by stringtables

- add clearPendingEvents for linux and windows

- allow setting a texturepath for .b3d files
- allow setting a texturepath for .obj files

- grownup menues can handle checking flags on click themself
- serialize also checked flag
- some serialization cleanup

- allow to set another behaviour when menus are closed

- added some existsAttribute checks to allow for incomplete xml's as the other default mechanism does not work for sub-elements. So defaults are hardcoded, but still better than having to type them so often in the xml's. Also this will make nicer xml's even without my other default mechanism.

- with just a little change the eventparent functionality was surprisingly useful as interface function

- add comfort function to find menu items by their command id

- add multiselection to the listbox
- this patch sucks - it was developed mainly so it would change minimal stuff in Irrlicht. Just a placeholder until I find time for a good solution.

- Add textwrapping in lines

- give E_ATTRIBUTE_TYPE own header EAttributes.h
- give IAttribute own header IAttribute.h
- CStringWArrayAttribute can use const-ref instead of copy

default_attributes patch
- adding isEqualTo to IAttribute and CStringWArrayAttribute (should be const, but not possible due to getStringW not beeing const)
- adding new functions getDefaultAttributes, setDefaultAttributeUsage in IAttributes, CAttributes
- put getAttributeP into the IAttributes interface and make it public in CAttributes
- adding new function isEqualToDefaultAttribute to CAttributes
- adding DefaultAttributes and DefaultAttributeUsage to CAttributes

(needs default_attributes patch)
- add support for default attributes to the guienvironment
- IGUIElementFactory and CDefaultGUIElementFactory have now getTypeFromName as public interface (was private in CDefaultGUIElementFactory)
- getTypeFromName added to CGUIEnvironment

- give editbox EGDC_INACTIVE_BORDER color when disabled (that wasn't visible before)

(needs listbox_multiselection.patch) - fileopen dialog can now open several files at once
- this patch still sucks - it works - but in a horrible bad way (like everything is single-click). It's only a placeholder until I find time for a good solution.

- support international keyinput on linux

- make_lower for names which are also used as filenames removed (not a perfect solution which can even cause trouble with certain model files which don't care about that)

- A profiler specialized to profile peaks

(beware - irrlicht default-font not yet checked) - button, editbox and statictext do now serialize the override fonts

- Add createSkinnedMesh to meshmanipulator to allow for copying skinnedmeshes.
This is needed to support independently animationed objects for the same mesh.
- See for more info

- add line-scrolling support to statictext elements

- allow disabling X11 per define parameter so it can be set with -D instead of changing sources