diff options
author | commit-queue@webkit.org <commit-queue@webkit.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538> | 2012-06-14 18:33:03 +0000 |
---|---|---|
committer | commit-queue@webkit.org <commit-queue@webkit.org@bbb929c8-8fbe-4397-9dbb-9b2b20218538> | 2012-06-14 18:33:03 +0000 |
commit | a4d44d380a46482d9be4212533ce4f9de9ef5304 (patch) | |
tree | 840d8ca88d0eacba2e3f73448d789084d11e658c /third_party/WebKit/LayoutTests/fast/canvas/canvas-imageSmoothingEnabled-repaint.html | |
parent | 343a57a407899396c515d08db24893fbd1e7b461 (diff) | |
download | chromium_src-a4d44d380a46482d9be4212533ce4f9de9ef5304.zip chromium_src-a4d44d380a46482d9be4212533ce4f9de9ef5304.tar.gz chromium_src-a4d44d380a46482d9be4212533ce4f9de9ef5304.tar.bz2 |
[Chromium] webkitImageSmoothingEnabled canvas property does not work on redraw
https://bugs.webkit.org/show_bug.cgi?id=89018
Patch by Justin Novosad <junov@chromium.org> on 2012-06-14
Reviewed by Stephen White.
Source/WebCore:
Test: fast/canvas/canvas-imageSmoothingEnabled-repaint.html
When an accelerated canvas layer prepares its texture for the
compositor, it must send a notification to skia to invalidate texture
proprties that are cached by skia, since the compositor may modify them.
The use case this fixes is when a canvas to canvas copy is performed
with webkitImageSmoothingEnabled=false on the destination canvas.
The backing texture of the source canvas will be set to "nearest"
filtering by skia in order to perform the copy. Then, the compositor
sets filtering back to "linear" when the source canvas is drawn.
Skia is designed to only update GL attributes when required, so errors
occur when the skia-side GL state cache is out of sync.
* platform/graphics/chromium/Canvas2DLayerBridge.cpp:
(WebCore::Canvas2DLayerBridge::prepareTexture):
Source/WebKit/chromium:
Rolling chromium DEPS to 141884
* DEPS:
LayoutTests:
New layout test that verifies that disabling image smoothing on a 2d
canvas continues to work after multiple paint cycles.
* fast/canvas/canvas-imageSmoothingEnabled-repaint-expected.txt: Added.
* fast/canvas/canvas-imageSmoothingEnabled-repaint.html: Added.
* fast/canvas/script-tests/canvas-imageSmoothingEnabled-repaint.js: Added.
(draw):
(testResult):
(TestControllerPaint):
(BrowserPaint):
(onLoadHandler):
git-svn-id: svn://svn.chromium.org/blink/trunk@120344 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Diffstat (limited to 'third_party/WebKit/LayoutTests/fast/canvas/canvas-imageSmoothingEnabled-repaint.html')
-rw-r--r-- | third_party/WebKit/LayoutTests/fast/canvas/canvas-imageSmoothingEnabled-repaint.html | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/third_party/WebKit/LayoutTests/fast/canvas/canvas-imageSmoothingEnabled-repaint.html b/third_party/WebKit/LayoutTests/fast/canvas/canvas-imageSmoothingEnabled-repaint.html new file mode 100644 index 0000000..ffc4b20 --- /dev/null +++ b/third_party/WebKit/LayoutTests/fast/canvas/canvas-imageSmoothingEnabled-repaint.html @@ -0,0 +1,12 @@ +<!DOCTYPE html> +<html> +<head> + <script src="../js/resources/js-test-pre.js"></script> +</head> +<body> + <canvas id="destination" width="300" height="300"></canvas> + <canvas id="source" width="300" height="300"></canvas> + <script src="script-tests/canvas-imageSmoothingEnabled-repaint.js"></script> + <script src="../js/resources/js-test-post.js"></script> +</body> +</html> |