Index: remoting/host/differ.h |
diff --git a/remoting/host/differ.h b/remoting/host/differ.h |
index 99036800b14087de9aa6f574b5e9a313637f4fde..c46f57a4357e9f7f15867e4cb805f26c46474a26 100644 |
--- a/remoting/host/differ.h |
+++ b/remoting/host/differ.h |
@@ -9,13 +9,16 @@ |
#include "base/basictypes.h" |
#include "base/memory/scoped_ptr.h" |
-#include "remoting/base/types.h" |
-#include "ui/gfx/rect.h" |
+#include "third_party/skia/include/core/SkRegion.h" |
namespace remoting { |
typedef uint8 DiffInfo; |
+// TODO: Simplify differ now that we are working with SkRegions. |
+// diff_info_ should no longer be needed, as we can put our data directly into |
+// the region that we are calculating. |
+// http://crbug.com/92379 |
class Differ { |
public: |
// Create a differ that operates on bitmaps with the specified width, height |
@@ -28,24 +31,22 @@ class Differ { |
int bytes_per_pixel() { return bytes_per_pixel_; } |
int bytes_per_row() { return bytes_per_row_; } |
- // Given the previous and current screen buffer, calculate the set of |
- // rectangles that enclose all the changed pixels in the new screen. |
- void CalcDirtyRects(const void* prev_buffer, const void* curr_buffer, |
- InvalidRects* rects); |
+ // Given the previous and current screen buffer, calculate the dirty region |
+ // that encloses all of the changed pixels in the new screen. |
+ void CalcDirtyRegion(const void* prev_buffer, const void* curr_buffer, |
+ SkRegion* region); |
+ |
+ private: |
+ // Allow tests to access our private parts. |
+ friend class DifferTest; |
// Identify all of the blocks that contain changed pixels. |
void MarkDirtyBlocks(const void* prev_buffer, const void* curr_buffer); |
// After the dirty blocks have been identified, this routine merges adjacent |
- // blocks into larger rectangular units. |
- // The goal is to minimize the number of rects that cover the dirty blocks, |
- // although it is not required to calc the absolute minimum of rects. |
- void MergeBlocks(InvalidRects* rects); |
- |
- // Allow tests to access our private parts. |
- friend class DifferTest; |
- |
- private: |
+ // blocks into a region. |
+ // The goal is to minimize the region that covers the dirty blocks. |
+ void MergeBlocks(SkRegion* region); |
// Check for diffs in upper-left portion of the block. The size of the portion |
// to check is specified by the |width| and |height| values. |