diff options
author | Torne (Richard Coles) <torne@google.com> | 2014-01-07 12:20:12 +0000 |
---|---|---|
committer | Torne (Richard Coles) <torne@google.com> | 2014-01-07 12:20:12 +0000 |
commit | b38bb2f9a4ebdd3b424a2a5c7117be014e79f326 (patch) | |
tree | c4206163e88e1227e4eca4ebf32074df54ec9839 | |
parent | 32482f2c2ef8cd137a702a8c5696b5d0c3aea75b (diff) | |
parent | 8d71c064730a0eec8ed758c5dd8c18fd6b5e0f06 (diff) | |
download | include-kitkat-mr2-release.tar.gz |
Merge from Chromium at DEPS revision 33.0.1750.16android-4.4w_r1android-4.4.4_r2.0.1android-4.4.4_r2android-4.4.4_r1.0.1android-4.4.4_r1android-4.4.3_r1.1.0.1android-4.4.3_r1.1android-4.4.3_r1.0.1android-4.4.3_r1kitkat-wearkitkat-mr2.2-releasekitkat-mr2.1-releasekitkat-mr2-releasekitkat-dev
This commit was generated by merge_to_master.py.
Change-Id: I3e9ff86c8feebc5572680b289447041ad5c81274
-rw-r--r-- | core/SkCanvas.h | 26 | ||||
-rw-r--r-- | core/SkScalarCompare.h | 38 |
2 files changed, 12 insertions, 52 deletions
diff --git a/core/SkCanvas.h b/core/SkCanvas.h index 6c41680..5a5cc65 100644 --- a/core/SkCanvas.h +++ b/core/SkCanvas.h @@ -18,7 +18,6 @@ #include "SkRefCnt.h" #include "SkPath.h" #include "SkRegion.h" -#include "SkScalarCompare.h" #include "SkXfermode.h" class SkBounder; @@ -455,14 +454,13 @@ public: not intersect the current clip) */ bool quickRejectY(SkScalar top, SkScalar bottom) const { - SkASSERT(SkScalarToCompareType(top) <= SkScalarToCompareType(bottom)); - const SkRectCompareType& clipR = this->getLocalClipBoundsCompareType(); + SkASSERT(top <= bottom); + const SkRect& clipR = this->getLocalClipBounds(); // In the case where the clip is empty and we are provided with a // negative top and positive bottom parameter then this test will return // false even though it will be clipped. We have chosen to exclude that // check as it is rare and would result double the comparisons. - return SkScalarToCompareType(top) >= clipR.fBottom - || SkScalarToCompareType(bottom) <= clipR.fTop; + return top >= clipR.fBottom || bottom <= clipR.fTop; } /** Return the bounds of the current clip (in local coordinates) in the @@ -1100,20 +1098,20 @@ private: /* These maintain a cache of the clip bounds in local coordinates, (converted to 2s-compliment if floats are slow). */ - mutable SkRectCompareType fLocalBoundsCompareType; - mutable bool fLocalBoundsCompareTypeDirty; + mutable SkRect fCachedLocalClipBounds; + mutable bool fCachedLocalClipBoundsDirty; bool fAllowSoftClip; bool fAllowSimplifyClip; - const SkRectCompareType& getLocalClipBoundsCompareType() const { - if (fLocalBoundsCompareTypeDirty) { - this->computeLocalClipBoundsCompareType(); - fLocalBoundsCompareTypeDirty = false; + const SkRect& getLocalClipBounds() const { + if (fCachedLocalClipBoundsDirty) { + if (!this->getClipBounds(&fCachedLocalClipBounds)) { + fCachedLocalClipBounds.setEmpty(); + } + fCachedLocalClipBoundsDirty = false; } - return fLocalBoundsCompareType; + return fCachedLocalClipBounds; } - void computeLocalClipBoundsCompareType() const; - class AutoValidateClip : ::SkNoncopyable { public: diff --git a/core/SkScalarCompare.h b/core/SkScalarCompare.h deleted file mode 100644 index 5361294..0000000 --- a/core/SkScalarCompare.h +++ /dev/null @@ -1,38 +0,0 @@ - -/* - * Copyright 2006 The Android Open Source Project - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - - -#ifndef SkScalarCompare_DEFINED -#define SkScalarCompare_DEFINED - -#include "SkFloatBits.h" -#include "SkRect.h" - -/** Skia can spend a lot of time just comparing scalars (e.g. quickReject). - When scalar==fixed, this is very fast, and when scalar==hardware-float, this - is also reasonable, but if scalar==software-float, then each compare can be - a function call and take real time. To account for that, we have the flag - SK_SCALAR_SLOW_COMPARES. - - If this is defined, we have a special trick where we quickly convert floats - to a 2's compliment form, and then treat them as signed 32bit integers. In - this form we lose a few subtlties (e.g. NaNs always comparing false) but - we gain the speed of integer compares. - */ - -#ifdef SK_SCALAR_SLOW_COMPARES - typedef int32_t SkScalarCompareType; - typedef SkIRect SkRectCompareType; - #define SkScalarToCompareType(x) SkScalarAs2sCompliment(x) -#else - typedef SkScalar SkScalarCompareType; - typedef SkRect SkRectCompareType; - #define SkScalarToCompareType(x) (x) -#endif - -#endif |