Commit 74f45cf7 authored by xlai's avatar xlai Committed by Commit Bot

Do not skip overdraw optimization for non-display-list-2d canvas

Bug: 776826
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I4c1d8898a5a983fc0368e792620696f5d90d788b
Reviewed-on: https://chromium-review.googlesource.com/800750
Commit-Queue: Olivia Lai <xlai@chromium.org>
Reviewed-by: default avatarJustin Novosad <junov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#520615}
parent 5887f770
......@@ -1823,7 +1823,7 @@ void BaseRenderingContext2D::CheckOverdraw(
CanvasRenderingContext2DState::ImageType image_type,
DrawType draw_type) {
PaintCanvas* c = DrawingCanvas();
if (!c || !GetImageBuffer()->IsRecording())
if (!c)
return;
SkRect device_rect;
......
......@@ -283,19 +283,15 @@ class FakeAcceleratedImageBufferSurface
//============================================================================
class MockImageBufferSurfaceForOverwriteTesting
: public UnacceleratedImageBufferSurface {
class MockImageBufferSurfaceForOverwriteTesting : public Canvas2DLayerBridge {
public:
MockImageBufferSurfaceForOverwriteTesting(const IntSize& size,
CanvasColorParams color_params)
: UnacceleratedImageBufferSurface(size,
kInitializeImagePixels,
color_params) {}
: Canvas2DLayerBridge(size,
0,
Canvas2DLayerBridge::kDisableAcceleration,
color_params) {}
~MockImageBufferSurfaceForOverwriteTesting() override {}
bool IsRecording() const override {
return true;
} // otherwise overwrites are not tracked
MOCK_METHOD0(WillOverwriteCanvas, void());
};
......
......@@ -263,7 +263,8 @@ void RecordingImageBufferSurface::WillOverwriteCanvas() {
previous_frame_.reset();
previous_frame_has_expensive_op_ = false;
previous_frame_pixel_count_ = 0;
if (did_record_draw_commands_in_current_frame_) {
if (did_record_draw_commands_in_current_frame_ && !fallback_surface_) {
// Discard previous draw commands
current_frame_->finishRecordingAsPicture();
InitializeCurrentFrame();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment