Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1002)

Unified Diff: remoting/base/encoder_row_based.cc

Issue 7491070: Switch over to using SkRegions to calculate dirty areas. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cleaned up comments Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: remoting/base/encoder_row_based.cc
diff --git a/remoting/base/encoder_row_based.cc b/remoting/base/encoder_row_based.cc
index 8039869821163cb03feed02e4ccf9a758ea40abf..cef89e0aa8fd525ce5c7da5e817d8cb3d14f4681 100644
--- a/remoting/base/encoder_row_based.cc
+++ b/remoting/base/encoder_row_based.cc
@@ -66,16 +66,19 @@ void EncoderRowBased::Encode(scoped_refptr<CaptureData> capture_data,
capture_data_ = capture_data;
callback_.reset(data_available_callback);
- const InvalidRects& rects = capture_data->dirty_rects();
- for (InvalidRects::const_iterator r = rects.begin(); r != rects.end(); ++r) {
- EncodeRect(*r, r == --rects.end());
+ const SkRegion& region = capture_data->dirty_region();
+ SkRegion::Iterator iter(region);
+ while (!iter.done()) {
+ SkIRect rect = iter.rect();
+ iter.next();
+ EncodeRect(rect, iter.done());
}
capture_data_ = NULL;
callback_.reset();
}
-void EncoderRowBased::EncodeRect(const gfx::Rect& rect, bool last) {
+void EncoderRowBased::EncodeRect(const SkIRect& rect, bool last) {
CHECK(capture_data_->data_planes().data[0]);
const int strides = capture_data_->data_planes().strides[0];
const int bytes_per_pixel = GetBytesPerPixel(capture_data_->pixel_format());
@@ -86,7 +89,7 @@ void EncoderRowBased::EncodeRect(const gfx::Rect& rect, bool last) {
VideoPacket* packet = new VideoPacket();
PrepareUpdateStart(rect, packet);
const uint8* in = capture_data_->data_planes().data[0] +
- rect.y() * strides + rect.x() * bytes_per_pixel;
+ rect.fTop * strides + rect.fLeft * bytes_per_pixel;
// TODO(hclam): Fill in the sequence number.
uint8* out = GetOutputBuffer(packet, packet_size_);
int filled = 0;
@@ -142,13 +145,13 @@ void EncoderRowBased::EncodeRect(const gfx::Rect& rect, bool last) {
}
}
-void EncoderRowBased::PrepareUpdateStart(const gfx::Rect& rect,
+void EncoderRowBased::PrepareUpdateStart(const SkIRect& rect,
VideoPacket* packet) {
packet->set_flags(packet->flags() | VideoPacket::FIRST_PACKET);
VideoPacketFormat* format = packet->mutable_format();
- format->set_x(rect.x());
- format->set_y(rect.y());
+ format->set_x(rect.fLeft);
+ format->set_y(rect.fTop);
format->set_width(rect.width());
format->set_height(rect.height());
format->set_encoding(encoding_);

Powered by Google App Engine
This is Rietveld 408576698