| 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/direct_renderer.h" | 5 #include "cc/output/direct_renderer.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <unordered_map> | 9 #include <unordered_map> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 193 auto& resource = render_pass_textures_[pass->id]; | 193 auto& resource = render_pass_textures_[pass->id]; |
| 194 if (!resource) | 194 if (!resource) |
| 195 resource = ScopedResource::Create(resource_provider_); | 195 resource = ScopedResource::Create(resource_provider_); |
| 196 } | 196 } |
| 197 } | 197 } |
| 198 | 198 |
| 199 void DirectRenderer::DrawFrame(RenderPassList* render_passes_in_draw_order, | 199 void DirectRenderer::DrawFrame(RenderPassList* render_passes_in_draw_order, |
| 200 float device_scale_factor, | 200 float device_scale_factor, |
| 201 const gfx::ColorSpace& device_color_space, | 201 const gfx::ColorSpace& device_color_space, |
| 202 const gfx::Rect& device_viewport_rect, | 202 const gfx::Rect& device_viewport_rect, |
| 203 const gfx::Rect& device_clip_rect, | 203 const gfx::Rect& device_clip_rect) { |
| 204 bool disable_picture_quad_image_filtering) { | |
| 205 TRACE_EVENT0("cc", "DirectRenderer::DrawFrame"); | 204 TRACE_EVENT0("cc", "DirectRenderer::DrawFrame"); |
| 206 UMA_HISTOGRAM_COUNTS( | 205 UMA_HISTOGRAM_COUNTS( |
| 207 "Renderer4.renderPassCount", | 206 "Renderer4.renderPassCount", |
| 208 base::saturated_cast<int>(render_passes_in_draw_order->size())); | 207 base::saturated_cast<int>(render_passes_in_draw_order->size())); |
| 209 | 208 |
| 210 RenderPass* root_render_pass = render_passes_in_draw_order->back().get(); | 209 RenderPass* root_render_pass = render_passes_in_draw_order->back().get(); |
| 211 DCHECK(root_render_pass); | 210 DCHECK(root_render_pass); |
| 212 | 211 |
| 213 DrawingFrame frame; | 212 DrawingFrame frame; |
| 214 frame.render_passes_in_draw_order = render_passes_in_draw_order; | 213 frame.render_passes_in_draw_order = render_passes_in_draw_order; |
| 215 frame.root_render_pass = root_render_pass; | 214 frame.root_render_pass = root_render_pass; |
| 216 frame.root_damage_rect = root_render_pass->damage_rect; | 215 frame.root_damage_rect = root_render_pass->damage_rect; |
| 217 frame.root_damage_rect.Union(overlay_processor_->GetAndResetOverlayDamage()); | 216 frame.root_damage_rect.Union(overlay_processor_->GetAndResetOverlayDamage()); |
| 218 frame.root_damage_rect.Intersect(gfx::Rect(device_viewport_rect.size())); | 217 frame.root_damage_rect.Intersect(gfx::Rect(device_viewport_rect.size())); |
| 219 frame.device_viewport_rect = device_viewport_rect; | 218 frame.device_viewport_rect = device_viewport_rect; |
| 220 frame.device_clip_rect = device_clip_rect; | 219 frame.device_clip_rect = device_clip_rect; |
| 221 frame.disable_picture_quad_image_filtering = | |
| 222 disable_picture_quad_image_filtering; | |
| 223 | 220 |
| 224 EnsureBackbuffer(); | 221 EnsureBackbuffer(); |
| 225 | 222 |
| 226 // Only reshape when we know we are going to draw. Otherwise, the reshape | 223 // Only reshape when we know we are going to draw. Otherwise, the reshape |
| 227 // can leave the window at the wrong size if we never draw and the proper | 224 // can leave the window at the wrong size if we never draw and the proper |
| 228 // viewport size is never set. | 225 // viewport size is never set. |
| 229 output_surface_->Reshape(device_viewport_rect.size(), device_scale_factor, | 226 output_surface_->Reshape(device_viewport_rect.size(), device_scale_factor, |
| 230 device_color_space, | 227 device_color_space, |
| 231 frame.root_render_pass->has_transparent_background); | 228 frame.root_render_pass->has_transparent_background); |
| 232 | 229 |
| (...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 573 auto iter = render_pass_textures_.find(id); | 570 auto iter = render_pass_textures_.find(id); |
| 574 return iter != render_pass_textures_.end() && iter->second->id(); | 571 return iter != render_pass_textures_.end() && iter->second->id(); |
| 575 } | 572 } |
| 576 | 573 |
| 577 // static | 574 // static |
| 578 gfx::Size DirectRenderer::RenderPassTextureSize(const RenderPass* render_pass) { | 575 gfx::Size DirectRenderer::RenderPassTextureSize(const RenderPass* render_pass) { |
| 579 return render_pass->output_rect.size(); | 576 return render_pass->output_rect.size(); |
| 580 } | 577 } |
| 581 | 578 |
| 582 } // namespace cc | 579 } // namespace cc |
| OLD | NEW |