From 187d5595901d1120d9425851e5afdd773f574502 Mon Sep 17 00:00:00 2001 From: "reed@android.com" Date: Wed, 8 Jul 2009 14:03:56 +0000 Subject: add dox for scalarcomparetype use internal mutable version of drawPath when we've cons'd up a path on behalf of a rect git-svn-id: http://skia.googlecode.com/svn/trunk@258 2bbb7eff-a529-9590-31e7-b0007b416f81 --- include/core/SkScalar.h | 7 +++---- include/core/SkScalarCompare.h | 12 ++++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/core/SkScalar.h b/include/core/SkScalar.h index 86341eb996..5be809f9e3 100644 --- a/include/core/SkScalar.h +++ b/include/core/SkScalar.h @@ -232,8 +232,8 @@ /* <= is slower than < for floats, so we use < for our tolerance test */ -inline bool SkScalarNearlyZero(SkScalar x, SkScalar tolerance = SK_ScalarNearlyZero) -{ +static inline bool SkScalarNearlyZero(SkScalar x, + SkScalar tolerance = SK_ScalarNearlyZero) { SkASSERT(tolerance > 0); return SkScalarAbs(x) < tolerance; } @@ -244,8 +244,7 @@ inline bool SkScalarNearlyZero(SkScalar x, SkScalar tolerance = SK_ScalarNearlyZ else interpolate. t must be [0..SK_Scalar1] */ -inline SkScalar SkScalarInterp(SkScalar A, SkScalar B, SkScalar t) -{ +static inline SkScalar SkScalarInterp(SkScalar A, SkScalar B, SkScalar t) { SkASSERT(t >= 0 && t <= SK_Scalar1); return A + SkScalarMul(B - A, t); } 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; -- cgit v1.2.3