Index: content/common/gpu/image_transport_surface_fbo_mac.mm |
diff --git a/content/common/gpu/image_transport_surface_fbo_mac.mm b/content/common/gpu/image_transport_surface_fbo_mac.mm |
index 102a6b306f898e90f99aade538b73ce88b854227..ec827c2e47ad7f2064a53bcd204417e7da251b54 100644 |
--- a/content/common/gpu/image_transport_surface_fbo_mac.mm |
+++ b/content/common/gpu/image_transport_surface_fbo_mac.mm |
@@ -171,6 +171,7 @@ void ImageTransportSurfaceFBO::AdjustBufferAllocation() { |
gfx::SwapResult ImageTransportSurfaceFBO::SwapBuffers() { |
TRACE_EVENT0("gpu", "ImageTransportSurfaceFBO::SwapBuffers"); |
+ pending_swap_pixel_damage_rect_ = gfx::Rect(pixel_size_); |
return SwapBuffersInternal() ? gfx::SwapResult::SWAP_ACK |
: gfx::SwapResult::SWAP_FAILED; |
} |
@@ -198,10 +199,12 @@ void ImageTransportSurfaceFBO::SendSwapBuffers(uint64 surface_handle, |
GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params params; |
params.surface_handle = surface_handle; |
params.size = pixel_size; |
+ params.damage_rect = pending_swap_pixel_damage_rect_; |
params.scale_factor = scale_factor; |
params.latency_info.swap(latency_info_); |
helper_->SendAcceleratedSurfaceBuffersSwapped(params); |
is_swap_buffers_send_pending_ = false; |
+ pending_swap_pixel_damage_rect_ = gfx::Rect(); |
} |
void ImageTransportSurfaceFBO::SetRendererID(int renderer_id) { |
@@ -214,6 +217,7 @@ gfx::SwapResult ImageTransportSurfaceFBO::PostSubBuffer(int x, |
int width, |
int height) { |
TRACE_EVENT0("gpu", "ImageTransportSurfaceFBO::PostSubBuffer"); |
+ pending_swap_pixel_damage_rect_.Union(gfx::Rect(x, y, width, height)); |
return SwapBuffersInternal() ? gfx::SwapResult::SWAP_ACK |
: gfx::SwapResult::SWAP_FAILED; |
} |