| 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);
|
| }
|
|
|