From 93ac4012f2453e9a68a554ebba266f3ddd03d9f0 Mon Sep 17 00:00:00 2001 From: Stan Iliev Date: Mon, 10 Sep 2018 14:48:38 -0400 Subject: DO NOT MERGE: Use GL_LINEAR filter when drawing scaled TextureView Use GL_LINEAR instead of GL_NEAREST sampling, when drawing a TextureView, which has a buffer size that does not match layer size. Scale SkImage to layer size with a matrix, instead of passing wrong size to MakeFromTexture. This CL must not be merged in master, becase this issue has been fixed already by ag/4936023. Bug: 114324288 Test: Passed CtsViewTestCases and CtsUiRenderingTestCases Test: Ran apps using scaled TextureView including Instagram Change-Id: I9ee659d08998c932d8b708a64f3c879ab696fd9e --- libs/hwui/DeferredLayerUpdater.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'libs/hwui/DeferredLayerUpdater.cpp') diff --git a/libs/hwui/DeferredLayerUpdater.cpp b/libs/hwui/DeferredLayerUpdater.cpp index 569de76f294e..c060740dc9a4 100644 --- a/libs/hwui/DeferredLayerUpdater.cpp +++ b/libs/hwui/DeferredLayerUpdater.cpp @@ -133,9 +133,10 @@ void DeferredLayerUpdater::doUpdateTexImage() { bool forceFilter = false; sp buffer = mSurfaceTexture->getCurrentBuffer(); if (buffer != nullptr) { + mLayer->setBufferSize(buffer->getWidth(), buffer->getHeight()); // force filtration if buffer size != layer size - forceFilter = mWidth != static_cast(buffer->getWidth()) || - mHeight != static_cast(buffer->getHeight()); + forceFilter = mWidth != static_cast(mLayer->getBufferWidth()) || + mHeight != static_cast(mLayer->getBufferHeight()); } #if DEBUG_RENDERER -- cgit v1.2.3-59-g8ed1b