blob: c931d45d95f7b4f7c30a6d6453388960960fe904 [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.
#ifndef CC_LAYERS_LAYER_IMPL_TEST_PROPERTIES_H_
#define CC_LAYERS_LAYER_IMPL_TEST_PROPERTIES_H_
#include <set>
#include <vector>
#include "cc/input/overscroll_behavior.h"
#include "cc/input/scroll_snap_data.h"
#include "cc/layers/layer_collections.h"
#include "cc/layers/layer_position_constraint.h"
#include "cc/layers/layer_sticky_position_constraint.h"
#include "cc/paint/filter_operations.h"
#include "third_party/skia/include/core/SkBlendMode.h"
#include "ui/gfx/geometry/point3_f.h"
#include "ui/gfx/transform.h"
namespace viz {
class CopyOutputRequest;
}
namespace cc {
class LayerImpl;
struct CC_EXPORT LayerImplTestProperties {
explicit LayerImplTestProperties(LayerImpl* owning_layer);
~LayerImplTestProperties();
void AddChild(std::unique_ptr<LayerImpl> child);
std::unique_ptr<LayerImpl> RemoveChild(LayerImpl* child);
void SetMaskLayer(std::unique_ptr<LayerImpl> mask);
LayerImpl* owning_layer;
bool double_sided;
bool trilinear_filtering;
bool cache_render_surface;
bool force_render_surface;
bool is_container_for_fixed_position_layers;
bool should_flatten_transform;
bool hide_layer_and_subtree;
bool opacity_can_animate;
bool subtree_has_copy_request;
int sorting_context_id;
float opacity;
FilterOperations filters;
FilterOperations backdrop_filters;
float backdrop_filter_quality;
gfx::PointF filters_origin;
SkBlendMode blend_mode;
LayerPositionConstraint position_constraint;
LayerStickyPositionConstraint sticky_position_constraint;
gfx::Point3F transform_origin;
gfx::Transform transform;
LayerImpl* scroll_parent;
LayerImpl* clip_parent;
std::unique_ptr<std::set<LayerImpl*>> clip_children;
std::vector<std::unique_ptr<viz::CopyOutputRequest>> copy_requests;
LayerImplList children;
LayerImpl* mask_layer;
LayerImpl* parent;
bool user_scrollable_horizontal = true;
bool user_scrollable_vertical = true;
OverscrollBehavior overscroll_behavior;
base::Optional<SnapContainerData> snap_container_data;
};
} // namespace cc
#endif // CC_LAYERS_LAYER_IMPL_TEST_PROPERTIES_H_