<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="moz-cite-prefix">On 11/10/20 1:43 AM, Sam Varshavchik
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAMO9ifvf9dyVvjOq2xHTz6GhRMF6j_LmKFHSvxq74go20b6y8w@mail.gmail.com">
<pre class="moz-quote-pre" wrap="">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.</pre>
</blockquote>
Great, then we can rule out any XCB issues.
<blockquote type="cite"
cite="mid:CAMO9ifvf9dyVvjOq2xHTz6GhRMF6j_LmKFHSvxq74go20b6y8w@mail.gmail.com">
<blockquote type="cite">
<pre class="moz-quote-pre" wrap=""> xcb_poly_line (connection, XCB_COORD_MODE_ORIGIN, window,
foreground, 5, diamond);
</pre>
</blockquote>
<pre class="moz-quote-pre" wrap="">
This would be the PolyLine request:
<a class="moz-txt-link-freetext" href="https://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.html#requests:PolyLine">https://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.html#requests:PolyLine</a>
</pre>
</blockquote>
<p>Thanks, I've now read the polyline section thoroughly, some other
sections not as thoroughly, and skimmed the rest of the document.<br>
</p>
<p>
</p>
<blockquote type="cite"
cite="mid:CAMO9ifvf9dyVvjOq2xHTz6GhRMF6j_LmKFHSvxq74go20b6y8w@mail.gmail.com">
<pre class="moz-quote-pre" wrap="">Note the nuanced detail of how various coordinates get interpreted and
the meticulous detail in defining the actual drawn pixels.
</pre>
</blockquote>
Yes, the documentation is pretty exact in many aspects.
<blockquote type="cite"
cite="mid:CAMO9ifvf9dyVvjOq2xHTz6GhRMF6j_LmKFHSvxq74go20b6y8w@mail.gmail.com">
<pre class="moz-quote-pre" wrap="">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.
</pre>
</blockquote>
<p>I can't find anything that reasonably will account for the
behaviour I see, although I have not yet fully comprehended the
protocol.</p>
<p>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.</p>
<p>My diamonds are looking like this (missing right corner pixel):<br>
</p>
<pre> X
X X
X
X X
X
</pre>
<p>Except when starting and ending at the right corner, in which
case my diamonds look like this:<br>
</p>
<pre> X
X X
X X
X X
X</pre>
<p>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.</p>
<p>To me this seems inconsistent. How does it render on your
machine?</p>
<p><br>
</p>
</body>
</html>