OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/output/software_renderer.h" | 5 #include "cc/output/software_renderer.h" |
6 | 6 |
7 #include "cc/layers/quad_sink.h" | 7 #include "cc/layers/quad_sink.h" |
8 #include "cc/output/compositor_frame_metadata.h" | 8 #include "cc/output/compositor_frame_metadata.h" |
9 #include "cc/output/software_output_device.h" | 9 #include "cc/output/software_output_device.h" |
10 #include "cc/quads/render_pass.h" | 10 #include "cc/quads/render_pass.h" |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 | 42 |
43 void set_viewport_size(gfx::Size viewport_size) { | 43 void set_viewport_size(gfx::Size viewport_size) { |
44 viewport_size_ = viewport_size; | 44 viewport_size_ = viewport_size; |
45 } | 45 } |
46 | 46 |
47 void set_should_clear_root_render_pass(bool clear_root_render_pass) { | 47 void set_should_clear_root_render_pass(bool clear_root_render_pass) { |
48 should_clear_root_render_pass_ = clear_root_render_pass; | 48 should_clear_root_render_pass_ = clear_root_render_pass; |
49 } | 49 } |
50 | 50 |
51 // RendererClient implementation. | 51 // RendererClient implementation. |
52 virtual gfx::Size DeviceViewportSize() const OVERRIDE { | 52 virtual gfx::Rect DeviceViewport() const OVERRIDE { |
53 return viewport_size_; | 53 return gfx::Rect(viewport_size_); |
54 } | 54 } |
55 virtual float DeviceScaleFactor() const OVERRIDE { | 55 virtual float DeviceScaleFactor() const OVERRIDE { |
56 return 1.f; | 56 return 1.f; |
57 } | 57 } |
58 virtual const LayerTreeSettings& Settings() const OVERRIDE { | 58 virtual const LayerTreeSettings& Settings() const OVERRIDE { |
59 return settings_; | 59 return settings_; |
60 } | 60 } |
61 virtual void SetFullRootLayerDamage() OVERRIDE {} | 61 virtual void SetFullRootLayerDamage() OVERRIDE {} |
62 virtual void SetManagedMemoryPolicy(const ManagedMemoryPolicy& policy) | 62 virtual void SetManagedMemoryPolicy(const ManagedMemoryPolicy& policy) |
63 OVERRIDE {} | 63 OVERRIDE {} |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 inner_quad->SetNew(shared_quad_state.get(), inner_rect, SK_ColorCYAN, false); | 106 inner_quad->SetNew(shared_quad_state.get(), inner_rect, SK_ColorCYAN, false); |
107 root_render_pass->AppendQuad(inner_quad.PassAs<DrawQuad>()); | 107 root_render_pass->AppendQuad(inner_quad.PassAs<DrawQuad>()); |
108 root_render_pass->AppendQuad(outer_quad.PassAs<DrawQuad>()); | 108 root_render_pass->AppendQuad(outer_quad.PassAs<DrawQuad>()); |
109 | 109 |
110 RenderPassList list; | 110 RenderPassList list; |
111 list.push_back(root_render_pass.PassAs<RenderPass>()); | 111 list.push_back(root_render_pass.PassAs<RenderPass>()); |
112 renderer()->DrawFrame(&list); | 112 renderer()->DrawFrame(&list); |
113 | 113 |
114 SkBitmap output; | 114 SkBitmap output; |
115 output.setConfig(SkBitmap::kARGB_8888_Config, | 115 output.setConfig(SkBitmap::kARGB_8888_Config, |
116 DeviceViewportSize().width(), | 116 DeviceViewport().width(), |
117 DeviceViewportSize().height()); | 117 DeviceViewport().height()); |
118 output.allocPixels(); | 118 output.allocPixels(); |
119 renderer()->GetFramebufferPixels(output.getPixels(), outer_rect); | 119 renderer()->GetFramebufferPixels(output.getPixels(), outer_rect); |
120 | 120 |
121 EXPECT_EQ(SK_ColorYELLOW, output.getColor(0, 0)); | 121 EXPECT_EQ(SK_ColorYELLOW, output.getColor(0, 0)); |
122 EXPECT_EQ(SK_ColorYELLOW, | 122 EXPECT_EQ(SK_ColorYELLOW, |
123 output.getColor(outer_size.width() - 1, outer_size.height() - 1)); | 123 output.getColor(outer_size.width() - 1, outer_size.height() - 1)); |
124 EXPECT_EQ(SK_ColorCYAN, output.getColor(1, 1)); | 124 EXPECT_EQ(SK_ColorCYAN, output.getColor(1, 1)); |
125 EXPECT_EQ(SK_ColorCYAN, | 125 EXPECT_EQ(SK_ColorCYAN, |
126 output.getColor(inner_size.width() - 1, inner_size.height() - 1)); | 126 output.getColor(inner_size.width() - 1, inner_size.height() - 1)); |
127 } | 127 } |
(...skipping 30 matching lines...) Expand all Loading... |
158 static_cast<uint8_t*>(yellow_tile.getPixels()), | 158 static_cast<uint8_t*>(yellow_tile.getPixels()), |
159 gfx::Rect(outer_size), | 159 gfx::Rect(outer_size), |
160 gfx::Rect(outer_size), | 160 gfx::Rect(outer_size), |
161 gfx::Vector2d()); | 161 gfx::Vector2d()); |
162 resource_provider()->SetPixels(resource_cyan, | 162 resource_provider()->SetPixels(resource_cyan, |
163 static_cast<uint8_t*>(cyan_tile.getPixels()), | 163 static_cast<uint8_t*>(cyan_tile.getPixels()), |
164 gfx::Rect(inner_size), | 164 gfx::Rect(inner_size), |
165 gfx::Rect(inner_size), | 165 gfx::Rect(inner_size), |
166 gfx::Vector2d()); | 166 gfx::Vector2d()); |
167 | 167 |
168 gfx::Rect root_rect = gfx::Rect(DeviceViewportSize()); | 168 gfx::Rect root_rect = DeviceViewport(); |
169 | 169 |
170 scoped_ptr<SharedQuadState> shared_quad_state = SharedQuadState::Create(); | 170 scoped_ptr<SharedQuadState> shared_quad_state = SharedQuadState::Create(); |
171 shared_quad_state->SetAll( | 171 shared_quad_state->SetAll( |
172 gfx::Transform(), outer_size, outer_rect, outer_rect, false, 1.0); | 172 gfx::Transform(), outer_size, outer_rect, outer_rect, false, 1.0); |
173 RenderPass::Id root_render_pass_id = RenderPass::Id(1, 1); | 173 RenderPass::Id root_render_pass_id = RenderPass::Id(1, 1); |
174 scoped_ptr<TestRenderPass> root_render_pass = TestRenderPass::Create(); | 174 scoped_ptr<TestRenderPass> root_render_pass = TestRenderPass::Create(); |
175 root_render_pass->SetNew( | 175 root_render_pass->SetNew( |
176 root_render_pass_id, root_rect, root_rect, gfx::Transform()); | 176 root_render_pass_id, root_rect, root_rect, gfx::Transform()); |
177 scoped_ptr<TileDrawQuad> outer_quad = TileDrawQuad::Create(); | 177 scoped_ptr<TileDrawQuad> outer_quad = TileDrawQuad::Create(); |
178 outer_quad->SetNew(shared_quad_state.get(), | 178 outer_quad->SetNew(shared_quad_state.get(), |
(...skipping 13 matching lines...) Expand all Loading... |
192 false); | 192 false); |
193 root_render_pass->AppendQuad(inner_quad.PassAs<DrawQuad>()); | 193 root_render_pass->AppendQuad(inner_quad.PassAs<DrawQuad>()); |
194 root_render_pass->AppendQuad(outer_quad.PassAs<DrawQuad>()); | 194 root_render_pass->AppendQuad(outer_quad.PassAs<DrawQuad>()); |
195 | 195 |
196 RenderPassList list; | 196 RenderPassList list; |
197 list.push_back(root_render_pass.PassAs<RenderPass>()); | 197 list.push_back(root_render_pass.PassAs<RenderPass>()); |
198 renderer()->DrawFrame(&list); | 198 renderer()->DrawFrame(&list); |
199 | 199 |
200 SkBitmap output; | 200 SkBitmap output; |
201 output.setConfig(SkBitmap::kARGB_8888_Config, | 201 output.setConfig(SkBitmap::kARGB_8888_Config, |
202 DeviceViewportSize().width(), | 202 DeviceViewport().width(), |
203 DeviceViewportSize().height()); | 203 DeviceViewport().height()); |
204 output.allocPixels(); | 204 output.allocPixels(); |
205 renderer()->GetFramebufferPixels(output.getPixels(), outer_rect); | 205 renderer()->GetFramebufferPixels(output.getPixels(), outer_rect); |
206 | 206 |
207 EXPECT_EQ(SK_ColorYELLOW, output.getColor(0, 0)); | 207 EXPECT_EQ(SK_ColorYELLOW, output.getColor(0, 0)); |
208 EXPECT_EQ(SK_ColorYELLOW, | 208 EXPECT_EQ(SK_ColorYELLOW, |
209 output.getColor(outer_size.width() - 1, outer_size.height() - 1)); | 209 output.getColor(outer_size.width() - 1, outer_size.height() - 1)); |
210 EXPECT_EQ(SK_ColorCYAN, output.getColor(1, 1)); | 210 EXPECT_EQ(SK_ColorCYAN, output.getColor(1, 1)); |
211 EXPECT_EQ(SK_ColorCYAN, | 211 EXPECT_EQ(SK_ColorCYAN, |
212 output.getColor(inner_size.width() - 1, inner_size.height() - 1)); | 212 output.getColor(inner_size.width() - 1, inner_size.height() - 1)); |
213 } | 213 } |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
261 output.getColor(viewport_rect.width() - 1, viewport_rect.height() - 1)); | 261 output.getColor(viewport_rect.width() - 1, viewport_rect.height() - 1)); |
262 | 262 |
263 EXPECT_EQ(SK_ColorMAGENTA, | 263 EXPECT_EQ(SK_ColorMAGENTA, |
264 output.getColor(smaller_rect.x(), smaller_rect.y())); | 264 output.getColor(smaller_rect.x(), smaller_rect.y())); |
265 EXPECT_EQ(SK_ColorMAGENTA, | 265 EXPECT_EQ(SK_ColorMAGENTA, |
266 output.getColor(smaller_rect.right() - 1, smaller_rect.bottom() - 1)); | 266 output.getColor(smaller_rect.right() - 1, smaller_rect.bottom() - 1)); |
267 } | 267 } |
268 | 268 |
269 } // namespace | 269 } // namespace |
270 } // namespace cc | 270 } // namespace cc |
OLD | NEW |