Re: XDrawLine and optimization

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

On 03/02/2012 12:41 PM, Adam Jackson wrote:
> On 3/2/12 4:21 PM, Christopher Howard wrote:
>> I don't have much (any?) Xlib programming savvy, but before diving
>> headlong into the Programming Manual I was hoping to get some
>> perspective. There is a particular application I use pretty often, and
>> one of the things it does is to draw filled line graphs on the screen,
>> which it does by calling XDrawLine() with the appropriate parameters for
>> each data point. Looking at the code, I was curious if I could optimize
>> this, by first drawing everything into some kind of local memory buffer
>> and then passing that into some Xlib function all at once.
>> However, since XDrawLine() presumably draws the lines into a buffer
>> anyway, I'm wondering if there are any realistic gains (or any gains at
>> all) to be had by such an approach.
> Might or might not help.  It really depends more what kind of lines
> you're drawing - in particular what the GC state is you're using to draw
> them and the characteristics of the surface you're drawing to - and
> which driver you're using.  Can you give more detail?
> - ajax

The code is from conky.c in conky-1.8.1. Before the loop it does one

XSetLineAttributes(display, window.gc, 1, LineSolid,
    CapButt, JoinMiter);

And each actual line draw is preceded by a call to XSetForeground (the
color changes in different parts of the graph).

I'm not yet much familiar with how graphics contexts are set up in Xlib
but I think this is what you are referring to:

void create_gc(void)
    XGCValues values;

    values.graphics_exposures = 0;
    values.function = GXcopy;
    window.gc = XCreateGC(display, window.drawable,
            GCFunction | GCGraphicsExposures, &values);


Attachment: signature.asc
Description: OpenPGP digital signature

xorg@xxxxxxxxxxx: X.Org support
Your subscription address: list-xorg@xxxxxxxxxxx

[X Forum]     [Nouveau Driver]     [Devices]     [XFree86]     [XFree86 Newbie]     [Site Home]     [IETF Annouce]     [Security]     [Fontconfig]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Video for Linux]     [Linux RAID]     [Linux Resources]

Powered by Linux