diff options
author | vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2014-01-06 22:55:39 +0000 |
---|---|---|
committer | vandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2014-01-06 22:55:39 +0000 |
commit | abb8f3b8ecef5688d1e5c29aad9bac4cd389940c (patch) | |
tree | c4206163e88e1227e4eca4ebf32074df54ec9839 | |
parent | c6fa0eb7d4676e5c63bb251fe8a57da258f39175 (diff) | |
parent | d9130c4bb507d063a7ac71110a21510d61b9d9a2 (diff) | |
download | include-abb8f3b8ecef5688d1e5c29aad9bac4cd389940c.tar.gz |
Branch at r12682 for Chrome M33
git-svn-id: http://skia.googlecode.com/svn/branches/chrome/m33_1750/include@12932 2bbb7eff-a529-9590-31e7-b0007b416f81
-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 |