| // Copyright 2014 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 "build/build_config.h" |
| #include "cc/layers/content_layer_client.h" |
| #include "cc/layers/picture_image_layer.h" |
| #include "cc/layers/picture_layer.h" |
| #include "cc/layers/solid_color_layer.h" |
| #include "cc/test/fake_content_layer_client.h" |
| #include "cc/test/layer_tree_pixel_test.h" |
| #include "cc/test/pixel_comparator.h" |
| |
| #if !defined(OS_ANDROID) |
| |
| namespace cc { |
| namespace { |
| |
| class LayerTreeHostSynchronousPixelTest : public LayerTreePixelTest { |
| public: |
| void InitializeSettings(LayerTreeSettings* settings) override { |
| LayerTreePixelTest::InitializeSettings(settings); |
| settings->single_thread_proxy_scheduler = false; |
| settings->use_zero_copy = true; |
| } |
| |
| void BeginTest() override { |
| LayerTreePixelTest::BeginTest(); |
| PostCompositeImmediatelyToMainThread(); |
| } |
| }; |
| |
| TEST_F(LayerTreeHostSynchronousPixelTest, OneContentLayer) { |
| gfx::Size bounds(200, 200); |
| |
| FakeContentLayerClient client; |
| client.set_bounds(bounds); |
| SkPaint green_paint; |
| green_paint.setColor(SkColorSetARGB(255, 0, 255, 0)); |
| client.add_draw_rect(gfx::Rect(bounds), green_paint); |
| scoped_refptr<PictureLayer> root = PictureLayer::Create(&client); |
| root->SetBounds(bounds); |
| root->SetIsDrawable(true); |
| |
| RunSingleThreadedPixelTest( |
| PIXEL_TEST_GL, root, base::FilePath(FILE_PATH_LITERAL("green.png"))); |
| } |
| |
| class LayerTreeHostSynchronousGPUPixelTest : public LayerTreePixelTest { |
| public: |
| void InitializeSettings(LayerTreeSettings* settings) override { |
| LayerTreePixelTest::InitializeSettings(settings); |
| settings->single_thread_proxy_scheduler = false; |
| settings->gpu_rasterization_enabled = true; |
| settings->gpu_rasterization_forced = true; |
| } |
| |
| void BeginTest() override { |
| LayerTreePixelTest::BeginTest(); |
| PostCompositeImmediatelyToMainThread(); |
| } |
| }; |
| |
| TEST_F(LayerTreeHostSynchronousGPUPixelTest, OneContentLayer) { |
| gfx::Size bounds(200, 200); |
| |
| FakeContentLayerClient client; |
| client.set_bounds(bounds); |
| SkPaint green_paint; |
| green_paint.setColor(SkColorSetARGB(255, 0, 255, 0)); |
| client.add_draw_rect(gfx::Rect(bounds), green_paint); |
| scoped_refptr<PictureLayer> root = PictureLayer::Create(&client); |
| root->SetBounds(bounds); |
| client.set_bounds(bounds); |
| root->SetIsDrawable(true); |
| |
| RunSingleThreadedPixelTest(PIXEL_TEST_GL, root, |
| base::FilePath(FILE_PATH_LITERAL("green.png"))); |
| } |
| |
| } // namespace |
| } // namespace cc |
| |
| #endif // OS_ANDROID |