a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync *
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Permission is hereby granted, free of charge, to any person obtaining a
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * copy of this software and associated documentation files (the "Software"),
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * to deal in the Software without restriction, including without limitation
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * the rights to use, copy, modify, merge, publish, distribute, sublicense,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * and/or sell copies of the Software, and to permit persons to whom the
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Software is furnished to do so, subject to the following conditions:
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync *
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * The above copyright notice and this permission notice (including the next
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * paragraph) shall be included in all copies or substantial portions of the
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Software.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync *
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * DEALINGS IN THE SOFTWARE.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync *
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Copyright © 2003 Keith Packard
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync *
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Permission to use, copy, modify, distribute, and sell this software and its
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * documentation for any purpose is hereby granted without fee, provided that
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * the above copyright notice appear in all copies and that both that
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * copyright notice and this permission notice appear in supporting
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * documentation, and that the name of Keith Packard not be used in
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * advertising or publicity pertaining to distribution of the software without
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * specific, written prior permission. Keith Packard makes no
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * representations about the suitability of this software for any purpose. It
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * is provided "as is" without express or implied warranty.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync *
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * PERFORMANCE OF THIS SOFTWARE.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifdef HAVE_DIX_CONFIG_H
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include <dix-config.h>
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifndef _COMPINT_H_
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define _COMPINT_H_
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "misc.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "scrnintstr.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "os.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "regionstr.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "validate.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "windowstr.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "input.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "resource.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "colormapst.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "cursorstr.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "dixstruct.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "gcstruct.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "servermd.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "dixevents.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "globals.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "picturestr.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "extnsionst.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "privates.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "mi.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "damage.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "damageextint.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "xfixes.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include <X11/extensions/compositeproto.h>
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "compositeext.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include <assert.h>
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * enable this for debugging
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync #define COMPOSITE_DEBUG
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _CompClientWindow {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync struct _CompClientWindow *next;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XID id;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int update;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} CompClientWindowRec, *CompClientWindowPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _CompWindow {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync RegionRec borderClip;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DamagePtr damage; /* for automatic update mode */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool damageRegistered;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool damaged;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int update;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CompClientWindowPtr clients;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int oldx;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int oldy;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync PixmapPtr pOldPixmap;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int borderClipX, borderClipY;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} CompWindowRec, *CompWindowPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define COMP_ORIGIN_INVALID 0x80000000
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _CompSubwindows {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int update;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CompClientWindowPtr clients;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} CompSubwindowsRec, *CompSubwindowsPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifndef COMP_INCLUDE_RGB24_VISUAL
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define COMP_INCLUDE_RGB24_VISUAL 0
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _CompOverlayClientRec *CompOverlayClientPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _CompOverlayClientRec {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CompOverlayClientPtr pNext;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync ClientPtr pClient;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync ScreenPtr pScreen;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XID resource;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} CompOverlayClientRec;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _CompImplicitRedirectException {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XID parentVisual;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync XID winVisual;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} CompImplicitRedirectException;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _CompScreen {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync PositionWindowProcPtr PositionWindow;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CopyWindowProcPtr CopyWindow;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CreateWindowProcPtr CreateWindow;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DestroyWindowProcPtr DestroyWindow;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync RealizeWindowProcPtr RealizeWindow;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync UnrealizeWindowProcPtr UnrealizeWindow;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync ClipNotifyProcPtr ClipNotify;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync /*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Called from ConfigureWindow, these
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * three track changes to the offscreen storage
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * geometry
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync ConfigNotifyProcPtr ConfigNotify;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync MoveWindowProcPtr MoveWindow;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync ResizeWindowProcPtr ResizeWindow;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync ChangeBorderWidthProcPtr ChangeBorderWidth;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync /*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Reparenting has an effect on Subwindows redirect
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync ReparentWindowProcPtr ReparentWindow;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync /*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Colormaps for new visuals better not get installed
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync InstallColormapProcPtr InstallColormap;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync /*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Fake backing store via automatic redirection
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync ChangeWindowAttributesProcPtr ChangeWindowAttributes;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync ScreenBlockHandlerProcPtr BlockHandler;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CloseScreenProcPtr CloseScreen;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int numAlternateVisuals;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync VisualID *alternateVisuals;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int numImplicitRedirectExceptions;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CompImplicitRedirectException *implicitRedirectExceptions;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync WindowPtr pOverlayWin;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Window overlayWid;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CompOverlayClientPtr pOverlayClients;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GetImageProcPtr GetImage;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync GetSpansProcPtr GetSpans;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync SourceValidateProcPtr SourceValidate;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} CompScreenRec, *CompScreenPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern DevPrivateKeyRec CompScreenPrivateKeyRec;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define CompScreenPrivateKey (&CompScreenPrivateKeyRec)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern DevPrivateKeyRec CompWindowPrivateKeyRec;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define CompWindowPrivateKey (&CompWindowPrivateKeyRec)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern DevPrivateKeyRec CompSubwindowsPrivateKeyRec;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define CompSubwindowsPrivateKey (&CompSubwindowsPrivateKeyRec)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define GetCompScreen(s) ((CompScreenPtr) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync dixLookupPrivate(&(s)->devPrivates, CompScreenPrivateKey))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define GetCompWindow(w) ((CompWindowPtr) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync dixLookupPrivate(&(w)->devPrivates, CompWindowPrivateKey))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define GetCompSubwindows(w) ((CompSubwindowsPtr) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync dixLookupPrivate(&(w)->devPrivates, CompSubwindowsPrivateKey))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern RESTYPE CompositeClientSubwindowsType;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern RESTYPE CompositeClientOverlayType;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * compalloc.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncBool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compRedirectWindow(ClientPtr pClient, WindowPtr pWin, int update);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncvoid
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compFreeClientWindow(WindowPtr pWin, XID id);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncint
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compUnredirectWindow(ClientPtr pClient, WindowPtr pWin, int update);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncint
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compRedirectSubwindows(ClientPtr pClient, WindowPtr pWin, int update);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncvoid
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compFreeClientSubwindows(WindowPtr pWin, XID id);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncint
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compUnredirectSubwindows(ClientPtr pClient, WindowPtr pWin, int update);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncint
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compRedirectOneSubwindow(WindowPtr pParent, WindowPtr pWin);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncint
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compUnredirectOneSubwindow(WindowPtr pParent, WindowPtr pWin);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncBool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compAllocPixmap(WindowPtr pWin);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncvoid
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compSetParentPixmap(WindowPtr pWin);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncvoid
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compRestoreWindow(WindowPtr pWin, PixmapPtr pPixmap);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncBool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynccompReallocPixmap(WindowPtr pWin, int x, int y,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned int w, unsigned int h, int bw);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * compinit.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncBool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compScreenInit(ScreenPtr pScreen);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * compoverlay.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncvoid
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compFreeOverlayClient(CompOverlayClientPtr pOcToDel);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncCompOverlayClientPtr
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynccompFindOverlayClient(ScreenPtr pScreen, ClientPtr pClient);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncCompOverlayClientPtr
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynccompCreateOverlayClient(ScreenPtr pScreen, ClientPtr pClient);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncBool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compCreateOverlayWindow(ScreenPtr pScreen);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncvoid
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compDestroyOverlayWindow(ScreenPtr pScreen);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * compwindow.c
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifdef COMPOSITE_DEBUG
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncvoid
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compCheckTree(ScreenPtr pScreen);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#else
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define compCheckTree(s)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncvoid
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compSetPixmap(WindowPtr pWin, PixmapPtr pPixmap);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncBool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compCheckRedirect(WindowPtr pWin);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncBool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compPositionWindow(WindowPtr pWin, int x, int y);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncBool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compRealizeWindow(WindowPtr pWin);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncBool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compUnrealizeWindow(WindowPtr pWin);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncvoid
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compClipNotify(WindowPtr pWin, int dx, int dy);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncvoid
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compMoveWindow(WindowPtr pWin, int x, int y, WindowPtr pSib, VTKind kind);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncvoid
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynccompResizeWindow(WindowPtr pWin, int x, int y,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned int w, unsigned int h, WindowPtr pSib);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncvoid
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compChangeBorderWidth(WindowPtr pWin, unsigned int border_width);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncvoid
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compReparentWindow(WindowPtr pWin, WindowPtr pPriorParent);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncBool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compCreateWindow(WindowPtr pWin);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncBool
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compDestroyWindow(WindowPtr pWin);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncvoid
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compSetRedirectBorderClip(WindowPtr pWin, RegionPtr pRegion);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncRegionPtr
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compGetRedirectBorderClip(WindowPtr pWin);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncvoid
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncvoid
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync compPaintChildrenToWindow(WindowPtr pWin);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncWindowPtr
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CompositeRealChildHead(WindowPtr pWin);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncint
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync DeleteWindowNoInputDevices(void *value, XID wid);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncint
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynccompConfigNotify(WindowPtr pWin, int x, int y, int w, int h,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int bw, WindowPtr pSib);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncvoid PanoramiXCompositeInit(void);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncvoid PanoramiXCompositeReset(void);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif /* _COMPINT_H_ */