Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(66)

Side by Side Diff: third_party/WebKit/Source/modules/canvas2d/BaseRenderingContext2D.h

Issue 2797213002: Fix BaseRenderingContext2D create/put/get-ImageData() for color managed canvas (Closed)
Patch Set: Layout test added Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #ifndef BaseRenderingContext2D_h 5 #ifndef BaseRenderingContext2D_h
6 #define BaseRenderingContext2D_h 6 #define BaseRenderingContext2D_h
7 7
8 #include "bindings/modules/v8/CSSImageValueOrHTMLImageElementOrSVGImageElementOr HTMLVideoElementOrHTMLCanvasElementOrImageBitmapOrOffscreenCanvas.h" 8 #include "bindings/modules/v8/CSSImageValueOrHTMLImageElementOrSVGImageElementOr HTMLVideoElementOrHTMLCanvasElementOrImageBitmapOrOffscreenCanvas.h"
9 #include "bindings/modules/v8/StringOrCanvasGradientOrCanvasPattern.h" 9 #include "bindings/modules/v8/StringOrCanvasGradientOrCanvasPattern.h"
10 #include "core/html/ImageData.h" 10 #include "core/html/ImageData.h"
11 #include "core/html/canvas/CanvasRenderingContext.h"
11 #include "modules/ModulesExport.h" 12 #include "modules/ModulesExport.h"
12 #include "modules/canvas2d/CanvasGradient.h" 13 #include "modules/canvas2d/CanvasGradient.h"
13 #include "modules/canvas2d/CanvasPathMethods.h" 14 #include "modules/canvas2d/CanvasPathMethods.h"
14 #include "modules/canvas2d/CanvasRenderingContext2DState.h" 15 #include "modules/canvas2d/CanvasRenderingContext2DState.h"
15 #include "modules/canvas2d/CanvasStyle.h" 16 #include "modules/canvas2d/CanvasStyle.h"
16 #include "platform/graphics/ColorBehavior.h" 17 #include "platform/graphics/ColorBehavior.h"
17 #include "platform/graphics/ExpensiveCanvasHeuristicParameters.h" 18 #include "platform/graphics/ExpensiveCanvasHeuristicParameters.h"
18 #include "platform/graphics/paint/PaintCanvas.h" 19 #include "platform/graphics/paint/PaintCanvas.h"
19 #include "third_party/skia/include/effects/SkComposeImageFilter.h" 20 #include "third_party/skia/include/effects/SkComposeImageFilter.h"
20 21
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 static bool isFullCanvasCompositeMode(SkBlendMode); 368 static bool isFullCanvasCompositeMode(SkBlendMode);
368 369
369 template <typename DrawFunc> 370 template <typename DrawFunc>
370 void compositedDraw(const DrawFunc&, 371 void compositedDraw(const DrawFunc&,
371 PaintCanvas*, 372 PaintCanvas*,
372 CanvasRenderingContext2DState::PaintType, 373 CanvasRenderingContext2DState::PaintType,
373 CanvasRenderingContext2DState::ImageType); 374 CanvasRenderingContext2DState::ImageType);
374 375
375 void clearCanvas(); 376 void clearCanvas();
376 bool rectContainsTransformedRect(const FloatRect&, const SkIRect&) const; 377 bool rectContainsTransformedRect(const FloatRect&, const SkIRect&) const;
378
379 virtual CanvasRenderingContext* renderingContext() const { return nullptr; }
Justin Novosad 2017/04/06 19:01:04 This should either be a non-const method, or it sh
zakerinasab 2017/04/11 19:52:59 Done.
380
381 bool colorSettingsAsImageDataColorSettings(ImageDataColorSettings&) const;
377 }; 382 };
378 383
379 template <typename DrawFunc, typename ContainsFunc> 384 template <typename DrawFunc, typename ContainsFunc>
380 bool BaseRenderingContext2D::draw( 385 bool BaseRenderingContext2D::draw(
381 const DrawFunc& drawFunc, 386 const DrawFunc& drawFunc,
382 const ContainsFunc& drawCoversClipBounds, 387 const ContainsFunc& drawCoversClipBounds,
383 const SkRect& bounds, 388 const SkRect& bounds,
384 CanvasRenderingContext2DState::PaintType paintType, 389 CanvasRenderingContext2DState::PaintType paintType,
385 CanvasRenderingContext2DState::ImageType imageType) { 390 CanvasRenderingContext2DState::ImageType imageType) {
386 if (!state().isTransformInvertible()) 391 if (!state().isTransformInvertible())
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 foregroundFlags.setBlendMode(SkBlendMode::kSrcOver); 471 foregroundFlags.setBlendMode(SkBlendMode::kSrcOver);
467 c->setMatrix(ctm); 472 c->setMatrix(ctm);
468 drawFunc(c, &foregroundFlags); 473 drawFunc(c, &foregroundFlags);
469 c->restore(); 474 c->restore();
470 c->setMatrix(ctm); 475 c->setMatrix(ctm);
471 } 476 }
472 477
473 } // namespace blink 478 } // namespace blink
474 479
475 #endif // BaseRenderingContext2D_h 480 #endif // BaseRenderingContext2D_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698