[longomatch] Do not warn for static surfaces



commit f4b8e78d6b27b348adde507cb52676fcde1641be
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date:   Fri Oct 10 16:58:51 2014 +0200

    Do not warn for static surfaces

 .../Interfaces/Drawing/IDrawingToolkit.cs          |    4 ++--
 LongoMatch.Drawing.Cairo/CairoBackend.cs           |    8 ++++----
 LongoMatch.Drawing.Cairo/Surface.cs                |   18 ++++++++++--------
 LongoMatch.Drawing/CanvasObjects/PlayerObject.cs   |    2 +-
 4 files changed, 17 insertions(+), 15 deletions(-)
---
diff --git a/LongoMatch.Core/Interfaces/Drawing/IDrawingToolkit.cs 
b/LongoMatch.Core/Interfaces/Drawing/IDrawingToolkit.cs
index 1eb3bbe..a145c2e 100644
--- a/LongoMatch.Core/Interfaces/Drawing/IDrawingToolkit.cs
+++ b/LongoMatch.Core/Interfaces/Drawing/IDrawingToolkit.cs
@@ -48,8 +48,8 @@ namespace LongoMatch.Core.Interfaces.Drawing
                int FontSize {set;}
                LineStyle LineStyle {set;}
                
-               ISurface CreateSurface (string filename);
-               ISurface CreateSurface (int width, int height, Image image=null);
+               ISurface CreateSurface (string filename, bool warnOnDispose=true);
+               ISurface CreateSurface (int width, int height, Image image=null, bool wanrnOnDispose=true);
                void DrawSurface (ISurface surface, Point p = null);
                void Begin();
                void End();
diff --git a/LongoMatch.Drawing.Cairo/CairoBackend.cs b/LongoMatch.Drawing.Cairo/CairoBackend.cs
index 1ad508a..dba1c47 100644
--- a/LongoMatch.Drawing.Cairo/CairoBackend.cs
+++ b/LongoMatch.Drawing.Cairo/CairoBackend.cs
@@ -145,15 +145,15 @@ namespace LongoMatch.Drawing.Cairo
                        set;
                }
 
-               public ISurface CreateSurface (string filename)
+               public ISurface CreateSurface (string filename, bool warnOnDispose = true)
                {
                        Image img = Image.LoadFromFile (filename);
-                       return CreateSurface (img.Width, img.Height, img);
+                       return CreateSurface (img.Width, img.Height, img, warnOnDispose);
                }
 
-               public ISurface CreateSurface (int width, int height, Image image=null)
+               public ISurface CreateSurface (int width, int height, Image image=null, bool warnOnDispose = 
true)
                {
-                       return new Surface (width, height, image);
+                       return new Surface (width, height, image, warnOnDispose);
                }
 
                public void Clear (Color color)
diff --git a/LongoMatch.Drawing.Cairo/Surface.cs b/LongoMatch.Drawing.Cairo/Surface.cs
index 15d978f..47bd926 100644
--- a/LongoMatch.Drawing.Cairo/Surface.cs
+++ b/LongoMatch.Drawing.Cairo/Surface.cs
@@ -25,10 +25,11 @@ namespace LongoMatch.Drawing.Cairo
        public class Surface: ISurface
        {
                ImageSurface surface;
-               bool disposed;
+               bool disposed, warnOnDispose;
 
-               public Surface (int width, int height, Image image)
+               public Surface (int width, int height, Image image, bool warnOnDispose=true)
                {
+                       this.warnOnDispose = warnOnDispose;
                        surface = new ImageSurface (Format.ARGB32, width, height);
                        if (image != null) {
                                using (Context context = new Context(surface)) {
@@ -40,15 +41,16 @@ namespace LongoMatch.Drawing.Cairo
 
                ~Surface ()
                {
-                       if (! disposed) {
+                       if (! disposed && warnOnDispose) {
                                Log.Error (String.Format ("Surface {0} was not disposed correctly", this));
                                Dispose (true);
                        }
                }
 
-               public void Dispose(){
-                       Dispose(true);
-                       GC.SuppressFinalize(this);
+               public void Dispose ()
+               {
+                       Dispose (true);
+                       GC.SuppressFinalize (this);
                }
 
                protected virtual void Dispose (bool disposing)
@@ -84,13 +86,13 @@ namespace LongoMatch.Drawing.Cairo
                                return surface.Width;
                        }
                }
-               
+
                public int Height {
                        get {
                                return surface.Height;
                        }
                }
-               
+
                public Image Copy ()
                {
                        string tempFile = System.IO.Path.GetTempFileName ();
diff --git a/LongoMatch.Drawing/CanvasObjects/PlayerObject.cs 
b/LongoMatch.Drawing/CanvasObjects/PlayerObject.cs
index 52c1f2d..0e09b33 100644
--- a/LongoMatch.Drawing/CanvasObjects/PlayerObject.cs
+++ b/LongoMatch.Drawing/CanvasObjects/PlayerObject.cs
@@ -231,7 +231,7 @@ namespace LongoMatch.Drawing.CanvasObjects
 
                ISurface CreateSurface (string name)
                {
-                       return Config.DrawingToolkit.CreateSurface (Path.Combine (Config.ImagesDir, name));
+                       return Config.DrawingToolkit.CreateSurface (Path.Combine (Config.ImagesDir, name), 
false);
                }
 
        }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]