[email protected] | 78d3012 | 2014-01-17 06:32:36 | [diff] [blame] | 1 | // 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 | |
danakj | e5805be | 2017-09-15 19:24:55 | [diff] [blame] | 5 | #include "components/viz/common/quads/surface_draw_quad.h" |
[email protected] | 78d3012 | 2014-01-17 06:32:36 | [diff] [blame] | 6 | |
Hans Wennborg | df87046c | 2020-04-28 11:06:24 | [diff] [blame] | 7 | #include "base/check_op.h" |
David 'Digit' Turner | ea07114 | 2018-10-29 15:38:12 | [diff] [blame] | 8 | #include "base/trace_event/traced_value.h" |
[email protected] | 78d3012 | 2014-01-17 06:32:36 | [diff] [blame] | 9 | #include "base/values.h" |
Anton Bikineev | 1156b5f | 2021-05-15 22:35:36 | [diff] [blame^] | 10 | #include "third_party/abseil-cpp/absl/types/optional.h" |
[email protected] | 78d3012 | 2014-01-17 06:32:36 | [diff] [blame] | 11 | |
danakj | e5805be | 2017-09-15 19:24:55 | [diff] [blame] | 12 | namespace viz { |
[email protected] | 78d3012 | 2014-01-17 06:32:36 | [diff] [blame] | 13 | |
danakj | e5805be | 2017-09-15 19:24:55 | [diff] [blame] | 14 | SurfaceDrawQuad::SurfaceDrawQuad() = default; |
[email protected] | 78d3012 | 2014-01-17 06:32:36 | [diff] [blame] | 15 | |
Fady Samuel | b47442d | 2017-10-13 04:17:34 | [diff] [blame] | 16 | SurfaceDrawQuad::SurfaceDrawQuad(const SurfaceDrawQuad& other) = default; |
| 17 | |
| 18 | SurfaceDrawQuad::~SurfaceDrawQuad() = default; |
| 19 | |
| 20 | SurfaceDrawQuad& SurfaceDrawQuad::operator=(const SurfaceDrawQuad& other) = |
| 21 | default; |
| 22 | |
Fady Samuel | f709b5a | 2018-07-20 17:27:42 | [diff] [blame] | 23 | void 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 Gu | 6da5d61 | 2019-12-05 12:39:23 | [diff] [blame] | 28 | bool stretch_content_to_fill_bounds) { |
yiyix | 78ccdd9 | 2017-08-29 03:59:46 | [diff] [blame] | 29 | bool needs_blending = true; |
Guohui Deng | d504913 | 2019-04-24 17:56:42 | [diff] [blame] | 30 | DrawQuad::SetAll(shared_quad_state, DrawQuad::Material::kSurfaceContent, rect, |
danakj | e5805be | 2017-09-15 19:24:55 | [diff] [blame] | 31 | visible_rect, needs_blending); |
Fady Samuel | f709b5a | 2018-07-20 17:27:42 | [diff] [blame] | 32 | this->surface_range = surface_range; |
Fady Samuel | 926ed77 | 2017-09-19 00:51:55 | [diff] [blame] | 33 | this->default_background_color = default_background_color; |
Fady Samuel | 3a98969d6 | 2017-11-15 02:10:22 | [diff] [blame] | 34 | this->stretch_content_to_fill_bounds = stretch_content_to_fill_bounds; |
[email protected] | 78d3012 | 2014-01-17 06:32:36 | [diff] [blame] | 35 | } |
| 36 | |
Fady Samuel | f709b5a | 2018-07-20 17:27:42 | [diff] [blame] | 37 | void 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 Jiang | 25fb6af1 | 2019-01-09 22:01:58 | [diff] [blame] | 43 | bool stretch_content_to_fill_bounds, |
Eric Karl | 8ec238e | 2019-08-27 10:48:53 | [diff] [blame] | 44 | bool is_reflection, |
| 45 | bool allow_merge) { |
Guohui Deng | d504913 | 2019-04-24 17:56:42 | [diff] [blame] | 46 | DrawQuad::SetAll(shared_quad_state, DrawQuad::Material::kSurfaceContent, rect, |
danakj | e5805be | 2017-09-15 19:24:55 | [diff] [blame] | 47 | visible_rect, needs_blending); |
Fady Samuel | f709b5a | 2018-07-20 17:27:42 | [diff] [blame] | 48 | this->surface_range = surface_range; |
Fady Samuel | 926ed77 | 2017-09-19 00:51:55 | [diff] [blame] | 49 | this->default_background_color = default_background_color; |
Fady Samuel | 3a98969d6 | 2017-11-15 02:10:22 | [diff] [blame] | 50 | this->stretch_content_to_fill_bounds = stretch_content_to_fill_bounds; |
kylechar | 5f6f0ac | 2019-05-28 00:58:30 | [diff] [blame] | 51 | this->is_reflection = is_reflection; |
Eric Karl | 8ec238e | 2019-08-27 10:48:53 | [diff] [blame] | 52 | this->allow_merge = allow_merge; |
[email protected] | 78d3012 | 2014-01-17 06:32:36 | [diff] [blame] | 53 | } |
| 54 | |
danakj | e5805be | 2017-09-15 19:24:55 | [diff] [blame] | 55 | const SurfaceDrawQuad* SurfaceDrawQuad::MaterialCast(const DrawQuad* quad) { |
Guohui Deng | d504913 | 2019-04-24 17:56:42 | [diff] [blame] | 56 | DCHECK_EQ(quad->material, DrawQuad::Material::kSurfaceContent); |
[email protected] | 78d3012 | 2014-01-17 06:32:36 | [diff] [blame] | 57 | return static_cast<const SurfaceDrawQuad*>(quad); |
| 58 | } |
| 59 | |
ssid | 911e40e | 2015-02-09 17:55:20 | [diff] [blame] | 60 | void SurfaceDrawQuad::ExtendValue(base::trace_event::TracedValue* value) const { |
Fady Samuel | f709b5a | 2018-07-20 17:27:42 | [diff] [blame] | 61 | value->SetString("surface_range", surface_range.ToString()); |
[email protected] | 78d3012 | 2014-01-17 06:32:36 | [diff] [blame] | 62 | } |
| 63 | |
danakj | e5805be | 2017-09-15 19:24:55 | [diff] [blame] | 64 | } // namespace viz |