al_fixed al_ftofix(double x);
Introduced in 5.0.0

Converts a floating point value to fixed point. Unlike al_itofix, this function clamps values which could overflow the type conversion, setting Allegro's errno to ERANGE in the process if this happens.


    al_fixed number;

    number = al_itofix(-40000);
    assert(al_fixfloor(number) == -32768);

    number = al_itofix(64000);
    assert(al_fixfloor(number) == 32767);
    assert(!al_get_errno()); /* This will fail. */

Return value: Returns the value of the floating point value converted to fixed point clamping overflows (and setting Allegro's errno).

See also: al_fixtof, al_itofix, al_fixtoi, al_get_errno

Most helpful discussions: