From 37e6ce24a2060a7d943b45c8015576f016021e5e Mon Sep 17 00:00:00 2001 From: Homer Horwitz Date: Sat, 13 Sep 2008 22:48:30 +0000 Subject: Fixed several cases of inverted colors and alpha in DNE and XEngine. Added clamping to 0.0 - 1.0 for R, G, B, and A. --- .../ScriptEngine/Common/LSL_BuiltIn_Commands.cs | 70 +++++++++++----------- 1 file changed, 35 insertions(+), 35 deletions(-) (limited to 'OpenSim/Region/ScriptEngine/Common') diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs index f2add80..1090c42 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs @@ -1340,7 +1340,7 @@ namespace OpenSim.Region.ScriptEngine.Common if (face > -1) { texcolor = tex.CreateFace((uint)face).RGBA; - texcolor.A = (float)Math.Abs(alpha - 1); + texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); tex.FaceTextures[face].RGBA = texcolor; part.UpdateTexture(tex); return; @@ -1352,12 +1352,12 @@ namespace OpenSim.Region.ScriptEngine.Common if (tex.FaceTextures[i] != null) { texcolor = tex.FaceTextures[i].RGBA; - texcolor.A = (float)Math.Abs(alpha - 1); + texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); tex.FaceTextures[i].RGBA = texcolor; } } texcolor = tex.DefaultTexture.RGBA; - texcolor.A = (float)Math.Abs(alpha - 1); + texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); tex.DefaultTexture.RGBA = texcolor; part.UpdateTexture(tex); return; @@ -2866,9 +2866,9 @@ namespace OpenSim.Region.ScriptEngine.Common if (face > -1) { texcolor = tex.CreateFace((uint)face).RGBA; - texcolor.R = (float)Math.Abs(color.x - 1); - texcolor.G = (float)Math.Abs(color.y - 1); - texcolor.B = (float)Math.Abs(color.z - 1); + texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0); + texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0); + texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0); tex.FaceTextures[face].RGBA = texcolor; part.UpdateTexture(tex); return; @@ -2876,25 +2876,25 @@ namespace OpenSim.Region.ScriptEngine.Common else if (face == -1) { texcolor = tex.DefaultTexture.RGBA; - texcolor.R = (float)Math.Abs(color.x - 1); - texcolor.G = (float)Math.Abs(color.y - 1); - texcolor.B = (float)Math.Abs(color.z - 1); + texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0); + texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0); + texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0); tex.DefaultTexture.RGBA = texcolor; for (uint i = 0; i < 32; i++) { if (tex.FaceTextures[i] != null) { texcolor = tex.FaceTextures[i].RGBA; - texcolor.R = (float)Math.Abs(color.x - 1); - texcolor.G = (float)Math.Abs(color.y - 1); - texcolor.B = (float)Math.Abs(color.z - 1); + texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0); + texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0); + texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0); tex.FaceTextures[i].RGBA = texcolor; } } texcolor = tex.DefaultTexture.RGBA; - texcolor.R = (float)Math.Abs(color.x - 1); - texcolor.G = (float)Math.Abs(color.y - 1); - texcolor.B = (float)Math.Abs(color.z - 1); + texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0); + texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0); + texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0); tex.DefaultTexture.RGBA = texcolor; part.UpdateTexture(tex); return; @@ -2913,34 +2913,34 @@ namespace OpenSim.Region.ScriptEngine.Common if (face > -1) { texcolor = tex.CreateFace((uint)face).RGBA; - texcolor.R = (float)Math.Abs(color.x - 1); - texcolor.G = (float)Math.Abs(color.y - 1); - texcolor.B = (float)Math.Abs(color.z - 1); + texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0); + texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0); + texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0); tex.FaceTextures[face].RGBA = texcolor; part.UpdateTexture(tex); } else if (face == -1) { texcolor = tex.DefaultTexture.RGBA; - texcolor.R = (float)Math.Abs(color.x - 1); - texcolor.G = (float)Math.Abs(color.y - 1); - texcolor.B = (float)Math.Abs(color.z - 1); + texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0); + texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0); + texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0); tex.DefaultTexture.RGBA = texcolor; for (uint i = 0; i < 32; i++) { if (tex.FaceTextures[i] != null) { texcolor = tex.FaceTextures[i].RGBA; - texcolor.R = (float)Math.Abs(color.x - 1); - texcolor.G = (float)Math.Abs(color.y - 1); - texcolor.B = (float)Math.Abs(color.z - 1); + texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0); + texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0); + texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0); tex.FaceTextures[i].RGBA = texcolor; } } texcolor = tex.DefaultTexture.RGBA; - texcolor.R = (float)Math.Abs(color.x - 1); - texcolor.G = (float)Math.Abs(color.y - 1); - texcolor.B = (float)Math.Abs(color.z - 1); + texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0); + texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0); + texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0); tex.DefaultTexture.RGBA = texcolor; part.UpdateTexture(tex); } @@ -6154,7 +6154,7 @@ namespace OpenSim.Region.ScriptEngine.Common if (face > -1) { texcolor = tex.CreateFace((uint)face).RGBA; - texcolor.A = (float)Math.Abs(alpha - 1); + texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); tex.FaceTextures[face].RGBA = texcolor; part.UpdateTexture(tex); return; @@ -6162,19 +6162,19 @@ namespace OpenSim.Region.ScriptEngine.Common else if (face == -1) { texcolor = tex.DefaultTexture.RGBA; - texcolor.A = (float)Math.Abs(alpha - 1); + texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); tex.DefaultTexture.RGBA = texcolor; for (uint i = 0; i < 32; i++) { if (tex.FaceTextures[i] != null) { texcolor = tex.FaceTextures[i].RGBA; - texcolor.A = (float)Math.Abs(alpha - 1); + texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); tex.FaceTextures[i].RGBA = texcolor; } } texcolor = tex.DefaultTexture.RGBA; - texcolor.A = (float)Math.Abs(alpha - 1); + texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); tex.DefaultTexture.RGBA = texcolor; part.UpdateTexture(tex); return; @@ -6193,26 +6193,26 @@ namespace OpenSim.Region.ScriptEngine.Common if (face > -1) { texcolor = tex.CreateFace((uint)face).RGBA; - texcolor.A = (float)Math.Abs(alpha - 1); + texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); tex.FaceTextures[face].RGBA = texcolor; part.UpdateTexture(tex); } else if (face == -1) { texcolor = tex.DefaultTexture.RGBA; - texcolor.A = (float)Math.Abs(alpha - 1); + texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); tex.DefaultTexture.RGBA = texcolor; for (uint i = 0; i < 32; i++) { if (tex.FaceTextures[i] != null) { texcolor = tex.FaceTextures[i].RGBA; - texcolor.A = (float)Math.Abs(alpha - 1); + texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); tex.FaceTextures[i].RGBA = texcolor; } } texcolor = tex.DefaultTexture.RGBA; - texcolor.A = (float)Math.Abs(alpha - 1); + texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); tex.DefaultTexture.RGBA = texcolor; part.UpdateTexture(tex); } -- cgit v1.1