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