public void draw(IRenderToADrawingSurface surface)
        {
            if (!constraint())
            {
                return;
            }

            original.draw(surface);
        }
 public void draw(IRenderToADrawingSurface surface)
 {
     original.draw(surface);
 }
 public void draw(IRenderToADrawingSurface surface)
 {
     throw new NotImplementedException();
 }
 public void draw(IRenderToADrawingSurface surface)
 {
     //complex image prep
 }
 public void draw(IRenderToADrawingSurface surface)
 {
     timer.start();
     original.draw(surface);
     var span = timer.stop();
 }