From f03dccadb31d421b18cce5a7a703f96238bf2e04 Mon Sep 17 00:00:00 2001 From: Heilig Benedek Date: Thu, 13 Apr 2017 01:30:46 +0200 Subject: [PATCH] use white gutter color and paint damage rects over when paint starts in software osr --- atom/browser/osr/osr_output_device.cc | 21 +++++++++++++++++-- .../osr/osr_render_widget_host_view.cc | 2 +- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/atom/browser/osr/osr_output_device.cc b/atom/browser/osr/osr_output_device.cc index 49c4191e21e..d418634272d 100644 --- a/atom/browser/osr/osr_output_device.cc +++ b/atom/browser/osr/osr_output_device.cc @@ -4,7 +4,9 @@ #include "atom/browser/osr/osr_output_device.h" +#include "third_party/skia/src/core/SkColor.h" #include "third_party/skia/src/core/SkDevice.h" +#include "third_party/skia/src/core/SkRect.h" #include "ui/gfx/skia_util.h" namespace atom { @@ -36,8 +38,11 @@ void OffScreenOutputDevice::Resize( return; } - if (transparent_) - bitmap_->eraseARGB(0, 0, 0, 0); + if (transparent_) { + bitmap_->eraseColor(SK_ColorTRANSPARENT); + } else { + bitmap_->eraseColor(SK_ColorWHITE); + } canvas_.reset(new SkCanvas(*bitmap_)); } @@ -47,6 +52,18 @@ SkCanvas* OffScreenOutputDevice::BeginPaint(const gfx::Rect& damage_rect) { DCHECK(bitmap_.get()); damage_rect_ = damage_rect; + SkIRect damage = SkIRect::MakeXYWH( + damage_rect_.x(), + damage_rect_.y(), + damage_rect_.width(), + damage_rect_.height() + ); + + if (transparent_) { + bitmap_->erase(SK_ColorTRANSPARENT, damage); + } else { + bitmap_->erase(SK_ColorWHITE, damage); + } return canvas_.get(); } diff --git a/atom/browser/osr/osr_render_widget_host_view.cc b/atom/browser/osr/osr_render_widget_host_view.cc index a4faa1b6a7e..3d3729d1ebf 100644 --- a/atom/browser/osr/osr_render_widget_host_view.cc +++ b/atom/browser/osr/osr_render_widget_host_view.cc @@ -722,7 +722,7 @@ SkColor OffScreenRenderWidgetHostView::DelegatedFrameHostGetGutterColor( SkColor color) const { if (render_widget_host_->delegate() && render_widget_host_->delegate()->IsFullscreenForCurrentTab()) { - return SK_ColorBLACK; + return SK_ColorWHITE; } return color; }