| 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 <utility> | 7 #include <utility> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/containers/hash_tables.h" | 10 #include "base/containers/hash_tables.h" |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 void DirectRenderer::QuadRectTransform(gfx::Transform* quad_rect_transform, | 74 void DirectRenderer::QuadRectTransform(gfx::Transform* quad_rect_transform, |
| 75 const gfx::Transform& quad_transform, | 75 const gfx::Transform& quad_transform, |
| 76 const gfx::RectF& quad_rect) { | 76 const gfx::RectF& quad_rect) { |
| 77 *quad_rect_transform = quad_transform; | 77 *quad_rect_transform = quad_transform; |
| 78 quad_rect_transform->Translate(0.5 * quad_rect.width() + quad_rect.x(), | 78 quad_rect_transform->Translate(0.5 * quad_rect.width() + quad_rect.x(), |
| 79 0.5 * quad_rect.height() + quad_rect.y()); | 79 0.5 * quad_rect.height() + quad_rect.y()); |
| 80 quad_rect_transform->Scale(quad_rect.width(), quad_rect.height()); | 80 quad_rect_transform->Scale(quad_rect.width(), quad_rect.height()); |
| 81 } | 81 } |
| 82 | 82 |
| 83 void DirectRenderer::InitializeViewport(DrawingFrame* frame, | 83 void DirectRenderer::InitializeViewport(DrawingFrame* frame, |
| 84 gfx::Rect draw_rect, | 84 const gfx::Rect& draw_rect, |
| 85 gfx::Rect viewport_rect, | 85 const gfx::Rect& viewport_rect, |
| 86 gfx::Size surface_size) { | 86 gfx::Size surface_size) { |
| 87 bool flip_y = FlippedFramebuffer(); | 87 bool flip_y = FlippedFramebuffer(); |
| 88 | 88 |
| 89 DCHECK_GE(viewport_rect.x(), 0); | 89 DCHECK_GE(viewport_rect.x(), 0); |
| 90 DCHECK_GE(viewport_rect.y(), 0); | 90 DCHECK_GE(viewport_rect.y(), 0); |
| 91 DCHECK_LE(viewport_rect.right(), surface_size.width()); | 91 DCHECK_LE(viewport_rect.right(), surface_size.width()); |
| 92 DCHECK_LE(viewport_rect.bottom(), surface_size.height()); | 92 DCHECK_LE(viewport_rect.bottom(), surface_size.height()); |
| 93 if (flip_y) { | 93 if (flip_y) { |
| 94 frame->projection_matrix = OrthoProjectionMatrix(draw_rect.x(), | 94 frame->projection_matrix = OrthoProjectionMatrix(draw_rect.x(), |
| 95 draw_rect.right(), | 95 draw_rect.right(), |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 188 ScopedResource::Create(resource_provider_); | 188 ScopedResource::Create(resource_provider_); |
| 189 render_pass_textures_.set(render_passes_in_draw_order[i]->id, | 189 render_pass_textures_.set(render_passes_in_draw_order[i]->id, |
| 190 texture.Pass()); | 190 texture.Pass()); |
| 191 } | 191 } |
| 192 } | 192 } |
| 193 } | 193 } |
| 194 | 194 |
| 195 void DirectRenderer::DrawFrame(RenderPassList* render_passes_in_draw_order, | 195 void DirectRenderer::DrawFrame(RenderPassList* render_passes_in_draw_order, |
| 196 ContextProvider* offscreen_context_provider, | 196 ContextProvider* offscreen_context_provider, |
| 197 float device_scale_factor, | 197 float device_scale_factor, |
| 198 gfx::Rect device_viewport_rect, | 198 const gfx::Rect& device_viewport_rect, |
| 199 gfx::Rect device_clip_rect, | 199 const gfx::Rect& device_clip_rect, |
| 200 bool allow_partial_swap, | 200 bool allow_partial_swap, |
| 201 bool disable_picture_quad_image_filtering) { | 201 bool disable_picture_quad_image_filtering) { |
| 202 TRACE_EVENT0("cc", "DirectRenderer::DrawFrame"); | 202 TRACE_EVENT0("cc", "DirectRenderer::DrawFrame"); |
| 203 UMA_HISTOGRAM_COUNTS("Renderer4.renderPassCount", | 203 UMA_HISTOGRAM_COUNTS("Renderer4.renderPassCount", |
| 204 render_passes_in_draw_order->size()); | 204 render_passes_in_draw_order->size()); |
| 205 | 205 |
| 206 const RenderPass* root_render_pass = render_passes_in_draw_order->back(); | 206 const RenderPass* root_render_pass = render_passes_in_draw_order->back(); |
| 207 DCHECK(root_render_pass); | 207 DCHECK(root_render_pass); |
| 208 | 208 |
| 209 DrawingFrame frame; | 209 DrawingFrame frame; |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 310 | 310 |
| 311 if (quad_scissor_rect.IsEmpty()) { | 311 if (quad_scissor_rect.IsEmpty()) { |
| 312 *should_skip_quad = true; | 312 *should_skip_quad = true; |
| 313 return; | 313 return; |
| 314 } | 314 } |
| 315 | 315 |
| 316 *should_skip_quad = false; | 316 *should_skip_quad = false; |
| 317 SetScissorTestRectInDrawSpace(frame, quad_scissor_rect); | 317 SetScissorTestRectInDrawSpace(frame, quad_scissor_rect); |
| 318 } | 318 } |
| 319 | 319 |
| 320 void DirectRenderer::SetScissorTestRectInDrawSpace(const DrawingFrame* frame, | 320 void DirectRenderer::SetScissorTestRectInDrawSpace( |
| 321 gfx::RectF draw_space_rect) { | 321 const DrawingFrame* frame, |
| 322 const gfx::RectF& draw_space_rect) { |
| 322 gfx::Rect window_space_rect = MoveFromDrawToWindowSpace(draw_space_rect); | 323 gfx::Rect window_space_rect = MoveFromDrawToWindowSpace(draw_space_rect); |
| 323 if (NeedDeviceClip(frame)) | 324 if (NeedDeviceClip(frame)) |
| 324 window_space_rect.Intersect(DeviceClipRectInWindowSpace(frame)); | 325 window_space_rect.Intersect(DeviceClipRectInWindowSpace(frame)); |
| 325 SetScissorTestRect(window_space_rect); | 326 SetScissorTestRect(window_space_rect); |
| 326 } | 327 } |
| 327 | 328 |
| 328 void DirectRenderer::FinishDrawingQuadList() {} | 329 void DirectRenderer::FinishDrawingQuadList() {} |
| 329 | 330 |
| 330 void DirectRenderer::DrawRenderPass(DrawingFrame* frame, | 331 void DirectRenderer::DrawRenderPass(DrawingFrame* frame, |
| 331 const RenderPass* render_pass, | 332 const RenderPass* render_pass, |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 420 ScopedResource* texture = render_pass_textures_.get(id); | 421 ScopedResource* texture = render_pass_textures_.get(id); |
| 421 return texture && texture->id(); | 422 return texture && texture->id(); |
| 422 } | 423 } |
| 423 | 424 |
| 424 // static | 425 // static |
| 425 gfx::Size DirectRenderer::RenderPassTextureSize(const RenderPass* render_pass) { | 426 gfx::Size DirectRenderer::RenderPassTextureSize(const RenderPass* render_pass) { |
| 426 return render_pass->output_rect.size(); | 427 return render_pass->output_rect.size(); |
| 427 } | 428 } |
| 428 | 429 |
| 429 } // namespace cc | 430 } // namespace cc |
| OLD | NEW |