blob: 12f75ac8daba7ed70a442f2bb530e90a1a3819d0 [file] [log] [blame]
[email protected]78d30122014-01-17 06:32:361// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
danakje5805be2017-09-15 19:24:555#include "components/viz/common/quads/surface_draw_quad.h"
[email protected]78d30122014-01-17 06:32:366
Hans Wennborgdf87046c2020-04-28 11:06:247#include "base/check_op.h"
David 'Digit' Turnerea071142018-10-29 15:38:128#include "base/trace_event/traced_value.h"
[email protected]78d30122014-01-17 06:32:369#include "base/values.h"
Anton Bikineev1156b5f2021-05-15 22:35:3610#include "third_party/abseil-cpp/absl/types/optional.h"
[email protected]78d30122014-01-17 06:32:3611
danakje5805be2017-09-15 19:24:5512namespace viz {
[email protected]78d30122014-01-17 06:32:3613
danakje5805be2017-09-15 19:24:5514SurfaceDrawQuad::SurfaceDrawQuad() = default;
[email protected]78d30122014-01-17 06:32:3615
Fady Samuelb47442d2017-10-13 04:17:3416SurfaceDrawQuad::SurfaceDrawQuad(const SurfaceDrawQuad& other) = default;
17
18SurfaceDrawQuad::~SurfaceDrawQuad() = default;
19
20SurfaceDrawQuad& SurfaceDrawQuad::operator=(const SurfaceDrawQuad& other) =
21 default;
22
Fady Samuelf709b5a2018-07-20 17:27:4223void SurfaceDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
24 const gfx::Rect& rect,
25 const gfx::Rect& visible_rect,
26 const SurfaceRange& surface_range,
27 SkColor default_background_color,
Yi Gu6da5d612019-12-05 12:39:2328 bool stretch_content_to_fill_bounds) {
yiyix78ccdd92017-08-29 03:59:4629 bool needs_blending = true;
Guohui Dengd5049132019-04-24 17:56:4230 DrawQuad::SetAll(shared_quad_state, DrawQuad::Material::kSurfaceContent, rect,
danakje5805be2017-09-15 19:24:5531 visible_rect, needs_blending);
Fady Samuelf709b5a2018-07-20 17:27:4232 this->surface_range = surface_range;
Fady Samuel926ed772017-09-19 00:51:5533 this->default_background_color = default_background_color;
Fady Samuel3a98969d62017-11-15 02:10:2234 this->stretch_content_to_fill_bounds = stretch_content_to_fill_bounds;
[email protected]78d30122014-01-17 06:32:3635}
36
Fady Samuelf709b5a2018-07-20 17:27:4237void SurfaceDrawQuad::SetAll(const SharedQuadState* shared_quad_state,
38 const gfx::Rect& rect,
39 const gfx::Rect& visible_rect,
40 bool needs_blending,
41 const SurfaceRange& surface_range,
42 SkColor default_background_color,
Ria Jiang25fb6af12019-01-09 22:01:5843 bool stretch_content_to_fill_bounds,
Eric Karl8ec238e2019-08-27 10:48:5344 bool is_reflection,
45 bool allow_merge) {
Guohui Dengd5049132019-04-24 17:56:4246 DrawQuad::SetAll(shared_quad_state, DrawQuad::Material::kSurfaceContent, rect,
danakje5805be2017-09-15 19:24:5547 visible_rect, needs_blending);
Fady Samuelf709b5a2018-07-20 17:27:4248 this->surface_range = surface_range;
Fady Samuel926ed772017-09-19 00:51:5549 this->default_background_color = default_background_color;
Fady Samuel3a98969d62017-11-15 02:10:2250 this->stretch_content_to_fill_bounds = stretch_content_to_fill_bounds;
kylechar5f6f0ac2019-05-28 00:58:3051 this->is_reflection = is_reflection;
Eric Karl8ec238e2019-08-27 10:48:5352 this->allow_merge = allow_merge;
[email protected]78d30122014-01-17 06:32:3653}
54
danakje5805be2017-09-15 19:24:5555const SurfaceDrawQuad* SurfaceDrawQuad::MaterialCast(const DrawQuad* quad) {
Guohui Dengd5049132019-04-24 17:56:4256 DCHECK_EQ(quad->material, DrawQuad::Material::kSurfaceContent);
[email protected]78d30122014-01-17 06:32:3657 return static_cast<const SurfaceDrawQuad*>(quad);
58}
59
ssid911e40e2015-02-09 17:55:2060void SurfaceDrawQuad::ExtendValue(base::trace_event::TracedValue* value) const {
Fady Samuelf709b5a2018-07-20 17:27:4261 value->SetString("surface_range", surface_range.ToString());
[email protected]78d30122014-01-17 06:32:3662}
63
danakje5805be2017-09-15 19:24:5564} // namespace viz