aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared
diff options
context:
space:
mode:
authorSean Dague2009-02-18 12:56:36 +0000
committerSean Dague2009-02-18 12:56:36 +0000
commit383f8b3ac601baef7b2cb322f53fb36b69367286 (patch)
treef90b2535f102be4f3ba50a41bb2668dc2cb956f2 /OpenSim/Region/ScriptEngine/Shared
parentremove legacy pre-migration code for mysql grid adapter, who knew this (diff)
downloadopensim-SC-383f8b3ac601baef7b2cb322f53fb36b69367286.zip
opensim-SC-383f8b3ac601baef7b2cb322f53fb36b69367286.tar.gz
opensim-SC-383f8b3ac601baef7b2cb322f53fb36b69367286.tar.bz2
opensim-SC-383f8b3ac601baef7b2cb322f53fb36b69367286.tar.xz
From: Christopher Yeoh <yeohc@au1.ibm.com>
The attached patch implements osGetDrawStringSize that looks like: vector osGetDrawStringSize(string contentType, string text, string fontName, int fontSize) in LSL. It is meant to be used in conjunction with the osDraw* functions. It returns accurate information on the size that a given string will be rendered given the specified font and font size. This allows for nicely formatted and positioned text on the generated image.
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs18
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs1
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs6
3 files changed, 25 insertions, 0 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index 564648b..597592d 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -677,6 +677,24 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
677 return drawList; 677 return drawList;
678 } 678 }
679 679
680 public LSL_Vector osGetDrawStringSize(string contentType, string text, string fontName, int fontSize)
681 {
682 CheckThreatLevel(ThreatLevel.VeryLow, "osGetDrawStringSize");
683 m_host.AddScriptLPS(1);
684
685 LSL_Vector vec = new LSL_Vector(0,0,0);
686 IDynamicTextureManager textureManager = World.RequestModuleInterface<IDynamicTextureManager>();
687 if (textureManager != null)
688 {
689 double xSize, ySize;
690 textureManager.GetDrawStringSize(contentType, text, fontName, fontSize,
691 out xSize, out ySize);
692 vec.x = xSize;
693 vec.y = ySize;
694 }
695 return vec;
696 }
697
680 public void osSetStateEvents(int events) 698 public void osSetStateEvents(int events)
681 { 699 {
682 // This function is a hack. There is no reason for it's existence 700 // This function is a hack. There is no reason for it's existence
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
index 72bb60c..1150d76 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
@@ -88,6 +88,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
88 string osSetPenSize(string drawList, int penSize); 88 string osSetPenSize(string drawList, int penSize);
89 string osSetPenColour(string drawList, string colour); 89 string osSetPenColour(string drawList, string colour);
90 string osDrawImage(string drawList, int width, int height, string imageUrl); 90 string osDrawImage(string drawList, int width, int height, string imageUrl);
91 vector osGetDrawStringSize(string contentType, string text, string fontName, int fontSize);
91 void osSetStateEvents(int events); 92 void osSetStateEvents(int events);
92 93
93 double osList2Double(LSL_Types.list src, int index); 94 double osList2Double(LSL_Types.list src, int index);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
index a92f046..6ba8b20 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
@@ -212,6 +212,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
212 { 212 {
213 return m_OSSL_Functions.osDrawImage(drawList, width, height, imageUrl); 213 return m_OSSL_Functions.osDrawImage(drawList, width, height, imageUrl);
214 } 214 }
215
216 public vector osGetDrawStringSize(string contentType, string text, string fontName, int fontSize)
217 {
218 return m_OSSL_Functions.osGetDrawStringSize(contentType, text, fontName, fontSize);
219 }
220
215 public void osSetStateEvents(int events) 221 public void osSetStateEvents(int events)
216 { 222 {
217 m_OSSL_Functions.osSetStateEvents(events); 223 m_OSSL_Functions.osSetStateEvents(events);