| Index: remoting/host/capturer_mac.cc
 | 
| ===================================================================
 | 
| --- remoting/host/capturer_mac.cc	(revision 55264)
 | 
| +++ remoting/host/capturer_mac.cc	(working copy)
 | 
| @@ -71,11 +71,17 @@
 | 
|    CGLSetCurrentContext(cgl_context_);
 | 
|  }
 | 
|  
 | 
| -void CapturerMac::CaptureRects(const RectVector& rects,
 | 
| +void CapturerMac::CalculateInvalidRects() {
 | 
| +  // Since the Mac gets its list of invalid rects via calls to InvalidateRect(),
 | 
| +  // this step only needs to perform post-processing optimizations on the rect
 | 
| +  // list (if needed).
 | 
| +}
 | 
| +
 | 
| +void CapturerMac::CaptureRects(const InvalidRects& rects,
 | 
|                                 CaptureCompletedCallback* callback) {
 | 
|    // TODO(dmaclach): something smarter here in the future.
 | 
|    gfx::Rect dirtyRect;
 | 
| -  for (RectVector::const_iterator i = rects.begin(); i < rects.end(); ++i) {
 | 
| +  for (InvalidRects::const_iterator i = rects.begin(); i != rects.end(); ++i) {
 | 
|      dirtyRect = dirtyRect.Union(*i);
 | 
|    }
 | 
|  
 | 
| @@ -101,32 +107,31 @@
 | 
|                                                    width(),
 | 
|                                                    height(),
 | 
|                                                    pixel_format()));
 | 
| -  data->mutable_dirty_rects().assign(1, dirtyRect);
 | 
| +  data->mutable_dirty_rects().clear();
 | 
| +  data->mutable_dirty_rects().insert(dirtyRect);
 | 
|    FinishCapture(data, callback);
 | 
|  }
 | 
|  
 | 
| -
 | 
|  void CapturerMac::ScreenRefresh(CGRectCount count, const CGRect *rect_array) {
 | 
| -  RectVector rects;
 | 
| +  InvalidRects rects;
 | 
|    for (CGRectCount i = 0; i < count; ++i) {
 | 
|      CGRect rect = rect_array[i];
 | 
|      rect.origin.y = height() - rect.size.height;
 | 
| -    rects.push_back(gfx::Rect(rect));
 | 
| +    rects.insert(gfx::Rect(rect));
 | 
|    }
 | 
|    InvalidateRects(rects);
 | 
| -
 | 
|  }
 | 
|  
 | 
|  void CapturerMac::ScreenUpdateMove(CGScreenUpdateMoveDelta delta,
 | 
|                                     size_t count,
 | 
|                                     const CGRect *rect_array) {
 | 
| -  RectVector rects;
 | 
| +  InvalidRects rects;
 | 
|    for (CGRectCount i = 0; i < count; ++i) {
 | 
|      CGRect rect = rect_array[i];
 | 
|      rect.origin.y = height() - rect.size.height;
 | 
| -    rects.push_back(gfx::Rect(rect));
 | 
| +    rects.insert(gfx::Rect(rect));
 | 
|      rect = CGRectOffset(rect, delta.dX, delta.dY);
 | 
| -    rects.push_back(gfx::Rect(rect));
 | 
| +    rects.insert(gfx::Rect(rect));
 | 
|    }
 | 
|    InvalidateRects(rects);
 | 
|  }
 | 
| 
 |