OLD | NEW |
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/values.h" | 7 #include "base/values.h" |
8 #include "cc/base/math_util.h" | 8 #include "cc/base/math_util.h" |
9 #include "cc/debug/traced_value.h" | 9 #include "cc/debug/traced_value.h" |
10 | 10 |
(...skipping 24 matching lines...) Expand all Loading... |
35 | 35 |
36 void RenderPassDrawQuad::SetNew( | 36 void RenderPassDrawQuad::SetNew( |
37 const SharedQuadState* shared_quad_state, | 37 const SharedQuadState* shared_quad_state, |
38 gfx::Rect rect, | 38 gfx::Rect rect, |
39 RenderPass::Id render_pass_id, | 39 RenderPass::Id render_pass_id, |
40 bool is_replica, | 40 bool is_replica, |
41 ResourceProvider::ResourceId mask_resource_id, | 41 ResourceProvider::ResourceId mask_resource_id, |
42 gfx::Rect contents_changed_since_last_frame, | 42 gfx::Rect contents_changed_since_last_frame, |
43 gfx::RectF mask_uv_rect, | 43 gfx::RectF mask_uv_rect, |
44 const FilterOperations& filters, | 44 const FilterOperations& filters, |
45 skia::RefPtr<SkImageFilter> filter, | |
46 const FilterOperations& background_filters) { | 45 const FilterOperations& background_filters) { |
47 DCHECK_GT(render_pass_id.layer_id, 0); | 46 DCHECK_GT(render_pass_id.layer_id, 0); |
48 DCHECK_GE(render_pass_id.index, 0); | 47 DCHECK_GE(render_pass_id.index, 0); |
49 | 48 |
50 gfx::Rect opaque_rect; | 49 gfx::Rect opaque_rect; |
51 gfx::Rect visible_rect = rect; | 50 gfx::Rect visible_rect = rect; |
52 bool needs_blending = false; | 51 bool needs_blending = false; |
53 SetAll(shared_quad_state, rect, opaque_rect, visible_rect, needs_blending, | 52 SetAll(shared_quad_state, rect, opaque_rect, visible_rect, needs_blending, |
54 render_pass_id, is_replica, mask_resource_id, | 53 render_pass_id, is_replica, mask_resource_id, |
55 contents_changed_since_last_frame, mask_uv_rect, filters, filter, | 54 contents_changed_since_last_frame, mask_uv_rect, filters, |
56 background_filters); | 55 background_filters); |
57 } | 56 } |
58 | 57 |
59 void RenderPassDrawQuad::SetAll( | 58 void RenderPassDrawQuad::SetAll( |
60 const SharedQuadState* shared_quad_state, | 59 const SharedQuadState* shared_quad_state, |
61 gfx::Rect rect, | 60 gfx::Rect rect, |
62 gfx::Rect opaque_rect, | 61 gfx::Rect opaque_rect, |
63 gfx::Rect visible_rect, | 62 gfx::Rect visible_rect, |
64 bool needs_blending, | 63 bool needs_blending, |
65 RenderPass::Id render_pass_id, | 64 RenderPass::Id render_pass_id, |
66 bool is_replica, | 65 bool is_replica, |
67 ResourceProvider::ResourceId mask_resource_id, | 66 ResourceProvider::ResourceId mask_resource_id, |
68 gfx::Rect contents_changed_since_last_frame, | 67 gfx::Rect contents_changed_since_last_frame, |
69 gfx::RectF mask_uv_rect, | 68 gfx::RectF mask_uv_rect, |
70 const FilterOperations& filters, | 69 const FilterOperations& filters, |
71 skia::RefPtr<SkImageFilter> filter, | |
72 const FilterOperations& background_filters) { | 70 const FilterOperations& background_filters) { |
73 DCHECK_GT(render_pass_id.layer_id, 0); | 71 DCHECK_GT(render_pass_id.layer_id, 0); |
74 DCHECK_GE(render_pass_id.index, 0); | 72 DCHECK_GE(render_pass_id.index, 0); |
75 | 73 |
76 DrawQuad::SetAll(shared_quad_state, DrawQuad::RENDER_PASS, rect, opaque_rect, | 74 DrawQuad::SetAll(shared_quad_state, DrawQuad::RENDER_PASS, rect, opaque_rect, |
77 visible_rect, needs_blending); | 75 visible_rect, needs_blending); |
78 this->render_pass_id = render_pass_id; | 76 this->render_pass_id = render_pass_id; |
79 this->is_replica = is_replica; | 77 this->is_replica = is_replica; |
80 this->mask_resource_id = mask_resource_id; | 78 this->mask_resource_id = mask_resource_id; |
81 this->contents_changed_since_last_frame = contents_changed_since_last_frame; | 79 this->contents_changed_since_last_frame = contents_changed_since_last_frame; |
82 this->mask_uv_rect = mask_uv_rect; | 80 this->mask_uv_rect = mask_uv_rect; |
83 this->filters = filters; | 81 this->filters = filters; |
84 this->filter = filter; | |
85 this->background_filters = background_filters; | 82 this->background_filters = background_filters; |
86 } | 83 } |
87 | 84 |
88 void RenderPassDrawQuad::IterateResources( | 85 void RenderPassDrawQuad::IterateResources( |
89 const ResourceIteratorCallback& callback) { | 86 const ResourceIteratorCallback& callback) { |
90 if (mask_resource_id) | 87 if (mask_resource_id) |
91 mask_resource_id = callback.Run(mask_resource_id); | 88 mask_resource_id = callback.Run(mask_resource_id); |
92 } | 89 } |
93 | 90 |
94 const RenderPassDrawQuad* RenderPassDrawQuad::MaterialCast( | 91 const RenderPassDrawQuad* RenderPassDrawQuad::MaterialCast( |
95 const DrawQuad* quad) { | 92 const DrawQuad* quad) { |
96 DCHECK_EQ(quad->material, DrawQuad::RENDER_PASS); | 93 DCHECK_EQ(quad->material, DrawQuad::RENDER_PASS); |
97 return static_cast<const RenderPassDrawQuad*>(quad); | 94 return static_cast<const RenderPassDrawQuad*>(quad); |
98 } | 95 } |
99 | 96 |
100 void RenderPassDrawQuad::ExtendValue(base::DictionaryValue* value) const { | 97 void RenderPassDrawQuad::ExtendValue(base::DictionaryValue* value) const { |
101 value->Set("render_pass_id", | 98 value->Set("render_pass_id", |
102 TracedValue::CreateIDRef(render_pass_id.AsTracingId()).release()); | 99 TracedValue::CreateIDRef(render_pass_id.AsTracingId()).release()); |
103 value->SetBoolean("is_replica", is_replica); | 100 value->SetBoolean("is_replica", is_replica); |
104 value->SetInteger("mask_resource_id", mask_resource_id); | 101 value->SetInteger("mask_resource_id", mask_resource_id); |
105 value->Set("contents_changed_since_last_frame", | 102 value->Set("contents_changed_since_last_frame", |
106 MathUtil::AsValue(contents_changed_since_last_frame).release()); | 103 MathUtil::AsValue(contents_changed_since_last_frame).release()); |
107 value->Set("mask_uv_rect", MathUtil::AsValue(mask_uv_rect).release()); | 104 value->Set("mask_uv_rect", MathUtil::AsValue(mask_uv_rect).release()); |
108 value->Set("filters", filters.AsValue().release()); | 105 value->Set("filters", filters.AsValue().release()); |
109 // TODO(piman): dump SkImageFilters rather than just indicating if there are | |
110 // any or not. | |
111 value->SetBoolean("has_filter", !!filter); | |
112 value->Set("background_filters", background_filters.AsValue().release()); | 106 value->Set("background_filters", background_filters.AsValue().release()); |
113 } | 107 } |
114 | 108 |
115 } // namespace cc | 109 } // namespace cc |
OLD | NEW |