aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared
diff options
context:
space:
mode:
authorHomer Horwitz2008-09-14 15:46:54 +0000
committerHomer Horwitz2008-09-14 15:46:54 +0000
commit4ba7ce5981b8134a19970fc9c476f6c6d31b0cc9 (patch)
tree14b4427b92eaca2806b35e19d0b6f16a42515d06 /OpenSim/Region/ScriptEngine/Shared
parentMantis #2186 (diff)
downloadopensim-SC-4ba7ce5981b8134a19970fc9c476f6c6d31b0cc9.zip
opensim-SC-4ba7ce5981b8134a19970fc9c476f6c6d31b0cc9.tar.gz
opensim-SC-4ba7ce5981b8134a19970fc9c476f6c6d31b0cc9.tar.bz2
opensim-SC-4ba7ce5981b8134a19970fc9c476f6c6d31b0cc9.tar.xz
Added some further clipping to color- and alpha-values.
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs100
1 files changed, 51 insertions, 49 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 7a654ce..00f843f 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -990,9 +990,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
990 if (face > -1) 990 if (face > -1)
991 { 991 {
992 texcolor = tex.CreateFace((uint)face).RGBA; 992 texcolor = tex.CreateFace((uint)face).RGBA;
993 texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0); 993 texcolor.R = Util.Clip((float)color.x, 0.0f, 1.0f);
994 texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0); 994 texcolor.G = Util.Clip((float)color.y, 0.0f, 1.0f);
995 texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0); 995 texcolor.B = Util.Clip((float)color.z, 0.0f, 1.0f);
996 tex.FaceTextures[face].RGBA = texcolor; 996 tex.FaceTextures[face].RGBA = texcolor;
997 part.UpdateTexture(tex); 997 part.UpdateTexture(tex);
998 return; 998 return;
@@ -1004,15 +1004,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1004 if (tex.FaceTextures[i] != null) 1004 if (tex.FaceTextures[i] != null)
1005 { 1005 {
1006 texcolor = tex.FaceTextures[i].RGBA; 1006 texcolor = tex.FaceTextures[i].RGBA;
1007 texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0); 1007 texcolor.R = Util.Clip((float)color.x, 0.0f, 1.0f);
1008 texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0); 1008 texcolor.G = Util.Clip((float)color.y, 0.0f, 1.0f);
1009 texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0); 1009 texcolor.B = Util.Clip((float)color.z, 0.0f, 1.0f);
1010 tex.FaceTextures[i].RGBA = texcolor; 1010 tex.FaceTextures[i].RGBA = texcolor;
1011 } 1011 }
1012 texcolor = tex.DefaultTexture.RGBA; 1012 texcolor = tex.DefaultTexture.RGBA;
1013 texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0); 1013 texcolor.R = Util.Clip((float)color.x, 0.0f, 1.0f);
1014 texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0); 1014 texcolor.G = Util.Clip((float)color.y, 0.0f, 1.0f);
1015 texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0); 1015 texcolor.B = Util.Clip((float)color.z, 0.0f, 1.0f);
1016 tex.DefaultTexture.RGBA = texcolor; 1016 tex.DefaultTexture.RGBA = texcolor;
1017 } 1017 }
1018 part.UpdateTexture(tex); 1018 part.UpdateTexture(tex);
@@ -1149,7 +1149,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1149 if (face > -1) 1149 if (face > -1)
1150 { 1150 {
1151 texcolor = tex.CreateFace((uint)face).RGBA; 1151 texcolor = tex.CreateFace((uint)face).RGBA;
1152 texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); 1152 texcolor.A = Util.Clip((float)alpha, 0.0f, 1.0f);
1153 tex.FaceTextures[face].RGBA = texcolor; 1153 tex.FaceTextures[face].RGBA = texcolor;
1154 part.UpdateTexture(tex); 1154 part.UpdateTexture(tex);
1155 return; 1155 return;
@@ -1161,12 +1161,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1161 if (tex.FaceTextures[i] != null) 1161 if (tex.FaceTextures[i] != null)
1162 { 1162 {
1163 texcolor = tex.FaceTextures[i].RGBA; 1163 texcolor = tex.FaceTextures[i].RGBA;
1164 texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); 1164 texcolor.A = Util.Clip((float)alpha, 0.0f, 1.0f);
1165 tex.FaceTextures[i].RGBA = texcolor; 1165 tex.FaceTextures[i].RGBA = texcolor;
1166 } 1166 }
1167 } 1167 }
1168 texcolor = tex.DefaultTexture.RGBA; 1168 texcolor = tex.DefaultTexture.RGBA;
1169 texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); 1169 texcolor.A = Util.Clip((float)alpha, 0.0f, 1.0f);
1170 tex.DefaultTexture.RGBA = texcolor; 1170 tex.DefaultTexture.RGBA = texcolor;
1171 part.UpdateTexture(tex); 1171 part.UpdateTexture(tex);
1172 return; 1172 return;
@@ -1253,9 +1253,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1253 if (light) 1253 if (light)
1254 { 1254 {
1255 part.Shape.LightEntry = true; 1255 part.Shape.LightEntry = true;
1256 part.Shape.LightColorR = (float)Math.Min(Math.Max(color.x, 0.0), 1.0); 1256 part.Shape.LightColorR = Util.Clip((float)color.x, 0.0f, 1.0f);
1257 part.Shape.LightColorG = (float)Math.Min(Math.Max(color.y, 0.0), 1.0); 1257 part.Shape.LightColorG = Util.Clip((float)color.y, 0.0f, 1.0f);
1258 part.Shape.LightColorB = (float)Math.Min(Math.Max(color.z, 0.0), 1.0); 1258 part.Shape.LightColorB = Util.Clip((float)color.z, 0.0f, 1.0f);
1259 part.Shape.LightIntensity = intensity; 1259 part.Shape.LightIntensity = intensity;
1260 part.Shape.LightRadius = radius; 1260 part.Shape.LightRadius = radius;
1261 part.Shape.LightFalloff = falloff; 1261 part.Shape.LightFalloff = falloff;
@@ -2710,9 +2710,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2710 if (face > -1) 2710 if (face > -1)
2711 { 2711 {
2712 texcolor = tex.CreateFace((uint)face).RGBA; 2712 texcolor = tex.CreateFace((uint)face).RGBA;
2713 texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0); 2713 texcolor.R = Util.Clip((float)color.x, 0.0f, 1.0f);
2714 texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0); 2714 texcolor.G = Util.Clip((float)color.y, 0.0f, 1.0f);
2715 texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0); 2715 texcolor.B = Util.Clip((float)color.z, 0.0f, 1.0f);
2716 tex.FaceTextures[face].RGBA = texcolor; 2716 tex.FaceTextures[face].RGBA = texcolor;
2717 part.UpdateTexture(tex); 2717 part.UpdateTexture(tex);
2718 return; 2718 return;
@@ -2720,25 +2720,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2720 else if (face == -1) 2720 else if (face == -1)
2721 { 2721 {
2722 texcolor = tex.DefaultTexture.RGBA; 2722 texcolor = tex.DefaultTexture.RGBA;
2723 texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0); 2723 texcolor.R = Util.Clip((float)color.x, 0.0f, 1.0f);
2724 texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0); 2724 texcolor.G = Util.Clip((float)color.y, 0.0f, 1.0f);
2725 texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0); 2725 texcolor.B = Util.Clip((float)color.z, 0.0f, 1.0f);
2726 tex.DefaultTexture.RGBA = texcolor; 2726 tex.DefaultTexture.RGBA = texcolor;
2727 for (uint i = 0; i < 32; i++) 2727 for (uint i = 0; i < 32; i++)
2728 { 2728 {
2729 if (tex.FaceTextures[i] != null) 2729 if (tex.FaceTextures[i] != null)
2730 { 2730 {
2731 texcolor = tex.FaceTextures[i].RGBA; 2731 texcolor = tex.FaceTextures[i].RGBA;
2732 texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0); 2732 texcolor.R = Util.Clip((float)color.x, 0.0f, 1.0f);
2733 texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0); 2733 texcolor.G = Util.Clip((float)color.y, 0.0f, 1.0f);
2734 texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0); 2734 texcolor.B = Util.Clip((float)color.z, 0.0f, 1.0f);
2735 tex.FaceTextures[i].RGBA = texcolor; 2735 tex.FaceTextures[i].RGBA = texcolor;
2736 } 2736 }
2737 } 2737 }
2738 texcolor = tex.DefaultTexture.RGBA; 2738 texcolor = tex.DefaultTexture.RGBA;
2739 texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0); 2739 texcolor.R = Util.Clip((float)color.x, 0.0f, 1.0f);
2740 texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0); 2740 texcolor.G = Util.Clip((float)color.y, 0.0f, 1.0f);
2741 texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0); 2741 texcolor.B = Util.Clip((float)color.z, 0.0f, 1.0f);
2742 tex.DefaultTexture.RGBA = texcolor; 2742 tex.DefaultTexture.RGBA = texcolor;
2743 part.UpdateTexture(tex); 2743 part.UpdateTexture(tex);
2744 return; 2744 return;
@@ -2757,34 +2757,34 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2757 if (face > -1) 2757 if (face > -1)
2758 { 2758 {
2759 texcolor = tex.CreateFace((uint)face).RGBA; 2759 texcolor = tex.CreateFace((uint)face).RGBA;
2760 texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0); 2760 texcolor.R = Util.Clip((float)color.x, 0.0f, 1.0f);
2761 texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0); 2761 texcolor.G = Util.Clip((float)color.y, 0.0f, 1.0f);
2762 texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0); 2762 texcolor.B = Util.Clip((float)color.z, 0.0f, 1.0f);
2763 tex.FaceTextures[face].RGBA = texcolor; 2763 tex.FaceTextures[face].RGBA = texcolor;
2764 part.UpdateTexture(tex); 2764 part.UpdateTexture(tex);
2765 } 2765 }
2766 else if (face == -1) 2766 else if (face == -1)
2767 { 2767 {
2768 texcolor = tex.DefaultTexture.RGBA; 2768 texcolor = tex.DefaultTexture.RGBA;
2769 texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0); 2769 texcolor.R = Util.Clip((float)color.x, 0.0f, 1.0f);
2770 texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0); 2770 texcolor.G = Util.Clip((float)color.y, 0.0f, 1.0f);
2771 texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0); 2771 texcolor.B = Util.Clip((float)color.z, 0.0f, 1.0f);
2772 tex.DefaultTexture.RGBA = texcolor; 2772 tex.DefaultTexture.RGBA = texcolor;
2773 for (uint i = 0; i < 32; i++) 2773 for (uint i = 0; i < 32; i++)
2774 { 2774 {
2775 if (tex.FaceTextures[i] != null) 2775 if (tex.FaceTextures[i] != null)
2776 { 2776 {
2777 texcolor = tex.FaceTextures[i].RGBA; 2777 texcolor = tex.FaceTextures[i].RGBA;
2778 texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0); 2778 texcolor.R = Util.Clip((float)color.x, 0.0f, 1.0f);
2779 texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0); 2779 texcolor.G = Util.Clip((float)color.y, 0.0f, 1.0f);
2780 texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0); 2780 texcolor.B = Util.Clip((float)color.z, 0.0f, 1.0f);
2781 tex.FaceTextures[i].RGBA = texcolor; 2781 tex.FaceTextures[i].RGBA = texcolor;
2782 } 2782 }
2783 } 2783 }
2784 texcolor = tex.DefaultTexture.RGBA; 2784 texcolor = tex.DefaultTexture.RGBA;
2785 texcolor.R = (float)Math.Min(Math.Max(color.x, 0.0), 1.0); 2785 texcolor.R = Util.Clip((float)color.x, 0.0f, 1.0f);
2786 texcolor.G = (float)Math.Min(Math.Max(color.y, 0.0), 1.0); 2786 texcolor.G = Util.Clip((float)color.y, 0.0f, 1.0f);
2787 texcolor.B = (float)Math.Min(Math.Max(color.z, 0.0), 1.0); 2787 texcolor.B = Util.Clip((float)color.z, 0.0f, 1.0f);
2788 tex.DefaultTexture.RGBA = texcolor; 2788 tex.DefaultTexture.RGBA = texcolor;
2789 part.UpdateTexture(tex); 2789 part.UpdateTexture(tex);
2790 } 2790 }
@@ -2990,8 +2990,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2990 public void llSetText(string text, LSL_Types.Vector3 color, double alpha) 2990 public void llSetText(string text, LSL_Types.Vector3 color, double alpha)
2991 { 2991 {
2992 m_host.AddScriptLPS(1); 2992 m_host.AddScriptLPS(1);
2993 Vector3 av3 = new Vector3((float)color.x, (float)color.y, (float)color.z); 2993 Vector3 av3 = new Vector3(Util.Clip((float)color.x, 0.0f, 1.0f),
2994 m_host.SetText(text, av3, alpha); 2994 Util.Clip((float)color.y, 0.0f, 1.0f),
2995 Util.Clip((float)color.z, 0.0f, 1.0f));
2996 m_host.SetText(text, av3, Util.Clip((float)alpha, 0.0f, 1.0f));
2995 m_host.ParentGroup.HasGroupChanged = true; 2997 m_host.ParentGroup.HasGroupChanged = true;
2996 } 2998 }
2997 2999
@@ -5959,7 +5961,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5959 if (face > -1) 5961 if (face > -1)
5960 { 5962 {
5961 texcolor = tex.CreateFace((uint)face).RGBA; 5963 texcolor = tex.CreateFace((uint)face).RGBA;
5962 texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); 5964 texcolor.A = Util.Clip((float)alpha, 0.0f, 1.0f);
5963 tex.FaceTextures[face].RGBA = texcolor; 5965 tex.FaceTextures[face].RGBA = texcolor;
5964 part.UpdateTexture(tex); 5966 part.UpdateTexture(tex);
5965 return; 5967 return;
@@ -5967,19 +5969,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5967 else if (face == -1) 5969 else if (face == -1)
5968 { 5970 {
5969 texcolor = tex.DefaultTexture.RGBA; 5971 texcolor = tex.DefaultTexture.RGBA;
5970 texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); 5972 texcolor.A = Util.Clip((float)alpha, 0.0f, 1.0f);
5971 tex.DefaultTexture.RGBA = texcolor; 5973 tex.DefaultTexture.RGBA = texcolor;
5972 for (uint i = 0; i < 32; i++) 5974 for (uint i = 0; i < 32; i++)
5973 { 5975 {
5974 if (tex.FaceTextures[i] != null) 5976 if (tex.FaceTextures[i] != null)
5975 { 5977 {
5976 texcolor = tex.FaceTextures[i].RGBA; 5978 texcolor = tex.FaceTextures[i].RGBA;
5977 texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); 5979 texcolor.A = Util.Clip((float)alpha, 0.0f, 1.0f);
5978 tex.FaceTextures[i].RGBA = texcolor; 5980 tex.FaceTextures[i].RGBA = texcolor;
5979 } 5981 }
5980 } 5982 }
5981 texcolor = tex.DefaultTexture.RGBA; 5983 texcolor = tex.DefaultTexture.RGBA;
5982 texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); 5984 texcolor.A = Util.Clip((float)alpha, 0.0f, 1.0f);
5983 tex.DefaultTexture.RGBA = texcolor; 5985 tex.DefaultTexture.RGBA = texcolor;
5984 part.UpdateTexture(tex); 5986 part.UpdateTexture(tex);
5985 return; 5987 return;
@@ -5998,26 +6000,26 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5998 if (face > -1) 6000 if (face > -1)
5999 { 6001 {
6000 texcolor = tex.CreateFace((uint)face).RGBA; 6002 texcolor = tex.CreateFace((uint)face).RGBA;
6001 texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); 6003 texcolor.A = Util.Clip((float)alpha, 0.0f, 1.0f);
6002 tex.FaceTextures[face].RGBA = texcolor; 6004 tex.FaceTextures[face].RGBA = texcolor;
6003 part.UpdateTexture(tex); 6005 part.UpdateTexture(tex);
6004 } 6006 }
6005 else if (face == -1) 6007 else if (face == -1)
6006 { 6008 {
6007 texcolor = tex.DefaultTexture.RGBA; 6009 texcolor = tex.DefaultTexture.RGBA;
6008 texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); 6010 texcolor.A = Util.Clip((float)alpha, 0.0f, 1.0f);
6009 tex.DefaultTexture.RGBA = texcolor; 6011 tex.DefaultTexture.RGBA = texcolor;
6010 for (uint i = 0; i < 32; i++) 6012 for (uint i = 0; i < 32; i++)
6011 { 6013 {
6012 if (tex.FaceTextures[i] != null) 6014 if (tex.FaceTextures[i] != null)
6013 { 6015 {
6014 texcolor = tex.FaceTextures[i].RGBA; 6016 texcolor = tex.FaceTextures[i].RGBA;
6015 texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); 6017 texcolor.A = Util.Clip((float)alpha, 0.0f, 1.0f);
6016 tex.FaceTextures[i].RGBA = texcolor; 6018 tex.FaceTextures[i].RGBA = texcolor;
6017 } 6019 }
6018 } 6020 }
6019 texcolor = tex.DefaultTexture.RGBA; 6021 texcolor = tex.DefaultTexture.RGBA;
6020 texcolor.A = (float)Math.Min(Math.Max(alpha, 0.0), 1.0); 6022 texcolor.A = Util.Clip((float)alpha, 0.0f, 1.0f);
6021 tex.DefaultTexture.RGBA = texcolor; 6023 tex.DefaultTexture.RGBA = texcolor;
6022 part.UpdateTexture(tex); 6024 part.UpdateTexture(tex);
6023 } 6025 }