Ideas for a brand new widget toolkit
qznc
qznc at web.de
Wed Aug 14 00:33:46 PDT 2013
On Wednesday, 14 August 2013 at 02:23:07 UTC, Adam D. Ruppe wrote:
> On Tuesday, 13 August 2013 at 20:33:48 UTC, Joakim wrote:
>> You mentioned X11 to me before, when we talked about this idea
>> over email.
>
> Ah yes. I think X's biggest problem though is that it doesn't
> do *enough*. The protocol is fairly efficient for what it does,
> but it just doesn't do enough so the commands aren't
> particularly compact when you start to get fancier.
>
> For instance, in my crappygui.d, I used XDrawString to draw
> text. This was the result: http://arsdnet.net/gui.png
>
> That's a true type font (Bitstream Vera Sans, a fairly good
> looking font), but X doesn't support antialiasing.
>
> There's a library called Xft that draws fonts prettier. But how
> does it work? Instead of sending DrawText(x, y, "hello world!")
> to the display server, it uses a drawing library to render the
> text as an image in the application, then sends that image to
> the display server.
>
> And BTW if the display doesn't support the alpha blending
> extension (the XRender extension), it first takes a partial
> screenshot, does the blending in library, and sends that image
> back!
>
> Note that the X protocol does not compress the image data. So
> if you send a 100x30 pixel image of text, you're shooting some
> 10 KB - or double that without XRender - down the network wire
> instead of the .... idk exactly for sure, but I think it is
> about 32 bytes to just send the draw instruction.
Font rendering is often application specific and very
complex. This is why it is done client-side in X11 nowadays.
State of Text Rendering on Linux: http://behdad.org/text/
More information about the Digitalmars-d
mailing list