include/core/SkFixed.h File Reference

#include "SkTypes.h"
Include dependency graph for SkFixed.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define SK_Fixed1   (1 << 16)
#define SK_FixedHalf   (1 << 15)
#define SK_FixedMax   (0x7FFFFFFF)
#define SK_FixedMin   (0x1)
#define SK_FixedNaN   ((int) 0x80000000)
#define SK_FixedPI   (0x3243F)
#define SK_FixedSqrt2   (92682)
#define SK_FixedTanPIOver8   (0x6A0A)
#define SK_FixedRoot2Over2   (0xB505)
#define SK_Fract1   (1 << 30)
#define Sk_FracHalf   (1 << 29)
#define SK_FractPIOver180   (0x11DF46A)
#define SkIntToFixed(n)   (SkFixed)((n) << 16)
#define SkFixedToFract(x)   ((x) << 14)
#define SkFractToFixed(x)   ((x) >> 14)
#define SkFixedRound(x)   (((x) + SK_FixedHalf) >> 16)
#define SkFixedCeil(x)   (((x) + SK_Fixed1 - 1) >> 16)
#define SkFixedFloor(x)   ((x) >> 16)
#define SkFixedAbs(x)   SkAbs32(x)
#define SkFixedAve(a, b)   (((a) + (b)) >> 1)
#define SkFixedDiv(numer, denom)   SkDivBits(numer, denom, 16)
#define SkFixedInvert(n)   SkDivBits(SK_Fixed1, n, 16)
#define SkFixedSqrt(n)   SkSqrtBits(n, 23)
#define SkFractDiv(numer, denom)   SkDivBits(numer, denom, 30)
#define SkFractSqrt(n)   SkSqrtBits(n, 30)
#define SkFixedSin(radians)   SkFixedSinCos(radians, NULL)
#define SK_FixedNearlyZero   (SK_Fixed1 >> 12)
#define SkFixedSquare(x)   SkFixedSquare_portable(x)
#define SkFixedMul(x, y)   SkFixedMul_portable(x, y)
#define SkFractMul(x, y)   SkFractMul_portable(x, y)
#define SkFixedMulAdd(x, y, a)   (SkFixedMul(x, y) + (a))

Typedefs

typedef int32_t SkFixed
typedef int32_t SkFract

Functions

SkFixed SkFixedFraction (SkFixed x)
SkFixed SkFixedMul_portable (SkFixed, SkFixed)
SkFract SkFractMul_portable (SkFract, SkFract)
SkFixed SkFixedSquare_portable (SkFixed value)
SkFixed SkFixedDivInt (int32_t numer, int32_t denom)
SkFixed SkFixedMod (SkFixed numer, SkFixed denom)
SkFixed SkFixedFastInvert (SkFixed n)
SkFixed SkFixedMean (SkFixed a, SkFixed b)
int SkFixedMulCommon (SkFixed, int, int bias)
SkFixed SkFixedSinCos (SkFixed radians, SkFixed *cosValueOrNull)
SkFixed SkFixedCos (SkFixed radians)
SkFixed SkFixedTan (SkFixed radians)
SkFixed SkFixedASin (SkFixed)
SkFixed SkFixedACos (SkFixed)
SkFixed SkFixedATan2 (SkFixed y, SkFixed x)
SkFixed SkFixedExp (SkFixed)
SkFixed SkFixedLog (SkFixed)
bool SkFixedNearlyZero (SkFixed x, SkFixed tolerance=SK_FixedNearlyZero)

Detailed Description

Types and macros for 16.16 fixed point

Definition in file SkFixed.h.


Define Documentation

#define SK_Fixed1   (1 << 16)

Definition at line 30 of file SkFixed.h.

#define SK_FixedHalf   (1 << 15)

Definition at line 31 of file SkFixed.h.

#define SK_FixedMax   (0x7FFFFFFF)

Definition at line 32 of file SkFixed.h.

#define SK_FixedMin   (0x1)

Definition at line 33 of file SkFixed.h.

#define SK_FixedNaN   ((int) 0x80000000)

Definition at line 34 of file SkFixed.h.

#define SK_FixedNearlyZero   (SK_Fixed1 >> 12)

Definition at line 143 of file SkFixed.h.

#define SK_FixedPI   (0x3243F)

Definition at line 35 of file SkFixed.h.

#define SK_FixedRoot2Over2   (0xB505)

Definition at line 38 of file SkFixed.h.

#define SK_FixedSqrt2   (92682)

Definition at line 36 of file SkFixed.h.

#define SK_FixedTanPIOver8   (0x6A0A)

Definition at line 37 of file SkFixed.h.

#define Sk_FracHalf   (1 << 29)

Definition at line 52 of file SkFixed.h.

#define SK_Fract1   (1 << 30)

Definition at line 51 of file SkFixed.h.

#define SK_FractPIOver180   (0x11DF46A)

Definition at line 53 of file SkFixed.h.

#define SkFixedAbs (  )     SkAbs32(x)

Definition at line 103 of file SkFixed.h.

#define SkFixedAve ( a,
 )     (((a) + (b)) >> 1)

Definition at line 104 of file SkFixed.h.

#define SkFixedCeil (  )     (((x) + SK_Fixed1 - 1) >> 16)

Definition at line 101 of file SkFixed.h.

#define SkFixedDiv ( numer,
denom   )     SkDivBits(numer, denom, 16)

Definition at line 116 of file SkFixed.h.

#define SkFixedFloor (  )     ((x) >> 16)

Definition at line 102 of file SkFixed.h.

#define SkFixedInvert (  )     SkDivBits(SK_Fixed1, n, 16)

Definition at line 119 of file SkFixed.h.

#define SkFixedMul ( x,
 )     SkFixedMul_portable(x, y)

Definition at line 244 of file SkFixed.h.

#define SkFixedMulAdd ( x,
y,
 )     (SkFixedMul(x, y) + (a))

Definition at line 250 of file SkFixed.h.

#define SkFixedRound (  )     (((x) + SK_FixedHalf) >> 16)

Round a SkFixed to an integer

Definition at line 100 of file SkFixed.h.

#define SkFixedSin ( radians   )     SkFixedSinCos(radians, NULL)

Definition at line 129 of file SkFixed.h.

#define SkFixedSqrt (  )     SkSqrtBits(n, 23)

Definition at line 121 of file SkFixed.h.

#define SkFixedSquare (  )     SkFixedSquare_portable(x)

Definition at line 241 of file SkFixed.h.

#define SkFixedToFract (  )     ((x) << 14)

Converts a SkFixed to a SkFract, asserting that the result does not overflow a 32 bit signed integer

Definition at line 84 of file SkFixed.h.

#define SkFractDiv ( numer,
denom   )     SkDivBits(numer, denom, 30)

Definition at line 125 of file SkFixed.h.

#define SkFractMul ( x,
 )     SkFractMul_portable(x, y)

Definition at line 247 of file SkFixed.h.

#define SkFractSqrt (  )     SkSqrtBits(n, 30)

Definition at line 126 of file SkFixed.h.

#define SkFractToFixed (  )     ((x) >> 14)

Converts a SkFract to a SkFixed

Definition at line 97 of file SkFixed.h.

#define SkIntToFixed (  )     (SkFixed)((n) << 16)

Converts an integer to a SkFixed, asserting that the result does not overflow a 32 bit signed integer

Definition at line 71 of file SkFixed.h.


Typedef Documentation

typedef int32_t SkFixed

32 bit signed integer used to represent fractions values with 16 bits to the right of the decimal point

Definition at line 29 of file SkFixed.h.

typedef int32_t SkFract

32 bit signed integer used to represent fractions values with 30 bits to the right of the decimal point

Definition at line 50 of file SkFixed.h.


Function Documentation

SkFixed SkFixedACos ( SkFixed   ) 
SkFixed SkFixedASin ( SkFixed   ) 
SkFixed SkFixedATan2 ( SkFixed  y,
SkFixed  x 
)
SkFixed SkFixedCos ( SkFixed  radians  )  [inline]

Definition at line 130 of file SkFixed.h.

SkFixed SkFixedDivInt ( int32_t  numer,
int32_t  denom 
)
SkFixed SkFixedExp ( SkFixed   ) 
SkFixed SkFixedFastInvert ( SkFixed  n  ) 
SkFixed SkFixedFraction ( SkFixed  x  )  [inline]

Returns the signed fraction of a SkFixed

Definition at line 89 of file SkFixed.h.

SkFixed SkFixedLog ( SkFixed   ) 
SkFixed SkFixedMean ( SkFixed  a,
SkFixed  b 
)
SkFixed SkFixedMod ( SkFixed  numer,
SkFixed  denom 
)
SkFixed SkFixedMul_portable ( SkFixed  ,
SkFixed   
)
int SkFixedMulCommon ( SkFixed  ,
int  ,
int  bias 
)
bool SkFixedNearlyZero ( SkFixed  x,
SkFixed  tolerance = SK_FixedNearlyZero 
) [inline]

Definition at line 145 of file SkFixed.h.

SkFixed SkFixedSinCos ( SkFixed  radians,
SkFixed cosValueOrNull 
)
SkFixed SkFixedSquare_portable ( SkFixed  value  )  [inline]

Definition at line 108 of file SkFixed.h.

SkFixed SkFixedTan ( SkFixed  radians  ) 
SkFract SkFractMul_portable ( SkFract  ,
SkFract   
)

Generated on Tue Oct 20 11:03:40 2009 for Skia by  doxygen 1.6.1