diff options
Diffstat (limited to 'include/core/SkScalarCompare.h')
-rw-r--r-- | include/core/SkScalarCompare.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/core/SkScalarCompare.h b/include/core/SkScalarCompare.h index fee554cd2b..537d6d6dce 100644 --- a/include/core/SkScalarCompare.h +++ b/include/core/SkScalarCompare.h @@ -20,6 +20,18 @@ #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; |