From 01e583807618038a578a3b07cfad3101d24115c7 Mon Sep 17 00:00:00 2001 From: benjaminwagner Date: Mon, 22 Feb 2016 11:10:33 -0800 Subject: [PATCH] Simplify calculations in AADistanceFieldPathBatch::writePathVertices. No API changes. BUG=skia:4632 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1715063002 TBR=reed Review URL: https://codereview.chromium.org/1715063002 --- include/gpu/GrTexture.h | 4 ---- src/gpu/GrTexture.cpp | 3 --- src/gpu/GrTexturePriv.h | 11 ----------- src/gpu/batches/GrAADistanceFieldPathRenderer.cpp | 16 +++++++--------- 4 files changed, 7 insertions(+), 27 deletions(-) diff --git a/include/gpu/GrTexture.h b/include/gpu/GrTexture.h index ddba940..c590d87 100644 --- a/include/gpu/GrTexture.h +++ b/include/gpu/GrTexture.h @@ -60,10 +60,6 @@ private: }; MipMapsStatus fMipMapsStatus; - // These two shift a fixed-point value into normalized coordinates - // for this texture if the texture is power of two sized. - int fShiftFixedX; - int fShiftFixedY; friend class GrTexturePriv; diff --git a/src/gpu/GrTexture.cpp b/src/gpu/GrTexture.cpp index fe5b2c3..76916ae 100644 --- a/src/gpu/GrTexture.cpp +++ b/src/gpu/GrTexture.cpp @@ -91,9 +91,6 @@ GrTexture::GrTexture(GrGpu* gpu, LifeCycle lifeCycle, const GrSurfaceDesc& desc) GrTexturePriv::ComputeScratchKey(desc, &key); this->setScratchKey(key); } - // only make sense if alloc size is pow2 - fShiftFixedX = 31 - SkCLZ(fDesc.fWidth); - fShiftFixedY = 31 - SkCLZ(fDesc.fHeight); } void GrTexturePriv::ComputeScratchKey(const GrSurfaceDesc& desc, GrScratchKey* key) { diff --git a/src/gpu/GrTexturePriv.h b/src/gpu/GrTexturePriv.h index da0558e..165594c 100644 --- a/src/gpu/GrTexturePriv.h +++ b/src/gpu/GrTexturePriv.h @@ -41,17 +41,6 @@ public: static void ComputeScratchKey(const GrSurfaceDesc&, GrScratchKey*); - // TODO: Move this logic and the shift values out of here and to the callers. - SkFixed normalizeFixedX(SkFixed x) const { - SkASSERT(SkIsPow2(fTexture->fDesc.fWidth)); - return x >> fTexture->fShiftFixedX; - } - - SkFixed normalizeFixedY(SkFixed y) const { - SkASSERT(SkIsPow2(fTexture->fDesc.fHeight)); - return y >> fTexture->fShiftFixedY; - } - private: GrTexturePriv(GrTexture* texture) : fTexture(texture) { } GrTexturePriv(const GrTexturePriv& that) : fTexture(that.fTexture) { } diff --git a/src/gpu/batches/GrAADistanceFieldPathRenderer.cpp b/src/gpu/batches/GrAADistanceFieldPathRenderer.cpp index d48649c..8525eb2 100644 --- a/src/gpu/batches/GrAADistanceFieldPathRenderer.cpp +++ b/src/gpu/batches/GrAADistanceFieldPathRenderer.cpp @@ -461,11 +461,6 @@ private: width *= invScale; height *= invScale; - SkFixed tx = SkIntToFixed(pathData->fAtlasLocation.fX); - SkFixed ty = SkIntToFixed(pathData->fAtlasLocation.fY); - SkFixed tw = SkScalarToFixed(pathData->fBounds.width()); - SkFixed th = SkScalarToFixed(pathData->fBounds.height()); - SkPoint* positions = reinterpret_cast(offset); // vertex positions @@ -479,12 +474,15 @@ private: *colorPtr = color; } + const SkScalar tx = SkIntToScalar(pathData->fAtlasLocation.fX); + const SkScalar ty = SkIntToScalar(pathData->fAtlasLocation.fY); + // vertex texture coords SkPoint* textureCoords = (SkPoint*)(offset + sizeof(SkPoint) + sizeof(GrColor)); - textureCoords->setRectFan(SkFixedToFloat(texture->texturePriv().normalizeFixedX(tx)), - SkFixedToFloat(texture->texturePriv().normalizeFixedY(ty)), - SkFixedToFloat(texture->texturePriv().normalizeFixedX(tx + tw)), - SkFixedToFloat(texture->texturePriv().normalizeFixedY(ty + th)), + textureCoords->setRectFan(tx / texture->width(), + ty / texture->height(), + (tx + pathData->fBounds.width()) / texture->width(), + (ty + pathData->fBounds.height()) / texture->height(), vertexStride); } -- 2.7.4