[cairo] Why PIXMAN_MAX_INT is defined as "((pixman_fixed_1 >> 1) - pixman_fixed_e)" ?

Siarhei Siamashka siarhei.siamashka at gmail.com
Wed Apr 10 16:55:21 PDT 2013

On Wed, 10 Apr 2013 05:19:06 +0000 (GMT)
조성원 <seongwon1.cho at samsung.com> wrote:

> Hi, all
> I have a simple question.
> Why PIXMAN_MAX_INT is defined as "((pixman_fixed_1 >> 1) - pixman_fixed_e)" ?

Pixman code was originally a part of Xorg server, which only needs and
uses 16.16 fixed point format:


> Is there anyway to overcome this limitation?

Some of the 16-bit limitations are already removed. Some of them are
still there. Fixing all of the remaining 16-bit assumptions in one go
(and actually confirming that the problems are indeed fixed) may
require a non-trivial amount of work.

But what exactly are you trying to do and how do you hit this
PIXMAN_MAX_INT limitation? A "realistic" approach is to try fixing
problems as they are discovered and extend the pixman test suite
to make sure that these problems don't show up again.

I may be wrong, but pixman users seem to generally prefer workarounding
these problems (for example, by splitting rendering into smaller
chunks) instead of reporting bugs and/or complaining. So the issue
is not getting enough attention.

Best regards,
Siarhei Siamashka

More information about the cairo mailing list