6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync/*
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync * $Id: damageproto.h,v 1.1 2003-10-24 06:16:46 keithp Exp $
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync *
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync * Copyright © 2003 Keith Packard
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync * Copyright © 2007 Eric Anholt
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync *
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync * Permission to use, copy, modify, distribute, and sell this software and its
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync * documentation for any purpose is hereby granted without fee, provided that
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync * the above copyright notice appear in all copies and that both that
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync * copyright notice and this permission notice appear in supporting
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync * documentation, and that the name of Keith Packard not be used in
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync * advertising or publicity pertaining to distribution of the software without
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync * specific, written prior permission. Keith Packard makes no
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync * representations about the suitability of this software for any purpose. It
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync * is provided "as is" without express or implied warranty.
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync *
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync * PERFORMANCE OF THIS SOFTWARE.
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync */
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#ifndef _DAMAGEPROTO_H_
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define _DAMAGEPROTO_H_
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#include <X11/Xmd.h>
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#include <X11/extensions/xfixesproto.h>
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#include <X11/extensions/damagewire.h>
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define Window CARD32
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define Drawable CARD32
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define Font CARD32
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define Pixmap CARD32
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define Cursor CARD32
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define Colormap CARD32
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define GContext CARD32
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define Atom CARD32
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define VisualID CARD32
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define Time CARD32
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define KeyCode CARD8
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define KeySym CARD32
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define Picture CARD32
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define Region CARD32
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define Damage CARD32
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync/************** Version 0 ******************/
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsynctypedef struct {
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD8 reqType;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD8 damageReqType;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD16 length B16;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync} xDamageReq;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync/*
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync * requests and replies
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync */
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsynctypedef struct {
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD8 reqType;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD8 damageReqType;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD16 length B16;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD32 majorVersion B32;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD32 minorVersion B32;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync} xDamageQueryVersionReq;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define sz_xDamageQueryVersionReq 12
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsynctypedef struct {
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync BYTE type; /* X_Reply */
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync BYTE pad1;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD16 sequenceNumber B16;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD32 length B32;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD32 majorVersion B32;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD32 minorVersion B32;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD32 pad2 B32;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD32 pad3 B32;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD32 pad4 B32;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD32 pad5 B32;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync} xDamageQueryVersionReply;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define sz_xDamageQueryVersionReply 32
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsynctypedef struct {
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD8 reqType;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD8 damageReqType;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD16 length B16;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync Damage damage B32;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync Drawable drawable B32;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD8 level;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD8 pad1;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD16 pad2 B16;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync} xDamageCreateReq;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define sz_xDamageCreateReq 16
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsynctypedef struct {
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD8 reqType;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD8 damageReqType;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD16 length B16;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync Damage damage B32;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync} xDamageDestroyReq;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define sz_xDamageDestroyReq 8
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsynctypedef struct {
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD8 reqType;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD8 damageReqType;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD16 length B16;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync Damage damage B32;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync Region repair B32;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync Region parts B32;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync} xDamageSubtractReq;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define sz_xDamageSubtractReq 16
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsynctypedef struct {
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD8 reqType;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD8 damageReqType;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD16 length B16;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync Drawable drawable B32;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync Region region B32;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync} xDamageAddReq;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define sz_xDamageAddReq 12
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync/* Events */
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#define DamageNotifyMore 0x80
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsynctypedef struct {
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD8 type;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD8 level;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync CARD16 sequenceNumber B16;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync Drawable drawable B32;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync Damage damage B32;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync Time timestamp B32;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync xRectangle area;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync xRectangle geometry;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync} xDamageNotifyEvent;
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#undef Damage
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#undef Region
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#undef Picture
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#undef Window
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#undef Drawable
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#undef Font
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#undef Pixmap
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#undef Cursor
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#undef Colormap
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#undef GContext
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#undef Atom
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#undef VisualID
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#undef Time
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#undef KeyCode
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#undef KeySym
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync
6d63826eda6b7f83377256f4ad0833d0b4e448fdvboxsync#endif /* _DAMAGEPROTO_H_ */