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 "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
8 #include "base/trace_event/trace_event.h" | 8 #include "base/trace_event/trace_event.h" |
9 #include "cc/base/math_util.h" | 9 #include "cc/base/math_util.h" |
10 #include "cc/output/compositor_frame.h" | 10 #include "cc/output/compositor_frame.h" |
11 #include "cc/output/compositor_frame_metadata.h" | 11 #include "cc/output/compositor_frame_metadata.h" |
12 #include "cc/output/copy_output_request.h" | 12 #include "cc/output/copy_output_request.h" |
13 #include "cc/output/output_surface.h" | 13 #include "cc/output/output_surface.h" |
14 #include "cc/output/render_surface_filters.h" | 14 #include "cc/output/render_surface_filters.h" |
| 15 #include "cc/output/renderer_settings.h" |
15 #include "cc/output/software_output_device.h" | 16 #include "cc/output/software_output_device.h" |
16 #include "cc/quads/debug_border_draw_quad.h" | 17 #include "cc/quads/debug_border_draw_quad.h" |
17 #include "cc/quads/picture_draw_quad.h" | 18 #include "cc/quads/picture_draw_quad.h" |
18 #include "cc/quads/render_pass_draw_quad.h" | 19 #include "cc/quads/render_pass_draw_quad.h" |
19 #include "cc/quads/solid_color_draw_quad.h" | 20 #include "cc/quads/solid_color_draw_quad.h" |
20 #include "cc/quads/texture_draw_quad.h" | 21 #include "cc/quads/texture_draw_quad.h" |
21 #include "cc/quads/tile_draw_quad.h" | 22 #include "cc/quads/tile_draw_quad.h" |
| 23 #include "cc/resources/scoped_resource.h" |
22 #include "skia/ext/opacity_filter_canvas.h" | 24 #include "skia/ext/opacity_filter_canvas.h" |
23 #include "third_party/skia/include/core/SkCanvas.h" | 25 #include "third_party/skia/include/core/SkCanvas.h" |
24 #include "third_party/skia/include/core/SkColor.h" | 26 #include "third_party/skia/include/core/SkColor.h" |
25 #include "third_party/skia/include/core/SkImageFilter.h" | 27 #include "third_party/skia/include/core/SkImageFilter.h" |
26 #include "third_party/skia/include/core/SkMatrix.h" | 28 #include "third_party/skia/include/core/SkMatrix.h" |
27 #include "third_party/skia/include/core/SkPath.h" | 29 #include "third_party/skia/include/core/SkPath.h" |
28 #include "third_party/skia/include/core/SkPoint.h" | 30 #include "third_party/skia/include/core/SkPoint.h" |
29 #include "third_party/skia/include/core/SkShader.h" | 31 #include "third_party/skia/include/core/SkShader.h" |
30 #include "third_party/skia/include/effects/SkLayerRasterizer.h" | 32 #include "third_party/skia/include/effects/SkLayerRasterizer.h" |
31 #include "ui/gfx/geometry/rect_conversions.h" | 33 #include "ui/gfx/geometry/rect_conversions.h" |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 TRACE_EVENT0("cc", "SoftwareRenderer::FinishDrawingFrame"); | 87 TRACE_EVENT0("cc", "SoftwareRenderer::FinishDrawingFrame"); |
86 current_framebuffer_lock_ = nullptr; | 88 current_framebuffer_lock_ = nullptr; |
87 current_framebuffer_canvas_.reset(); | 89 current_framebuffer_canvas_.reset(); |
88 current_canvas_ = nullptr; | 90 current_canvas_ = nullptr; |
89 root_canvas_ = nullptr; | 91 root_canvas_ = nullptr; |
90 | 92 |
91 output_device_->EndPaint(); | 93 output_device_->EndPaint(); |
92 } | 94 } |
93 | 95 |
94 void SoftwareRenderer::SwapBuffers(CompositorFrameMetadata metadata) { | 96 void SoftwareRenderer::SwapBuffers(CompositorFrameMetadata metadata) { |
95 DCHECK(visible()); | 97 DCHECK(visible_); |
96 TRACE_EVENT0("cc,benchmark", "SoftwareRenderer::SwapBuffers"); | 98 TRACE_EVENT0("cc,benchmark", "SoftwareRenderer::SwapBuffers"); |
97 CompositorFrame compositor_frame; | 99 CompositorFrame compositor_frame; |
98 compositor_frame.metadata = std::move(metadata); | 100 compositor_frame.metadata = std::move(metadata); |
99 output_surface_->SwapBuffers(std::move(compositor_frame)); | 101 output_surface_->SwapBuffers(std::move(compositor_frame)); |
100 } | 102 } |
101 | 103 |
102 bool SoftwareRenderer::FlippedFramebuffer(const DrawingFrame* frame) const { | 104 bool SoftwareRenderer::FlippedFramebuffer(const DrawingFrame* frame) const { |
103 return false; | 105 return false; |
104 } | 106 } |
105 | 107 |
(...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
588 std::unique_ptr<SkBitmap> bitmap(new SkBitmap); | 590 std::unique_ptr<SkBitmap> bitmap(new SkBitmap); |
589 bitmap->setInfo(SkImageInfo::MakeN32Premul(window_copy_rect.width(), | 591 bitmap->setInfo(SkImageInfo::MakeN32Premul(window_copy_rect.width(), |
590 window_copy_rect.height())); | 592 window_copy_rect.height())); |
591 current_canvas_->readPixels( | 593 current_canvas_->readPixels( |
592 bitmap.get(), window_copy_rect.x(), window_copy_rect.y()); | 594 bitmap.get(), window_copy_rect.x(), window_copy_rect.y()); |
593 | 595 |
594 request->SendBitmapResult(std::move(bitmap)); | 596 request->SendBitmapResult(std::move(bitmap)); |
595 } | 597 } |
596 | 598 |
597 void SoftwareRenderer::DidChangeVisibility() { | 599 void SoftwareRenderer::DidChangeVisibility() { |
598 if (visible()) | 600 if (visible_) |
599 output_surface_->EnsureBackbuffer(); | 601 output_surface_->EnsureBackbuffer(); |
600 else | 602 else |
601 output_surface_->DiscardBackbuffer(); | 603 output_surface_->DiscardBackbuffer(); |
602 } | 604 } |
603 | 605 |
604 bool SoftwareRenderer::ShouldApplyBackgroundFilters( | 606 bool SoftwareRenderer::ShouldApplyBackgroundFilters( |
605 const RenderPassDrawQuad* quad) const { | 607 const RenderPassDrawQuad* quad) const { |
606 if (quad->background_filters.IsEmpty()) | 608 if (quad->background_filters.IsEmpty()) |
607 return false; | 609 return false; |
608 | 610 |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
719 ApplyImageFilter(filter.get(), quad, backdrop_bitmap, nullptr); | 721 ApplyImageFilter(filter.get(), quad, backdrop_bitmap, nullptr); |
720 | 722 |
721 if (!filter_backdrop_image) | 723 if (!filter_backdrop_image) |
722 return nullptr; | 724 return nullptr; |
723 | 725 |
724 return filter_backdrop_image->makeShader(content_tile_mode, content_tile_mode, | 726 return filter_backdrop_image->makeShader(content_tile_mode, content_tile_mode, |
725 &filter_backdrop_transform); | 727 &filter_backdrop_transform); |
726 } | 728 } |
727 | 729 |
728 } // namespace cc | 730 } // namespace cc |
OLD | NEW |