1 .\" $Xorg: Xmbuf.man,v 1.3 2000/08/17 19:41:54 cpqbld Exp $
2 .\" Copyright (c) 1989, 1994 X Consortium
4 .\" Permission is hereby granted, free of charge, to any person obtaining a
5 .\" copy of this software and associated documentation files (the "Software"),
6 .\" to deal in the Software without restriction, including without limitation
7 .\" the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 .\" and/or sell copies of the Software, and to permit persons to whom the
9 .\" Software furnished to do so, subject to the following conditions:
11 .\" The above copyright notice and this permission notice shall be included in
12 .\" all copies or substantial portions of the Software.
14 .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 .\" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 .\" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 .\" THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
18 .\" WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
19 .\" OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 .\" Except as contained in this notice, the name of the X Consortium shall not
23 .\" be used in advertising or otherwise to promote the sale, use or other
24 .\" dealing in this Software without prior written authorization from the
27 .\" Copyright 1989, Digital Equipment Corporation.
28 .\" Permission to use, copy, modify, distribute, and sell this documentation
29 .\" for any purpose and without fee is hereby granted, provided that the above
30 .\" copyright notice and this permission notice appear in all copies.
31 .\" Digital Equipment Corporation makes no representations
32 .\" about the suitability for any purpose of the information in
33 .\" this document. This documentation is provided "as is"
34 .\" without express or implied warranty.
37 .\" $XFree86: xc/doc/man/Xext/Xmbuf.man,v 1.3 2001/02/07 22:35:21 tsi Exp $
41 .ie t \fB\^\\$1\^\fR\\$2
42 .el \fI\^\\$1\^\fP\\$2
44 .TH XMBUF __libmansuffix__ __xorgversion__ "X FUNCTIONS"
46 XmbufQueryExtension, XmbufGetVersion, XmbufCreateBuffers, XmbufDestroyBuffers, XmbufDisplayBuffers, XmbufGetWindowAttributes, XmbufChangeWindowAttributes, XmbufGetBufferAttributes, XmbufChangeBufferAttributes, XmbufGetScreenInfo, XmbufCreateStereoWindow - X multibuffering functions
50 \&#include <X11/extensions/multibuf.h>
52 Bool XmbufQueryExtension(
55 int *event_base_return,
56 int *error_base_return);
58 Status XmbufGetVersion(
60 int *major_version_return,
61 int *minor_version_return);
63 int XmbufCreateBuffers(
69 Multibuffer *buffers_update);
71 void XmbufDestroyBuffers(
75 void XmbufDisplayBuffers(
82 Status XmbufGetWindowAttributes(
85 XmbufWindowAttributes *attributes);
87 void XmbufChangeWindowAttributes(
90 unsigned long valuemask,
91 XmbufSetWindowAttributes *attributes);
93 Status XmbufGetBufferAttributes(
96 XmbufBufferAttributes *attributes);
98 void XmbufChangeBufferAttributes(
101 unsigned long valuemask,
102 XmbufSetBufferAttributes *attributes);
104 Status XmbufGetScreenInfo(
108 XmbufBufferInfo **mono_info_return,
110 XmbufBufferInfo **stereo_info_return);
112 Window XmbufCreateStereoWindow(
119 unsigned int border_width,
121 unsigned int class, /\(** InputOutput, InputOnly*/
123 unsigned long valuemask,
124 XSetWindowAttributes *attributes,
125 Multibuffer *left_return,
126 Multibuffer *right_return);
133 int type; /\(** of event */
134 unsigned long serial; /\(** # of last request processed by server */
135 int send_event; /\(** true if this came frome a SendEvent request */
136 Display *display; /\(** Display the event was read from */
137 Multibuffer buffer; /\(** buffer of event */
138 int state; /\(** see Clobbered constants above */
139 } XmbufClobberNotifyEvent;
142 int type; /\(** of event */
143 unsigned long serial; /\(** # of last request processed by server */
144 int send_event; /\(** true if this came frome a SendEvent request */
145 Display *display; /\(** Display the event was read from */
146 Multibuffer buffer; /\(** buffer of event */
147 } XmbufUpdateNotifyEvent;
149 \fIPer-window attributes that can be got:\fP
151 int displayed_index; /\(** which buffer is being displayed */
152 int update_action; /\(** Undefined, Background, Untouched, Copied */
153 int update_hint; /\(** Frequent, Intermittent, Static */
154 int window_mode; /\(** Mono, Stereo */
155 int nbuffers; /\(** Number of buffers */
156 Multibuffer *buffers; /\(** Buffers */
157 } XmbufWindowAttributes;
159 \fIPer-window attributes that can be set:\fP
161 int update_hint; /\(** Frequent, Intermittent, Static */
162 } XmbufSetWindowAttributes;
164 \fIPer-buffer attributes that can be got:\fP
166 Window window; /\(** which window this belongs to */
167 unsigned long event_mask; /\(** events that have been selected */
168 int buffer_index; /\(** which buffer is this */
169 int side; /\(** Mono, Left, Right */
170 } XmbufBufferAttributes;
172 \fIPer-buffer attributes that can be set:\fP
174 unsigned long event_mask; /\(** events that have been selected */
175 } XmbufSetBufferAttributes;
177 \fIPer-screen buffer info (there will be lists of them):\fP
179 VisualID visualid; /\(** visual usuable at this depth */
180 int max_buffers; /\(** most buffers for this visual */
181 int depth; /\(** depth of buffers to be created */
185 The application programming library for the
186 \fIX11 Double-Buffering, Multi-Buffering, and Stereo Extension\fP
187 contains the interfaces described below.
188 With the exception of
189 .ZN XmbufQueryExtension ,
190 if any of these routines are
191 called with a display that does not support the extension, the
192 ExtensionErrorHandler (which can be set with
193 .ZN XSetExtensionErrorHandler
194 and functions the same way as
195 .ZN XSetErrorHandler )
196 will be called and the function will then return.
198 .ZN XmbufQueryExtension
201 if the multibuffering/stereo
202 extension is available on the
203 given display. If the extension exists, the value of the first event
204 code (which should be added to the event type constants
205 .ZN MultibufferClobberNotify
207 .ZN MultibufferUpdateNotify
209 values) is stored into event_base_return and the value of the first
210 error code (which should be added to the error type constant
211 .ZN MultibufferBadBuffer
212 to get the actual value) is stored into error_base_return.
215 gets the major and minor version numbers of the extension.
217 value is zero if an error occurs or non-zero if no error happens.
219 .ZN XmbufCreateBuffers
220 requests that "count" buffers be
221 created with the given update_action
222 and update_hint and be associated with the indicated window. The
223 number of buffers created is returned (zero if an error occurred)
224 and buffers_update is filled in with that many Multibuffer identifiers.
226 .ZN XmbufDestroyBuffers
227 destroys the buffers associated
228 with the given window.
230 .ZN XmbufDisplayBuffers
231 displays the indicated buffers their
232 appropriate windows within
233 max_delay milliseconds after min_delay milliseconds have passed.
234 No two buffers may be associated with the same window or else a Matc
237 .ZN XmbufGetWindowAttributes
238 gets the multibuffering attributes that apply
239 to all buffers associated
240 with the given window.
241 The list of buffers returns may be freed with
243 Returns non-zero on success and zero if an error occurs.
245 .ZN XmbufChangeWindowAttributes
246 sets the multibuffering attributes
247 that apply to all buffers associated
248 with the given window. This is currently limited to the update_hint.
250 .ZN XmbufGetBufferAttributes
251 gets the attributes for the indicated buffer.
253 success and zero if an error occurs.
255 .ZN XmbufChangeBufferAttributes
256 sets the attributes for the indicated buffer.
257 This is currently limited to the event_mask.
259 .ZN XmbufGetScreenInfo
260 gets the parameters controlling how
261 mono and stereo windows may be
262 created on the screen of the given drawable. The numbers of sets of
263 visual and depths are returned in nmono_return and nstereo_return. If
264 nmono_return is greater than zero, then mono_info_return is set to the
265 address of an array of
267 structures describing the
268 various visuals and depths that may be used. Otherwise,
269 mono_info_return is set to NULL. Similarly, stereo_info_return is set
270 according to nstereo_return. The storage returned in mono_info_return
271 and stereo_info_return may be released by
274 encounted, non-zero will be returned.
276 .ZN XmbufCreateStereoWindow
277 creates a stereo window in the same way that
279 creates a mono window. The buffer ids for the left and right buffers are
280 returned in left_return and right_return, respectively. If an
281 extension error handler that returns is installed,
283 will be returned if the extension is not available on this display.
284 .SH PREDEFINED VALUES
289 .ZN MultibufferUpdateActionUndefined
290 .ZN MultibufferUpdateActionBackground
291 .ZN MultibufferUpdateActionUntouched
292 .ZN MultibufferUpdateActionCopied
299 .ZN MultibufferUpdateHintFrequent
300 .ZN MultibufferUpdateHintIntermittent
301 .ZN MultibufferUpdateHintStatic
308 .ZN MultibufferWindowUpdateHint
309 .ZN MultibufferBufferEventMask
313 Mono vs. stereo and left vs. right:
316 .ZN MultibufferModeMono
317 .ZN MultibufferModeStereo
318 .ZN MultibufferSideMono
319 .ZN MultibufferSideLeft
320 .ZN MultibufferSideRight
327 .ZN MultibufferUnclobbered
328 .ZN MultibufferPartiallyClobbered
329 .ZN MultibufferFullyClobbered
336 .ZN MultibufferClobberNotifyMask
337 .ZN MultibufferUpdateNotifyMask
338 .ZN MultibufferClobberNotify
339 .ZN MultibufferUpdateNotify
340 .ZN MultibufferNumberEvents
341 .ZN MultibufferBadBuffer
342 .ZN MultibufferNumberErrors
346 This manual page needs more work.
348 \fIExtending X for Double Buffering, Multi-Buffering, and Stereo\fP