// Constructors, Finalizer and Dispose
        //======================================================================

        public DeepZoomImageTile(ImageProviderBase image, DeepZoomImageRequest imageRequest,
            int tilePixelDimension, int overlap, string format)
        {
            m_image = image;
            m_imageRequest = imageRequest;
            m_level = imageRequest.Level;
            m_tilePixelDimension = tilePixelDimension;
        }
 public override void DrawSubImage(ImageProviderBase image, int x, int y, int width, int height)
 {
     Rect itemRect = new Rect(x, y, width, height);
     IDisposable disposeAfterRender = image.Draw(m_context, itemRect, m_level);
     if (null != disposeAfterRender)
     {
         //add the disposable to our list.
         m_disposables.Add(disposeAfterRender);
     }
 }
 public abstract void DrawSubImage(ImageProviderBase image, int x, int y, int width, int height);