Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(245)

Side by Side Diff: cc/quads/render_pass_draw_quad.cc

Issue 2297213003: Fix CSS reference filters with negative transformed children. (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/quads/render_pass_draw_quad.h ('k') | cc/quads/render_pass_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/quads/render_pass_draw_quad.h" 5 #include "cc/quads/render_pass_draw_quad.h"
6 6
7 #include "base/trace_event/trace_event_argument.h" 7 #include "base/trace_event/trace_event_argument.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "cc/base/math_util.h" 9 #include "cc/base/math_util.h"
10 #include "cc/debug/traced_value.h" 10 #include "cc/debug/traced_value.h"
(...skipping 13 matching lines...) Expand all
24 24
25 void RenderPassDrawQuad::SetNew(const SharedQuadState* shared_quad_state, 25 void RenderPassDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
26 const gfx::Rect& rect, 26 const gfx::Rect& rect,
27 const gfx::Rect& visible_rect, 27 const gfx::Rect& visible_rect,
28 RenderPassId render_pass_id, 28 RenderPassId render_pass_id,
29 ResourceId mask_resource_id, 29 ResourceId mask_resource_id,
30 const gfx::Vector2dF& mask_uv_scale, 30 const gfx::Vector2dF& mask_uv_scale,
31 const gfx::Size& mask_texture_size, 31 const gfx::Size& mask_texture_size,
32 const FilterOperations& filters, 32 const FilterOperations& filters,
33 const gfx::Vector2dF& filters_scale, 33 const gfx::Vector2dF& filters_scale,
34 const gfx::PointF& filters_origin,
34 const FilterOperations& background_filters) { 35 const FilterOperations& background_filters) {
35 DCHECK(render_pass_id.IsValid()); 36 DCHECK(render_pass_id.IsValid());
36 37
37 gfx::Rect opaque_rect; 38 gfx::Rect opaque_rect;
38 bool needs_blending = false; 39 bool needs_blending = false;
39 SetAll(shared_quad_state, 40 SetAll(shared_quad_state, rect, opaque_rect, visible_rect, needs_blending,
40 rect, 41 render_pass_id, mask_resource_id, mask_uv_scale, mask_texture_size,
41 opaque_rect, 42 filters, filters_scale, filters_origin, background_filters);
42 visible_rect,
43 needs_blending,
44 render_pass_id,
45 mask_resource_id,
46 mask_uv_scale,
47 mask_texture_size,
48 filters,
49 filters_scale,
50 background_filters);
51 } 43 }
52 44
53 void RenderPassDrawQuad::SetAll(const SharedQuadState* shared_quad_state, 45 void RenderPassDrawQuad::SetAll(const SharedQuadState* shared_quad_state,
54 const gfx::Rect& rect, 46 const gfx::Rect& rect,
55 const gfx::Rect& opaque_rect, 47 const gfx::Rect& opaque_rect,
56 const gfx::Rect& visible_rect, 48 const gfx::Rect& visible_rect,
57 bool needs_blending, 49 bool needs_blending,
58 RenderPassId render_pass_id, 50 RenderPassId render_pass_id,
59 ResourceId mask_resource_id, 51 ResourceId mask_resource_id,
60 const gfx::Vector2dF& mask_uv_scale, 52 const gfx::Vector2dF& mask_uv_scale,
61 const gfx::Size& mask_texture_size, 53 const gfx::Size& mask_texture_size,
62 const FilterOperations& filters, 54 const FilterOperations& filters,
63 const gfx::Vector2dF& filters_scale, 55 const gfx::Vector2dF& filters_scale,
56 const gfx::PointF& filters_origin,
64 const FilterOperations& background_filters) { 57 const FilterOperations& background_filters) {
65 DCHECK(render_pass_id.IsValid()); 58 DCHECK(render_pass_id.IsValid());
66 59
67 DrawQuad::SetAll(shared_quad_state, DrawQuad::RENDER_PASS, rect, opaque_rect, 60 DrawQuad::SetAll(shared_quad_state, DrawQuad::RENDER_PASS, rect, opaque_rect,
68 visible_rect, needs_blending); 61 visible_rect, needs_blending);
69 this->render_pass_id = render_pass_id; 62 this->render_pass_id = render_pass_id;
70 resources.ids[kMaskResourceIdIndex] = mask_resource_id; 63 resources.ids[kMaskResourceIdIndex] = mask_resource_id;
71 resources.count = mask_resource_id ? 1 : 0; 64 resources.count = mask_resource_id ? 1 : 0;
72 this->mask_uv_scale = mask_uv_scale; 65 this->mask_uv_scale = mask_uv_scale;
73 this->mask_texture_size = mask_texture_size; 66 this->mask_texture_size = mask_texture_size;
74 this->filters = filters; 67 this->filters = filters;
75 this->filters_scale = filters_scale; 68 this->filters_scale = filters_scale;
69 this->filters_origin = filters_origin;
76 this->background_filters = background_filters; 70 this->background_filters = background_filters;
77 } 71 }
78 72
79 gfx::RectF RenderPassDrawQuad::MaskUVRect() const { 73 gfx::RectF RenderPassDrawQuad::MaskUVRect() const {
80 return gfx::ScaleRect(gfx::RectF(rect), mask_uv_scale.x(), mask_uv_scale.y()); 74 return gfx::ScaleRect(gfx::RectF(rect), mask_uv_scale.x(), mask_uv_scale.y());
81 } 75 }
82 76
83 const RenderPassDrawQuad* RenderPassDrawQuad::MaterialCast( 77 const RenderPassDrawQuad* RenderPassDrawQuad::MaterialCast(
84 const DrawQuad* quad) { 78 const DrawQuad* quad) {
85 DCHECK_EQ(quad->material, DrawQuad::RENDER_PASS); 79 DCHECK_EQ(quad->material, DrawQuad::RENDER_PASS);
(...skipping 11 matching lines...) Expand all
97 filters.AsValueInto(value); 91 filters.AsValueInto(value);
98 value->EndArray(); 92 value->EndArray();
99 MathUtil::AddToTracedValue("filters_scale", filters_scale, value); 93 MathUtil::AddToTracedValue("filters_scale", filters_scale, value);
100 94
101 value->BeginDictionary("background_filters"); 95 value->BeginDictionary("background_filters");
102 background_filters.AsValueInto(value); 96 background_filters.AsValueInto(value);
103 value->EndDictionary(); 97 value->EndDictionary();
104 } 98 }
105 99
106 } // namespace cc 100 } // namespace cc
OLDNEW
« no previous file with comments | « cc/quads/render_pass_draw_quad.h ('k') | cc/quads/render_pass_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698