<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>