aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorTeravus Ovares2008-06-12 11:06:31 +0000
committerTeravus Ovares2008-06-12 11:06:31 +0000
commit049cfe80e4d8e0a030346f7ad9ad280b7afa4718 (patch)
tree604be9fca8a3445aa3377bcfb3ead6d3352f43b4
parent* Added Prim drawing to the mainmap tile generation.. you can see blocks re... (diff)
downloadopensim-SC-049cfe80e4d8e0a030346f7ad9ad280b7afa4718.zip
opensim-SC-049cfe80e4d8e0a030346f7ad9ad280b7afa4718.tar.gz
opensim-SC-049cfe80e4d8e0a030346f7ad9ad280b7afa4718.tar.bz2
opensim-SC-049cfe80e4d8e0a030346f7ad9ad280b7afa4718.tar.xz
* Insulate maptile volume draw routine against TextureEntry oddities.
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs42
1 files changed, 28 insertions, 14 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 798c9ad..526c125 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -1168,24 +1168,38 @@ namespace OpenSim.Region.Environment.Scenes
1168 // Draw if the object is at least 1 meter wide in any direction 1168 // Draw if the object is at least 1 meter wide in any direction
1169 if (part.Scale.X > 1f || part.Scale.Y > 1f || part.Scale.Z > 1f) 1169 if (part.Scale.X > 1f || part.Scale.Y > 1f || part.Scale.Z > 1f)
1170 { 1170 {
1171 LLColor texcolor = part.Shape.Textures.DefaultTexture.RGBA; 1171 // Try to get the RGBA of the default texture entry..
1172 int colorr = 255 - (int)(texcolor.R * 255f); 1172 //
1173 int colorg = 255 - (int)(texcolor.G * 255f); 1173 try
1174 int colorb = 255 - (int)(texcolor.B * 255f);
1175
1176 if (colorr == 255 && colorg == 255 && colorb == 255)
1177 { }
1178 else
1179 { 1174 {
1180 try 1175 LLColor texcolor = part.Shape.Textures.DefaultTexture.RGBA;
1181 { 1176 int colorr = 255 - (int)(texcolor.R * 255f);
1182 // If the color gets goofy somehow, skip it *shakes fist at LLColor 1177 int colorg = 255 - (int)(texcolor.G * 255f);
1183 mapdotspot = Color.FromArgb(colorr, colorg, colorb); 1178 int colorb = 255 - (int)(texcolor.B * 255f);
1184 } 1179
1185 catch (ArgumentException) 1180 if (colorr == 255 && colorg == 255 && colorb == 255)
1181 { }
1182 else
1186 { 1183 {
1184 //Try to set the map spot color
1185 try
1186 {
1187 // If the color gets goofy somehow, skip it *shakes fist at LLColor
1188 mapdotspot = Color.FromArgb(colorr, colorg, colorb);
1189 }
1190 catch (ArgumentException)
1191 {
1192 }
1187 } 1193 }
1188 } 1194 }
1195 catch (IndexOutOfRangeException)
1196 {
1197 // Windows Array
1198 }
1199 catch (ArgumentOutOfRangeException)
1200 {
1201 // Mono Array
1202 }
1189 1203
1190 LLVector3 pos = part.GetWorldPosition(); 1204 LLVector3 pos = part.GetWorldPosition();
1191 1205