Merge pull request #15537 from PJB3005/18-01-09-fix-color-string-constructor-mono
Fixes Mono color creation from string being 0-255 instead of 0-1.
This commit is contained in:
commit
a60896869e
1 changed files with 13 additions and 13 deletions
|
@ -336,7 +336,7 @@ namespace Godot
|
||||||
this.r = (rgba & 0xFF) / 255.0f;
|
this.r = (rgba & 0xFF) / 255.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static float _parse_col(string str, int ofs)
|
private static int _parse_col(string str, int ofs)
|
||||||
{
|
{
|
||||||
int ig = 0;
|
int ig = 0;
|
||||||
|
|
||||||
|
@ -415,17 +415,17 @@ namespace Godot
|
||||||
|
|
||||||
if (alpha)
|
if (alpha)
|
||||||
{
|
{
|
||||||
if ((int)_parse_col(color, 0) < 0)
|
if (_parse_col(color, 0) < 0)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int from = alpha ? 2 : 0;
|
int from = alpha ? 2 : 0;
|
||||||
|
|
||||||
if ((int)_parse_col(color, from + 0) < 0)
|
if (_parse_col(color, from + 0) < 0)
|
||||||
return false;
|
return false;
|
||||||
if ((int)_parse_col(color, from + 2) < 0)
|
if (_parse_col(color, from + 2) < 0)
|
||||||
return false;
|
return false;
|
||||||
if ((int)_parse_col(color, from + 4) < 0)
|
if (_parse_col(color, from + 4) < 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -467,10 +467,10 @@ namespace Godot
|
||||||
|
|
||||||
if (alpha)
|
if (alpha)
|
||||||
{
|
{
|
||||||
a = _parse_col(rgba, 0);
|
a = _parse_col(rgba, 0) / 255f;
|
||||||
|
|
||||||
if (a < 0)
|
if (a < 0)
|
||||||
throw new ArgumentOutOfRangeException("Invalid color code. Alpha is " + a + " but zero or greater is expected: " + rgba);
|
throw new ArgumentOutOfRangeException("Invalid color code. Alpha part is not valid hexadecimal: " + rgba);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -479,20 +479,20 @@ namespace Godot
|
||||||
|
|
||||||
int from = alpha ? 2 : 0;
|
int from = alpha ? 2 : 0;
|
||||||
|
|
||||||
r = _parse_col(rgba, from + 0);
|
r = _parse_col(rgba, from + 0) / 255f;
|
||||||
|
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
throw new ArgumentOutOfRangeException("Invalid color code. Red is " + r + " but zero or greater is expected: " + rgba);
|
throw new ArgumentOutOfRangeException("Invalid color code. Red part is not valid hexadecimal: " + rgba);
|
||||||
|
|
||||||
g = _parse_col(rgba, from + 2);
|
g = _parse_col(rgba, from + 2) / 255f;
|
||||||
|
|
||||||
if (g < 0)
|
if (g < 0)
|
||||||
throw new ArgumentOutOfRangeException("Invalid color code. Green is " + g + " but zero or greater is expected: " + rgba);
|
throw new ArgumentOutOfRangeException("Invalid color code. Green part is not valid hexadecimal: " + rgba);
|
||||||
|
|
||||||
b = _parse_col(rgba, from + 4);
|
b = _parse_col(rgba, from + 4) / 255f;
|
||||||
|
|
||||||
if (b < 0)
|
if (b < 0)
|
||||||
throw new ArgumentOutOfRangeException("Invalid color code. Blue is " + b + " but zero or greater is expected: " + rgba);
|
throw new ArgumentOutOfRangeException("Invalid color code. Blue part is not valid hexadecimal: " + rgba);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool operator ==(Color left, Color right)
|
public static bool operator ==(Color left, Color right)
|
||||||
|
|
Loading…
Reference in a new issue