Negative coordinates with recording surfaces

Antony Lee <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <CAGRr6BGZLMG-Uz8vxVMkeMYw-QO=+qfKT=GAY8vRRaEXPv69mw@mail.gmail.com>
Hi all,

I have am a bit puzzled with how negative coordinates interact with
recording surfaces.  Consider the following cairocffi example:

from cairocffi import *
surf = RecordingSurface(CONTENT_COLOR_ALPHA, None)
ctx = Context(surf)
ctx.move_to(-5, -5)
ctx.line_to(5, 5)
ctx.set_line_width(.001)  # so that ink extents are not affected by
linewidth
ctx.stroke()
print(surf.ink_extents())


This gives (-5.0, -5.0, 10.0, 10.0), so ink_extents has correctly reported
that we have something going from (-5, -5) to (5, 5) on the unbounded
surface.

But replace the surface constructor call by

surf = RecordingSurface(CONTENT_COLOR_ALPHA, (-10, -10, 20, 20))


which is a surface that is large enough to cover our line.  (After all, the
documentation encourages us to specify the extents, for better performance.)
Now the same program gives (5.0, 5.0, 5.0, 5.0).  By playing around with
the numbers, I *guess* that the origin is relative to the lower left corner
of the recording surface, and the width and height are up to 0, 0 but not
beyond?

Shouldn't I get instead either (-5.0, -5.0, 10.0, 10.0) (same as with an
unbounded surface), or at least (5.0, 5.0, 10.0, 10.0) (if the returned
extents are relative to the lower left corner of the surface)?

Thanks in advance,

Antony Lee

-- 
cairo mailing list
[email protected]
https://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.