74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * $Xorg: multibuf.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncCopyright 1989, 1998 The Open Group
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncPermission to use, copy, modify, distribute, and sell this software and its
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncdocumentation for any purpose is hereby granted without fee, provided that
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncthe above copyright notice appear in all copies and that both that
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsynccopyright notice and this permission notice appear in supporting
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncdocumentation.
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncThe above copyright notice and this permission notice shall be included in
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncall copies or substantial portions of the Software.
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncExcept as contained in this notice, the name of The Open Group shall not be
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncused in advertising or otherwise to promote the sale, use or other dealings
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncin this Software without prior written authorization from The Open Group.
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync/* $XFree86: xc/include/extensions/multibuf.h,v 3.4 2001/12/14 19:53:28 dawes Exp $ */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define MULTIBUFFER_MAJOR_VERSION 1 /* current version numbers */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define MULTIBUFFER_MINOR_VERSION 1 /* has ClearImageBufferArea */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * update_action field
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * update_hint field
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * valuemask fields
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * mono vs. stereo and left vs. right
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * clobber state
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * event stuff
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define MultibufferNumberEvents (MultibufferUpdateNotify + 1)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#define MultibufferNumberErrors (MultibufferBadBuffer + 1)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * Extra definitions that will only be needed in the client
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsynctypedef struct {
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync unsigned long serial; /* # of last request processed by server */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int send_event; /* true if this came frome a SendEvent request */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync Display *display; /* Display the event was read from */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsynctypedef struct {
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync unsigned long serial; /* # of last request processed by server */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int send_event; /* true if this came frome a SendEvent request */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync Display *display; /* Display the event was read from */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * per-window attributes that can be got
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsynctypedef struct {
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int displayed_index; /* which buffer is being displayed */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int update_action; /* Undefined, Background, Untouched, Copied */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int update_hint; /* Frequent, Intermittent, Static */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * per-window attributes that can be set
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsynctypedef struct {
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int update_hint; /* Frequent, Intermittent, Static */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * per-buffer attributes that can be got
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsynctypedef struct {
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync unsigned long event_mask; /* events that have been selected */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * per-buffer attributes that can be set
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsynctypedef struct {
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync unsigned long event_mask; /* events that have been selected */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync * per-screen buffer info (there will be lists of them)
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsynctypedef struct {
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync VisualID visualid; /* visual usuable at this depth */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int max_buffers; /* most buffers for this visual */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int* /* event_base_return */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int* /* error_base_return */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int* /* major_version_return */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int* /* minor_version_return */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int /* count */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int /* update_action */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int /* update_hint */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int /* count */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int /* min_delay */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int /* max_delay */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync unsigned long /* valuemask */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync unsigned long /* valuemask */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int* /* nmono_return */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int* /* nstereo_return */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int /* x */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int /* y */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync unsigned int /* width */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync unsigned int /* height */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync unsigned int /* border_width */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int /* depth */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync unsigned int /* class */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync unsigned long /* valuemask */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int /* x */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int /* y */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync unsigned int /* width */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync unsigned int /* height */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsyncstruct xMbufBufferInfo; /* declared in multibufst.h */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int /* nInfo */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync void (* /* CopyBufferBitsFunc */ )(),
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync void (* /* DrawSelectPlaneFunc */ )()
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int /* nbuf */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int /* action */,
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int /* hint */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync int /* nbuf */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#endif /* _MULTIBUF_SERVER_ */
74fe172698ba936102e120dae998c9ebd09cfbdfvboxsync#endif /* _MULTIBUF_H_ */