From 953581698d2fade30ed76cdae3f8c3a0031b35fb Mon Sep 17 00:00:00 2001 From: dr scofield (aka dirk husemann) Date: Mon, 31 Aug 2009 09:28:56 +0200 Subject: - making font name used by VectorRenderModule configurable: can be set via [VectorRender] font_name = "Comic Sans MS" in OpenSim.ini - adding osSetFontName OSSL function --- .../Scripting/VectorRender/VectorRenderModule.cs | 15 ++++++++++++--- .../ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | 9 +++++++++ .../Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs | 1 + .../Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs | 5 +++++ bin/OpenSim.ini.example | 4 ++++ 5 files changed, 31 insertions(+), 3 deletions(-) diff --git a/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs b/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs index e83b1a8..bf275fa 100644 --- a/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs +++ b/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs @@ -51,6 +51,7 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender private Scene m_scene; private IDynamicTextureManager m_textureManager; private Graphics m_graph; + private string m_fontName = "Arial"; public VectorRenderModule() { @@ -123,6 +124,12 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender Bitmap bitmap = new Bitmap(1024, 1024, PixelFormat.Format32bppArgb); m_graph = Graphics.FromImage(bitmap); } + + IConfig cfg = config.Configs["VectorRender"]; + if (null != cfg) + { + m_fontName = cfg.GetString("font_name", m_fontName); + } } public void PostInitialise() @@ -397,7 +404,7 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender Point startPoint = new Point(0, 0); Point endPoint = new Point(0, 0); Pen drawPen = new Pen(Color.Black, 7); - string fontName = "Arial"; + string fontName = m_fontName; float fontSize = 14; Font myFont = new Font(fontName, fontSize); SolidBrush myBrush = new SolidBrush(Color.Black); @@ -449,8 +456,10 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender } else { - graph.DrawString("URL couldn't be resolved or is", new Font("Arial",6), myBrush, startPoint); - graph.DrawString("not an image. Please check URL.", new Font("Arial", 6), myBrush, new Point(startPoint.X, 12 + startPoint.Y)); + graph.DrawString("URL couldn't be resolved or is", new Font(m_fontName,6), + myBrush, startPoint); + graph.DrawString("not an image. Please check URL.", new Font(m_fontName, 6), + myBrush, new Point(startPoint.X, 12 + startPoint.Y)); graph.DrawRectangle(drawPen, startPoint.X, startPoint.Y, endPoint.X, endPoint.Y); } startPoint.X += endPoint.X; diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 0de5c9b..bca019b 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs @@ -880,6 +880,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api return drawList; } + public string osSetFontName(string drawList, string fontName) + { + CheckThreatLevel(ThreatLevel.None, "osSetFontName"); + + m_host.AddScriptLPS(1); + drawList += "FontName "+ fontName +"; "; + return drawList; + } + public string osSetPenSize(string drawList, int penSize) { CheckThreatLevel(ThreatLevel.None, "osSetPenSize"); diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs index b129b39..49aa45a 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs @@ -99,6 +99,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces string osDrawFilledRectangle(string drawList, int width, int height); string osDrawPolygon(string drawList, LSL_List x, LSL_List y); string osDrawFilledPolygon(string drawList, LSL_List x, LSL_List y); + string osSetFontName(string drawList, string fontName); string osSetFontSize(string drawList, int fontSize); string osSetPenSize(string drawList, int penSize); string osSetPenColour(string drawList, string colour); diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs index 45492dd..8f52d99 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs @@ -282,6 +282,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase return m_OSSL_Functions.osSetFontSize(drawList, fontSize); } + public string osSetFontName(string drawList, string fontName) + { + return m_OSSL_Functions.osSetFontName(drawList, fontName); + } + public string osSetPenSize(string drawList, int penSize) { return m_OSSL_Functions.osSetPenSize(drawList, penSize); diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index 2303873..4cf5a8d 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example @@ -761,6 +761,10 @@ ; Density of tree population tree_density = 1000.0 +[VectorRender] + + ; the font to use for rendering text (default: Arial) + ; font_name = "Arial" [ScriptEngine.DotNetEngine] Enabled = true -- cgit v1.1