damageextint.h revision 45e9809aff7304721fddb95654901b32195c9c7a
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami/*
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami * Copyright © 2002 Keith Packard
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami *
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami * Permission to use, copy, modify, distribute, and sell this software and its
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami * documentation for any purpose is hereby granted without fee, provided that
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami * the above copyright notice appear in all copies and that both that
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami * copyright notice and this permission notice appear in supporting
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami * documentation, and that the name of Keith Packard not be used in
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami * advertising or publicity pertaining to distribution of the software without
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami * specific, written prior permission. Keith Packard makes no
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami * representations about the suitability of this software for any purpose. It
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami * is provided "as is" without express or implied warranty.
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami *
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami * PERFORMANCE OF THIS SOFTWARE.
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami */
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami#ifdef HAVE_DIX_CONFIG_H
5253169e90b276216b53d82f9ba4c56334db5740Ali Bahrami#include <dix-config.h>
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami#endif
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami#ifndef _DAMAGEEXTINT_H_
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami#define _DAMAGEEXTINT_H_
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami#include <X11/X.h>
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami#include <X11/Xproto.h>
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami#include "misc.h"
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami#include "os.h"
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami#include "dixstruct.h"
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami#include "extnsionst.h"
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami#include <X11/extensions/damageproto.h>
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami#include "windowstr.h"
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami#include "selection.h"
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami#include "scrnintstr.h"
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami#include "damageext.h"
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami#include "damage.h"
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami#include "xfixes.h"
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahramitypedef struct _DamageClient {
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami CARD32 major_version;
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami CARD32 minor_version;
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami int critical;
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami} DamageClientRec, *DamageClientPtr;
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami#define GetDamageClient(pClient) ((DamageClientPtr)dixLookupPrivate(&(pClient)->devPrivates, DamageClientPrivateKey))
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahramitypedef struct _DamageExt {
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami DamagePtr pDamage;
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami DrawablePtr pDrawable;
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami DamageReportLevel level;
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami ClientPtr pClient;
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami XID id;
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami} DamageExtRec, *DamageExtPtr;
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami#define VERIFY_DAMAGEEXT(pDamageExt, rid, client, mode) { \
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami int rc = dixLookupResourceByType((pointer *)&(pDamageExt), rid, \
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami DamageExtType, client, mode); \
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami if (rc != Success) \
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami return (rc == BadValue) ? DamageErrorBase + BadDamage : rc; \
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami}
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahramivoid
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali BahramiDamageExtSetCritical (ClientPtr pClient, Bool critical);
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami#endif /* _DAMAGEEXTINT_H_ */
75ce41a57ff334bd8fe2cb9ed51eea835892f944Ali Bahrami