A lot of users on the forum complain about colour schemes in their favourite skin being too light or dark etc. I have been playing a bit with this idea and the colordiffuse option.
Bear with me for a moment.
An individual file can take variables via #define variables.
If we set up a series of #define variables for background, foreground , button and text colours which can be universal within the skin, we can customise the skin for the user.
OK - We make all graphics files monochrome, except for those we don't want the user to change such as photo images.
The skin designer can designate a colour number or text number for colordiffuse on those elements which are OK to change.
We can apply a colordiffuse to all items we want to change, which will basically define the end colour, as the base is monochrome.
Via a simple program we can assign the basic variables "#color.diffuse1, #color.text1' etc for every file (add the defines to the start of every file) i.e
<define>#color.diffuse1:FFFFFFFF</define>
<description>background image</description>
<type>image</type>
<id>1</id>
<posX>0</posX>
<posY>0</posY>
<width>720</width>
<height>576</height>
<texture>background.png</texture>
<colordiffuse>#color.diffuse1</colordiffuse>
or
<define>#color.text1:FFFFFFFF</define>
<description>dialog Heading</description>
<type>label</type>
<id>1</id>
<posX>210</posX>
<posY>214</posY>
<label>0</label>
<font>font13</font>
<textcolor>#color.text1</textcolor>
Where #color.diffuse1 or #color.text1 are globally defined (or added to each file). The skin designer can reference these or not to each element.
Are you still with me?
Lets recap - If we make everything monochrome and then apply a colordiffuse we can make any skin customisable (in terms of colour). If we define a number of background colours and text colours which are then referenced in the skin definition (buttoncolour, backgroundcolour, textcolour1 etc etc) we can make the skin user configurable.
The problem at the moment is certain controls such as the FacadeView do not make the colordiffuse option available for background or foreground (button). The options are available but not exposed (its not hard to do, but lies in the definitions of these classes).
It would require a bit of work on the core development and skin designer side, but I have done it for (part of) the BlueTwo skin (barring the above limitations) and it works pretty well, but white is hard to obtain after a colordiffuse.
Is this of interest or just stupid.
Bear with me for a moment.
An individual file can take variables via #define variables.
If we set up a series of #define variables for background, foreground , button and text colours which can be universal within the skin, we can customise the skin for the user.
OK - We make all graphics files monochrome, except for those we don't want the user to change such as photo images.
The skin designer can designate a colour number or text number for colordiffuse on those elements which are OK to change.
We can apply a colordiffuse to all items we want to change, which will basically define the end colour, as the base is monochrome.
Via a simple program we can assign the basic variables "#color.diffuse1, #color.text1' etc for every file (add the defines to the start of every file) i.e
<define>#color.diffuse1:FFFFFFFF</define>
<description>background image</description>
<type>image</type>
<id>1</id>
<posX>0</posX>
<posY>0</posY>
<width>720</width>
<height>576</height>
<texture>background.png</texture>
<colordiffuse>#color.diffuse1</colordiffuse>
or
<define>#color.text1:FFFFFFFF</define>
<description>dialog Heading</description>
<type>label</type>
<id>1</id>
<posX>210</posX>
<posY>214</posY>
<label>0</label>
<font>font13</font>
<textcolor>#color.text1</textcolor>
Where #color.diffuse1 or #color.text1 are globally defined (or added to each file). The skin designer can reference these or not to each element.
Are you still with me?
Lets recap - If we make everything monochrome and then apply a colordiffuse we can make any skin customisable (in terms of colour). If we define a number of background colours and text colours which are then referenced in the skin definition (buttoncolour, backgroundcolour, textcolour1 etc etc) we can make the skin user configurable.
The problem at the moment is certain controls such as the FacadeView do not make the colordiffuse option available for background or foreground (button). The options are available but not exposed (its not hard to do, but lies in the definitions of these classes).
It would require a bit of work on the core development and skin designer side, but I have done it for (part of) the BlueTwo skin (barring the above limitations) and it works pretty well, but white is hard to obtain after a colordiffuse.
Is this of interest or just stupid.