Removed handling of alpha component in EC::hexToRgb
This commit is contained in:
parent
7747fd32fb
commit
34db7aa76b
@ -638,9 +638,8 @@ EntityConverter::convertPointLight(const std::vector<std::string> &lines) const
|
|||||||
float red;
|
float red;
|
||||||
float green;
|
float green;
|
||||||
float blue;
|
float blue;
|
||||||
// Convert 32bit hex value into RGB values
|
// Convert 32bit hex RGBA value (ALPHA ALWAYS FULL) into RGB values
|
||||||
float backgroundColor = 0.5; //!! Just a guess
|
hexToRGB(color, red, green, blue);
|
||||||
hexToRGB(color, backgroundColor, red, green, blue);
|
|
||||||
colorStream << "\"_color\" \"" << red << " " << green << " " << blue << "\"" << std::endl;
|
colorStream << "\"_color\" \"" << red << " " << green << " " << blue << "\"" << std::endl;
|
||||||
convertedLines.push_back (colorStream.str() );
|
convertedLines.push_back (colorStream.str() );
|
||||||
}
|
}
|
||||||
@ -741,7 +740,7 @@ EntityConverter::offset(const std::string &value, const float amount) const
|
|||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
EntityConverter::hexToRGB(const std::string &hex, float background, float &r, float &g, float &b) const
|
EntityConverter::hexToRGB(const std::string &hex, float &r, float &g, float &b) const
|
||||||
{
|
{
|
||||||
unsigned int value;
|
unsigned int value;
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
@ -749,16 +748,11 @@ EntityConverter::hexToRGB(const std::string &hex, float background, float &r, fl
|
|||||||
ss >> value;
|
ss >> value;
|
||||||
|
|
||||||
// BYTE ORDER IS ARGB
|
// BYTE ORDER IS ARGB
|
||||||
|
// Alpha value is always full -> can be ignored safely
|
||||||
// Get each value and normalize
|
// Get each value and normalize
|
||||||
float sourceAlpha = ((value >> 24) & 0xFF) / 255.0;
|
r = ((value >> 16) & 0xFF) / 255.0;
|
||||||
float sourceRed = ((value >> 16) & 0xFF) / 255.0;
|
g = ((value >> 8) & 0xFF) / 255.0;
|
||||||
float sourceGreen = ((value >> 8) & 0xFF) / 255.0;
|
b = ((value) & 0xFF) / 255.0;
|
||||||
float sourceBlue = ((value) & 0xFF) / 255.0;
|
|
||||||
|
|
||||||
// Convert RGB value close to something close to the source RGBA value
|
|
||||||
r = ((1 - sourceAlpha) * background) + (sourceAlpha * sourceRed);
|
|
||||||
g = ((1 - sourceAlpha) * background) + (sourceAlpha * sourceGreen);
|
|
||||||
b = ((1 - sourceAlpha) * background) + (sourceAlpha * sourceBlue);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -200,13 +200,12 @@ class EntityConverter
|
|||||||
* Method: EntityConverter :: hexToRGB
|
* Method: EntityConverter :: hexToRGB
|
||||||
* Description: Convert 8 digit hex value into separate red, green, and blue values
|
* Description: Convert 8 digit hex value into separate red, green, and blue values
|
||||||
* Parameter: string hex, inputted hex RGBA value (leftmost byte is alpha, then RGB)
|
* Parameter: string hex, inputted hex RGBA value (leftmost byte is alpha, then RGB)
|
||||||
* Parameter: float background, background color
|
|
||||||
* Parameter: float r, RETURN BY REFERENCE: converted red value
|
* Parameter: float r, RETURN BY REFERENCE: converted red value
|
||||||
* Parameter: float g, RETURN BY REFERENCE: converted green value
|
* Parameter: float g, RETURN BY REFERENCE: converted green value
|
||||||
* Parameter: float b, RETURN BY REFERENCE: converted blue value
|
* Parameter: float b, RETURN BY REFERENCE: converted blue value
|
||||||
*--------------------------------------------------------------------------------------
|
*--------------------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
void hexToRGB(const std::string &hex, const float background, float &r, float &g, float &b) const;
|
void hexToRGB(const std::string &hex, float &r, float &g, float &b) const;
|
||||||
/*
|
/*
|
||||||
*--------------------------------------------------------------------------------------
|
*--------------------------------------------------------------------------------------
|
||||||
* Class: EntityConverter
|
* Class: EntityConverter
|
||||||
|
Loading…
Reference in New Issue
Block a user