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.


font_factory.patch
- add a fontfactory to the guienvironment

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

element_nameid.patch
- add a textID field which can be used by stringtables

menu_nameid.patch
- add a textID field which can be used by stringtables

device_clearevents.patch
- add clearPendingEvents for linux and windows

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


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

menu_closehandling.patch
- allow to set another behaviour when menus are closed

menu_deserialize_nice.patch
- 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.

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

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

listbox_multiselection.patch
- 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.

listbox_wordwrap.patch
- Add textwrapping in lines

attributes_cleanup.patch
- 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

guienv_default_attributes.patch
(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

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

fileopen_multiselection.patch
(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.

keysym2ucs.patch
- support international keyinput on linux

no_make_lower.patch
- 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)

profiler.patch
- A profiler specialized to profile peaks

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

skinnedmeshcopy.patch
- Add createSkinnedMesh to meshmanipulator to allow for copying skinnedmeshes.
This is needed to support independently animationed objects for the same mesh.
- See http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=32761&highlight= for more info

statictext_scrolling.patch
- add line-scrolling support to statictext elements

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