Re: backend's acquire_source_image question

Chris Wilson <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <[email protected]>
On Wed, 28 Sep 2011 12:47:02 -0700 (PDT), S Boucher <[email protected]> wrote:
> Playing with backends (my own homegrown backend), I'm seeing acquire_source_image being called twice on a given surface, before the acquired images are released.
> 
> I see this while running the test clear-source (more specifically, it is in the mask_self part of the test).
> 
> What is the contract that the backend is required to respect for acquire_source_image and acquire_dest_image? cairoint.h is note particularly verbose on that.

acquire_source is expected to return an image surface whose contents will
only be read and must remain valid until the corresponding release. (That
release will be immedate upon finishing the operation, if it is required
for longer a snapshot will be taken instead.) As you correctly noticed,
acquire_source may be called for each channel (source and mask, and if
we're being extremely wacky clip). acquire_source is a fallback path and
should also be avoided (unless you have a very cheap, no-copy/readback
acquire source).

acquire_dest is deprecated. Backends are expected to handle fallbacks
themselves, but the common code will only acquire the fallback image
destination once for an operation.

self-copies are ill-defined. So at the moment it is legal to return the
same image for both source and destination fallbacks...
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
--
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.