Hello people, long time no see. It feels good to be back and I am extremely happy to see so much good progress has been made and that CEGUI is in good hands!
In my opinion, instead of relying on this, users should simply be using different imagery for the widget.
(my boldface)
Reacting to the bolded part of the quote I would just like to point out that as developers, especially C++ developers, we should never impose limitations on how the users may express themselves though the tools we provide; we may know the library code we produce better than anyone else but we don't know all ways much less the best way for clients to put our code to use. UI is in its nature about allowing maximal freedom of expression, and this should be reflected both in the facilities offered but also in how we think about our users.
Less ideologically but related to this: colour gradients are a very powerful tools to provide UI effects in addition to as well as without changes in the bitmap data and as such is a highly meaningful functionality to retain. The rework as you are currently envisioning it entails approx. 16 floats. If the alternative is alternative bitmaps, then that entails much more memory overhead even for the smallest widgets than the 64 bytes 16 floats would occupy (assuming a 32-bit platform).
Lastly, the ColourRect:s are part of the established API and set of features since the earliest versions of CEGUI and that is a third reason to retain them. I am not saying that all things ancestral must be retained out of reverence, but I am saying that what is a core-level albeit seldom used feature should definitely be retained.
Now I will read the entire thread and see to what extent everything I said has already been stated!
<-- I've missed this emoticonEdit, having read the thread now:
Ident wrote:All "ColourRects" would be replaced by "Colour". Which is equal to a ColourRect with identical Colour at all 4 corners. So no gradients. The performance cost is almost nothing.
The preferred solution would of course be to allow the user to in some what select which model to use: a simpler uniform colour with less overhead or a more advanced four-corner gradient with a cost associated. Again along the C++ ideal: as far as possible allow the user the choice and avoid charging for what is not used. I have forgotten the underlying structures so I don't know if this is achievable, but I thought I should mention this as something to consider.