Support alpha in border colours

The alpha component is merged with the container's opacity.

Completes #1882.
This commit is contained in:
Ryan Dwyer 2018-05-02 08:40:38 +10:00
parent c82a04e110
commit daab8e3503
2 changed files with 30 additions and 19 deletions

View file

@ -8,7 +8,7 @@ static bool parse_color(char *hexstring, float dest[static 4]) {
return false;
}
if (strlen(hexstring) != 7) {
if (strlen(hexstring) != 7 && strlen(hexstring) != 9) {
return false;
}
@ -20,10 +20,15 @@ static bool parse_color(char *hexstring, float dest[static 4]) {
return false;
}
dest[0] = ((decimal >> 16) & 0xff) / 255.0;
dest[1] = ((decimal >> 8) & 0xff) / 255.0;
dest[2] = (decimal & 0xff) / 255.0;
dest[3] = 1.0;
if (strlen(hexstring) == 6) {
// Add alpha
decimal = (decimal << 8) | 0xff;
}
dest[0] = ((decimal >> 24) & 0xff) / 255.0;
dest[1] = ((decimal >> 16) & 0xff) / 255.0;
dest[2] = ((decimal >> 8) & 0xff) / 255.0;
dest[3] = (decimal & 0xff) / 255.0;
return true;
}