private MgdRenderingOptions CreateRenderingOptions(MgViewerRenderingOptions renderOpts)
 {
     if (null == _lastRenderOpts)
     {
         _lastRenderOpts = new MgdRenderingOptions(renderOpts.Format, renderOpts.Behavior, renderOpts.Color);
     }
     else
     {
         var color = _lastRenderOpts.GetSelectionColor();
         if (!(color.Red == renderOpts.Color.Red &&
               color.Green == renderOpts.Color.Green &&
               color.Blue == renderOpts.Color.Blue &&
               color.Alpha == renderOpts.Color.Alpha &&
               _lastRenderOpts.GetBehavior() == renderOpts.Behavior &&
               _lastRenderOpts.GetImageFormat() == renderOpts.Format))
         {
             _lastRenderOpts = new MgdRenderingOptions(renderOpts.Format, renderOpts.Behavior, renderOpts.Color);
         }
     }
     return(_lastRenderOpts);
 }
 public override OSGeo.MapGuide.MgByteReader RenderDynamicOverlay(OSGeo.MapGuide.MgSelectionBase selection, MgViewerRenderingOptions args)
 {
     return(_renderSvc.RenderDynamicOverlay(_implMap, selection as MgdSelection, CreateRenderingOptions(args)));
 }