U++ framework
Do not panic. Ask here before giving up.

Home » Developing U++ » U++ Developers corner » DarkTheme support
Re: Please check the list of 2019.1 changes [message #51210 is a reply to message #51161] Thu, 21 February 2019 09:52 Go to previous messageGo to previous message
mirek is currently offline  mirek
Messages: 14291
Registered: November 2005
Ultimate Member
Next iteration of DarkTheme function. I guess this is the final one...

index.php?t=getfile&id=5768&private=0

Color DarkTheme2(Color color)
{
	if(IsNull(color))
		return Null;
	
	double v[3];
	v[0] = color.GetR();
	v[1] = color.GetG();
	v[2] = color.GetB();
	
	static double c[3] = { 0.21, 0.72, 0.07 };

	double m0 = 0.21 * v[0] + 0.72 * v[1] + 0.07 * v[2];
	double m = 256 - m0;
	
	int i0 = 0;
	int i1 = 1;
	int i2 = 2;
	
	if(v[i0] > v[i1])
		Swap(i0, i1);
	if(v[i1] > v[i2])
		Swap(i1, i2);
	if(v[i0] > v[i1])
		Swap(i0, i1);

	if(m0 < m) {
		m -= m0;
		double a = min(v[i2] + m, 255.0) - v[i2];
		v[i0] += a;
		v[i1] += a;
		v[i2] += a;
		m -= a;

		a = min(v[i1] + m / (c[i0] + c[i1]), 255.0) - v[i1];
		v[i0] += a;
		v[i1] += a;
		m -= (c[i0] + c[i1]) * a;

		v[i0] = min(v[i0] + m / c[i1], 255.0);
	}
	else {
		m = m0 - m;
		double a = v[i0] - max(v[i0] - m, 0.0);
		v[i0] -= a;
		v[i1] -= a;
		v[i2] -= a;
		m -= a;

		a = v[i1] - max(v[i1] - m / (c[i1] + c[i2]), 0.0);
		v[i1] -= a;
		v[i2] -= a;
		m -= (c[i1] + c[i2]) * a;

		v[i2] = max(v[i2] - m / c[i2], 0.0);
	}
	
	return Color((int)v[0], (int)v[1], (int)v[2]);
}


 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Please check the list of 2019.1 changes
Next Topic: Getting hands dirty with Win32 TLS
Goto Forum:
  


Current Time: Tue Jul 07 23:58:49 GMT+2 2026

Total time taken to generate the page: 0.00962 seconds