aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs30
1 files changed, 23 insertions, 7 deletions
diff --git a/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs b/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs
index 7cee0cf..2ef89b7 100644
--- a/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs
+++ b/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs
@@ -229,6 +229,10 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
229 alpha = temp; 229 alpha = temp;
230 } 230 }
231 } 231 }
232 // Allow a bitmap w/o the alpha component to be created
233 else if (value.ToLower() == "false") {
234 alpha = 256;
235 }
232 break; 236 break;
233 case "bgcolour": 237 case "bgcolour":
234 int hex = 0; 238 int hex = 0;
@@ -271,24 +275,36 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
271 break; 275 break;
272 } 276 }
273 } 277 }
274 278
275 Bitmap bitmap = new Bitmap(width, height, PixelFormat.Format32bppArgb); 279 Bitmap bitmap;
280
281 if ( alpha == 256 )
282 {
283 bitmap = new Bitmap(width, height, PixelFormat.Format32bppRgb);
284 }
285 else {
286
287 bitmap = new Bitmap(width, height, PixelFormat.Format32bppArgb);
288 }
276 289
277 Graphics graph = Graphics.FromImage(bitmap); 290 Graphics graph = Graphics.FromImage(bitmap);
278 291
279 // this is really just to save people filling the 292 // this is really just to save people filling the
280 // background color in their scripts, only do when fully opaque 293 // background color in their scripts, only do when fully opaque
281 if (alpha == 255) 294 if (alpha >= 255)
282 { 295 {
283 graph.FillRectangle(new SolidBrush(bgColour), 0, 0, width, height); 296 graph.FillRectangle(new SolidBrush(bgColour), 0, 0, width, height);
284 } 297 }
285 298
286 for (int w = 0; w < bitmap.Width; w++) 299 for (int w = 0; w < bitmap.Width; w++)
287 { 300 {
288 for (int h = 0; h < bitmap.Height; h++) 301 if (alpha <= 255)
289 { 302 {
290 bitmap.SetPixel(w, h, Color.FromArgb(alpha, bitmap.GetPixel(w, h))); 303 for (int h = 0; h < bitmap.Height; h++)
291 } 304 {
305 bitmap.SetPixel(w, h, Color.FromArgb(alpha, bitmap.GetPixel(w, h)));
306 }
307 }
292 } 308 }
293 309
294 GDIDraw(data, graph); 310 GDIDraw(data, graph);