cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Copyright © 2006 Sun Microsystems, Inc. All rights reserved.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Permission is hereby granted, free of charge, to any person obtaining a
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * copy of this software and associated documentation files (the "Software"),
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * to deal in the Software without restriction, including without limitation
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * the rights to use, copy, modify, merge, publish, distribute, sublicense,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * and/or sell copies of the Software, and to permit persons to whom the
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Software is furnished to do so, subject to the following conditions:
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * The above copyright notice and this permission notice (including the next
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * paragraph) shall be included in all copies or substantial portions of the
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Software.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * DEALINGS IN THE SOFTWARE.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Copyright © 2003 Keith Packard
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Permission to use, copy, modify, distribute, and sell this software and its
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * documentation for any purpose is hereby granted without fee, provided that
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * the above copyright notice appear in all copies and that both that
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * copyright notice and this permission notice appear in supporting
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * documentation, and that the name of Keith Packard not be used in
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * advertising or publicity pertaining to distribution of the software without
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * specific, written prior permission. Keith Packard makes no
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * representations about the suitability of this software for any purpose. It
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * is provided "as is" without express or implied warranty.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync *
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * PERFORMANCE OF THIS SOFTWARE.
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifdef HAVE_DIX_CONFIG_H
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include <dix-config.h>
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifndef _COMPINT_H_
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define _COMPINT_H_
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "misc.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "scrnintstr.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "os.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "regionstr.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "validate.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "windowstr.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "input.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "resource.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "colormapst.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "cursorstr.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "dixstruct.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "gcstruct.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "servermd.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "dixevents.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "globals.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "picturestr.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "extnsionst.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "privates.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "mi.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "damage.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "damageextint.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include "xfixes.h"
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include <X11/extensions/compositeproto.h>
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#include <assert.h>
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * enable this for debugging
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync #define COMPOSITE_DEBUG
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct _CompClientWindow {
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync struct _CompClientWindow *next;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XID id;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int update;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync} CompClientWindowRec, *CompClientWindowPtr;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct _CompWindow {
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync RegionRec borderClip;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DamagePtr damage; /* for automatic update mode */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Bool damageRegistered;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Bool damaged;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int update;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CompClientWindowPtr clients;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int oldx;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int oldy;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PixmapPtr pOldPixmap;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int borderClipX, borderClipY;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync} CompWindowRec, *CompWindowPtr;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define COMP_ORIGIN_INVALID 0x80000000
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct _CompSubwindows {
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int update;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CompClientWindowPtr clients;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync} CompSubwindowsRec, *CompSubwindowsPtr;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifndef COMP_INCLUDE_RGB24_VISUAL
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define COMP_INCLUDE_RGB24_VISUAL 0
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct _CompOverlayClientRec *CompOverlayClientPtr;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct _CompOverlayClientRec {
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CompOverlayClientPtr pNext;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClientPtr pClient;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ScreenPtr pScreen;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync XID resource;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync} CompOverlayClientRec;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynctypedef struct _CompScreen {
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync PositionWindowProcPtr PositionWindow;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CopyWindowProcPtr CopyWindow;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CreateWindowProcPtr CreateWindow;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync DestroyWindowProcPtr DestroyWindow;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync RealizeWindowProcPtr RealizeWindow;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync UnrealizeWindowProcPtr UnrealizeWindow;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ClipNotifyProcPtr ClipNotify;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync /*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Called from ConfigureWindow, these
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * three track changes to the offscreen storage
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * geometry
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ConfigNotifyProcPtr ConfigNotify;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync MoveWindowProcPtr MoveWindow;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ResizeWindowProcPtr ResizeWindow;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ChangeBorderWidthProcPtr ChangeBorderWidth;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync /*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Reparenting has an effect on Subwindows redirect
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ReparentWindowProcPtr ReparentWindow;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync /*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Colormaps for new visuals better not get installed
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync InstallColormapProcPtr InstallColormap;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync /*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * Fake backing store via automatic redirection
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ChangeWindowAttributesProcPtr ChangeWindowAttributes;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync ScreenBlockHandlerProcPtr BlockHandler;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CloseScreenProcPtr CloseScreen;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Bool damaged;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int numAlternateVisuals;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync VisualID *alternateVisuals;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync WindowPtr pOverlayWin;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync Window overlayWid;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync CompOverlayClientPtr pOverlayClients;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync} CompScreenRec, *CompScreenPtr;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern DevPrivateKeyRec CompScreenPrivateKeyRec;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define CompScreenPrivateKey (&CompScreenPrivateKeyRec)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern DevPrivateKeyRec CompWindowPrivateKeyRec;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define CompWindowPrivateKey (&CompWindowPrivateKeyRec)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern DevPrivateKeyRec CompSubwindowsPrivateKeyRec;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define CompSubwindowsPrivateKey (&CompSubwindowsPrivateKeyRec)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define GetCompScreen(s) ((CompScreenPtr) \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync dixLookupPrivate(&(s)->devPrivates, CompScreenPrivateKey))
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define GetCompWindow(w) ((CompWindowPtr) \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync dixLookupPrivate(&(w)->devPrivates, CompWindowPrivateKey))
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define GetCompSubwindows(w) ((CompSubwindowsPtr) \
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync dixLookupPrivate(&(w)->devPrivates, CompSubwindowsPrivateKey))
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern RESTYPE CompositeClientWindowType;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern RESTYPE CompositeClientSubwindowsType;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncextern RESTYPE CompositeClientOverlayType;
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * compalloc.c
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncBool
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompRedirectWindow (ClientPtr pClient, WindowPtr pWin, int update);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncvoid
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompFreeClientWindow (WindowPtr pWin, XID id);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncint
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompUnredirectWindow (ClientPtr pClient, WindowPtr pWin, int update);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncint
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompRedirectSubwindows (ClientPtr pClient, WindowPtr pWin, int update);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncvoid
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompFreeClientSubwindows (WindowPtr pWin, XID id);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncint
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompUnredirectSubwindows (ClientPtr pClient, WindowPtr pWin, int update);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncint
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompRedirectOneSubwindow (WindowPtr pParent, WindowPtr pWin);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncint
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompUnredirectOneSubwindow (WindowPtr pParent, WindowPtr pWin);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncBool
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompAllocPixmap (WindowPtr pWin);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncvoid
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompFreePixmap (WindowPtr pWin);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncBool
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompReallocPixmap (WindowPtr pWin, int x, int y,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync unsigned int w, unsigned int h, int bw);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * compext.c
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncvoid
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncCompositeExtensionInit (void);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * compinit.c
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncBool
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompScreenInit (ScreenPtr pScreen);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * compoverlay.c
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncvoid
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompFreeOverlayClient (CompOverlayClientPtr pOcToDel);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncCompOverlayClientPtr
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompFindOverlayClient (ScreenPtr pScreen, ClientPtr pClient);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncCompOverlayClientPtr
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompCreateOverlayClient (ScreenPtr pScreen, ClientPtr pClient);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncBool
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompCreateOverlayWindow (ScreenPtr pScreen);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncvoid
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompDestroyOverlayWindow (ScreenPtr pScreen);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync/*
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync * compwindow.c
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync */
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#ifdef COMPOSITE_DEBUG
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncvoid
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompCheckTree (ScreenPtr pScreen);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#else
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#define compCheckTree(s)
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncPictFormatPtr
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompWindowFormat (WindowPtr pWin);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncvoid
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompSetPixmap (WindowPtr pWin, PixmapPtr pPixmap);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncBool
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompCheckRedirect (WindowPtr pWin);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncBool
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompPositionWindow (WindowPtr pWin, int x, int y);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncBool
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompRealizeWindow (WindowPtr pWin);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncBool
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompUnrealizeWindow (WindowPtr pWin);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncvoid
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompClipNotify (WindowPtr pWin, int dx, int dy);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncvoid
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompMoveWindow (WindowPtr pWin, int x, int y, WindowPtr pSib, VTKind kind);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncvoid
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompResizeWindow (WindowPtr pWin, int x, int y,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync unsigned int w, unsigned int h, WindowPtr pSib);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncvoid
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompChangeBorderWidth (WindowPtr pWin, unsigned int border_width);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncvoid
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompReparentWindow (WindowPtr pWin, WindowPtr pPriorParent);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncBool
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompCreateWindow (WindowPtr pWin);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncBool
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompDestroyWindow (WindowPtr pWin);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncvoid
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompSetRedirectBorderClip (WindowPtr pWin, RegionPtr pRegion);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncRegionPtr
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompGetRedirectBorderClip (WindowPtr pWin);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncvoid
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompCopyWindow (WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncvoid
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompWindowUpdate (WindowPtr pWin);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncWindowPtr
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncCompositeRealChildHead (WindowPtr pWin);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncint
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncDeleteWindowNoInputDevices(pointer value, XID wid);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsyncint
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsynccompConfigNotify(WindowPtr pWin, int x, int y, int w, int h,
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync int bw, WindowPtr pSib);
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync
cabde247f900dcf6e58d009bbdd15099c028c6fcvboxsync#endif /* _COMPINT_H_ */