dix: use pixman for fp1616 conversions
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Søren Sandmann <ssp@redhat.com>>
This commit is contained in:
parent
2c4388a00e
commit
59d70b30e9
|
@ -910,11 +910,7 @@ input_option_set_value(InputOption *opt, const char *value)
|
|||
double
|
||||
fp1616_to_double(FP1616 in)
|
||||
{
|
||||
double ret;
|
||||
|
||||
ret = (double) (in >> 16);
|
||||
ret += (double) (in & 0xffff) * (1.0 / (1UL << 16)); /* Optimized: ldexp((double)(in & 0xffff), -16); */
|
||||
return ret;
|
||||
return pixman_fixed_to_double(in);
|
||||
}
|
||||
|
||||
double
|
||||
|
@ -930,20 +926,7 @@ fp3232_to_double(FP3232 in)
|
|||
FP1616
|
||||
double_to_fp1616(double in)
|
||||
{
|
||||
FP1616 ret;
|
||||
int32_t integral;
|
||||
double tmp;
|
||||
uint32_t frac_d;
|
||||
|
||||
tmp = floor(in);
|
||||
integral = (int32_t) tmp;
|
||||
|
||||
tmp = (in - integral) * (1UL << 16); /* Optimized: ldexp(in - integral, 16) */
|
||||
frac_d = (uint16_t) tmp;
|
||||
|
||||
ret = integral << 16;
|
||||
ret |= frac_d & 0xffff;
|
||||
return ret;
|
||||
return pixman_double_to_fixed(in);
|
||||
}
|
||||
|
||||
FP3232
|
||||
|
|
Loading…
Reference in New Issue
Block a user