From 6c71e0a065c2eb32139682bb1ca1cbbeb02ebcb9 Mon Sep 17 00:00:00 2001 From: benjaminwagner Date: Thu, 7 Apr 2016 08:49:31 -0700 Subject: Reverse dependency between SkScalar.h and SkFixed.h. The following are unused in Chromium, Android, Mozilla, and Google3: - SkFixedToScalar - SkScalarToFixed The following are additionally unused in Skia: - SkStrAppendFixed - SkWriteBuffer::writeFixed BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1841123002 Review URL: https://codereview.chromium.org/1841123002 --- bench/InterpBench.cpp | 1 + bench/MathBench.cpp | 1 + include/core/SkScalar.h | 7 ----- include/core/SkString.h | 1 - include/core/SkWriteBuffer.h | 1 - include/private/SkFixed.h | 15 +++++++++++ include/utils/SkRandom.h | 1 + samplecode/SamplePath.cpp | 11 -------- src/core/SkFDot6.h | 1 + src/core/SkFontDescriptor.h | 1 + src/core/SkLinearBitmapPipeline_sample.h | 1 + src/core/SkMath.cpp | 1 + src/core/SkPerspIter.h | 1 + src/core/SkReadBuffer.cpp | 4 --- src/core/SkReadBuffer.h | 1 - src/core/SkScan.h | 1 + src/core/SkString.cpp | 39 --------------------------- src/core/SkValidatingReadBuffer.cpp | 4 --- src/core/SkValidatingReadBuffer.h | 1 - src/core/SkWriteBuffer.cpp | 4 --- src/effects/GrCircleBlurFragmentProcessor.cpp | 2 ++ src/effects/SkDiscretePathEffect.cpp | 5 ++-- src/effects/SkEmbossMask.cpp | 1 + src/effects/SkTableMaskFilter.cpp | 5 ++-- src/fonts/SkTestScalerContext.h | 1 + src/gpu/GrGlyph.h | 1 + src/ports/SkFontMgr_android_parser.cpp | 1 + src/utils/SkInterpolator.cpp | 1 + tests/FontMgrAndroidParserTest.cpp | 1 + tests/MathTest.cpp | 1 + 30 files changed, 39 insertions(+), 77 deletions(-) diff --git a/bench/InterpBench.cpp b/bench/InterpBench.cpp index b95f57d50d..f259b83cc5 100644 --- a/bench/InterpBench.cpp +++ b/bench/InterpBench.cpp @@ -7,6 +7,7 @@ #include "Benchmark.h" #include "SkColorPriv.h" +#include "SkFixed.h" #include "SkMatrix.h" #include "SkPaint.h" #include "SkRandom.h" diff --git a/bench/MathBench.cpp b/bench/MathBench.cpp index fb35a8aafe..77ba2f04be 100644 --- a/bench/MathBench.cpp +++ b/bench/MathBench.cpp @@ -7,6 +7,7 @@ #include "Benchmark.h" #include "SkColorPriv.h" +#include "SkFixed.h" #include "SkMatrix.h" #include "SkPaint.h" #include "SkRandom.h" diff --git a/include/core/SkScalar.h b/include/core/SkScalar.h index 47c74bc5a9..b2d966cb3b 100644 --- a/include/core/SkScalar.h +++ b/include/core/SkScalar.h @@ -8,7 +8,6 @@ #ifndef SkScalar_DEFINED #define SkScalar_DEFINED -#include "../private/SkFixed.h" #include "../private/SkFloatingPoint.h" // TODO: move this sort of check into SkPostConfig.h @@ -32,9 +31,6 @@ typedef float SkScalar; #define SK_ScalarNegativeInfinity SK_FloatNegativeInfinity #define SK_ScalarNaN SK_FloatNaN -#define SkFixedToScalar(x) SkFixedToFloat(x) -#define SkScalarToFixed(x) SkFloatToFixed(x) - #define SkScalarFloorToScalar(x) sk_float_floor(x) #define SkScalarCeilToScalar(x) sk_float_ceil(x) #define SkScalarRoundToScalar(x) sk_float_floor((x) + 0.5f) @@ -75,9 +71,6 @@ typedef double SkScalar; #define SK_ScalarNegativeInfinity SK_DoubleNegativeInfinity #define SK_ScalarNaN SK_DoubleNaN -#define SkFixedToScalar(x) SkFixedToDouble(x) -#define SkScalarToFixed(x) SkDoubleToFixed(x) - #define SkScalarFloorToScalar(x) floor(x) #define SkScalarCeilToScalar(x) ceil(x) #define SkScalarRoundToScalar(x) floor((x) + 0.5) diff --git a/include/core/SkString.h b/include/core/SkString.h index 1c3ee3a20c..4a2d91f2df 100644 --- a/include/core/SkString.h +++ b/include/core/SkString.h @@ -111,7 +111,6 @@ char* SkStrAppendS64(char buffer[], int64_t, int minDigits); #define SkStrAppendScalar SkStrAppendFloat char* SkStrAppendFloat(char buffer[], float); -char* SkStrAppendFixed(char buffer[], SkFixed); /** \class SkString diff --git a/include/core/SkWriteBuffer.h b/include/core/SkWriteBuffer.h index 6e9d043aeb..3ae82d014a 100644 --- a/include/core/SkWriteBuffer.h +++ b/include/core/SkWriteBuffer.h @@ -51,7 +51,6 @@ public: void writeByteArray(const void* data, size_t size); void writeDataAsByteArray(SkData* data) { this->writeByteArray(data->data(), data->size()); } void writeBool(bool value); - void writeFixed(SkFixed value); void writeScalar(SkScalar value); void writeScalarArray(const SkScalar* value, uint32_t count); void writeInt(int32_t value); diff --git a/include/private/SkFixed.h b/include/private/SkFixed.h index b504f2f94c..56821d4d82 100644 --- a/include/private/SkFixed.h +++ b/include/private/SkFixed.h @@ -8,6 +8,7 @@ #ifndef SkFixed_DEFINED #define SkFixed_DEFINED +#include "SkScalar.h" #include "SkTypes.h" /** \file SkFixed.h @@ -142,6 +143,20 @@ inline SkFixed SkFixedMul_longlong(SkFixed a, SkFixed b) { /////////////////////////////////////////////////////////////////////////////// +#if SK_SCALAR_IS_FLOAT + +#define SkFixedToScalar(x) SkFixedToFloat(x) +#define SkScalarToFixed(x) SkFloatToFixed(x) + +#else // SK_SCALAR_IS_DOUBLE + +#define SkFixedToScalar(x) SkFixedToDouble(x) +#define SkScalarToFixed(x) SkDoubleToFixed(x) + +#endif + +/////////////////////////////////////////////////////////////////////////////// + typedef int64_t SkFixed3232; // 32.32 #define SkIntToFixed3232(x) (SkLeftShift((SkFixed3232)(x), 32)) diff --git a/include/utils/SkRandom.h b/include/utils/SkRandom.h index ecaedafc2f..7b5663118c 100644 --- a/include/utils/SkRandom.h +++ b/include/utils/SkRandom.h @@ -8,6 +8,7 @@ #ifndef SkRandom_DEFINED #define SkRandom_DEFINED +#include "../private/SkFixed.h" #include "SkScalar.h" /** \class SkRandom diff --git a/samplecode/SamplePath.cpp b/samplecode/SamplePath.cpp index 12cc40245f..8baa359fa3 100644 --- a/samplecode/SamplePath.cpp +++ b/samplecode/SamplePath.cpp @@ -53,17 +53,6 @@ static void test_cubic2() { SkParsePath::FromSVGString(str, &path); { -#ifdef SK_BUILD_FOR_WIN - // windows doesn't have strtof - float x = (float)strtod("9.94099e+07", nullptr); -#else - float x = strtof("9.94099e+07", nullptr); -#endif - int ix = (int)x; - int fx = (int)(x * 65536); - int ffx = SkScalarToFixed(x); - SkDebugf("%g %x %x %x\n", x, ix, fx, ffx); - SkRect r = path.getBounds(); SkIRect ir; r.round(&ir); diff --git a/src/core/SkFDot6.h b/src/core/SkFDot6.h index 82138acf11..726aa2e46d 100644 --- a/src/core/SkFDot6.h +++ b/src/core/SkFDot6.h @@ -9,6 +9,7 @@ #ifndef SkFDot6_DEFINED #define SkFDot6_DEFINED +#include "SkFixed.h" #include "SkScalar.h" #include "SkMath.h" diff --git a/src/core/SkFontDescriptor.h b/src/core/SkFontDescriptor.h index cfdc571570..9b87365ed5 100644 --- a/src/core/SkFontDescriptor.h +++ b/src/core/SkFontDescriptor.h @@ -8,6 +8,7 @@ #ifndef SkFontDescriptor_DEFINED #define SkFontDescriptor_DEFINED +#include "SkFixed.h" #include "SkStream.h" #include "SkString.h" #include "SkTypeface.h" diff --git a/src/core/SkLinearBitmapPipeline_sample.h b/src/core/SkLinearBitmapPipeline_sample.h index d63509db3a..93932247cd 100644 --- a/src/core/SkLinearBitmapPipeline_sample.h +++ b/src/core/SkLinearBitmapPipeline_sample.h @@ -8,6 +8,7 @@ #ifndef SkLinearBitmapPipeline_sampler_DEFINED #define SkLinearBitmapPipeline_sampler_DEFINED +#include "SkFixed.h" #include "SkLinearBitmapPipeline_core.h" #include #include diff --git a/src/core/SkMath.cpp b/src/core/SkMath.cpp index af93d7ecb2..8a9737baa0 100644 --- a/src/core/SkMath.cpp +++ b/src/core/SkMath.cpp @@ -6,6 +6,7 @@ */ #include "SkMathPriv.h" +#include "SkFixed.h" #include "SkFloatBits.h" #include "SkFloatingPoint.h" #include "SkScalar.h" diff --git a/src/core/SkPerspIter.h b/src/core/SkPerspIter.h index 3a00971dbc..c0a9083bee 100644 --- a/src/core/SkPerspIter.h +++ b/src/core/SkPerspIter.h @@ -9,6 +9,7 @@ #ifndef SkPerspIter_DEFINED #define SkPerspIter_DEFINED +#include "SkFixed.h" #include "SkMatrix.h" class SkPerspIter { diff --git a/src/core/SkReadBuffer.cpp b/src/core/SkReadBuffer.cpp index f220b5a9e6..abd46312f7 100644 --- a/src/core/SkReadBuffer.cpp +++ b/src/core/SkReadBuffer.cpp @@ -90,10 +90,6 @@ SkColor SkReadBuffer::readColor() { return fReader.readInt(); } -SkFixed SkReadBuffer::readFixed() { - return fReader.readS32(); -} - int32_t SkReadBuffer::readInt() { return fReader.readInt(); } diff --git a/src/core/SkReadBuffer.h b/src/core/SkReadBuffer.h index 7b12194fc0..e77d1adfe3 100644 --- a/src/core/SkReadBuffer.h +++ b/src/core/SkReadBuffer.h @@ -105,7 +105,6 @@ public: // primitives virtual bool readBool(); virtual SkColor readColor(); - virtual SkFixed readFixed(); virtual int32_t readInt(); virtual SkScalar readScalar(); virtual uint32_t readUInt(); diff --git a/src/core/SkScan.h b/src/core/SkScan.h index f9443207c0..4aa8e44399 100644 --- a/src/core/SkScan.h +++ b/src/core/SkScan.h @@ -9,6 +9,7 @@ #ifndef SkScan_DEFINED #define SkScan_DEFINED +#include "SkFixed.h" #include "SkRect.h" class SkRasterClip; diff --git a/src/core/SkString.cpp b/src/core/SkString.cpp index 2e2c0e7173..24b1b8fb62 100644 --- a/src/core/SkString.cpp +++ b/src/core/SkString.cpp @@ -7,7 +7,6 @@ #include "SkAtomics.h" -#include "SkFixed.h" #include "SkString.h" #include "SkUtils.h" #include @@ -143,44 +142,6 @@ char* SkStrAppendFloat(char string[], float value) { return string + len; } -char* SkStrAppendFixed(char string[], SkFixed x) { - SkDEBUGCODE(char* start = string;) - if (x < 0) { - *string++ = '-'; - x = -x; - } - - unsigned frac = x & 0xFFFF; - x >>= 16; - if (frac == 0xFFFF) { - // need to do this to "round up", since 65535/65536 is closer to 1 than to .9999 - x += 1; - frac = 0; - } - string = SkStrAppendS32(string, x); - - // now handle the fractional part (if any) - if (frac) { - static const uint16_t gTens[] = { 1000, 100, 10, 1 }; - const uint16_t* tens = gTens; - - x = SkFixedRoundToInt(frac * 10000); - SkASSERT(x <= 10000); - if (x == 10000) { - x -= 1; - } - *string++ = '.'; - do { - unsigned powerOfTen = *tens++; - *string++ = SkToU8('0' + x / powerOfTen); - x %= powerOfTen; - } while (x != 0); - } - - SkASSERT(string - start <= SkStrAppendScalar_MaxSize); - return string; -} - /////////////////////////////////////////////////////////////////////////////// // the 3 values are [length] [refcnt] [terminating zero data] diff --git a/src/core/SkValidatingReadBuffer.cpp b/src/core/SkValidatingReadBuffer.cpp index ad4b6c409e..52006f23ad 100644 --- a/src/core/SkValidatingReadBuffer.cpp +++ b/src/core/SkValidatingReadBuffer.cpp @@ -66,10 +66,6 @@ SkColor SkValidatingReadBuffer::readColor() { return this->readInt(); } -SkFixed SkValidatingReadBuffer::readFixed() { - return this->readInt(); -} - int32_t SkValidatingReadBuffer::readInt() { const size_t inc = sizeof(int32_t); this->validate(IsPtrAlign4(fReader.peek()) && fReader.isAvailable(inc)); diff --git a/src/core/SkValidatingReadBuffer.h b/src/core/SkValidatingReadBuffer.h index bcdcba5de4..7fb203b45e 100644 --- a/src/core/SkValidatingReadBuffer.h +++ b/src/core/SkValidatingReadBuffer.h @@ -28,7 +28,6 @@ public: // primitives bool readBool() override; SkColor readColor() override; - SkFixed readFixed() override; int32_t readInt() override; SkScalar readScalar() override; uint32_t readUInt() override; diff --git a/src/core/SkWriteBuffer.cpp b/src/core/SkWriteBuffer.cpp index 6baea37946..c33a7aec52 100644 --- a/src/core/SkWriteBuffer.cpp +++ b/src/core/SkWriteBuffer.cpp @@ -47,10 +47,6 @@ void SkWriteBuffer::writeBool(bool value) { fWriter.writeBool(value); } -void SkWriteBuffer::writeFixed(SkFixed value) { - fWriter.write32(value); -} - void SkWriteBuffer::writeScalar(SkScalar value) { fWriter.writeScalar(value); } diff --git a/src/effects/GrCircleBlurFragmentProcessor.cpp b/src/effects/GrCircleBlurFragmentProcessor.cpp index afab4b4891..291dafc81a 100644 --- a/src/effects/GrCircleBlurFragmentProcessor.cpp +++ b/src/effects/GrCircleBlurFragmentProcessor.cpp @@ -18,6 +18,8 @@ #include "glsl/GrGLSLProgramDataManager.h" #include "glsl/GrGLSLUniformHandler.h" +#include "SkFixed.h" + class GrGLCircleBlurFragmentProcessor : public GrGLSLFragmentProcessor { public: void emitCode(EmitArgs&) override; diff --git a/src/effects/SkDiscretePathEffect.cpp b/src/effects/SkDiscretePathEffect.cpp index 5d5fc6528c..4525c1e32a 100644 --- a/src/effects/SkDiscretePathEffect.cpp +++ b/src/effects/SkDiscretePathEffect.cpp @@ -7,10 +7,11 @@ #include "SkDiscretePathEffect.h" -#include "SkReadBuffer.h" -#include "SkWriteBuffer.h" +#include "SkFixed.h" #include "SkPathMeasure.h" +#include "SkReadBuffer.h" #include "SkStrokeRec.h" +#include "SkWriteBuffer.h" sk_sp SkDiscretePathEffect::Make(SkScalar segLength, SkScalar deviation, uint32_t seedAssist) { diff --git a/src/effects/SkEmbossMask.cpp b/src/effects/SkEmbossMask.cpp index 310addf57d..7079d65aab 100644 --- a/src/effects/SkEmbossMask.cpp +++ b/src/effects/SkEmbossMask.cpp @@ -7,6 +7,7 @@ #include "SkEmbossMask.h" +#include "SkFixed.h" #include "SkMath.h" static inline int nonzero_to_one(int x) { diff --git a/src/effects/SkTableMaskFilter.cpp b/src/effects/SkTableMaskFilter.cpp index d834652962..a3b4038a2f 100644 --- a/src/effects/SkTableMaskFilter.cpp +++ b/src/effects/SkTableMaskFilter.cpp @@ -6,10 +6,11 @@ */ -#include "SkTableMaskFilter.h" +#include "SkFixed.h" #include "SkReadBuffer.h" -#include "SkWriteBuffer.h" #include "SkString.h" +#include "SkTableMaskFilter.h" +#include "SkWriteBuffer.h" SkTableMaskFilter::SkTableMaskFilter() { for (int i = 0; i < 256; i++) { diff --git a/src/fonts/SkTestScalerContext.h b/src/fonts/SkTestScalerContext.h index fe5c8d6ffc..4af9bf3dfd 100644 --- a/src/fonts/SkTestScalerContext.h +++ b/src/fonts/SkTestScalerContext.h @@ -8,6 +8,7 @@ #ifndef SkTestScalerContext_DEFINED #define SkTestScalerContext_DEFINED +#include "SkFixed.h" #include "SkPaint.h" #include "SkPath.h" #include "SkRefCnt.h" diff --git a/src/gpu/GrGlyph.h b/src/gpu/GrGlyph.h index fb998a4947..5e611ce168 100644 --- a/src/gpu/GrGlyph.h +++ b/src/gpu/GrGlyph.h @@ -13,6 +13,7 @@ #include "GrTypes.h" #include "SkChecksum.h" +#include "SkFixed.h" #include "SkPath.h" class GrPlot; diff --git a/src/ports/SkFontMgr_android_parser.cpp b/src/ports/SkFontMgr_android_parser.cpp index dbc1dee92e..24242830ce 100644 --- a/src/ports/SkFontMgr_android_parser.cpp +++ b/src/ports/SkFontMgr_android_parser.cpp @@ -7,6 +7,7 @@ // Despite the name and location, this is portable code. +#include "SkFixed.h" #include "SkFontMgr.h" #include "SkFontMgr_android_parser.h" #include "SkStream.h" diff --git a/src/utils/SkInterpolator.cpp b/src/utils/SkInterpolator.cpp index c867587399..d3c0b26fef 100644 --- a/src/utils/SkInterpolator.cpp +++ b/src/utils/SkInterpolator.cpp @@ -6,6 +6,7 @@ */ +#include "SkFixed.h" #include "SkInterpolator.h" #include "SkMath.h" #include "SkTSearch.h" diff --git a/tests/FontMgrAndroidParserTest.cpp b/tests/FontMgrAndroidParserTest.cpp index 5f6ff06fe8..92dbd951c0 100644 --- a/tests/FontMgrAndroidParserTest.cpp +++ b/tests/FontMgrAndroidParserTest.cpp @@ -7,6 +7,7 @@ #include "Resources.h" #include "SkCommandLineFlags.h" +#include "SkFixed.h" #include "SkFontMgr_android_parser.h" #include "Test.h" diff --git a/tests/MathTest.cpp b/tests/MathTest.cpp index 5bc2d0ebf7..580cd941fa 100644 --- a/tests/MathTest.cpp +++ b/tests/MathTest.cpp @@ -7,6 +7,7 @@ #include "SkColorPriv.h" #include "SkEndian.h" +#include "SkFixed.h" #include "SkFloatBits.h" #include "SkFloatingPoint.h" #include "SkHalf.h" -- cgit v1.2.3