15:45:36lokeThe problem is that the xrender pictures are logically attached to the window in my code, but they are not part of it from the Xlib point of view
15:48:13lokebut... I'm thinking that instead of attaching the cached pictures to the window, I can attach them to the Display... After all, I _think_ they are compatible.
15:48:25oleothe pixmaps which are drawn to are an offscreen memory of the x window server
15:48:38oleoyou can alter them, without them being visible
15:48:46lokeThere would be a problem if you have an application opening windows on multiple screens, some of which have different bit depts. Then the xrender pictures wouldn't be compatible anymore.
15:48:51oleobut you won't see the effects if you don't invoke a redraw so to say
15:49:23oleoand so their content is only visible when mapped to a window
15:49:57lokeoleo: You never "map" a picture to a window. A picture is used as a storage medium for something that should be drawn to any window. It's a server-side image buffer.
15:50:59oleofrom the server point of view they are offscreen memory, which are realized from time to time so to say
15:51:16lokeUp until now, both pictures I need to render subpixel sampled text has been allocated in the beginning of every render-glyphs call, and freed at the end. I noticed drawing was slow so I did a benchmark: 50% time spent allocating just _one_ of those two pictures.
15:51:28loke(the other is smaller and takes less time)
15:52:21oleoi haven't yet read myself into the pixmap stuff deeply
15:52:31lokeoleo: Well, they're not realised. You draw the source image to one picture, then you draw the background to another, then you use these two images in an Xrender call to composite them with the actual window content.
15:57:40lokeNow... the "pen" object (the one that holds the foreground colour) is created with a pixmap as its backing object. After creating that picture, the pixmap is freed.
15:57:49lokeSo when the hell is the picture freed if I don't do it myself? :-)
15:58:15lokeIf it's freed when the X connection is closed, then I can just tie the cached pen to the XDisplay object and be done with it.
15:58:48oleoerr, afaik what you call drawing to is just X copying it to it's hardware
15:59:01oleoafter it you don't need it even anymore
16:00:01oleoso you can free the pixmap just after invoking the call to X
16:00:57oleoif you want to free the image, as in alter it or destroy it (like setting all bits to zero etc) then you have to have another pixmap of the same bounds, drawn onto the same window