Index: third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2DTest.cpp |
diff --git a/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2DTest.cpp b/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2DTest.cpp |
index fdaa4b3c18d1683b8077f62a7d714680af2ac868..366faffe9ab932657a7535fb052456523e64c57e 100644 |
--- a/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2DTest.cpp |
+++ b/third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2DTest.cpp |
@@ -97,6 +97,8 @@ PassRefPtr<Image> FakeImageSource::getSourceImageForCanvas( |
//============================================================================ |
+enum LinearPixelMathState { LinearPixelMathDisabled, LinearPixelMathEnabled }; |
+ |
class CanvasRenderingContext2DTest : public ::testing::Test { |
protected: |
CanvasRenderingContext2DTest(); |
@@ -119,7 +121,9 @@ class CanvasRenderingContext2DTest : public ::testing::Test { |
return canvasElement().buffer()->getGPUMemoryUsage(); |
} |
- void createContext(OpacityMode, String colorSpace = String()); |
+ void createContext(OpacityMode, |
+ String colorSpace = String(), |
+ LinearPixelMathState = LinearPixelMathDisabled); |
ScriptState* getScriptState() { |
return ScriptState::forMainWorld(m_canvasElement->frame()); |
} |
@@ -174,13 +178,20 @@ CanvasRenderingContext2DTest::CanvasRenderingContext2DTest() |
m_opaqueBitmap(IntSize(10, 10), OpaqueBitmap), |
m_alphaBitmap(IntSize(10, 10), TransparentBitmap) {} |
-void CanvasRenderingContext2DTest::createContext(OpacityMode opacityMode, |
- String colorSpace) { |
+void CanvasRenderingContext2DTest::createContext( |
+ OpacityMode opacityMode, |
+ String colorSpace, |
+ LinearPixelMathState linearPixelMathState) { |
String canvasType("2d"); |
CanvasContextCreationAttributes attributes; |
attributes.setAlpha(opacityMode == NonOpaque); |
- if (!colorSpace.isEmpty()) |
+ if (!colorSpace.isEmpty()) { |
attributes.setColorSpace(colorSpace); |
+ if (linearPixelMathState == LinearPixelMathEnabled) { |
+ attributes.setPixelFormat("float16"); |
+ attributes.setLinearPixelMath(true); |
+ } |
+ } |
m_canvasElement->getCanvasRenderingContext(canvasType, attributes); |
} |
@@ -1225,7 +1236,7 @@ TEST_F(CanvasRenderingContext2DTest, |
ColorBehavior::globalTargetColorSpace(); |
ColorBehavior::setGlobalTargetColorSpaceForTesting(AdobeRGBColorSpace()); |
- createContext(NonOpaque, "linear-rgb"); |
+ createContext(NonOpaque, "srgb", LinearPixelMathEnabled); |
ColorBehavior behavior = context2d()->drawImageColorBehavior(); |
EXPECT_TRUE(behavior.isTransformToTargetColorSpace()); |
EXPECT_TRUE(gfx::ColorSpace::CreateSCRGBLinear() == |