65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Copyright © 2000 Compaq Computer Corporation
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Copyright © 2002 Hewlett-Packard Company
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Copyright © 2006 Intel Corporation
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Copyright © 2008 Red Hat, Inc.
65fea56f17cd614bc8908264df980a62e1931468vboxsync *
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Permission to use, copy, modify, distribute, and sell this software and its
65fea56f17cd614bc8908264df980a62e1931468vboxsync * documentation for any purpose is hereby granted without fee, provided that
65fea56f17cd614bc8908264df980a62e1931468vboxsync * the above copyright notice appear in all copies and that both that copyright
65fea56f17cd614bc8908264df980a62e1931468vboxsync * notice and this permission notice appear in supporting documentation, and
65fea56f17cd614bc8908264df980a62e1931468vboxsync * that the name of the copyright holders not be used in advertising or
65fea56f17cd614bc8908264df980a62e1931468vboxsync * publicity pertaining to distribution of the software without specific,
65fea56f17cd614bc8908264df980a62e1931468vboxsync * written prior permission. The copyright holders make no representations
65fea56f17cd614bc8908264df980a62e1931468vboxsync * about the suitability of this software for any purpose. It is provided "as
65fea56f17cd614bc8908264df980a62e1931468vboxsync * is" without express or implied warranty.
65fea56f17cd614bc8908264df980a62e1931468vboxsync *
65fea56f17cd614bc8908264df980a62e1931468vboxsync * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
65fea56f17cd614bc8908264df980a62e1931468vboxsync * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
65fea56f17cd614bc8908264df980a62e1931468vboxsync * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
65fea56f17cd614bc8908264df980a62e1931468vboxsync * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
65fea56f17cd614bc8908264df980a62e1931468vboxsync * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
65fea56f17cd614bc8908264df980a62e1931468vboxsync * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
65fea56f17cd614bc8908264df980a62e1931468vboxsync * OF THIS SOFTWARE.
65fea56f17cd614bc8908264df980a62e1931468vboxsync *
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Author: Jim Gettys, Hewlett-Packard Company, Inc.
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Keith Packard, Intel Corporation
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#ifdef HAVE_DIX_CONFIG_H
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include <dix-config.h>
65fea56f17cd614bc8908264df980a62e1931468vboxsync#endif
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#ifndef _RANDRSTR_H_
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define _RANDRSTR_H_
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include <X11/X.h>
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include <X11/Xproto.h>
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "misc.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "os.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "dixstruct.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "resource.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "scrnintstr.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "windowstr.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "pixmapstr.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "extnsionst.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "servermd.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "rrtransform.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include <X11/extensions/randr.h>
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include <X11/extensions/randrproto.h>
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include <X11/extensions/render.h> /* we share subpixel order information */
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include "picturestr.h"
65fea56f17cd614bc8908264df980a62e1931468vboxsync#include <X11/Xfuncproto.h>
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* required for ABI compatibility for now */
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define RANDR_10_INTERFACE 1
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define RANDR_12_INTERFACE 1
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define RANDR_13_INTERFACE 1 /* requires RANDR_12_INTERFACE */
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define RANDR_GET_CRTC_INTERFACE 1
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define RANDR_INTERFACE_VERSION 0x0104
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef XID RRMode;
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef XID RROutput;
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef XID RRCrtc;
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef XID RRProvider;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int RREventBase, RRErrorBase;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int (*ProcRandrVector[RRNumberRequests]) (ClientPtr);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int (*SProcRandrVector[RRNumberRequests]) (ClientPtr);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Modeline for a monitor. Name follows directly after this struct
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define RRModeName(pMode) ((char *) (pMode + 1))
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef struct _rrMode RRModeRec, *RRModePtr;
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef struct _rrPropertyValue RRPropertyValueRec, *RRPropertyValuePtr;
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef struct _rrProperty RRPropertyRec, *RRPropertyPtr;
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef struct _rrCrtc RRCrtcRec, *RRCrtcPtr;
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef struct _rrOutput RROutputRec, *RROutputPtr;
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef struct _rrProvider RRProviderRec, *RRProviderPtr;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstruct _rrMode {
65fea56f17cd614bc8908264df980a62e1931468vboxsync int refcnt;
65fea56f17cd614bc8908264df980a62e1931468vboxsync xRRModeInfo mode;
65fea56f17cd614bc8908264df980a62e1931468vboxsync char *name;
65fea56f17cd614bc8908264df980a62e1931468vboxsync ScreenPtr userScreen;
65fea56f17cd614bc8908264df980a62e1931468vboxsync};
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstruct _rrPropertyValue {
65fea56f17cd614bc8908264df980a62e1931468vboxsync Atom type; /* ignored by server */
65fea56f17cd614bc8908264df980a62e1931468vboxsync short format; /* format of data for swapping - 8,16,32 */
65fea56f17cd614bc8908264df980a62e1931468vboxsync long size; /* size of data in (format/8) bytes */
65fea56f17cd614bc8908264df980a62e1931468vboxsync pointer data; /* private to client */
65fea56f17cd614bc8908264df980a62e1931468vboxsync};
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstruct _rrProperty {
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRPropertyPtr next;
65fea56f17cd614bc8908264df980a62e1931468vboxsync ATOM propertyName;
65fea56f17cd614bc8908264df980a62e1931468vboxsync Bool is_pending;
65fea56f17cd614bc8908264df980a62e1931468vboxsync Bool range;
65fea56f17cd614bc8908264df980a62e1931468vboxsync Bool immutable;
65fea56f17cd614bc8908264df980a62e1931468vboxsync int num_valid;
65fea56f17cd614bc8908264df980a62e1931468vboxsync INT32 *valid_values;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRPropertyValueRec current, pending;
65fea56f17cd614bc8908264df980a62e1931468vboxsync};
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstruct _rrCrtc {
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtc id;
65fea56f17cd614bc8908264df980a62e1931468vboxsync ScreenPtr pScreen;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRModePtr mode;
65fea56f17cd614bc8908264df980a62e1931468vboxsync int x, y;
65fea56f17cd614bc8908264df980a62e1931468vboxsync Rotation rotation;
65fea56f17cd614bc8908264df980a62e1931468vboxsync Rotation rotations;
65fea56f17cd614bc8908264df980a62e1931468vboxsync Bool changed;
65fea56f17cd614bc8908264df980a62e1931468vboxsync int numOutputs;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputPtr *outputs;
65fea56f17cd614bc8908264df980a62e1931468vboxsync int gammaSize;
65fea56f17cd614bc8908264df980a62e1931468vboxsync CARD16 *gammaRed;
65fea56f17cd614bc8908264df980a62e1931468vboxsync CARD16 *gammaBlue;
65fea56f17cd614bc8908264df980a62e1931468vboxsync CARD16 *gammaGreen;
65fea56f17cd614bc8908264df980a62e1931468vboxsync void *devPrivate;
65fea56f17cd614bc8908264df980a62e1931468vboxsync Bool transforms;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRTransformRec client_pending_transform;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRTransformRec client_current_transform;
65fea56f17cd614bc8908264df980a62e1931468vboxsync PictTransform transform;
65fea56f17cd614bc8908264df980a62e1931468vboxsync struct pict_f_transform f_transform;
65fea56f17cd614bc8908264df980a62e1931468vboxsync struct pict_f_transform f_inverse;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync PixmapPtr scanout_pixmap;
65fea56f17cd614bc8908264df980a62e1931468vboxsync};
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstruct _rrOutput {
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutput id;
65fea56f17cd614bc8908264df980a62e1931468vboxsync ScreenPtr pScreen;
65fea56f17cd614bc8908264df980a62e1931468vboxsync char *name;
65fea56f17cd614bc8908264df980a62e1931468vboxsync int nameLength;
65fea56f17cd614bc8908264df980a62e1931468vboxsync CARD8 connection;
65fea56f17cd614bc8908264df980a62e1931468vboxsync CARD8 subpixelOrder;
65fea56f17cd614bc8908264df980a62e1931468vboxsync int mmWidth;
65fea56f17cd614bc8908264df980a62e1931468vboxsync int mmHeight;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcPtr crtc;
65fea56f17cd614bc8908264df980a62e1931468vboxsync int numCrtcs;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcPtr *crtcs;
65fea56f17cd614bc8908264df980a62e1931468vboxsync int numClones;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputPtr *clones;
65fea56f17cd614bc8908264df980a62e1931468vboxsync int numModes;
65fea56f17cd614bc8908264df980a62e1931468vboxsync int numPreferred;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRModePtr *modes;
65fea56f17cd614bc8908264df980a62e1931468vboxsync int numUserModes;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRModePtr *userModes;
65fea56f17cd614bc8908264df980a62e1931468vboxsync Bool changed;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRPropertyPtr properties;
65fea56f17cd614bc8908264df980a62e1931468vboxsync Bool pendingProperties;
65fea56f17cd614bc8908264df980a62e1931468vboxsync void *devPrivate;
65fea56f17cd614bc8908264df980a62e1931468vboxsync};
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstruct _rrProvider {
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRProvider id;
65fea56f17cd614bc8908264df980a62e1931468vboxsync ScreenPtr pScreen;
65fea56f17cd614bc8908264df980a62e1931468vboxsync uint32_t capabilities;
65fea56f17cd614bc8908264df980a62e1931468vboxsync char *name;
65fea56f17cd614bc8908264df980a62e1931468vboxsync int nameLength;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRPropertyPtr properties;
65fea56f17cd614bc8908264df980a62e1931468vboxsync Bool pendingProperties;
65fea56f17cd614bc8908264df980a62e1931468vboxsync Bool changed;
65fea56f17cd614bc8908264df980a62e1931468vboxsync struct _rrProvider *offload_sink;
65fea56f17cd614bc8908264df980a62e1931468vboxsync struct _rrProvider *output_source;
65fea56f17cd614bc8908264df980a62e1931468vboxsync};
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#if RANDR_12_INTERFACE
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef Bool (*RRScreenSetSizeProcPtr) (ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync CARD16 width,
65fea56f17cd614bc8908264df980a62e1931468vboxsync CARD16 height,
65fea56f17cd614bc8908264df980a62e1931468vboxsync CARD32 mmWidth, CARD32 mmHeight);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef Bool (*RRCrtcSetProcPtr) (ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcPtr crtc,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRModePtr mode,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int x,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int y,
65fea56f17cd614bc8908264df980a62e1931468vboxsync Rotation rotation,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int numOutputs, RROutputPtr * outputs);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef Bool (*RRCrtcSetGammaProcPtr) (ScreenPtr pScreen, RRCrtcPtr crtc);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef Bool (*RRCrtcGetGammaProcPtr) (ScreenPtr pScreen, RRCrtcPtr crtc);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef Bool (*RROutputSetPropertyProcPtr) (ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputPtr output,
65fea56f17cd614bc8908264df980a62e1931468vboxsync Atom property,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRPropertyValuePtr value);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef Bool (*RROutputValidateModeProcPtr) (ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputPtr output,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRModePtr mode);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef void (*RRModeDestroyProcPtr) (ScreenPtr pScreen, RRModePtr mode);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#endif
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#if RANDR_13_INTERFACE
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef Bool (*RROutputGetPropertyProcPtr) (ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputPtr output, Atom property);
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef Bool (*RRGetPanningProcPtr) (ScreenPtr pScrn,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcPtr crtc,
65fea56f17cd614bc8908264df980a62e1931468vboxsync BoxPtr totalArea,
65fea56f17cd614bc8908264df980a62e1931468vboxsync BoxPtr trackingArea, INT16 *border);
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef Bool (*RRSetPanningProcPtr) (ScreenPtr pScrn,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcPtr crtc,
65fea56f17cd614bc8908264df980a62e1931468vboxsync BoxPtr totalArea,
65fea56f17cd614bc8908264df980a62e1931468vboxsync BoxPtr trackingArea, INT16 *border);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#endif /* RANDR_13_INTERFACE */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef Bool (*RRProviderGetPropertyProcPtr) (ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRProviderPtr provider, Atom property);
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef Bool (*RRProviderSetPropertyProcPtr) (ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRProviderPtr provider,
65fea56f17cd614bc8908264df980a62e1931468vboxsync Atom property,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRPropertyValuePtr value);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef Bool (*RRGetInfoProcPtr) (ScreenPtr pScreen, Rotation * rotations);
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef Bool (*RRCloseScreenProcPtr) (ScreenPtr pscreen);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef Bool (*RRProviderSetOutputSourceProcPtr)(ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRProviderPtr provider,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRProviderPtr output_source);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef Bool (*RRProviderSetOffloadSinkProcPtr)(ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRProviderPtr provider,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRProviderPtr offload_sink);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef void (*RRProviderDestroyProcPtr)(ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRProviderPtr provider);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* These are for 1.0 compatibility */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef struct _rrRefresh {
65fea56f17cd614bc8908264df980a62e1931468vboxsync CARD16 rate;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRModePtr mode;
65fea56f17cd614bc8908264df980a62e1931468vboxsync} RRScreenRate, *RRScreenRatePtr;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef struct _rrScreenSize {
65fea56f17cd614bc8908264df980a62e1931468vboxsync int id;
65fea56f17cd614bc8908264df980a62e1931468vboxsync short width, height;
65fea56f17cd614bc8908264df980a62e1931468vboxsync short mmWidth, mmHeight;
65fea56f17cd614bc8908264df980a62e1931468vboxsync int nRates;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRScreenRatePtr pRates;
65fea56f17cd614bc8908264df980a62e1931468vboxsync} RRScreenSize, *RRScreenSizePtr;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#ifdef RANDR_10_INTERFACE
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef Bool (*RRSetConfigProcPtr) (ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync Rotation rotation,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int rate, RRScreenSizePtr pSize);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#endif
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef Bool (*RRCrtcSetScanoutPixmapProcPtr)(RRCrtcPtr crtc, PixmapPtr pixmap);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef struct _rrScrPriv {
65fea56f17cd614bc8908264df980a62e1931468vboxsync /*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * 'public' part of the structure; DDXen fill this in
65fea56f17cd614bc8908264df980a62e1931468vboxsync * as they initialize
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsync#if RANDR_10_INTERFACE
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRSetConfigProcPtr rrSetConfig;
65fea56f17cd614bc8908264df980a62e1931468vboxsync#endif
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRGetInfoProcPtr rrGetInfo;
65fea56f17cd614bc8908264df980a62e1931468vboxsync#if RANDR_12_INTERFACE
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRScreenSetSizeProcPtr rrScreenSetSize;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcSetProcPtr rrCrtcSet;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcSetGammaProcPtr rrCrtcSetGamma;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcGetGammaProcPtr rrCrtcGetGamma;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputSetPropertyProcPtr rrOutputSetProperty;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputValidateModeProcPtr rrOutputValidateMode;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRModeDestroyProcPtr rrModeDestroy;
65fea56f17cd614bc8908264df980a62e1931468vboxsync#endif
65fea56f17cd614bc8908264df980a62e1931468vboxsync#if RANDR_13_INTERFACE
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputGetPropertyProcPtr rrOutputGetProperty;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRGetPanningProcPtr rrGetPanning;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRSetPanningProcPtr rrSetPanning;
65fea56f17cd614bc8908264df980a62e1931468vboxsync#endif
65fea56f17cd614bc8908264df980a62e1931468vboxsync /* TODO #if RANDR_15_INTERFACE */
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcSetScanoutPixmapProcPtr rrCrtcSetScanoutPixmap;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRProviderSetOutputSourceProcPtr rrProviderSetOutputSource;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRProviderSetOffloadSinkProcPtr rrProviderSetOffloadSink;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRProviderGetPropertyProcPtr rrProviderGetProperty;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRProviderSetPropertyProcPtr rrProviderSetProperty;
65fea56f17cd614bc8908264df980a62e1931468vboxsync /*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Private part of the structure; not considered part of the ABI
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsync TimeStamp lastSetTime; /* last changed by client */
65fea56f17cd614bc8908264df980a62e1931468vboxsync TimeStamp lastConfigTime; /* possible configs changed */
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCloseScreenProcPtr CloseScreen;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync Bool changed; /* some config changed */
65fea56f17cd614bc8908264df980a62e1931468vboxsync Bool configChanged; /* configuration changed */
65fea56f17cd614bc8908264df980a62e1931468vboxsync Bool layoutChanged; /* screen layout changed */
65fea56f17cd614bc8908264df980a62e1931468vboxsync Bool resourcesChanged; /* screen resources change */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync CARD16 minWidth, minHeight;
65fea56f17cd614bc8908264df980a62e1931468vboxsync CARD16 maxWidth, maxHeight;
65fea56f17cd614bc8908264df980a62e1931468vboxsync CARD16 width, height; /* last known screen size */
65fea56f17cd614bc8908264df980a62e1931468vboxsync CARD16 mmWidth, mmHeight; /* last known screen size */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync int numOutputs;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputPtr *outputs;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputPtr primaryOutput;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync int numCrtcs;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcPtr *crtcs;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync /* Last known pointer position */
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcPtr pointerCrtc;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#ifdef RANDR_10_INTERFACE
65fea56f17cd614bc8908264df980a62e1931468vboxsync /*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Configuration information
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsync Rotation rotations;
65fea56f17cd614bc8908264df980a62e1931468vboxsync CARD16 reqWidth, reqHeight;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync int nSizes;
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRScreenSizePtr pSizes;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync Rotation rotation;
65fea56f17cd614bc8908264df980a62e1931468vboxsync int rate;
65fea56f17cd614bc8908264df980a62e1931468vboxsync int size;
65fea56f17cd614bc8908264df980a62e1931468vboxsync#endif
65fea56f17cd614bc8908264df980a62e1931468vboxsync Bool discontiguous;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRProviderPtr provider;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRProviderDestroyProcPtr rrProviderDestroy;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync} rrScrPrivRec, *rrScrPrivPtr;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT DevPrivateKeyRec rrPrivKeyRec;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define rrPrivKey (&rrPrivKeyRec)
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define rrGetScrPriv(pScr) ((rrScrPrivPtr)dixLookupPrivate(&(pScr)->devPrivates, rrPrivKey))
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define rrScrPriv(pScr) rrScrPrivPtr pScrPriv = rrGetScrPriv(pScr)
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define SetRRScreen(s,p) dixSetPrivate(&(s)->devPrivates, rrPrivKey, p)
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * each window has a list of clients requesting
65fea56f17cd614bc8908264df980a62e1931468vboxsync * RRNotify events. Each client has a resource
65fea56f17cd614bc8908264df980a62e1931468vboxsync * for each window it selects RRNotify input for,
65fea56f17cd614bc8908264df980a62e1931468vboxsync * this resource is used to delete the RRNotifyRec
65fea56f17cd614bc8908264df980a62e1931468vboxsync * entry from the per-window queue.
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef struct _RREvent *RREventPtr;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef struct _RREvent {
65fea56f17cd614bc8908264df980a62e1931468vboxsync RREventPtr next;
65fea56f17cd614bc8908264df980a62e1931468vboxsync ClientPtr client;
65fea56f17cd614bc8908264df980a62e1931468vboxsync WindowPtr window;
65fea56f17cd614bc8908264df980a62e1931468vboxsync XID clientResource;
65fea56f17cd614bc8908264df980a62e1931468vboxsync int mask;
65fea56f17cd614bc8908264df980a62e1931468vboxsync} RREventRec;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef struct _RRTimes {
65fea56f17cd614bc8908264df980a62e1931468vboxsync TimeStamp setTime;
65fea56f17cd614bc8908264df980a62e1931468vboxsync TimeStamp configTime;
65fea56f17cd614bc8908264df980a62e1931468vboxsync} RRTimesRec, *RRTimesPtr;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef struct _RRClient {
65fea56f17cd614bc8908264df980a62e1931468vboxsync int major_version;
65fea56f17cd614bc8908264df980a62e1931468vboxsync int minor_version;
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* RRTimesRec times[0]; */
65fea56f17cd614bc8908264df980a62e1931468vboxsync} RRClientRec, *RRClientPtr;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT RESTYPE RRClientType, RREventType; /* resource types for event masks */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT DevPrivateKeyRec RRClientPrivateKeyRec;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define RRClientPrivateKey (&RRClientPrivateKeyRec)
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT RESTYPE RRCrtcType, RRModeType, RROutputType, RRProviderType;
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define VERIFY_RR_OUTPUT(id, ptr, a)\
65fea56f17cd614bc8908264df980a62e1931468vboxsync {\
65fea56f17cd614bc8908264df980a62e1931468vboxsync int rc = dixLookupResourceByType((pointer *)&(ptr), id,\
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputType, client, a);\
65fea56f17cd614bc8908264df980a62e1931468vboxsync if (rc != Success) {\
65fea56f17cd614bc8908264df980a62e1931468vboxsync client->errorValue = id;\
65fea56f17cd614bc8908264df980a62e1931468vboxsync return rc;\
65fea56f17cd614bc8908264df980a62e1931468vboxsync }\
65fea56f17cd614bc8908264df980a62e1931468vboxsync }
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define VERIFY_RR_CRTC(id, ptr, a)\
65fea56f17cd614bc8908264df980a62e1931468vboxsync {\
65fea56f17cd614bc8908264df980a62e1931468vboxsync int rc = dixLookupResourceByType((pointer *)&(ptr), id,\
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcType, client, a);\
65fea56f17cd614bc8908264df980a62e1931468vboxsync if (rc != Success) {\
65fea56f17cd614bc8908264df980a62e1931468vboxsync client->errorValue = id;\
65fea56f17cd614bc8908264df980a62e1931468vboxsync return rc;\
65fea56f17cd614bc8908264df980a62e1931468vboxsync }\
65fea56f17cd614bc8908264df980a62e1931468vboxsync }
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define VERIFY_RR_MODE(id, ptr, a)\
65fea56f17cd614bc8908264df980a62e1931468vboxsync {\
65fea56f17cd614bc8908264df980a62e1931468vboxsync int rc = dixLookupResourceByType((pointer *)&(ptr), id,\
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRModeType, client, a);\
65fea56f17cd614bc8908264df980a62e1931468vboxsync if (rc != Success) {\
65fea56f17cd614bc8908264df980a62e1931468vboxsync client->errorValue = id;\
65fea56f17cd614bc8908264df980a62e1931468vboxsync return rc;\
65fea56f17cd614bc8908264df980a62e1931468vboxsync }\
65fea56f17cd614bc8908264df980a62e1931468vboxsync }
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define VERIFY_RR_PROVIDER(id, ptr, a)\
65fea56f17cd614bc8908264df980a62e1931468vboxsync {\
65fea56f17cd614bc8908264df980a62e1931468vboxsync int rc = dixLookupResourceByType((pointer *)&(ptr), id,\
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRProviderType, client, a);\
65fea56f17cd614bc8908264df980a62e1931468vboxsync if (rc != Success) {\
65fea56f17cd614bc8908264df980a62e1931468vboxsync client->errorValue = id;\
65fea56f17cd614bc8908264df980a62e1931468vboxsync return rc;\
65fea56f17cd614bc8908264df980a62e1931468vboxsync }\
65fea56f17cd614bc8908264df980a62e1931468vboxsync }
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define GetRRClient(pClient) ((RRClientPtr)dixLookupPrivate(&(pClient)->devPrivates, RRClientPrivateKey))
65fea56f17cd614bc8908264df980a62e1931468vboxsync#define rrClientPriv(pClient) RRClientPtr pRRClient = GetRRClient(pClient)
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#ifdef RANDR_12_INTERFACE
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Set the range of sizes for the screen
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRRScreenSetSizeRange(ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync CARD16 minWidth,
65fea56f17cd614bc8908264df980a62e1931468vboxsync CARD16 minHeight, CARD16 maxWidth, CARD16 maxHeight);
65fea56f17cd614bc8908264df980a62e1931468vboxsync#endif
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* rrscreen.c */
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Notify the extension that the screen size has been changed.
65fea56f17cd614bc8908264df980a62e1931468vboxsync * The driver is responsible for calling this whenever it has changed
65fea56f17cd614bc8908264df980a62e1931468vboxsync * the size of the screen
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRScreenSizeNotify(ScreenPtr pScreen);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Request that the screen be resized
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRRScreenSizeSet(ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync CARD16 width, CARD16 height, CARD32 mmWidth, CARD32 mmHeight);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Send ConfigureNotify event to root window when 'something' happens
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRSendConfigNotify(ScreenPtr pScreen);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * screen dispatch
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRGetScreenSizeRange(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRSetScreenSize(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRGetScreenResources(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRGetScreenResourcesCurrent(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRSetScreenConfig(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRGetScreenInfo(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Deliver a ScreenNotify event
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRDeliverScreenEvent(ClientPtr client, WindowPtr pWin, ScreenPtr pScreen);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRResourcesChanged(ScreenPtr pScreen);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* randr.c */
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* set a screen change on the primary screen */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRRSetChanged(ScreenPtr pScreen);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Send all pending events
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRTellChanged(ScreenPtr pScreen);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Poll the driver for changed information
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRGetInfo(ScreenPtr pScreen, Bool force_query);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool RRInit(void);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool RRScreenInit(ScreenPtr pScreen);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT RROutputPtr RRFirstOutput(ScreenPtr pScreen);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT CARD16
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRVerticalRefresh(xRRModeInfo * mode);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#ifdef RANDR_10_INTERFACE
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * This is the old interface, deprecated but left
65fea56f17cd614bc8908264df980a62e1931468vboxsync * around for compatibility
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Then, register the specific size with the screen
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT RRScreenSizePtr
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRRRegisterSize(ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync short width, short height, short mmWidth, short mmHeight);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRRegisterRate(ScreenPtr pScreen, RRScreenSizePtr pSize, int rate);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Finally, set the current configuration of the screen
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRRSetCurrentConfig(ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync Rotation rotation, int rate, RRScreenSizePtr pSize);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Rotation RRGetRotation(ScreenPtr pScreen);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#endif
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* rrcrtc.c */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Notify the CRTC of some change; layoutChanged indicates that
65fea56f17cd614bc8908264df980a62e1931468vboxsync * some position or size element changed
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcChanged(RRCrtcPtr crtc, Bool layoutChanged);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Create a CRTC
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT RRCrtcPtr RRCrtcCreate(ScreenPtr pScreen, void *devPrivate);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Set the allowed rotations on a CRTC
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcSetRotations(RRCrtcPtr crtc, Rotation rotations);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Set whether transforms are allowed on a CRTC
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcSetTransformSupport(RRCrtcPtr crtc, Bool transforms);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Notify the extension that the Crtc has been reconfigured,
65fea56f17cd614bc8908264df980a62e1931468vboxsync * the driver calls this whenever it has updated the mode
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRRCrtcNotify(RRCrtcPtr crtc,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRModePtr mode,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int x,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int y,
65fea56f17cd614bc8908264df980a62e1931468vboxsync Rotation rotation,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRTransformPtr transform, int numOutputs, RROutputPtr * outputs);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRDeliverCrtcEvent(ClientPtr client, WindowPtr pWin, RRCrtcPtr crtc);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Request that the Crtc be reconfigured
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRRCrtcSet(RRCrtcPtr crtc,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRModePtr mode,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int x,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int y, Rotation rotation, int numOutput, RROutputPtr * outputs);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Request that the Crtc gamma be changed
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcGammaSet(RRCrtcPtr crtc, CARD16 *red, CARD16 *green, CARD16 *blue);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Request current gamma back from the DDX (if possible).
65fea56f17cd614bc8908264df980a62e1931468vboxsync * This includes gamma size.
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcGammaGet(RRCrtcPtr crtc);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Notify the extension that the Crtc gamma has been changed
65fea56f17cd614bc8908264df980a62e1931468vboxsync * The driver calls this whenever it has changed the gamma values
65fea56f17cd614bc8908264df980a62e1931468vboxsync * in the RRCrtcRec
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcGammaNotify(RRCrtcPtr crtc);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Set the size of the gamma table at server startup time
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcGammaSetSize(RRCrtcPtr crtc, int size);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Return the area of the frame buffer scanned out by the crtc,
65fea56f17cd614bc8908264df980a62e1931468vboxsync * taking into account the current mode and rotation
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcGetScanoutSize(RRCrtcPtr crtc, int *width, int *height);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Return crtc transform
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT RRTransformPtr RRCrtcGetTransform(RRCrtcPtr crtc);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Check whether the pending and current transforms are the same
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcPendingTransform(RRCrtcPtr crtc);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Destroy a Crtc at shutdown
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcDestroy(RRCrtcPtr crtc);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Set the pending CRTC transformation
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRRCrtcTransformSet(RRCrtcPtr crtc,
65fea56f17cd614bc8908264df980a62e1931468vboxsync PictTransformPtr transform,
65fea56f17cd614bc8908264df980a62e1931468vboxsync struct pict_f_transform *f_transform,
65fea56f17cd614bc8908264df980a62e1931468vboxsync struct pict_f_transform *f_inverse,
65fea56f17cd614bc8908264df980a62e1931468vboxsync char *filter, int filter_len, xFixed * params, int nparams);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Initialize crtc type
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcInit(void);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Initialize crtc type error value
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcInitErrorValue(void);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Detach and free a scanout pixmap
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcDetachScanoutPixmap(RRCrtcPtr crtc);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRReplaceScanoutPixmap(DrawablePtr pDrawable, PixmapPtr pPixmap, Bool enable);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Crtc dispatch
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRGetCrtcInfo(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRSetCrtcConfig(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRGetCrtcGammaSize(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRGetCrtcGamma(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRSetCrtcGamma(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRSetCrtcTransform(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRGetCrtcTransform(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncint
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRGetPanning(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncint
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRSetPanning(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncvoid
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRConstrainCursorHarder(DeviceIntPtr, ScreenPtr, int, int *, int *);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* rrdispatch.c */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRClientKnowsRates(ClientPtr pClient);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* rrmode.c */
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Find, and if necessary, create a mode
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT RRModePtr RRModeGet(xRRModeInfo * modeInfo, const char *name);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Destroy a mode.
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRModeDestroy(RRModePtr mode);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Return a list of modes that are valid for some output in pScreen
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT RRModePtr *RRModesForScreen(ScreenPtr pScreen, int *num_ret);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Initialize mode type
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRModeInit(void);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Initialize mode type error value
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRModeInitErrorValue(void);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRCreateMode(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRDestroyMode(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRAddOutputMode(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRDeleteOutputMode(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* rroutput.c */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Notify the output of some change. configChanged indicates whether
65fea56f17cd614bc8908264df980a62e1931468vboxsync * any external configuration (mode list, clones, connected status)
65fea56f17cd614bc8908264df980a62e1931468vboxsync * has changed, or whether the change was strictly internal
65fea56f17cd614bc8908264df980a62e1931468vboxsync * (which crtc is in use)
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputChanged(RROutputPtr output, Bool configChanged);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Create an output
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT RROutputPtr
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRROutputCreate(ScreenPtr pScreen,
65fea56f17cd614bc8908264df980a62e1931468vboxsync const char *name, int nameLength, void *devPrivate);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Notify extension that output parameters have been changed
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputSetClones(RROutputPtr output, RROutputPtr * clones, int numClones);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRROutputSetModes(RROutputPtr output,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRModePtr * modes, int numModes, int numPreferred);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputAddUserMode(RROutputPtr output, RRModePtr mode);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputDeleteUserMode(RROutputPtr output, RRModePtr mode);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputSetCrtcs(RROutputPtr output, RRCrtcPtr * crtcs, int numCrtcs);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputSetConnection(RROutputPtr output, CARD8 connection);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputSetSubpixelOrder(RROutputPtr output, int subpixelOrder);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputSetPhysicalSize(RROutputPtr output, int mmWidth, int mmHeight);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRDeliverOutputEvent(ClientPtr client, WindowPtr pWin, RROutputPtr output);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputDestroy(RROutputPtr output);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRGetOutputInfo(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRSetOutputPrimary(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRGetOutputPrimary(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Initialize output type
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputInit(void);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Initialize output type error value
65fea56f17cd614bc8908264df980a62e1931468vboxsync */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputInitErrorValue(void);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* rrpointer.c */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRPointerMoved(ScreenPtr pScreen, int x, int y);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRPointerScreenConfigured(ScreenPtr pScreen);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* rrproperty.c */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRDeleteAllOutputProperties(RROutputPtr output);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT RRPropertyValuePtr
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRRGetOutputProperty(RROutputPtr output, Atom property, Bool pending);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT RRPropertyPtr
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRRQueryOutputProperty(RROutputPtr output, Atom property);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRDeleteOutputProperty(RROutputPtr output, Atom property);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRPostPendingProperties(RROutputPtr output);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRRChangeOutputProperty(RROutputPtr output, Atom property, Atom type,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int format, int mode, unsigned long len,
65fea56f17cd614bc8908264df980a62e1931468vboxsync pointer value, Bool sendevent, Bool pending);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRRConfigureOutputProperty(RROutputPtr output, Atom property,
65fea56f17cd614bc8908264df980a62e1931468vboxsync Bool pending, Bool range, Bool immutable,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int num_values, INT32 *values);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRChangeOutputProperty(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRGetOutputProperty(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRListOutputProperties(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRQueryOutputProperty(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRConfigureOutputProperty(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRDeleteOutputProperty(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* rrprovider.c */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRRProviderInitErrorValue(void);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsyncProcRRGetProviders(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsyncProcRRGetProviderInfo(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsyncProcRRSetProviderOutputSource(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsyncProcRRSetProviderOffloadSink(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRRProviderInit(void);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT RRProviderPtr
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRRProviderCreate(ScreenPtr pScreen, const char *name,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int nameLength);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRRProviderDestroy (RRProviderPtr provider);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRRProviderSetCapabilities(RRProviderPtr provider, uint32_t capabilities);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRRProviderLookup(XID id, RRProviderPtr *provider_p);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRRDeliverProviderEvent(ClientPtr client, WindowPtr pWin, RRProviderPtr provider);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* rrproviderproperty.c */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRDeleteAllProviderProperties(RRProviderPtr provider);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT RRPropertyValuePtr
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRGetProviderProperty(RRProviderPtr provider, Atom property, Bool pending);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT RRPropertyPtr
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRQueryProviderProperty(RRProviderPtr provider, Atom property);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRDeleteProviderProperty(RRProviderPtr provider, Atom property);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRRChangeProviderProperty(RRProviderPtr provider, Atom property, Atom type,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int format, int mode, unsigned long len,
65fea56f17cd614bc8908264df980a62e1931468vboxsync pointer value, Bool sendevent, Bool pending);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRConfigureProviderProperty(RRProviderPtr provider, Atom property,
65fea56f17cd614bc8908264df980a62e1931468vboxsync Bool pending, Bool range, Bool immutable,
65fea56f17cd614bc8908264df980a62e1931468vboxsync int num_values, INT32 *values);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT Bool
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRPostProviderPendingProperties(RRProviderPtr provider);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRGetProviderProperty(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRListProviderProperties(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRQueryProviderProperty(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsyncProcRRConfigureProviderProperty(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsyncProcRRChangeProviderProperty(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT int
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRDeleteProviderProperty(ClientPtr client);
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* rrxinerama.c */
65fea56f17cd614bc8908264df980a62e1931468vboxsync#ifdef XINERAMA
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern _X_EXPORT void
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRXineramaExtensionInit(void);
65fea56f17cd614bc8908264df980a62e1931468vboxsync#endif
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync#endif /* _RANDRSTR_H_ */
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync/*
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncrandr extension implementation structure
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncQuery state:
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRGetScreenInfo/ProcRRGetScreenResources
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRGetInfo
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync • Request configuration from driver, either 1.0 or 1.2 style
65fea56f17cd614bc8908264df980a62e1931468vboxsync • These functions only record state changes, all
65fea56f17cd614bc8908264df980a62e1931468vboxsync other actions are pended until RRTellChanged is called
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync ->rrGetInfo
65fea56f17cd614bc8908264df980a62e1931468vboxsync 1.0:
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRRegisterSize
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRRegisterRate
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRSetCurrentConfig
65fea56f17cd614bc8908264df980a62e1931468vboxsync 1.2:
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRScreenSetSizeRange
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputSetCrtcs
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRModeGet
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputSetModes
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputSetConnection
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputSetSubpixelOrder
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputSetClones
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcNotify
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync • Must delay scanning configuration until after ->rrGetInfo returns
65fea56f17cd614bc8908264df980a62e1931468vboxsync because some drivers will call SetCurrentConfig in the middle
65fea56f17cd614bc8908264df980a62e1931468vboxsync of the ->rrGetInfo operation.
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync 1.0:
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync • Scan old configuration, mirror to new structures
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRScanOldConfig
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcCreate
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputCreate
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputSetCrtcs
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputSetConnection
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROutputSetSubpixelOrder
65fea56f17cd614bc8908264df980a62e1931468vboxsync RROldModeAdd • This adds modes one-at-a-time
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRModeGet
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcNotify
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync • send events, reset pointer if necessary
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRTellChanged
65fea56f17cd614bc8908264df980a62e1931468vboxsync WalkTree (sending events)
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync • when layout has changed:
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRPointerScreenConfigured
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRSendConfigNotify
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncAsynchronous state setting (1.2 only)
65fea56f17cd614bc8908264df980a62e1931468vboxsync When setting state asynchronously, the driver invokes the
65fea56f17cd614bc8908264df980a62e1931468vboxsync ->rrGetInfo function and then calls RRTellChanged to flush
65fea56f17cd614bc8908264df980a62e1931468vboxsync the changes to the clients and reset pointer if necessary
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsyncSet state
65fea56f17cd614bc8908264df980a62e1931468vboxsync
65fea56f17cd614bc8908264df980a62e1931468vboxsync ProcRRSetScreenConfig
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcSet
65fea56f17cd614bc8908264df980a62e1931468vboxsync 1.2:
65fea56f17cd614bc8908264df980a62e1931468vboxsync ->rrCrtcSet
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcNotify
65fea56f17cd614bc8908264df980a62e1931468vboxsync 1.0:
65fea56f17cd614bc8908264df980a62e1931468vboxsync ->rrSetConfig
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRCrtcNotify
65fea56f17cd614bc8908264df980a62e1931468vboxsync RRTellChanged
65fea56f17cd614bc8908264df980a62e1931468vboxsync */