summaryrefslogtreecommitdiffstats
path: root/cc/output/direct_renderer.cc
diff options
context:
space:
mode:
authoraelias@chromium.org <aelias@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-09 00:21:26 +0000
committeraelias@chromium.org <aelias@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-09 00:21:26 +0000
commit251699bdcff5063ceafe1442072f756085e2643b (patch)
tree1e9046aaccc1aa732f11323855a0a053d8a6b33e /cc/output/direct_renderer.cc
parent77439eb431f1a1152c9ba6a7de0fd874a67ff946 (diff)
downloadchromium_src-251699bdcff5063ceafe1442072f756085e2643b.zip
chromium_src-251699bdcff5063ceafe1442072f756085e2643b.tar.gz
chromium_src-251699bdcff5063ceafe1442072f756085e2643b.tar.bz2
Make Android WebView filtering depend on scrolling status.
This patch makes bilinear filtering of software images enabled only when there is no scrolling or CSS animation active, which matches the policy of classic WebView. In the long run, we'll likely want to support software tiling to avoid this kind of hack, but for now this maintains bugwards compatibility. Most of this patch is to solve the problem that CC was not aware whether or not WebView-handled fling is active. I added a new getter ScrollOffsetDelegate::IsExternalFlingActive for this. This also enables prefer-smoothness mode for these flings. New test RendererPixelTest.PictureDrawQuadDisableImageFiltering NOTRY=true BUG= internal b/10706494 Review URL: https://codereview.chromium.org/25233002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227629 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/output/direct_renderer.cc')
-rw-r--r--cc/output/direct_renderer.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/cc/output/direct_renderer.cc b/cc/output/direct_renderer.cc
index d46f46d..c02200d 100644
--- a/cc/output/direct_renderer.cc
+++ b/cc/output/direct_renderer.cc
@@ -198,7 +198,8 @@ void DirectRenderer::DecideRenderPassAllocationsForFrame(
void DirectRenderer::DrawFrame(RenderPassList* render_passes_in_draw_order,
ContextProvider* offscreen_context_provider,
float device_scale_factor,
- bool allow_partial_swap) {
+ bool allow_partial_swap,
+ bool disable_picture_quad_image_filtering) {
TRACE_EVENT0("cc", "DirectRenderer::DrawFrame");
UMA_HISTOGRAM_COUNTS("Renderer4.renderPassCount",
render_passes_in_draw_order->size());
@@ -214,6 +215,8 @@ void DirectRenderer::DrawFrame(RenderPassList* render_passes_in_draw_order,
: root_render_pass->output_rect;
frame.root_damage_rect.Intersect(gfx::Rect(client_->DeviceViewport().size()));
frame.offscreen_context_provider = offscreen_context_provider;
+ frame.disable_picture_quad_image_filtering =
+ disable_picture_quad_image_filtering;
EnsureBackbuffer();