diff options
-rw-r--r-- | OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs | 68 |
1 files changed, 41 insertions, 27 deletions
diff --git a/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs b/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs index b4e3d77..efa99e9 100644 --- a/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs +++ b/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs | |||
@@ -40,12 +40,14 @@ using OpenSim.Region.Framework.Interfaces; | |||
40 | using OpenSim.Region.Framework.Scenes; | 40 | using OpenSim.Region.Framework.Scenes; |
41 | using log4net; | 41 | using log4net; |
42 | using System.Reflection; | 42 | using System.Reflection; |
43 | using Mono.Addins; | ||
43 | 44 | ||
44 | //using Cairo; | 45 | //using Cairo; |
45 | 46 | ||
46 | namespace OpenSim.Region.CoreModules.Scripting.VectorRender | 47 | namespace OpenSim.Region.CoreModules.Scripting.VectorRender |
47 | { | 48 | { |
48 | public class VectorRenderModule : IRegionModule, IDynamicTextureRender | 49 | [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "VectorRenderModule")] |
50 | public class VectorRenderModule : ISharedRegionModule, IDynamicTextureRender | ||
49 | { | 51 | { |
50 | // These fields exist for testing purposes, please do not remove. | 52 | // These fields exist for testing purposes, please do not remove. |
51 | // private static bool s_flipper; | 53 | // private static bool s_flipper; |
@@ -56,6 +58,22 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender | |||
56 | 58 | ||
57 | private Scene m_scene; | 59 | private Scene m_scene; |
58 | private IDynamicTextureManager m_textureManager; | 60 | private IDynamicTextureManager m_textureManager; |
61 | private IDynamicTextureManager TextureManager | ||
62 | { | ||
63 | get | ||
64 | { | ||
65 | if (m_textureManager == null && m_scene != null) | ||
66 | { | ||
67 | m_textureManager = m_scene.RequestModuleInterface<IDynamicTextureManager>(); | ||
68 | if (m_textureManager != null) | ||
69 | { | ||
70 | m_textureManager.RegisterRender(GetContentType(), this); | ||
71 | } | ||
72 | } | ||
73 | return m_textureManager; | ||
74 | } | ||
75 | } | ||
76 | |||
59 | private Graphics m_graph; | 77 | private Graphics m_graph; |
60 | private string m_fontName = "Arial"; | 78 | private string m_fontName = "Arial"; |
61 | 79 | ||
@@ -104,7 +122,7 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender | |||
104 | public bool AsyncConvertData(UUID id, string bodyData, string extraParams) | 122 | public bool AsyncConvertData(UUID id, string bodyData, string extraParams) |
105 | { | 123 | { |
106 | // XXX: This isn't actually being done asynchronously! | 124 | // XXX: This isn't actually being done asynchronously! |
107 | m_textureManager.ReturnData(id, ConvertData(bodyData, extraParams)); | 125 | TextureManager.ReturnData(id, ConvertData(bodyData, extraParams)); |
108 | 126 | ||
109 | return true; | 127 | return true; |
110 | } | 128 | } |
@@ -131,45 +149,41 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender | |||
131 | 149 | ||
132 | #endregion | 150 | #endregion |
133 | 151 | ||
134 | #region IRegionModule Members | 152 | #region ISharedRegionModule Members |
135 | 153 | ||
136 | public void Initialise(Scene scene, IConfigSource config) | 154 | public void Initialise(IConfigSource config) |
137 | { | 155 | { |
138 | if (m_scene == null) | ||
139 | { | ||
140 | m_scene = scene; | ||
141 | } | ||
142 | |||
143 | if (m_graph == null) | ||
144 | { | ||
145 | // We won't dispose of these explicitly since this module is only removed when the entire simulator | ||
146 | // is shut down. | ||
147 | Bitmap bitmap = new Bitmap(1024, 1024, PixelFormat.Format32bppArgb); | ||
148 | m_graph = Graphics.FromImage(bitmap); | ||
149 | } | ||
150 | |||
151 | IConfig cfg = config.Configs["VectorRender"]; | 156 | IConfig cfg = config.Configs["VectorRender"]; |
152 | if (null != cfg) | 157 | if (null != cfg) |
153 | { | 158 | { |
154 | m_fontName = cfg.GetString("font_name", m_fontName); | 159 | m_fontName = cfg.GetString("font_name", m_fontName); |
155 | } | 160 | } |
156 | m_log.DebugFormat("[VECTORRENDERMODULE]: using font \"{0}\" for text rendering.", m_fontName); | 161 | m_log.DebugFormat("[VECTORRENDERMODULE]: using font \"{0}\" for text rendering.", m_fontName); |
162 | |||
163 | // We won't dispose of these explicitly since this module is only removed when the entire simulator | ||
164 | // is shut down. | ||
165 | Bitmap bitmap = new Bitmap(1024, 1024, PixelFormat.Format32bppArgb); | ||
166 | m_graph = Graphics.FromImage(bitmap); | ||
157 | } | 167 | } |
158 | 168 | ||
159 | public void PostInitialise() | 169 | public void PostInitialise() |
160 | { | 170 | { |
161 | m_textureManager = m_scene.RequestModuleInterface<IDynamicTextureManager>(); | 171 | } |
162 | if (m_textureManager != null) | 172 | |
173 | public void AddRegion(Scene scene) | ||
174 | { | ||
175 | if (m_scene == null) | ||
163 | { | 176 | { |
164 | m_textureManager.RegisterRender(GetContentType(), this); | 177 | m_scene = scene; |
165 | } | 178 | } |
179 | } | ||
166 | 180 | ||
167 | // This code exists for testing purposes, please do not remove. | 181 | public void RegionLoaded(Scene scene) |
168 | // s_asset1Data = m_scene.AssetService.Get("00000000-0000-1111-9999-000000000001").Data; | 182 | { |
169 | // s_asset1Data = m_scene.AssetService.Get("9f4acf0d-1841-4e15-bdb8-3a12efc9dd8f").Data; | 183 | } |
170 | 184 | ||
171 | // Terrain dirt - smallest bin/assets file (6004 bytes) | 185 | public void RemoveRegion(Scene scene) |
172 | // s_asset2Data = m_scene.AssetService.Get("b8d3965a-ad78-bf43-699b-bff8eca6c975").Data; | 186 | { |
173 | } | 187 | } |
174 | 188 | ||
175 | public void Close() | 189 | public void Close() |
@@ -181,9 +195,9 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender | |||
181 | get { return "VectorRenderModule"; } | 195 | get { return "VectorRenderModule"; } |
182 | } | 196 | } |
183 | 197 | ||
184 | public bool IsSharedModule | 198 | public Type ReplaceableInterface |
185 | { | 199 | { |
186 | get { return true; } | 200 | get { return null; } |
187 | } | 201 | } |
188 | 202 | ||
189 | #endregion | 203 | #endregion |