| Index: cc/test/fake_display_list_raster_source.cc
|
| diff --git a/cc/test/fake_display_list_raster_source.cc b/cc/test/fake_display_list_raster_source.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..de69afac581afa2bcae2e98459e0c07e602db497
|
| --- /dev/null
|
| +++ b/cc/test/fake_display_list_raster_source.cc
|
| @@ -0,0 +1,158 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "cc/test/fake_display_list_raster_source.h"
|
| +
|
| +#include <limits>
|
| +
|
| +#include "base/synchronization/waitable_event.h"
|
| +#include "cc/test/fake_display_list_recording_source.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +#include "ui/gfx/geometry/size.h"
|
| +
|
| +namespace cc {
|
| +
|
| +scoped_refptr<FakeDisplayListRasterSource>
|
| +FakeDisplayListRasterSource::CreateInfiniteFilled() {
|
| + gfx::Size size(std::numeric_limits<int>::max() / 10,
|
| + std::numeric_limits<int>::max() / 10);
|
| + return CreateFilled(size);
|
| +}
|
| +
|
| +scoped_refptr<FakeDisplayListRasterSource>
|
| +FakeDisplayListRasterSource::CreateFilled(const gfx::Size& size) {
|
| + auto recording_source =
|
| + FakeDisplayListRecordingSource::CreateFilledRecordingSource(size);
|
| +
|
| + SkPaint red_paint;
|
| + red_paint.setColor(SK_ColorRED);
|
| + recording_source->add_draw_rect_with_paint(gfx::Rect(size), red_paint);
|
| +
|
| + gfx::Size smaller_size(size.width() - 10, size.height() - 10);
|
| + SkPaint green_paint;
|
| + green_paint.setColor(SK_ColorGREEN);
|
| + recording_source->add_draw_rect_with_paint(gfx::Rect(smaller_size),
|
| + green_paint);
|
| +
|
| + recording_source->Rerecord();
|
| +
|
| + return make_scoped_refptr(
|
| + new FakeDisplayListRasterSource(recording_source.get(), false));
|
| +}
|
| +
|
| +scoped_refptr<FakeDisplayListRasterSource>
|
| +FakeDisplayListRasterSource::CreateFilledLCD(const gfx::Size& size) {
|
| + auto recording_source =
|
| + FakeDisplayListRecordingSource::CreateFilledRecordingSource(size);
|
| +
|
| + SkPaint red_paint;
|
| + red_paint.setColor(SK_ColorRED);
|
| + recording_source->add_draw_rect_with_paint(gfx::Rect(size), red_paint);
|
| +
|
| + gfx::Size smaller_size(size.width() - 10, size.height() - 10);
|
| + SkPaint green_paint;
|
| + green_paint.setColor(SK_ColorGREEN);
|
| + recording_source->add_draw_rect_with_paint(gfx::Rect(smaller_size),
|
| + green_paint);
|
| +
|
| + recording_source->Rerecord();
|
| +
|
| + return make_scoped_refptr(
|
| + new FakeDisplayListRasterSource(recording_source.get(), true));
|
| +}
|
| +
|
| +scoped_refptr<FakeDisplayListRasterSource>
|
| +FakeDisplayListRasterSource::CreateFilledSolidColor(const gfx::Size& size) {
|
| + auto recording_source =
|
| + FakeDisplayListRecordingSource::CreateFilledRecordingSource(size);
|
| +
|
| + SkPaint red_paint;
|
| + red_paint.setColor(SK_ColorRED);
|
| + recording_source->add_draw_rect_with_paint(gfx::Rect(size), red_paint);
|
| + recording_source->Rerecord();
|
| + auto raster_source = make_scoped_refptr(
|
| + new FakeDisplayListRasterSource(recording_source.get(), false));
|
| + if (!raster_source->IsSolidColor())
|
| + ADD_FAILURE() << "Not solid color!";
|
| + return raster_source;
|
| +}
|
| +
|
| +scoped_refptr<FakeDisplayListRasterSource>
|
| +FakeDisplayListRasterSource::CreatePartiallyFilled(
|
| + const gfx::Size& size,
|
| + const gfx::Rect& recorded_viewport) {
|
| + DCHECK_IMPLIES(!recorded_viewport.IsEmpty(),
|
| + gfx::Rect(size).Contains(recorded_viewport));
|
| + auto recording_source = FakeDisplayListRecordingSource::CreateRecordingSource(
|
| + recorded_viewport, size);
|
| +
|
| + SkPaint red_paint;
|
| + red_paint.setColor(SK_ColorRED);
|
| + recording_source->add_draw_rect_with_paint(gfx::Rect(size), red_paint);
|
| +
|
| + gfx::Size smaller_size(size.width() - 10, size.height() - 10);
|
| + SkPaint green_paint;
|
| + green_paint.setColor(SK_ColorGREEN);
|
| + recording_source->add_draw_rect_with_paint(gfx::Rect(smaller_size),
|
| + green_paint);
|
| +
|
| + recording_source->Rerecord();
|
| + recording_source->SetRecordedViewport(recorded_viewport);
|
| +
|
| + return make_scoped_refptr(
|
| + new FakeDisplayListRasterSource(recording_source.get(), false));
|
| +}
|
| +
|
| +scoped_refptr<FakeDisplayListRasterSource>
|
| +FakeDisplayListRasterSource::CreateEmpty(const gfx::Size& size) {
|
| + auto recording_source =
|
| + FakeDisplayListRecordingSource::CreateFilledRecordingSource(size);
|
| + return make_scoped_refptr(
|
| + new FakeDisplayListRasterSource(recording_source.get(), false));
|
| +}
|
| +
|
| +scoped_refptr<FakeDisplayListRasterSource>
|
| +FakeDisplayListRasterSource::CreateFromRecordingSource(
|
| + const DisplayListRecordingSource* recording_source,
|
| + bool can_use_lcd) {
|
| + return make_scoped_refptr(
|
| + new FakeDisplayListRasterSource(recording_source, can_use_lcd));
|
| +}
|
| +
|
| +scoped_refptr<FakeDisplayListRasterSource>
|
| +FakeDisplayListRasterSource::CreateFromRecordingSourceWithWaitable(
|
| + const DisplayListRecordingSource* recording_source,
|
| + bool can_use_lcd,
|
| + base::WaitableEvent* playback_allowed_event) {
|
| + return make_scoped_refptr(new FakeDisplayListRasterSource(
|
| + recording_source, can_use_lcd, playback_allowed_event));
|
| +}
|
| +
|
| +FakeDisplayListRasterSource::FakeDisplayListRasterSource(
|
| + const DisplayListRecordingSource* recording_source,
|
| + bool can_use_lcd)
|
| + : DisplayListRasterSource(recording_source, can_use_lcd),
|
| + playback_allowed_event_(nullptr) {}
|
| +
|
| +FakeDisplayListRasterSource::FakeDisplayListRasterSource(
|
| + const DisplayListRecordingSource* recording_source,
|
| + bool can_use_lcd,
|
| + base::WaitableEvent* playback_allowed_event)
|
| + : DisplayListRasterSource(recording_source, can_use_lcd),
|
| + playback_allowed_event_(playback_allowed_event) {}
|
| +
|
| +FakeDisplayListRasterSource::~FakeDisplayListRasterSource() {}
|
| +
|
| +void FakeDisplayListRasterSource::PlaybackToCanvas(
|
| + SkCanvas* canvas,
|
| + const gfx::Rect& canvas_bitmap_rect,
|
| + const gfx::Rect& canvas_playback_rect,
|
| + float contents_scale) const {
|
| + if (playback_allowed_event_)
|
| + playback_allowed_event_->Wait();
|
| + DisplayListRasterSource::PlaybackToCanvas(
|
| + canvas, canvas_bitmap_rect, canvas_playback_rect, contents_scale);
|
| +}
|
| +
|
| +} // namespace cc
|
|
|