blob: 9de5d11d43969b5d6a3ef844da2ea18a18b29712 [file] [log] [blame]
// Copyright 2016 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/layers/layer_impl_test_properties.h"
#include "cc/layers/layer_impl.h"
#include "cc/output/copy_output_request.h"
#include "cc/trees/layer_tree_impl.h"
namespace cc {
LayerImplTestProperties::LayerImplTestProperties(LayerImpl* owning_layer)
: owning_layer(owning_layer),
double_sided(true),
force_render_surface(false),
is_container_for_fixed_position_layers(false),
should_flatten_transform(true),
hide_layer_and_subtree(false),
opacity_can_animate(false),
subtree_has_copy_request(false),
sorting_context_id(0),
opacity(1.f),
blend_mode(SkBlendMode::kSrcOver),
scroll_parent(nullptr),
clip_parent(nullptr),
mask_layer(nullptr),
parent(nullptr) {}
LayerImplTestProperties::~LayerImplTestProperties() {}
void LayerImplTestProperties::AddChild(std::unique_ptr<LayerImpl> child) {
child->test_properties()->parent = owning_layer;
children.push_back(child.get());
owning_layer->layer_tree_impl()->AddLayer(std::move(child));
owning_layer->layer_tree_impl()->BuildLayerListForTesting();
}
std::unique_ptr<LayerImpl> LayerImplTestProperties::RemoveChild(
LayerImpl* child) {
auto it = std::find(children.begin(), children.end(), child);
if (it != children.end())
children.erase(it);
owning_layer->layer_tree_impl()->property_trees()->RemoveIdFromIdToIndexMaps(
child->id());
auto layer = owning_layer->layer_tree_impl()->RemoveLayer(child->id());
owning_layer->layer_tree_impl()->BuildLayerListForTesting();
return layer;
}
void LayerImplTestProperties::SetMaskLayer(std::unique_ptr<LayerImpl> mask) {
if (mask_layer)
owning_layer->layer_tree_impl()->RemoveLayer(mask_layer->id());
mask_layer = mask.get();
if (mask)
owning_layer->layer_tree_impl()->AddLayer(std::move(mask));
}
} // namespace cc