blob: bf9569fb0323e095e6a45d3e38246a07ad7d4956 [file] [log] [blame]
// Copyright 2018 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 "third_party/blink/renderer/platform/testing/layer_tree_host_embedder.h"
#include "base/threading/thread_task_runner_handle.h"
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
namespace blink {
LayerTreeHostEmbedder::LayerTreeHostEmbedder()
: LayerTreeHostEmbedder(/*client=*/nullptr,
/*single_thread_client=*/nullptr) {}
LayerTreeHostEmbedder::LayerTreeHostEmbedder(
cc::LayerTreeHostClient* client,
cc::LayerTreeHostSingleThreadClient* single_thread_client) {
cc::LayerTreeSettings settings;
settings.layer_transforms_should_scale_layer_contents = true;
settings.single_thread_proxy_scheduler = false;
settings.use_layer_lists =
RuntimeEnabledFeatures::CompositeAfterPaintEnabled() ||
RuntimeEnabledFeatures::BlinkGenPropertyTreesEnabled();
animation_host_ = cc::AnimationHost::CreateMainInstance();
cc::LayerTreeHost::InitParams params;
params.client = client ? client : &layer_tree_host_client_;
params.settings = &settings;
params.main_task_runner = base::ThreadTaskRunnerHandle::Get();
params.task_graph_runner = &task_graph_runner_;
params.mutator_host = animation_host_.get();
layer_tree_host_ = cc::LayerTreeHost::CreateSingleThreaded(
single_thread_client ? single_thread_client
: &layer_tree_host_single_thread_client_,
std::move(params));
}
} // namespace blink