Merge Master

avinationmerge
Melanie 2010-09-26 17:56:31 +01:00
parent 0080f28f1d
commit 6f689f591a
10 changed files with 50 additions and 20 deletions

View File

@ -81,7 +81,7 @@ namespace OpenSim.Region.Physics.Manager
if (_MeshPlugins.ContainsKey(meshEngineName))
{
m_log.Info("[PHYSICS]: creating meshing engine " + meshEngineName);
meshEngine = _MeshPlugins[meshEngineName].GetMesher();
meshEngine = _MeshPlugins[meshEngineName].GetMesher(config);
}
else
{
@ -234,6 +234,6 @@ namespace OpenSim.Region.Physics.Manager
public interface IMeshingPlugin
{
string GetName();
IMesher GetMesher();
IMesher GetMesher(IConfigSource config);
}
}

View File

@ -28,6 +28,7 @@
using System;
using OpenSim.Framework;
using OpenMetaverse;
using Nini.Config;
/*
* This is the zero mesher.
@ -53,7 +54,7 @@ namespace OpenSim.Region.Physics.Manager
return "ZeroMesher";
}
public IMesher GetMesher()
public IMesher GetMesher(IConfigSource config)
{
return new ZeroMesher();
}

View File

@ -35,6 +35,7 @@ using System.Drawing;
using System.Drawing.Imaging;
using PrimMesher;
using log4net;
using Nini.Config;
using System.Reflection;
using System.IO;
@ -51,9 +52,9 @@ namespace OpenSim.Region.Physics.Meshing
return "Meshmerizer";
}
public IMesher GetMesher()
public IMesher GetMesher(IConfigSource config)
{
return new Meshmerizer();
return new Meshmerizer(config);
}
}
@ -70,14 +71,18 @@ namespace OpenSim.Region.Physics.Meshing
#endif
private bool cacheSculptMaps = true;
private string decodedScultMapPath = "j2kDecodeCache";
private string decodedScultMapPath = null;
private float minSizeForComplexMesh = 0.2f; // prims with all dimensions smaller than this will have a bounding box mesh
private Dictionary<ulong, Mesh> m_uniqueMeshes = new Dictionary<ulong, Mesh>();
public Meshmerizer()
public Meshmerizer(IConfigSource config)
{
IConfig start_config = config.Configs["Startup"];
decodedScultMapPath = start_config.GetString("DecodedSculpMapPath","j2kDecodeCache");
try
{
if (!Directory.Exists(decodedScultMapPath))

View File

@ -48,6 +48,10 @@ namespace OpenSim.Region.Physics.OdePlugin
[SetUp]
public void Initialize()
{
IConfigSource TopConfig = new IniConfigSource();
IConfig config = TopConfig.AddConfig("Startup");
config.Set("DecodedSculpMapPath","j2kDecodeCache");
// Loading ODEPlugin
cbt = new OdePlugin();
// Loading Zero Mesher
@ -55,7 +59,7 @@ namespace OpenSim.Region.Physics.OdePlugin
// Getting Physics Scene
ps = cbt.GetScene("test");
// Initializing Physics Scene.
ps.Initialise(imp.GetMesher(),null);
ps.Initialise(imp.GetMesher(TopConfig),null);
float[] _heightmap = new float[(int)Constants.RegionSize * (int)Constants.RegionSize];
for (int i = 0; i < ((int)Constants.RegionSize * (int)Constants.RegionSize); i++)
{

View File

@ -82,6 +82,7 @@ namespace OpenSim.Region.ScriptEngine.Interfaces
IConfig Config { get; }
IConfigSource ConfigSource { get; }
string ScriptEngineName { get; }
string ScriptEnginePath { get; }
IScriptApi GetApi(UUID itemID, string name);
}
}

View File

@ -32,7 +32,7 @@ using System.Reflection;
namespace OpenSim.Region.ScriptEngine.Shared
{
[Serializable]
public class AssemblyResolver
public class AssemblyResolver : MarshalByRefObject
{
public static Assembly OnAssemblyResolve(object sender,
ResolveEventArgs args)
@ -42,9 +42,10 @@ namespace OpenSim.Region.ScriptEngine.Shared
AppDomain myDomain = (AppDomain)sender;
string dirName = myDomain.FriendlyName;
string ScriptEnginesPath = myDomain.SetupInformation.PrivateBinPath;
string[] pathList = new string[] {"bin", "ScriptEngines",
Path.Combine("ScriptEngines", dirName)};
string[] pathList = new string[] {"bin", ScriptEnginesPath,
Path.Combine(ScriptEnginesPath, dirName)};
string assemblyName = args.Name;
if (assemblyName.IndexOf(",") != -1)

View File

@ -72,7 +72,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
private Dictionary<string, enumCompileType> LanguageMapping = new Dictionary<string, enumCompileType>(StringComparer.CurrentCultureIgnoreCase);
private string FilePrefix;
private string ScriptEnginesPath = "ScriptEngines";
private string ScriptEnginesPath = null;
// mapping between LSL and C# line/column numbers
private ICodeConverter LSL_Converter;
@ -95,7 +95,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
public Compiler(IScriptEngine scriptEngine)
{
m_scriptEngine = scriptEngine;
m_scriptEngine = scriptEngine;;
ScriptEnginesPath = scriptEngine.ScriptEnginePath;
ReadConfig();
}

View File

@ -89,6 +89,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
private IXmlRpcRouter m_XmlRpcRouter;
private int m_EventLimit;
private bool m_KillTimedOutScripts;
private string m_ScriptEnginesPath = null;
private static List<XEngine> m_ScriptEngines =
new List<XEngine>();
@ -224,6 +225,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine
get { return m_ScriptConfig; }
}
public string ScriptEnginePath
{
get { return m_ScriptEnginesPath; }
}
public IConfigSource ConfigSource
{
get { return m_ConfigSource; }
@ -281,6 +287,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
m_EventLimit = m_ScriptConfig.GetInt("EventLimit", 30);
m_KillTimedOutScripts = m_ScriptConfig.GetBoolean("KillTimedOutScripts", false);
m_SaveTime = m_ScriptConfig.GetInt("SaveInterval", 120) * 1000;
m_ScriptEnginesPath = m_ScriptConfig.GetString("ScriptEnginesPath", "ScriptEngines");
m_Prio = ThreadPriority.BelowNormal;
switch (priority)
@ -1040,7 +1047,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
startInfo.IdleTimeout = idleTimeout*1000; // convert to seconds as stated in .ini
startInfo.MaxWorkerThreads = maxThreads;
startInfo.MinWorkerThreads = minThreads;
startInfo.ThreadPriority = threadPriority;
startInfo.ThreadPriority = threadPriority;;
startInfo.StackSize = stackSize;
startInfo.StartSuspended = true;
@ -1186,8 +1193,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine
if (!(sender is System.AppDomain))
return null;
string[] pathList = new string[] {"bin", "ScriptEngines",
Path.Combine("ScriptEngines",
string[] pathList = new string[] {"bin", m_ScriptEnginesPath,
Path.Combine(m_ScriptEnginesPath,
m_Scene.RegionInfo.RegionID.ToString())};
string assemblyName = args.Name;
@ -1564,7 +1571,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
string fn = assemE.GetAttribute("Filename");
string base64 = assemE.InnerText;
string path = Path.Combine("ScriptEngines", World.RegionInfo.RegionID.ToString());
string path = Path.Combine(m_ScriptEnginesPath, World.RegionInfo.RegionID.ToString());
path = Path.Combine(path, fn);
if (!File.Exists(path))
@ -1604,7 +1611,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
}
}
string statepath = Path.Combine("ScriptEngines", World.RegionInfo.RegionID.ToString());
string statepath = Path.Combine(m_ScriptEnginesPath, World.RegionInfo.RegionID.ToString());
statepath = Path.Combine(statepath, itemID.ToString() + ".state");
try
@ -1630,7 +1637,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
{
XmlElement mapE = (XmlElement)mapL[0];
string mappath = Path.Combine("ScriptEngines", World.RegionInfo.RegionID.ToString());
string mappath = Path.Combine(m_ScriptEnginesPath, World.RegionInfo.RegionID.ToString());
mappath = Path.Combine(mappath, mapE.GetAttribute("Filename"));
try

View File

@ -546,6 +546,10 @@
;; prims
; DisableUndergroundMovement = true
;; Path to script engine assemblies
;; Default is ./bin/ScriptEngines
; ScriptEnginesPath = "ScriptEngines"
[MRM]
;; Enables the Mini Region Modules Script Engine.
;; default is false

View File

@ -136,6 +136,10 @@
meshing = Meshmerizer
;meshing = ZeroMesher
;; Path to decoded sculpty maps
;; Defaults to "j2kDecodeCache
;DecodedSculpMapPath = "j2kDecodeCache"
; Choose one of the physics engines below
; OpenDynamicsEngine is by some distance the most developed physics engine
; basicphysics effectively does not model physics at all, making all objects phantom
@ -1000,6 +1004,8 @@
; prims
; DisableUndergroundMovement = true
;; Path to script assemblies
; ScriptEnginesPath = "ScriptEngines"
[OpenGridProtocol]
;These are the settings for the Open Grid Protocol.. the Agent Domain, Region Domain, you know..