![]() |
![]() |
![]() |
Clutter 0.9.0 Reference Manual | ![]() |
---|---|---|---|---|
typedef ClutterFixed; #define CFX_ONE #define CFX_HALF #define CFX_MAX #define CFX_MIN #define CFX_PI #define CFX_2PI #define CFX_PI_2 #define CFX_PI_4 #define CFX_120 #define CFX_180 #define CFX_240 #define CFX_360 #define CFX_60 #define CFX_255 #define CLUTTER_FIXED_TO_INT (x) #define CLUTTER_FIXED_TO_FLOAT (x) #define CLUTTER_FIXED_TO_DOUBLE (x) #define CLUTTER_FLOAT_TO_FIXED (x) #define CLUTTER_FLOAT_TO_INT (x) #define CLUTTER_FLOAT_TO_UINT (x) #define CLUTTER_INT_TO_FIXED (x) #define CLUTTER_FIXED_FRACTION (x) #define CLUTTER_FIXED_FLOOR (x) #define CLUTTER_FIXED_CEIL (x) #define CLUTTER_FIXED_MUL (x,y) #define CLUTTER_FIXED_DIV (x,y) typedef ClutterAngle; #define CLUTTER_ANGLE_FROM_DEG (x) #define CLUTTER_ANGLE_FROM_DEGX (x) #define CLUTTER_ANGLE_TO_DEG (x) #define CLUTTER_ANGLE_TO_DEGX (x) #define CLUTTER_ANGLE_MAX_DEG #define CFX_RADIANS_TO_DEGREES #define clutter_cosx (a) #define clutter_sinx (a) #define clutter_tanx (a) #define clutter_atanx (a) #define clutter_atan2x (x,y) #define clutter_qmulx (x,y) #define clutter_qdivx (x,y) #define CLUTTER_MAXFIXED #define CLUTTER_MINFIXED ClutterParamSpecFixed; GParamSpec* clutter_param_spec_fixed (const gchar *name, const gchar *nick, const gchar *blurb, ClutterFixed minimum, ClutterFixed maximum, ClutterFixed default_value, GParamFlags flags); #define CLUTTER_VALUE_HOLDS_FIXED (x) void clutter_value_set_fixed (GValue *value, ClutterFixed fixed_); ClutterFixed clutter_value_get_fixed (const GValue *value);
Clutter has a fixed point API targeted at platforms without a floating point unit, such as embedded devices. On such platforms this API should be preferred to the floating point one as it does not trigger the slow path of software emulation, relying on integer math for fixed-to-floating and floating-to-fixed conversion.
It is no recommened for use on platforms with a floating point unit (eg desktop systems) nor for use in bindings.
Basic rules of Fixed Point arithmethic:
Two fixed point numbers can be directly added, subtracted and have their modulus taken.
To add other numerical type to a fixed point number it has to be first converted to fixed point.
A fixed point number can be directly multiplied or divided by an integer.
Two fixed point numbers can only be multiplied and divided by the
provided CLUTTER_FIXED_MUL
and CLUTTER_FIXED_DIV
macros.
#define CLUTTER_FIXED_TO_INT(x) ((int)(x))
Converts a fixed point value to integer (removing the decimal part).
|
a fixed point value |
Since 0.6
#define CLUTTER_FIXED_TO_FLOAT(x) (x)
Convert a fixed point value to float.
|
a fixed point value |
#define CLUTTER_FIXED_TO_DOUBLE(x) ((double)(x))
Convert a fixed point value to double.
|
a fixed point value |
#define CLUTTER_FLOAT_TO_FIXED(x) ((x))
Convert a float value to fixed.
|
a floating point value |
#define CLUTTER_FLOAT_TO_INT(x) ((int)(x))
Convert a float value to int.
|
a floating point value |
#define CLUTTER_FLOAT_TO_UINT(x) ((unsigned int)(x))
Convert a float value to unsigned int.
|
a floating point value |
#define CLUTTER_INT_TO_FIXED(x) ((float)(x))
Convert an integer value to fixed point.
|
an integer value |
#define CLUTTER_FIXED_FRACTION(x) ((x)-floorf (x))
Retrieves the fractionary part of a fixed point value
|
a fixed point value |
#define CLUTTER_FIXED_FLOOR(x) (floorf (x))
Round down a fixed point value to an integer.
|
a fixed point value |
#define CLUTTER_FIXED_CEIL(x) (ceilf (x))
Round up a fixed point value to an integer.
|
a fixed point value |
#define CLUTTER_FIXED_MUL(x,y) ((x) * (y))
Multiply two fixed point values
|
a fixed point value |
|
a fixed point value |
#define CLUTTER_FIXED_DIV(x,y) ((x) / (y))
Divide two fixed point values
|
a fixed point value |
|
a fixed point value |
#define CFX_RADIANS_TO_DEGREES (180.0 / G_PI)
Fixed point representation of the number 180 / pi
typedef struct { ClutterFixed minimum; ClutterFixed maximum; ClutterFixed default_value; } ClutterParamSpecFixed;
GParamSpec subclass for fixed point based properties
ClutterFixed |
lower boundary |
ClutterFixed |
higher boundary |
ClutterFixed |
default value |
Since 0.8
GParamSpec* clutter_param_spec_fixed (const gchar *name, const gchar *nick, const gchar *blurb, ClutterFixed minimum, ClutterFixed maximum, ClutterFixed default_value, GParamFlags flags);
Creates a GParamSpec for properties using ClutterFixed values
|
name of the property |
|
short name |
|
description (can be translatable) |
|
lower boundary |
|
higher boundary |
|
default value |
|
flags for the param spec |
Returns : |
the newly created GParamSpec |
Since 0.8
#define CLUTTER_VALUE_HOLDS_FIXED(x) (G_VALUE_HOLDS ((x), CLUTTER_TYPE_FIXED))
Evaluates to TRUE
if x
holds a ClutterFixed.
|
a GValue |
Since 0.8
void clutter_value_set_fixed (GValue *value, ClutterFixed fixed_);
Sets value
to fixed_
.
|
a GValue initialized to CLUTTER_TYPE_FIXED |
|
the fixed point value to set |
Since 0.8
ClutterFixed clutter_value_get_fixed (const GValue *value);
Gets the fixed point value stored inside value
.
Since 0.8