summaryrefslogtreecommitdiff
path: root/man/XPresentPixmap.man
diff options
context:
space:
mode:
Diffstat (limited to 'man/XPresentPixmap.man')
-rw-r--r--man/XPresentPixmap.man167
1 files changed, 167 insertions, 0 deletions
diff --git a/man/XPresentPixmap.man b/man/XPresentPixmap.man
new file mode 100644
index 0000000..a63f2d1
--- /dev/null
+++ b/man/XPresentPixmap.man
@@ -0,0 +1,167 @@
+.\"
+.\"
+.\" Copyright © 2013 Keith Packard
+.\"
+.\" Permission to use, copy, modify, distribute, and sell this software and its
+.\" documentation for any purpose is hereby granted without fee, provided that
+.\" the above copyright notice appear in all copies and that both that copyright
+.\" notice and this permission notice appear in supporting documentation, and
+.\" that the name of the copyright holders not be used in advertising or
+.\" publicity pertaining to distribution of the software without specific,
+.\" written prior permission. The copyright holders make no representations
+.\" about the suitability of this software for any purpose. It is provided "as
+.\" is" without express or implied warranty.
+.\"
+.\" THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+.\" INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+.\" EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+.\" CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+.\" DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+.\" TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+.\" OF THIS SOFTWARE.
+.\"
+.de TQ
+.br
+.ns
+.TP \\$1
+..
+.TH XPresentPixmap __libmansuffix__ __xorgversion__
+.SH NAME
+XPresentPixmap \- provide pixmap for presentation as window contents
+.SH SYNTAX
+\&#include <X11/extensions/Xpresent.h>
+.nf
+.sp
+void XPresentPixmap \^(\^Display *\fIdisplay\fP,
+ Window \fIwindow\fP,
+ Pixmap \fIpixmap\fP,
+ uint32_t \fIserial\fP,
+ XserverRegion \fIvalid\fP,
+ XserverRegion \fIupdate\fP,
+ int \fIx_off\fP,
+ int \fIy_off\fP,
+ RRCrtc \fItarget_crtc\fP,
+ XSyncFence \fIwait_fence\fP,
+ XSyncFence \fIidle_fence\fP,
+ uint32_t \fIoptions\fP,
+ uint64_t \fItarget_msc\fP,
+ uint64_t \fIdivisor\fP,
+ uint64_t \fIremainder\fP,
+ XPresentNotify \fI*notifies\fP,
+ int \fInnotifies\^\fP)\^;
+.fi
+.SH DESCRIPTION
+.B XPresentPixmap
+provides new content for the specified \fIwindow\fP, on the X server
+specified by \fIdisplay\fP, to be made
+visible at the specified time (defined by \fItarget-msc\fP, \fIdivisor\fP
+and \fIremainder\fP). If the depth of \fIpixmap\fP and \fIwindow\fP do not
+match, a Match error will be generated.
+.PP
+\fIserial\fP is an arbitrary client-specified value which will
+be returned in the associated \fBPresentCompleteNotify\fP event so
+that the client can associate the event and request.
+.PP
+\fIvalid-area\fP defines the portion of \fIpixmap\fP which contains
+valid window contents, or None if the pixmap contains valid
+contents for the whole window.
+.PP
+\fIupdate-area\fP defines the subset of the window to be updated,
+or None if the whole window is to be updated.
+.PP
+.B XPresentPixmap
+may use any region of \fIpixmap\fP which contains
+\fIupdate-area\fP and which is contained by \fIvalid-area\fP. In other
+words, areas inside \fIupdate-area\fP will be presented from
+\fIpixmap\fP, areas outside \fIvalid-area\fP will not be presented
+from \fIpixmap\fP and areas inside \fIvalid-area\fP but outside
+\fIupdate-area\fP may or may not be presented at the discretion of
+the X server.
+.PP
+\fIx-off\fP and \fIy-off\fP define the location in the window where
+the 0,0 location of the pixmap will be presented. \fIvalid-area\fP
+and \fIupdate-area\fP are relative to the pixmap.
+.PP
+\fIwait-fence\fP and \fIidle-fence\fP are fences from the XSync
+extension, which may be created with \fBXSyncCreateFence\fP().
+.PP
+The X server will block the presentation action until \fIwait-fence\fP
+is triggered, but the
+.B XPresentPixmap
+function returns immediately.
+.PP
+When the X server has finished using \fIpixmap\fP for this
+operation, it will send a \fBPresentIdleNotify\fP event and arrange
+for any \fIidle-fence\fP to be triggered. This may be at any time
+following the \fBPresentPixmap\fP request -- the contents may be
+immediately copied to another buffer, copied just in time for
+the vblank interrupt or the pixmap may be used directly for
+display (in which case it will be busy until some future
+\fBPresentPixmap\fP operation).
+.PP
+If \fIidle-fence\fP is not None, then the client guarantees to the
+X server that it will wait for that fence to be signalled
+before it uses the pixmap again. If \fIidle-fence\fP is None, then
+the X server must arrange for the pixmap to be re-usable by
+the client as soon as the \fBPresentIdleNotify\fP event has been
+received. Note that if \fBPresentCapabilityFence\fP is set for the
+associated CRTC, then clients should use fences to improve
+overall system performance. If \fBPresentCapabilityFence\fP is not
+set, then using fences offers no benefit, but also no cost.
+.PP
+If \fItarget-msc\fP is greater than the current msc for \fIwindow\fP,
+the presentation will occur at (or after) the \fItarget-msc\fP
+field. Otherwise, the presentation will occur after the next
+field where msc % \fIdivisor\fP == \fIremainder\fP.
+.PP
+If \fItarget-crtc\fP is None, then the X server will choose a
+suitable CRTC for synchronization.
+.PP
+If \fIoptions\fP contains \fBPresentOptionAsync\fP, and the \fItarget-msc\fP
+is less than or equal to the current Media Stream Counter (msc) for
+\fIwindow\fP, then the operation will be performed as soon as possible, not
+necessarily waiting for the next vertical blank interval.
+.PP
+If \fIoptions\fP contains \fBPresentOptionCopy\fP, then \fIpixmap\fP will be
+idle, and \fIidle-fence\fP triggered as soon as the operation occurs.
+If \fIoptions\fP contains \fBPresentOptionUST\fP, then \fItarget-msc\fP,
+\fIdivisor\fP, and \fIremainder\fP will all be interpreted as UST values
+instead of MSC values and the frame update will be scheduled
+for the specified UST time, If the \fItarget-crtc\fP supports
+\fBPresentCapabilityUST\fP, then the swap time will be as close to
+the target time as the driver can manage. Otherwise, the
+server will take the target UST time and convert it to a
+suitable target MSC value.
+.PP
+If \fIoptions\fP contains \fBPresentOptionSuboptimal\fP, then the
+\fBPresentCompleteNotify\fP event can have mode
+\fBPresentCompleteModeSuboptimalCopy\fP as the client supports it.
+.PP
+After the presentation occurs, a \fBPresentCompleteNotify\fP event
+with kind \fBPresentCompleteKindPixmap\fP will be generated, both to
+\fIwindow\fP as well as all members of \fInotifies\fP.
+\fInotifies\fP is specified as an array of \fBXPresentNotify\fP structures
+with \fInnotifies\fP members in the array.
+.PP
+If \fIwindow\fP is destroyed before the presentation occurs, then
+the presentation action will not be completed.
+.PP
+The X server holds a reference to \fIpixmap\fP until the
+presentation occurs, so \fIpixmap\fP may be immediately freed
+after the request executes, even if that is before the
+presentation occurs.
+.PP
+If \fIidle-fence\fP is destroyed before the presentation occurs,
+then \fIidle-fence\fP will not be signaled but the presentation will
+occur normally.
+.PP
+If \fIwait-fence\fP is destroyed before it becomes triggered, then
+the presentation operation will no longer wait for it and will
+occur when the other conditions are satisfied.
+.SH SEE ALSO
+.BR Xpresent (__libmansuffix__),
+.BR XPresentNotifyMSC (__libmansuffix__),
+.BR XPresentQueryCapabilities (__libmansuffix__),
+.BR XPresentSelectInput (__libmansuffix__)
+.SH AUTHORS
+Keith Packard, Intel