Chromium Code Reviews| Index: third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp |
| diff --git a/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp b/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp |
| index 686f2ada187a97216ac8c8b2d231486b72b5a9d9..9ffa5ffdcf4af39327929ad294d5a5e9326a4f53 100644 |
| --- a/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp |
| +++ b/third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp |
| @@ -295,7 +295,7 @@ CanvasRenderingContext* HTMLCanvasElement::GetCanvasRenderingContext( |
| bool HTMLCanvasElement::ShouldBeDirectComposited() const { |
| return (context_ && context_->IsComposited()) || |
| - (HasImageBuffer() && Buffer()->IsExpensiveToPaint()) || |
| + (HasImageBuffer() && GetImageBuffer()->IsExpensiveToPaint()) || |
| (!!surface_layer_bridge_); |
| } |
| @@ -324,7 +324,7 @@ void HTMLCanvasElement::DidDraw(const FloatRect& rect) { |
| dirty_rect_.Unite(rect); |
| } |
| if (Is2d() && HasImageBuffer()) |
| - Buffer()->DidDraw(rect); |
| + GetImageBuffer()->DidDraw(rect); |
| } |
| void HTMLCanvasElement::DidDraw() { |
| @@ -432,7 +432,7 @@ void HTMLCanvasElement::DoDeferredPaintInvalidation() { |
| if (RuntimeEnabledFeatures:: |
| enableCanvas2dDynamicRenderingModeSwitchingEnabled() && |
| !RuntimeEnabledFeatures::canvas2dFixedRenderingModeEnabled()) { |
| - if (Is2d() && HasImageBuffer() && Buffer()->IsAccelerated() && |
| + if (Is2d() && HasImageBuffer() && GetImageBuffer()->IsAccelerated() && |
| num_frames_since_last_rendering_mode_switch_ >= |
| ExpensiveCanvasHeuristicParameters::kMinFramesBeforeSwitch && |
| !pending_rendering_mode_switch_) { |
| @@ -454,8 +454,8 @@ void HTMLCanvasElement::DoDeferredPaintInvalidation() { |
| } |
| } |
| - if (pending_rendering_mode_switch_ && Buffer() && |
| - !Buffer()->IsAccelerated()) { |
| + if (pending_rendering_mode_switch_ && GetImageBuffer() && |
| + !GetImageBuffer()->IsAccelerated()) { |
| pending_rendering_mode_switch_ = false; |
| } |
| @@ -488,7 +488,7 @@ void HTMLCanvasElement::Reset() { |
| // If the size of an existing buffer matches, we can just clear it instead of |
| // reallocating. This optimization is only done for 2D canvases for now. |
| if (had_image_buffer && old_size == new_size && Is2d() && |
| - !Buffer()->IsRecording()) { |
| + !GetImageBuffer()->IsRecording()) { |
| if (!image_buffer_is_clear_) { |
| image_buffer_is_clear_ = true; |
| context_->clearRect(0, 0, width(), height()); |
| @@ -601,7 +601,8 @@ void HTMLCanvasElement::Paint(GraphicsContext& context, const LayoutRect& r) { |
| !context_ || context_->CreationAttributes().alpha() |
| ? SkBlendMode::kSrcOver |
| : SkBlendMode::kSrc; |
| - Buffer()->Draw(context, PixelSnappedIntRect(r), 0, composite_operator); |
| + GetImageBuffer()->Draw(context, PixelSnappedIntRect(r), 0, |
| + composite_operator); |
| } |
| } else { |
| // When alpha is false, we should draw to opaque black. |
| @@ -642,7 +643,7 @@ const AtomicString HTMLCanvasElement::ImageSourceURL() const { |
| void HTMLCanvasElement::PrepareSurfaceForPaintingIfNeeded() const { |
| DCHECK(Is2d()); // This function is called by the 2d context |
| - if (Buffer()) |
| + if (GetImageBuffer()) |
| image_buffer_->PrepareSurfaceForPaintingIfNeeded(); |
| } |
| @@ -660,7 +661,7 @@ ImageData* HTMLCanvasElement::ToImageData(SourceDrawingBuffer source_buffer, |
| image_data = ImageData::Create(size_); |
| if (image_data && HasImageBuffer()) { |
| sk_sp<SkImage> snapshot = |
| - Buffer()->NewSkImageSnapshot(kPreferNoAcceleration, reason); |
| + GetImageBuffer()->NewSkImageSnapshot(kPreferNoAcceleration, reason); |
| if (snapshot) { |
| SkImageInfo image_info = SkImageInfo::Make( |
| width(), height(), kRGBA_8888_SkColorType, kUnpremul_SkAlphaType); |
| @@ -679,7 +680,8 @@ ImageData* HTMLCanvasElement::ToImageData(SourceDrawingBuffer source_buffer, |
| DCHECK(Is2d() || PlaceholderFrame()); |
| sk_sp<SkImage> snapshot; |
| if (HasImageBuffer()) { |
| - snapshot = Buffer()->NewSkImageSnapshot(kPreferNoAcceleration, reason); |
| + snapshot = |
| + GetImageBuffer()->NewSkImageSnapshot(kPreferNoAcceleration, reason); |
| } else if (PlaceholderFrame()) { |
| DCHECK(PlaceholderFrame()->OriginClean()); |
| snapshot = PlaceholderFrame()->ImageForCurrentFrame(); |
| @@ -1095,11 +1097,11 @@ void HTMLCanvasElement::UpdateExternallyAllocatedMemory() const { |
| } |
| PaintCanvas* HTMLCanvasElement::DrawingCanvas() const { |
| - return Buffer() ? image_buffer_->Canvas() : nullptr; |
| + return GetImageBuffer() ? image_buffer_->Canvas() : nullptr; |
| } |
| void HTMLCanvasElement::DisableDeferral(DisableDeferralReason reason) const { |
| - if (Buffer()) |
| + if (GetImageBuffer()) |
| image_buffer_->DisableDeferral(reason); |
| } |
| @@ -1110,7 +1112,7 @@ PaintCanvas* HTMLCanvasElement::ExistingDrawingCanvas() const { |
| return image_buffer_->Canvas(); |
| } |
| -ImageBuffer* HTMLCanvasElement::Buffer() const { |
| +ImageBuffer* HTMLCanvasElement::GetImageBuffer() const { |
|
Justin Novosad
2017/05/01 15:18:57
Nit (existed before this CL): This function does n
fserb
2017/05/02 18:49:30
done
|
| DCHECK(context_); |
| DCHECK(context_->GetContextType() != |
| CanvasRenderingContext::kContextImageBitmap); |
| @@ -1163,8 +1165,8 @@ PassRefPtr<Image> HTMLCanvasElement::CopiedImage( |
| // The concept of SourceDrawingBuffer is valid on only WebGL. |
| if (context_->Is3d()) |
| need_to_update |= context_->PaintRenderingResultsToCanvas(source_buffer); |
| - if (need_to_update && Buffer()) { |
| - copied_image_ = Buffer()->NewImageSnapshot(hint, snapshot_reason); |
| + if (need_to_update && GetImageBuffer()) { |
| + copied_image_ = GetImageBuffer()->NewImageSnapshot(hint, snapshot_reason); |
| UpdateExternallyAllocatedMemory(); |
| } |
| return copied_image_; |
| @@ -1222,7 +1224,7 @@ void HTMLCanvasElement::DidMoveToNewDocument(Document& old_document) { |
| void HTMLCanvasElement::WillDrawImageTo2DContext(CanvasImageSource* source) { |
| if (ExpensiveCanvasHeuristicParameters::kEnableAccelerationToAvoidReadbacks && |
| SharedGpuContext::AllowSoftwareToAcceleratedCanvasUpgrade() && |
| - source->IsAccelerated() && !Buffer()->IsAccelerated() && |
| + source->IsAccelerated() && !GetImageBuffer()->IsAccelerated() && |
| ShouldAccelerate(kIgnoreResourceLimitCriteria)) { |
| OpacityMode opacity_mode = |
| context_->CreationAttributes().alpha() ? kNonOpaque : kOpaque; |
| @@ -1230,7 +1232,7 @@ void HTMLCanvasElement::WillDrawImageTo2DContext(CanvasImageSource* source) { |
| std::unique_ptr<ImageBufferSurface> surface = |
| CreateAcceleratedImageBufferSurface(opacity_mode, &msaa_sample_count); |
| if (surface) { |
| - Buffer()->SetSurface(std::move(surface)); |
| + GetImageBuffer()->SetSurface(std::move(surface)); |
| SetNeedsCompositingUpdate(); |
| } |
| } |
| @@ -1277,7 +1279,7 @@ PassRefPtr<Image> HTMLCanvasElement::GetSourceImageForCanvas( |
| // cached copy of the backing in the canvas's ImageBuffer. |
| RenderingContext()->PaintRenderingResultsToCanvas(kBackBuffer); |
| if (HasImageBuffer()) { |
| - sk_image = Buffer()->NewSkImageSnapshot(hint, reason); |
| + sk_image = GetImageBuffer()->NewSkImageSnapshot(hint, reason); |
| } else { |
| sk_image = CreateTransparentSkImage(Size()); |
| } |
| @@ -1286,8 +1288,8 @@ PassRefPtr<Image> HTMLCanvasElement::GetSourceImageForCanvas( |
| kDisableAccelerationToAvoidReadbacks && |
| !RuntimeEnabledFeatures::canvas2dFixedRenderingModeEnabled() && |
| hint == kPreferNoAcceleration && HasImageBuffer() && |
| - Buffer()->IsAccelerated()) { |
| - Buffer()->DisableAcceleration(); |
| + GetImageBuffer()->IsAccelerated()) { |
| + GetImageBuffer()->DisableAcceleration(); |
| } |
| RefPtr<Image> image = RenderingContext()->GetImage(hint, reason); |
| if (image) { |