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

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

Issue 394193003: Implement HiDPI and pinch-zoom scaling of filter params (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add unittests Created 6 years, 5 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
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 12 matching lines...) Expand all
23 void RenderPassDrawQuad::SetNew( 23 void RenderPassDrawQuad::SetNew(
24 const SharedQuadState* shared_quad_state, 24 const SharedQuadState* shared_quad_state,
25 const gfx::Rect& rect, 25 const gfx::Rect& rect,
26 const gfx::Rect& visible_rect, 26 const gfx::Rect& visible_rect,
27 RenderPass::Id render_pass_id, 27 RenderPass::Id render_pass_id,
28 bool is_replica, 28 bool is_replica,
29 ResourceProvider::ResourceId mask_resource_id, 29 ResourceProvider::ResourceId mask_resource_id,
30 const gfx::Rect& contents_changed_since_last_frame, 30 const gfx::Rect& contents_changed_since_last_frame,
31 const gfx::RectF& mask_uv_rect, 31 const gfx::RectF& mask_uv_rect,
32 const FilterOperations& filters, 32 const FilterOperations& filters,
33 const gfx::Vector2dF& filters_scale,
33 const FilterOperations& background_filters) { 34 const FilterOperations& background_filters) {
34 DCHECK_GT(render_pass_id.layer_id, 0); 35 DCHECK_GT(render_pass_id.layer_id, 0);
35 DCHECK_GE(render_pass_id.index, 0); 36 DCHECK_GE(render_pass_id.index, 0);
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, rect, opaque_rect, visible_rect, needs_blending, 40 SetAll(shared_quad_state,
40 render_pass_id, is_replica, mask_resource_id, 41 rect,
41 contents_changed_since_last_frame, mask_uv_rect, filters, 42 opaque_rect,
43 visible_rect,
44 needs_blending,
45 render_pass_id,
46 is_replica,
47 mask_resource_id,
48 contents_changed_since_last_frame,
49 mask_uv_rect,
50 filters,
51 filters_scale,
42 background_filters); 52 background_filters);
43 } 53 }
44 54
45 void RenderPassDrawQuad::SetAll( 55 void RenderPassDrawQuad::SetAll(
46 const SharedQuadState* shared_quad_state, 56 const SharedQuadState* shared_quad_state,
47 const gfx::Rect& rect, 57 const gfx::Rect& rect,
48 const gfx::Rect& opaque_rect, 58 const gfx::Rect& opaque_rect,
49 const gfx::Rect& visible_rect, 59 const gfx::Rect& visible_rect,
50 bool needs_blending, 60 bool needs_blending,
51 RenderPass::Id render_pass_id, 61 RenderPass::Id render_pass_id,
52 bool is_replica, 62 bool is_replica,
53 ResourceProvider::ResourceId mask_resource_id, 63 ResourceProvider::ResourceId mask_resource_id,
54 const gfx::Rect& contents_changed_since_last_frame, 64 const gfx::Rect& contents_changed_since_last_frame,
55 const gfx::RectF& mask_uv_rect, 65 const gfx::RectF& mask_uv_rect,
56 const FilterOperations& filters, 66 const FilterOperations& filters,
67 const gfx::Vector2dF& filters_scale,
57 const FilterOperations& background_filters) { 68 const FilterOperations& background_filters) {
58 DCHECK_GT(render_pass_id.layer_id, 0); 69 DCHECK_GT(render_pass_id.layer_id, 0);
59 DCHECK_GE(render_pass_id.index, 0); 70 DCHECK_GE(render_pass_id.index, 0);
60 71
61 DrawQuad::SetAll(shared_quad_state, DrawQuad::RENDER_PASS, rect, opaque_rect, 72 DrawQuad::SetAll(shared_quad_state, DrawQuad::RENDER_PASS, rect, opaque_rect,
62 visible_rect, needs_blending); 73 visible_rect, needs_blending);
63 this->render_pass_id = render_pass_id; 74 this->render_pass_id = render_pass_id;
64 this->is_replica = is_replica; 75 this->is_replica = is_replica;
65 this->mask_resource_id = mask_resource_id; 76 this->mask_resource_id = mask_resource_id;
66 this->contents_changed_since_last_frame = contents_changed_since_last_frame; 77 this->contents_changed_since_last_frame = contents_changed_since_last_frame;
67 this->mask_uv_rect = mask_uv_rect; 78 this->mask_uv_rect = mask_uv_rect;
68 this->filters = filters; 79 this->filters = filters;
80 this->filters_scale = filters_scale;
69 this->background_filters = background_filters; 81 this->background_filters = background_filters;
70 } 82 }
71 83
72 void RenderPassDrawQuad::IterateResources( 84 void RenderPassDrawQuad::IterateResources(
73 const ResourceIteratorCallback& callback) { 85 const ResourceIteratorCallback& callback) {
74 if (mask_resource_id) 86 if (mask_resource_id)
75 mask_resource_id = callback.Run(mask_resource_id); 87 mask_resource_id = callback.Run(mask_resource_id);
76 } 88 }
77 89
78 const RenderPassDrawQuad* RenderPassDrawQuad::MaterialCast( 90 const RenderPassDrawQuad* RenderPassDrawQuad::MaterialCast(
79 const DrawQuad* quad) { 91 const DrawQuad* quad) {
80 DCHECK_EQ(quad->material, DrawQuad::RENDER_PASS); 92 DCHECK_EQ(quad->material, DrawQuad::RENDER_PASS);
81 return static_cast<const RenderPassDrawQuad*>(quad); 93 return static_cast<const RenderPassDrawQuad*>(quad);
82 } 94 }
83 95
84 void RenderPassDrawQuad::ExtendValue(base::DictionaryValue* value) const { 96 void RenderPassDrawQuad::ExtendValue(base::DictionaryValue* value) const {
85 value->Set("render_pass_id", 97 value->Set("render_pass_id",
86 TracedValue::CreateIDRef(render_pass_id.AsTracingId()).release()); 98 TracedValue::CreateIDRef(render_pass_id.AsTracingId()).release());
87 value->SetBoolean("is_replica", is_replica); 99 value->SetBoolean("is_replica", is_replica);
88 value->SetInteger("mask_resource_id", mask_resource_id); 100 value->SetInteger("mask_resource_id", mask_resource_id);
89 value->Set("contents_changed_since_last_frame", 101 value->Set("contents_changed_since_last_frame",
90 MathUtil::AsValue(contents_changed_since_last_frame).release()); 102 MathUtil::AsValue(contents_changed_since_last_frame).release());
91 value->Set("mask_uv_rect", MathUtil::AsValue(mask_uv_rect).release()); 103 value->Set("mask_uv_rect", MathUtil::AsValue(mask_uv_rect).release());
92 value->Set("filters", filters.AsValue().release()); 104 value->Set("filters", filters.AsValue().release());
105 value->Set("filters_scale", MathUtil::AsValue(filters_scale).release());
93 value->Set("background_filters", background_filters.AsValue().release()); 106 value->Set("background_filters", background_filters.AsValue().release());
94 } 107 }
95 108
96 } // namespace cc 109 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698