diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Physics/Meshing/Meshmerizer.cs | 31 |
1 files changed, 11 insertions, 20 deletions
diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs index 3c4f737..f629c4d 100644 --- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs +++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs | |||
@@ -74,8 +74,6 @@ namespace OpenSim.Region.Physics.Meshing | |||
74 | #endif | 74 | #endif |
75 | 75 | ||
76 | private bool cacheSculptMaps = true; | 76 | private bool cacheSculptMaps = true; |
77 | private bool cacheSculptAlphaMaps = true; | ||
78 | |||
79 | private string decodedSculptMapPath = null; | 77 | private string decodedSculptMapPath = null; |
80 | private bool useMeshiesPhysicsMesh = false; | 78 | private bool useMeshiesPhysicsMesh = false; |
81 | 79 | ||
@@ -89,16 +87,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
89 | IConfig mesh_config = config.Configs["Mesh"]; | 87 | IConfig mesh_config = config.Configs["Mesh"]; |
90 | 88 | ||
91 | decodedSculptMapPath = start_config.GetString("DecodedSculptMapPath","j2kDecodeCache"); | 89 | decodedSculptMapPath = start_config.GetString("DecodedSculptMapPath","j2kDecodeCache"); |
92 | |||
93 | cacheSculptMaps = start_config.GetBoolean("CacheSculptMaps", cacheSculptMaps); | 90 | cacheSculptMaps = start_config.GetBoolean("CacheSculptMaps", cacheSculptMaps); |
94 | |||
95 | if (Environment.OSVersion.Platform == PlatformID.Unix) | ||
96 | { | ||
97 | cacheSculptAlphaMaps = false; | ||
98 | } | ||
99 | else | ||
100 | cacheSculptAlphaMaps = cacheSculptMaps; | ||
101 | |||
102 | if(mesh_config != null) | 91 | if(mesh_config != null) |
103 | useMeshiesPhysicsMesh = mesh_config.GetBoolean("UseMeshiesPhysicsMesh", useMeshiesPhysicsMesh); | 92 | useMeshiesPhysicsMesh = mesh_config.GetBoolean("UseMeshiesPhysicsMesh", useMeshiesPhysicsMesh); |
104 | 93 | ||
@@ -279,18 +268,15 @@ namespace OpenSim.Region.Physics.Meshing | |||
279 | { | 268 | { |
280 | if (!GenerateCoordsAndFacesFromPrimSculptData(primName, primShape, size, lod, out coords, out faces)) | 269 | if (!GenerateCoordsAndFacesFromPrimSculptData(primName, primShape, size, lod, out coords, out faces)) |
281 | return null; | 270 | return null; |
282 | // Remove the reference to any JPEG2000 sculpt data so it can be GCed | ||
283 | // don't loose it | ||
284 | // primShape.SculptData = Utils.EmptyBytes; | ||
285 | } | 271 | } |
286 | // primShape.SculptDataLoaded = true; | ||
287 | } | 272 | } |
288 | else | 273 | else |
289 | { | 274 | { |
290 | if (!GenerateCoordsAndFacesFromPrimShapeData(primName, primShape, size, lod, out coords, out faces)) | 275 | if (!GenerateCoordsAndFacesFromPrimShapeData(primName, primShape, size, lod, out coords, out faces)) |
291 | return null; | 276 | return null; |
292 | } | 277 | } |
293 | // keep compatible | 278 | |
279 | // Remove the reference to any JPEG2000 sculpt data so it can be GCed | ||
294 | primShape.SculptData = Utils.EmptyBytes; | 280 | primShape.SculptData = Utils.EmptyBytes; |
295 | 281 | ||
296 | int numCoords = coords.Count; | 282 | int numCoords = coords.Count; |
@@ -335,7 +321,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
335 | 321 | ||
336 | if (primShape.SculptData.Length <= 0) | 322 | if (primShape.SculptData.Length <= 0) |
337 | { | 323 | { |
338 | m_log.InfoFormat("[MESH]: asset data for {0} is zero length", primName); | 324 | // m_log.ErrorFormat("[MESH]: asset data for {0} is zero length", primName); |
339 | return false; | 325 | return false; |
340 | } | 326 | } |
341 | 327 | ||
@@ -496,8 +482,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
496 | 482 | ||
497 | //idata = CSJ2K.J2kImage.FromBytes(primShape.SculptData); | 483 | //idata = CSJ2K.J2kImage.FromBytes(primShape.SculptData); |
498 | 484 | ||
499 | if (cacheSculptMaps && (cacheSculptAlphaMaps || (((ImageFlags)(idata.Flags) & ImageFlags.HasAlpha) ==0))) | 485 | if (cacheSculptMaps) |
500 | // don't cache images with alpha channel in linux since mono can't load them correctly) | ||
501 | { | 486 | { |
502 | try { idata.Save(decodedSculptFileName, ImageFormat.MemoryBmp); } | 487 | try { idata.Save(decodedSculptFileName, ImageFormat.MemoryBmp); } |
503 | catch (Exception e) { m_log.Error("[SCULPT]: unable to cache sculpt map " + decodedSculptFileName + " " + e.Message); } | 488 | catch (Exception e) { m_log.Error("[SCULPT]: unable to cache sculpt map " + decodedSculptFileName + " " + e.Message); } |
@@ -717,7 +702,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
717 | return CreateMesh(primName, primShape, size, lod, false); | 702 | return CreateMesh(primName, primShape, size, lod, false); |
718 | } | 703 | } |
719 | 704 | ||
720 | public IMesh CreateMesh(String primName, PrimitiveBaseShape primShape, Vector3 size, float lod, bool isPhysical, bool convex) | 705 | public IMesh CreateMesh(String primName, PrimitiveBaseShape primShape, Vector3 size, float lod, bool isPhysical, bool convex, bool forOde) |
721 | { | 706 | { |
722 | return CreateMesh(primName, primShape, size, lod, false); | 707 | return CreateMesh(primName, primShape, size, lod, false); |
723 | } | 708 | } |
@@ -763,7 +748,13 @@ namespace OpenSim.Region.Physics.Meshing | |||
763 | 748 | ||
764 | return mesh; | 749 | return mesh; |
765 | } | 750 | } |
751 | public IMesh GetMesh(String primName, PrimitiveBaseShape primShape, Vector3 size, float lod, bool isPhysical, bool convex) | ||
752 | { | ||
753 | return null; | ||
754 | } | ||
755 | |||
766 | public void ReleaseMesh(IMesh imesh) { } | 756 | public void ReleaseMesh(IMesh imesh) { } |
767 | public void ExpireReleaseMeshs() { } | 757 | public void ExpireReleaseMeshs() { } |
758 | public void ExpireFileCache() { } | ||
768 | } | 759 | } |
769 | } | 760 | } |