Thank you Mark.  Your description was just what the doctor ordered.  I
can get rid of clip masks entirely now, and a bunch of other
extraneous operations.

Thanks to your description, I don't need to know the following
information now, but its been bugging the heck out of me:
how did Keith Packard make his twn menu-windows translucent?
Are there docs somewhere that should make this obvious to me, which I
haven't found yet?  On the Render list archives I saw someone saying
explicitly "this stuff ISN'T documented anywhere..."

Jonathan

On Tue, Dec 11, 2001 at 01:14:24PM -0800, Mark Vojkovich wrote:
>   Changing the GC clip mask is a very slow operation and using
>GC clip masks should be avoided in performance paths.
>
>  Render everything into a pixmap, set it as the window background
>and call XClearArea on the window areas you need updated.
>Note that if you've changed the pixmap contents you need to
>reset it as the window background because the protocol doesn't
>guarantee that the new contents will go into effect without that.
>Note that the pixmap doesn't get damaged when the window does
>and the window will automatically get repainted from the background
>pixmap on exposures so you don't need to handle expose events anymore.
>
>  If the arrow is monochrome, the fastest way to render it is with
>a stippled fill using a monochrome bitmap with the shape of the
>arrow in it.
>
>Copy large drawable to 400x400 pixmap (single rectangle)
>render arrow (single stippled rectangle, note that you'll have
>   to use XSetTSOrigin to have it match the arrow location since
>   GC stipples are drawable aligned).
>set pixmap as window background
>XClearArea
>
>   Do nothing at all for exposures.

Attachment: msg02374/pgp00000.pgp
Description: PGP signature

Reply via email to