summaryrefslogtreecommitdiffstats
path: root/cc/trees/layer_tree_host_pixeltest_synchronous.cc
blob: a5286a2473e63dc8a5a9915cfeaf459e4029c6e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// 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;
    settings->use_one_copy = false;
  }

  void BeginTest() override {
    LayerTreePixelTest::BeginTest();
    PostCompositeImmediatelyToMainThread();
  }
};

TEST_F(LayerTreeHostSynchronousPixelTest, OneContentLayer) {
  gfx::Size bounds(200, 200);

  FakeContentLayerClient client;
  SkPaint green_paint;
  green_paint.setColor(SkColorSetARGB(255, 0, 255, 0));
  client.add_draw_rect(gfx::RectF(bounds), green_paint);
  scoped_refptr<PictureLayer> root =
      PictureLayer::Create(layer_settings(), &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;
  SkPaint green_paint;
  green_paint.setColor(SkColorSetARGB(255, 0, 255, 0));
  client.add_draw_rect(gfx::RectF(bounds), green_paint);
  scoped_refptr<PictureLayer> root =
      PictureLayer::Create(layer_settings(), &client);
  root->SetBounds(bounds);
  root->SetIsDrawable(true);

  RunSingleThreadedPixelTest(PIXEL_TEST_GL, root,
                             base::FilePath(FILE_PATH_LITERAL("green.png")));
}

}  // namespace
}  // namespace cc

#endif  // OS_ANDROID