| 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 |