poly line issue

Per Dalgas Jakobsen pdj at knaldgas.dk
Tue Nov 10 08:09:58 UTC 2020


On 11/10/20 1:43 AM, Sam Varshavchik wrote:
> libxcb has no involvement with actual drawing or rendering. It's sole
> function is to transmit requests, and all their parameters, to the X
> server which then executes them. libxcb is really just a very thin
> mapping layer between a functional API and X protocol messages.
Great, then we can rule out any XCB issues.
>>     xcb_poly_line (connection, XCB_COORD_MODE_ORIGIN, window,
>> foreground, 5, diamond);
> This would be the PolyLine request:
>
> https://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.html#requests:PolyLine

Thanks, I've now read the polyline section thoroughly, some other
sections not as thoroughly, and skimmed the rest of the document.

> Note the nuanced detail of how various coordinates get interpreted and
> the meticulous detail in defining the actual drawn pixels.
Yes, the documentation is pretty exact in many aspects.
> You're going to have to sift through the specification, to get the
> details of what happens. That's just one example (whose answer I don't
> recall off the top of my head), you'll have to decipher what's
> happening in your case similarly.

I can't find anything that reasonably will account for the behaviour I
see, although I have not yet fully comprehended the protocol.

>From the polyline section: "The lines join correctly at all intermediate
points, and if the first and last points coincide, the first and last
lines also join correctly." - Even without defining "join correctly" my
example on my machine joins the lines differently.

My diamonds are looking like this (missing right corner pixel):

  X
 X X
X
 X X
  X

Except when starting and ending at the right corner, in which case my
diamonds look like this:

  X
 X X
X   X
 X X
  X

My reasoning is: Entire shape is within clipping/bounding (as far as I
can see at least), the line joins should "join correctly", the polylines
consist of the same points (another test I made) but still the diamond
is only rendered correctly if the rightmost corner is first/last.

To me this seems inconsistent. How does it render on your machine?


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.x.org/archives/xorg/attachments/20201110/5f00b4a9/attachment.htm>


More information about the xorg mailing list