1 .\" Copyright (c) 1989, 1994 X Consortium
3 .\" Permission is hereby granted, free of charge, to any person obtaining a
4 .\" copy of this software and associated documentation files (the "Software"),
5 .\" to deal in the Software without restriction, including without limitation
6 .\" the rights to use, copy, modify, merge, publish, distribute, sublicense,
7 .\" and/or sell copies of the Software, and to permit persons to whom the
8 .\" Software furnished to do so, subject to the following conditions:
10 .\" The above copyright notice and this permission notice shall be included in
11 .\" all copies or substantial portions of the Software.
13 .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 .\" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 .\" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
16 .\" THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
17 .\" WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
18 .\" OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 .\" Except as contained in this notice, the name of the X Consortium shall not
22 .\" be used in advertising or otherwise to promote the sale, use or other
23 .\" dealing in this Software without prior written authorization from the
26 .\" Copyright 1989, Digital Equipment Corporation.
27 .\" Permission to use, copy, modify, distribute, and sell this documentation
28 .\" for any purpose and without fee is hereby granted, provided that the above
29 .\" copyright notice and this permission notice appear in all copies.
30 .\" Digital Equipment Corporation makes no representations
31 .\" about the suitability for any purpose of the information in
32 .\" this document. This documentation is provided "as is"
33 .\" without express or implied warranty.
36 .ie t \fB\^\\$1\^\fR\\$2
37 .el \fI\^\\$1\^\fP\\$2
39 .TH XMBUF __libmansuffix__ __xorgversion__ "X FUNCTIONS"
41 XmbufQueryExtension, XmbufGetVersion, XmbufCreateBuffers, XmbufDestroyBuffers, XmbufDisplayBuffers, XmbufGetWindowAttributes, XmbufChangeWindowAttributes, XmbufGetBufferAttributes, XmbufChangeBufferAttributes, XmbufGetScreenInfo, XmbufCreateStereoWindow - X multibuffering functions
45 \&#include <X11/extensions/multibuf.h>
47 Bool XmbufQueryExtension(
50 int *event_base_return,
51 int *error_base_return);
53 Status XmbufGetVersion(
55 int *major_version_return,
56 int *minor_version_return);
58 int XmbufCreateBuffers(
64 Multibuffer *buffers_update);
66 void XmbufDestroyBuffers(
70 void XmbufDisplayBuffers(
77 Status XmbufGetWindowAttributes(
80 XmbufWindowAttributes *attributes);
82 void XmbufChangeWindowAttributes(
85 unsigned long valuemask,
86 XmbufSetWindowAttributes *attributes);
88 Status XmbufGetBufferAttributes(
91 XmbufBufferAttributes *attributes);
93 void XmbufChangeBufferAttributes(
96 unsigned long valuemask,
97 XmbufSetBufferAttributes *attributes);
99 Status XmbufGetScreenInfo(
103 XmbufBufferInfo **mono_info_return,
105 XmbufBufferInfo **stereo_info_return);
107 Window XmbufCreateStereoWindow(
114 unsigned int border_width,
116 unsigned int class, /\&* InputOutput, InputOnly*/
118 unsigned long valuemask,
119 XSetWindowAttributes *attributes,
120 Multibuffer *left_return,
121 Multibuffer *right_return);
128 int type; /\&* of event */
129 unsigned long serial; /\&* # of last request processed by server */
130 int send_event; /\&* true if this came from a SendEvent request */
131 Display *display; /\&* Display the event was read from */
132 Multibuffer buffer; /\&* buffer of event */
133 int state; /\&* see Clobbered constants above */
134 } XmbufClobberNotifyEvent;
137 int type; /\&* of event */
138 unsigned long serial; /\&* # of last request processed by server */
139 int send_event; /\&* true if this came from a SendEvent request */
140 Display *display; /\&* Display the event was read from */
141 Multibuffer buffer; /\&* buffer of event */
142 } XmbufUpdateNotifyEvent;
144 \fIPer-window attributes that can be got:\fP
146 int displayed_index; /\&* which buffer is being displayed */
147 int update_action; /\&* Undefined, Background, Untouched, Copied */
148 int update_hint; /\&* Frequent, Intermittent, Static */
149 int window_mode; /\&* Mono, Stereo */
150 int nbuffers; /\&* Number of buffers */
151 Multibuffer *buffers; /\&* Buffers */
152 } XmbufWindowAttributes;
154 \fIPer-window attributes that can be set:\fP
156 int update_hint; /\&* Frequent, Intermittent, Static */
157 } XmbufSetWindowAttributes;
159 \fIPer-buffer attributes that can be got:\fP
161 Window window; /\&* which window this belongs to */
162 unsigned long event_mask; /\&* events that have been selected */
163 int buffer_index; /\&* which buffer is this */
164 int side; /\&* Mono, Left, Right */
165 } XmbufBufferAttributes;
167 \fIPer-buffer attributes that can be set:\fP
169 unsigned long event_mask; /\&* events that have been selected */
170 } XmbufSetBufferAttributes;
172 \fIPer-screen buffer info (there will be lists of them):\fP
174 VisualID visualid; /\&* visual usable at this depth */
175 int max_buffers; /\&* most buffers for this visual */
176 int depth; /\&* depth of buffers to be created */
180 The application programming library for the
181 \fIX11 Double-Buffering, Multi-Buffering, and Stereo Extension\fP
182 contains the interfaces described below.
183 With the exception of
184 .ZN XmbufQueryExtension ,
185 if any of these routines are
186 called with a display that does not support the extension, the
187 ExtensionErrorHandler (which can be set with
188 .ZN XSetExtensionErrorHandler
189 and functions the same way as
190 .ZN XSetErrorHandler )
191 will be called and the function will then return.
193 .ZN XmbufQueryExtension
196 if the multibuffering/stereo
197 extension is available on the
198 given display. If the extension exists, the value of the first event
199 code (which should be added to the event type constants
200 .ZN MultibufferClobberNotify
202 .ZN MultibufferUpdateNotify
204 values) is stored into event_base_return and the value of the first
205 error code (which should be added to the error type constant
206 .ZN MultibufferBadBuffer
207 to get the actual value) is stored into error_base_return.
210 gets the major and minor version numbers of the extension.
212 value is zero if an error occurs or non-zero if no error happens.
214 .ZN XmbufCreateBuffers
215 requests that "count" buffers be
216 created with the given update_action
217 and update_hint and be associated with the indicated window. The
218 number of buffers created is returned (zero if an error occurred)
219 and buffers_update is filled in with that many Multibuffer identifiers.
221 .ZN XmbufDestroyBuffers
222 destroys the buffers associated
223 with the given window.
225 .ZN XmbufDisplayBuffers
226 displays the indicated buffers their
227 appropriate windows within
228 max_delay milliseconds after min_delay milliseconds have passed.
229 No two buffers may be associated with the same window or else a Match
232 .ZN XmbufGetWindowAttributes
233 gets the multibuffering attributes that apply
234 to all buffers associated
235 with the given window.
236 The list of buffers returns may be freed with
238 Returns non-zero on success and zero if an error occurs.
240 .ZN XmbufChangeWindowAttributes
241 sets the multibuffering attributes
242 that apply to all buffers associated
243 with the given window. This is currently limited to the update_hint.
245 .ZN XmbufGetBufferAttributes
246 gets the attributes for the indicated buffer.
248 success and zero if an error occurs.
250 .ZN XmbufChangeBufferAttributes
251 sets the attributes for the indicated buffer.
252 This is currently limited to the event_mask.
254 .ZN XmbufGetScreenInfo
255 gets the parameters controlling how
256 mono and stereo windows may be
257 created on the screen of the given drawable. The numbers of sets of
258 visual and depths are returned in nmono_return and nstereo_return. If
259 nmono_return is greater than zero, then mono_info_return is set to the
260 address of an array of
262 structures describing the
263 various visuals and depths that may be used. Otherwise,
264 mono_info_return is set to NULL. Similarly, stereo_info_return is set
265 according to nstereo_return. The storage returned in mono_info_return
266 and stereo_info_return may be released by
269 encounted, non-zero will be returned.
271 .ZN XmbufCreateStereoWindow
272 creates a stereo window in the same way that
274 creates a mono window. The buffer ids for the left and right buffers are
275 returned in left_return and right_return, respectively. If an
276 extension error handler that returns is installed,
278 will be returned if the extension is not available on this display.
279 .SH PREDEFINED VALUES
284 .ZN MultibufferUpdateActionUndefined
285 .ZN MultibufferUpdateActionBackground
286 .ZN MultibufferUpdateActionUntouched
287 .ZN MultibufferUpdateActionCopied
294 .ZN MultibufferUpdateHintFrequent
295 .ZN MultibufferUpdateHintIntermittent
296 .ZN MultibufferUpdateHintStatic
303 .ZN MultibufferWindowUpdateHint
304 .ZN MultibufferBufferEventMask
308 Mono vs. stereo and left vs. right:
311 .ZN MultibufferModeMono
312 .ZN MultibufferModeStereo
313 .ZN MultibufferSideMono
314 .ZN MultibufferSideLeft
315 .ZN MultibufferSideRight
322 .ZN MultibufferUnclobbered
323 .ZN MultibufferPartiallyClobbered
324 .ZN MultibufferFullyClobbered
331 .ZN MultibufferClobberNotifyMask
332 .ZN MultibufferUpdateNotifyMask
333 .ZN MultibufferClobberNotify
334 .ZN MultibufferUpdateNotify
335 .ZN MultibufferNumberEvents
336 .ZN MultibufferBadBuffer
337 .ZN MultibufferNumberErrors
341 This manual page needs more work.
343 \fIExtending X for Double Buffering, Multi-Buffering, and Stereo\fP