- making font name used by VectorRenderModule configurable: can be set

via

      [VectorRender]
      font_name = "Comic Sans MS"

  in OpenSim.ini

- adding osSetFontName OSSL function
remotes/origin/0.6.7-post-fixes
dr scofield (aka dirk husemann) 2009-08-31 09:28:56 +02:00
parent bbef5c344e
commit 953581698d
5 changed files with 31 additions and 3 deletions

View File

@ -51,6 +51,7 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
private Scene m_scene; private Scene m_scene;
private IDynamicTextureManager m_textureManager; private IDynamicTextureManager m_textureManager;
private Graphics m_graph; private Graphics m_graph;
private string m_fontName = "Arial";
public VectorRenderModule() public VectorRenderModule()
{ {
@ -123,6 +124,12 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
Bitmap bitmap = new Bitmap(1024, 1024, PixelFormat.Format32bppArgb); Bitmap bitmap = new Bitmap(1024, 1024, PixelFormat.Format32bppArgb);
m_graph = Graphics.FromImage(bitmap); m_graph = Graphics.FromImage(bitmap);
} }
IConfig cfg = config.Configs["VectorRender"];
if (null != cfg)
{
m_fontName = cfg.GetString("font_name", m_fontName);
}
} }
public void PostInitialise() public void PostInitialise()
@ -397,7 +404,7 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
Point startPoint = new Point(0, 0); Point startPoint = new Point(0, 0);
Point endPoint = new Point(0, 0); Point endPoint = new Point(0, 0);
Pen drawPen = new Pen(Color.Black, 7); Pen drawPen = new Pen(Color.Black, 7);
string fontName = "Arial"; string fontName = m_fontName;
float fontSize = 14; float fontSize = 14;
Font myFont = new Font(fontName, fontSize); Font myFont = new Font(fontName, fontSize);
SolidBrush myBrush = new SolidBrush(Color.Black); SolidBrush myBrush = new SolidBrush(Color.Black);
@ -449,8 +456,10 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
} }
else else
{ {
graph.DrawString("URL couldn't be resolved or is", new Font("Arial",6), myBrush, startPoint); graph.DrawString("URL couldn't be resolved or is", new Font(m_fontName,6),
graph.DrawString("not an image. Please check URL.", new Font("Arial", 6), myBrush, new Point(startPoint.X, 12 + startPoint.Y)); 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); graph.DrawRectangle(drawPen, startPoint.X, startPoint.Y, endPoint.X, endPoint.Y);
} }
startPoint.X += endPoint.X; startPoint.X += endPoint.X;

View File

@ -880,6 +880,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return drawList; 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) public string osSetPenSize(string drawList, int penSize)
{ {
CheckThreatLevel(ThreatLevel.None, "osSetPenSize"); CheckThreatLevel(ThreatLevel.None, "osSetPenSize");

View File

@ -99,6 +99,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
string osDrawFilledRectangle(string drawList, int width, int height); string osDrawFilledRectangle(string drawList, int width, int height);
string osDrawPolygon(string drawList, LSL_List x, LSL_List y); string osDrawPolygon(string drawList, LSL_List x, LSL_List y);
string osDrawFilledPolygon(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 osSetFontSize(string drawList, int fontSize);
string osSetPenSize(string drawList, int penSize); string osSetPenSize(string drawList, int penSize);
string osSetPenColour(string drawList, string colour); string osSetPenColour(string drawList, string colour);

View File

@ -282,6 +282,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
return m_OSSL_Functions.osSetFontSize(drawList, fontSize); 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) public string osSetPenSize(string drawList, int penSize)
{ {
return m_OSSL_Functions.osSetPenSize(drawList, penSize); return m_OSSL_Functions.osSetPenSize(drawList, penSize);

View File

@ -761,6 +761,10 @@
; Density of tree population ; Density of tree population
tree_density = 1000.0 tree_density = 1000.0
[VectorRender]
; the font to use for rendering text (default: Arial)
; font_name = "Arial"
[ScriptEngine.DotNetEngine] [ScriptEngine.DotNetEngine]
Enabled = true Enabled = true