Unfortunately, it looks like this might change soon.
Two months ago, I discovered a memory leak upon creating widgets or modifying widgets in a certain way. It was "worked around" by eliminating some per-frame widget modifications, but the leak is still there. I was hoping we might get away with this for OpenMW 1.0, but now I don't think so anymore.
- While working on Feature #1571, per-frame leaks have crept in again and I see no way to work around them this time.
- There is a report that the inventory is becoming slower with each use. I have not confirmed that the leak is causing it, but it seems possible. We are frequently creating and destroying widgets in item views.
We need this leak fixed in a timely manner, because it is a drag on development. Getting a patch accepted to MyGUI's svn would be good, but it's not enough. We can not expect packagers to use an SVN version of MyGUI, and there are no signs of a new MyGUI release in the near future. I would like to be optimistic here, but with the lack of activity going on I have to assume the worst. I'm also still confused why the bugtracker disappeared.
So, if no release comes out, what options do we have?
- a) Do nothing, wait.
- b) Get patch into SVN, make OpenMW require MyGUI SVN. OpenMW packages in stable distributions (debian, ubuntu, etc) will have to be put on hold.
- c) Fork complete MyGUI to a new project.
- d) Fork MyGUI core into OpenMW repository, no longer depend on system-installed MyGUI. Note: MyGUIEngine takes about 2 minutes to build on my system, compared to 15 minutes for openmw (not including launcher, OpenCS and tools)
- Box layout
Box layouts and automatically resizing buttons/labels are crucial for OpenMW, because the size of various texts may differ depending on the localisation used. We have implemented custom widgets to do this, but there is still much to be desired. I'm not suggesting to add this as feature to the MyGUI core, but very useful would be better hooks for implementing this feature outside of the core. For instance, an onWidgetSetup function that is called after all children of a widget have been created.
- Better clipboard integration
I made a patch for this half a year ago. It has not been merged.
- Double click bug
In MyGUI 3.2 double clicks can be incorrectly detected when clicking on two different widgets. For this one, my patch was accepted, but it is only available in MyGUI SVN at the moment.
- Support scaled font textures
See bug 1096. If I recall, this isn't possible with the current ResourceManualFont. There is a small problem with passing the metrics (don't remember what it was exactly). Not very hard to patch.
To Altren (I've sent him a link to this topic):
If it is in your interest to prevent forks, then it would be a good idea to give me two assurances:
- that you can spend time reviewing my fix for the memory leak,
- that a new version of MyGUI will come out in a timely manner. Either a patch release (3.2.1) or 3.4.