diff options
author | Chris Craik <ccraik@google.com> | 2014-08-04 13:18:38 -0700 |
---|---|---|
committer | Chris Craik <ccraik@google.com> | 2014-08-04 13:18:38 -0700 |
commit | a736cd9d3587a120e5233d627cd8bf06353be107 (patch) | |
tree | ec1647495e7fefbb14180af98fce4671812037de /libs | |
parent | f660edb25a99282ce86b91804cd0145c1ef54bab (diff) | |
download | frameworks_base-a736cd9d3587a120e5233d627cd8bf06353be107.zip frameworks_base-a736cd9d3587a120e5233d627cd8bf06353be107.tar.gz frameworks_base-a736cd9d3587a120e5233d627cd8bf06353be107.tar.bz2 |
Remove scaling bucket hack
bug:16626221
Fixes glyph cache pressure and double scaling artifacts.
Change-Id: I06cde720db646531b45943283cb4ecb48af8ff5b
Diffstat (limited to 'libs')
-rw-r--r-- | libs/hwui/Caches.cpp | 17 | ||||
-rw-r--r-- | libs/hwui/Caches.h | 3 | ||||
-rwxr-xr-x | libs/hwui/OpenGLRenderer.cpp | 28 |
3 files changed, 7 insertions, 41 deletions
diff --git a/libs/hwui/Caches.cpp b/libs/hwui/Caches.cpp index 548ec91..7bd0798 100644 --- a/libs/hwui/Caches.cpp +++ b/libs/hwui/Caches.cpp @@ -699,9 +699,6 @@ TextureVertex* Caches::getRegionMesh() { /////////////////////////////////////////////////////////////////////////////// void Caches::initTempProperties() { - propertyAmbientShadowStrength = 12; - propertySpotShadowStrength = 48; - propertyLightDiameter = -1.0f; propertyLightPosY = -1.0f; propertyLightPosZ = -1.0f; @@ -710,15 +707,7 @@ void Caches::initTempProperties() { void Caches::setTempProperty(const char* name, const char* value) { ALOGD("setting property %s to %s", name, value); - if (!strcmp(name, "ambientShadowStrength")) { - propertyAmbientShadowStrength = atoi(value); - ALOGD("ambient shadow strength = 0x%x out of 0xff", propertyAmbientShadowStrength); - return; - } else if (!strcmp(name, "spotShadowStrength")) { - propertySpotShadowStrength = atoi(value); - ALOGD("spot shadow strength = 0x%x out of 0xff", propertySpotShadowStrength); - return; - } else if (!strcmp(name, "ambientRatio")) { + if (!strcmp(name, "ambientRatio")) { propertyAmbientRatio = fmin(fmax(atof(value), 0.0), 10.0); ALOGD("ambientRatio = %.2f", propertyAmbientRatio); return; @@ -734,10 +723,6 @@ void Caches::setTempProperty(const char* name, const char* value) { propertyLightPosZ = fmin(fmax(atof(value), 0.0), 3000.0); ALOGD("lightPos Z = %.2f", propertyLightPosZ); return; - } else if (!strcmp(name, "extraRasterBucket")) { - float bucket = atof(value); - propertyExtraRasterBuckets.push_back(bucket); - return; } ALOGD(" failed"); } diff --git a/libs/hwui/Caches.h b/libs/hwui/Caches.h index 8727941..e00cb0b 100644 --- a/libs/hwui/Caches.h +++ b/libs/hwui/Caches.h @@ -366,9 +366,6 @@ public: float propertyLightPosY; float propertyLightPosZ; float propertyAmbientRatio; - int propertyAmbientShadowStrength; - int propertySpotShadowStrength; - std::vector<float> propertyExtraRasterBuckets; private: enum OverdrawColorSet { kColorSet_Default = 0, diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 5e6ae3f..5fbef2e 100755 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -2809,31 +2809,15 @@ bool OpenGLRenderer::findBestFontTransform(const mat4& transform, SkMatrix* outM } /** - * Input is a non-perspective, scaling transform. Generate a scale-only transform, based upon - * bucketed scale values. Special case for 'extra raster buckets' - disable filtration in the - * case of an exact match, and isSimple() transform + * Input is a non-perspective, scaling transform. Generate a scale-only transform, + * with values rounded to the nearest int. */ float sx, sy; transform.decomposeScale(sx, sy); - - float bestSx = roundf(fmaxf(1.0f, sx)); - float bestSy = roundf(fmaxf(1.0f, sy)); - bool filter = true; - - for (unsigned int i = 0; i < mCaches.propertyExtraRasterBuckets.size(); i++) { - float bucket = mCaches.propertyExtraRasterBuckets[i]; - if (sx == bucket && sy == bucket) { - bestSx = bestSy = bucket; - filter = !transform.isSimple(); // disable filter, if simple - break; - } - - if (fabs(bucket - sx) < fabs(bestSx - sx)) bestSx = sx; - if (fabs(bucket - sy) < fabs(bestSy - sy)) bestSy = sy; - } - - outMatrix->setScale(bestSx, bestSy); - return filter; + outMatrix->setScale( + roundf(fmaxf(1.0f, sx)), + roundf(fmaxf(1.0f, sy))); + return true; } status_t OpenGLRenderer::drawText(const char* text, int bytesCount, int count, float x, float y, |