From b50ced703030dfbda4fc3ef5e6ec9a52fc0405f8 Mon Sep 17 00:00:00 2001 From: reed Date: Fri, 16 Jan 2015 07:27:46 -0800 Subject: Revert of use log2(scale) to compute mip level (patchset #7 id:120001 of https://codereview.chromium.org/849333002/) Reason for revert: need more suppressions Original issue's description: > use log2(scale) to compute mip level > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/15fd47f8a07615a7f5d78581aee4c80ff9f17fd9 TBR=robertphillips@google.com,jvanverth@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/856783004 --- expectations/gm/ignored-tests.txt | 11 ----------- include/core/SkFloatingPoint.h | 10 ---------- include/core/SkScalar.h | 2 -- src/core/SkMipMap.cpp | 17 +++-------------- 4 files changed, 3 insertions(+), 37 deletions(-) diff --git a/expectations/gm/ignored-tests.txt b/expectations/gm/ignored-tests.txt index 6367eb5009..7bc03a30a5 100644 --- a/expectations/gm/ignored-tests.txt +++ b/expectations/gm/ignored-tests.txt @@ -37,17 +37,6 @@ colortype_xfermodes mixed_xfermodes -# reed - rebase after mipmap level improvement -downsamplebitmap_image_medium_mandrill_512 -downsamplebitmap_image_medium_mandrill_132x132_12x12 -downsamplebitmap_image_medium_mandrill_512.png -downsamplebitmap_image_medium_mandrill_132x132_12x12.astc -downsamplebitmap_checkerboard_medium_512_256 -downsamplebitmap_text_medium_72.00pt -filterindiabox -coloremoji -fontmgr_iter - # robertphillips - skia:2995 blurrects diff --git a/include/core/SkFloatingPoint.h b/include/core/SkFloatingPoint.h index 9fb343261b..1003b80b4f 100644 --- a/include/core/SkFloatingPoint.h +++ b/include/core/SkFloatingPoint.h @@ -91,16 +91,6 @@ static inline float sk_float_copysign(float x, float y) { #define sk_float_log(x) logf(x) #endif -// can't find log2f on android, but maybe that just a tool bug? -#ifdef SK_BUILD_FOR_ANDROID - static inline float sk_float_log2(float x) { - const double inv_ln_2 = 1.44269504088896; - return (float)(log(x) * inv_ln_2); - } -#else - #define sk_float_log2(x) log2f(x) -#endif - #ifdef SK_BUILD_FOR_WIN #define sk_float_isfinite(x) _finite(x) #define sk_float_isnan(x) _isnan(x) diff --git a/include/core/SkScalar.h b/include/core/SkScalar.h index e8c7a7fb65..94c3ce15c0 100644 --- a/include/core/SkScalar.h +++ b/include/core/SkScalar.h @@ -58,7 +58,6 @@ typedef float SkScalar; #define SkScalarATan2(y, x) (float)sk_float_atan2(y,x) #define SkScalarExp(x) (float)sk_float_exp(x) #define SkScalarLog(x) (float)sk_float_log(x) -#define SkScalarLog2(x) (float)sk_float_log2(x) #else // SK_SCALAR_IS_DOUBLE @@ -101,7 +100,6 @@ typedef double SkScalar; #define SkScalarATan2(y, x) atan2(y,x) #define SkScalarExp(x) exp(x) #define SkScalarLog(x) log(x) -#define SkScalarLog2(x) log2(x) #endif diff --git a/src/core/SkMipMap.cpp b/src/core/SkMipMap.cpp index 2dad6d9c57..83164b1526 100644 --- a/src/core/SkMipMap.cpp +++ b/src/core/SkMipMap.cpp @@ -225,7 +225,8 @@ SkMipMap* SkMipMap::Build(const SkBitmap& src, SkDiscardableFactoryProc fact) { /////////////////////////////////////////////////////////////////////////////// -#ifdef SK_SUPPORT_LEGACY_MIPLEVELCHOICE +//static int gCounter; + static SkFixed compute_level(SkScalar scale) { SkScalar inv = SkScalarAbs(SkScalarInvert(scale)); if (inv > 32767) { // Watch out for SkFixed overflow. @@ -240,29 +241,17 @@ static SkFixed compute_level(SkScalar scale) { SkASSERT(clz >= 1 && clz <= 15); return SkIntToFixed(15 - clz) + ((unsigned)(s << (clz + 1)) >> 16); } -#endif bool SkMipMap::extractLevel(SkScalar scale, Level* levelPtr) const { if (NULL == fLevels) { return false; } - if (scale >= SK_Scalar1 || scale <= 0 || !SkScalarIsFinite(scale)) { + if (scale >= SK_Scalar1) { return false; } -#ifdef SK_SUPPORT_LEGACY_MIPLEVELCHOICE int level = compute_level(scale) >> 16; -#else - SkScalar L = -SkScalarLog2(scale); - if (!SkScalarIsFinite(L)) { - return false; - } - SkASSERT(L >= 0); - int level = SkScalarRoundToInt(L); -// SkDebugf("mipmap scale=%g L=%g level=%d\n", scale, L, level); -#endif - SkASSERT(level >= 0); if (level <= 0) { return false; -- cgit v1.2.3