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

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

Issue 21154002: Add support for converting cc::FilterOperations into an SkImageFilter (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 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 | Annotate | Revision Log
« no previous file with comments | « cc/quads/render_pass_draw_quad.h ('k') | cc/test/render_pass_test_common.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/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 #include "third_party/skia/include/core/SkImageFilter.h" 10 #include "third_party/skia/include/core/SkImageFilter.h"
(...skipping 25 matching lines...) Expand all
36 36
37 void RenderPassDrawQuad::SetNew( 37 void RenderPassDrawQuad::SetNew(
38 const SharedQuadState* shared_quad_state, 38 const SharedQuadState* shared_quad_state,
39 gfx::Rect rect, 39 gfx::Rect rect,
40 RenderPass::Id render_pass_id, 40 RenderPass::Id render_pass_id,
41 bool is_replica, 41 bool is_replica,
42 ResourceProvider::ResourceId mask_resource_id, 42 ResourceProvider::ResourceId mask_resource_id,
43 gfx::Rect contents_changed_since_last_frame, 43 gfx::Rect contents_changed_since_last_frame,
44 gfx::RectF mask_uv_rect, 44 gfx::RectF mask_uv_rect,
45 const FilterOperations& filters, 45 const FilterOperations& filters,
46 skia::RefPtr<SkImageFilter> filter,
47 const FilterOperations& background_filters) { 46 const FilterOperations& background_filters) {
48 DCHECK_GT(render_pass_id.layer_id, 0); 47 DCHECK_GT(render_pass_id.layer_id, 0);
49 DCHECK_GE(render_pass_id.index, 0); 48 DCHECK_GE(render_pass_id.index, 0);
50 49
51 gfx::Rect opaque_rect; 50 gfx::Rect opaque_rect;
52 gfx::Rect visible_rect = rect; 51 gfx::Rect visible_rect = rect;
53 bool needs_blending = false; 52 bool needs_blending = false;
54 SetAll(shared_quad_state, rect, opaque_rect, visible_rect, needs_blending, 53 SetAll(shared_quad_state, rect, opaque_rect, visible_rect, needs_blending,
55 render_pass_id, is_replica, mask_resource_id, 54 render_pass_id, is_replica, mask_resource_id,
56 contents_changed_since_last_frame, mask_uv_rect, filters, filter, 55 contents_changed_since_last_frame, mask_uv_rect, filters,
57 background_filters); 56 background_filters);
58 } 57 }
59 58
60 void RenderPassDrawQuad::SetAll( 59 void RenderPassDrawQuad::SetAll(
61 const SharedQuadState* shared_quad_state, 60 const SharedQuadState* shared_quad_state,
62 gfx::Rect rect, 61 gfx::Rect rect,
63 gfx::Rect opaque_rect, 62 gfx::Rect opaque_rect,
64 gfx::Rect visible_rect, 63 gfx::Rect visible_rect,
65 bool needs_blending, 64 bool needs_blending,
66 RenderPass::Id render_pass_id, 65 RenderPass::Id render_pass_id,
67 bool is_replica, 66 bool is_replica,
68 ResourceProvider::ResourceId mask_resource_id, 67 ResourceProvider::ResourceId mask_resource_id,
69 gfx::Rect contents_changed_since_last_frame, 68 gfx::Rect contents_changed_since_last_frame,
70 gfx::RectF mask_uv_rect, 69 gfx::RectF mask_uv_rect,
71 const FilterOperations& filters, 70 const FilterOperations& filters,
72 skia::RefPtr<SkImageFilter> filter,
73 const FilterOperations& background_filters) { 71 const FilterOperations& background_filters) {
74 DCHECK_GT(render_pass_id.layer_id, 0); 72 DCHECK_GT(render_pass_id.layer_id, 0);
75 DCHECK_GE(render_pass_id.index, 0); 73 DCHECK_GE(render_pass_id.index, 0);
76 74
77 DrawQuad::SetAll(shared_quad_state, DrawQuad::RENDER_PASS, rect, opaque_rect, 75 DrawQuad::SetAll(shared_quad_state, DrawQuad::RENDER_PASS, rect, opaque_rect,
78 visible_rect, needs_blending); 76 visible_rect, needs_blending);
79 this->render_pass_id = render_pass_id; 77 this->render_pass_id = render_pass_id;
80 this->is_replica = is_replica; 78 this->is_replica = is_replica;
81 this->mask_resource_id = mask_resource_id; 79 this->mask_resource_id = mask_resource_id;
82 this->contents_changed_since_last_frame = contents_changed_since_last_frame; 80 this->contents_changed_since_last_frame = contents_changed_since_last_frame;
83 this->mask_uv_rect = mask_uv_rect; 81 this->mask_uv_rect = mask_uv_rect;
84 this->filters = filters; 82 this->filters = filters;
85 this->filter = filter;
86 this->background_filters = background_filters; 83 this->background_filters = background_filters;
87 } 84 }
88 85
89 void RenderPassDrawQuad::IterateResources( 86 void RenderPassDrawQuad::IterateResources(
90 const ResourceIteratorCallback& callback) { 87 const ResourceIteratorCallback& callback) {
91 if (mask_resource_id) 88 if (mask_resource_id)
92 mask_resource_id = callback.Run(mask_resource_id); 89 mask_resource_id = callback.Run(mask_resource_id);
93 } 90 }
94 91
95 const RenderPassDrawQuad* RenderPassDrawQuad::MaterialCast( 92 const RenderPassDrawQuad* RenderPassDrawQuad::MaterialCast(
96 const DrawQuad* quad) { 93 const DrawQuad* quad) {
97 DCHECK_EQ(quad->material, DrawQuad::RENDER_PASS); 94 DCHECK_EQ(quad->material, DrawQuad::RENDER_PASS);
98 return static_cast<const RenderPassDrawQuad*>(quad); 95 return static_cast<const RenderPassDrawQuad*>(quad);
99 } 96 }
100 97
101 void RenderPassDrawQuad::ExtendValue(base::DictionaryValue* value) const { 98 void RenderPassDrawQuad::ExtendValue(base::DictionaryValue* value) const {
102 value->Set("render_pass_id", 99 value->Set("render_pass_id",
103 TracedValue::CreateIDRef(render_pass_id.AsTracingId()).release()); 100 TracedValue::CreateIDRef(render_pass_id.AsTracingId()).release());
104 value->SetBoolean("is_replica", is_replica); 101 value->SetBoolean("is_replica", is_replica);
105 value->SetInteger("mask_resource_id", mask_resource_id); 102 value->SetInteger("mask_resource_id", mask_resource_id);
106 value->Set("contents_changed_since_last_frame", 103 value->Set("contents_changed_since_last_frame",
107 MathUtil::AsValue(contents_changed_since_last_frame).release()); 104 MathUtil::AsValue(contents_changed_since_last_frame).release());
108 value->Set("mask_uv_rect", MathUtil::AsValue(mask_uv_rect).release()); 105 value->Set("mask_uv_rect", MathUtil::AsValue(mask_uv_rect).release());
109 value->Set("filters", filters.AsValue().release()); 106 value->Set("filters", filters.AsValue().release());
110 // TODO(piman): dump SkImageFilters rather than just indicating if there are
111 // any or not.
112 value->SetBoolean("has_filter", !!filter);
113 value->Set("background_filters", background_filters.AsValue().release()); 107 value->Set("background_filters", background_filters.AsValue().release());
114 } 108 }
115 109
116 } // namespace cc 110 } // namespace cc
OLDNEW
« no previous file with comments | « cc/quads/render_pass_draw_quad.h ('k') | cc/test/render_pass_test_common.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698