2003-11-14 17:48:57 +01:00
|
|
|
/*
|
2004-12-04 01:43:13 +01:00
|
|
|
* Copyright © 2000 Compaq Computer Corporation
|
2006-07-02 04:46:38 +02:00
|
|
|
* Copyright © 2002 Hewlett-Packard Company
|
|
|
|
* Copyright © 2006 Intel Corporation
|
2003-11-14 17:48:57 +01:00
|
|
|
*
|
|
|
|
* Permission to use, copy, modify, distribute, and sell this software and its
|
|
|
|
* documentation for any purpose is hereby granted without fee, provided that
|
2006-07-02 04:46:38 +02:00
|
|
|
* the above copyright notice appear in all copies and that both that copyright
|
|
|
|
* notice and this permission notice appear in supporting documentation, and
|
|
|
|
* that the name of the copyright holders not be used in advertising or
|
|
|
|
* publicity pertaining to distribution of the software without specific,
|
|
|
|
* written prior permission. The copyright holders make no representations
|
|
|
|
* about the suitability of this software for any purpose. It is provided "as
|
|
|
|
* is" without express or implied warranty.
|
2003-11-14 17:48:57 +01:00
|
|
|
*
|
2006-07-02 04:46:38 +02:00
|
|
|
* THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
2003-11-14 17:48:57 +01:00
|
|
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
|
2006-07-02 04:46:38 +02:00
|
|
|
* EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
2003-11-14 17:48:57 +01:00
|
|
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
|
|
|
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
2006-07-02 04:46:38 +02:00
|
|
|
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
|
|
|
|
* OF THIS SOFTWARE.
|
|
|
|
*
|
|
|
|
* Author: Jim Gettys, Hewlett-Packard Company, Inc.
|
|
|
|
* Keith Packard, Intel Corporation
|
2003-11-14 17:48:57 +01:00
|
|
|
*/
|
|
|
|
|
2005-07-03 09:02:09 +02:00
|
|
|
#ifdef HAVE_DIX_CONFIG_H
|
|
|
|
#include <dix-config.h>
|
|
|
|
#endif
|
|
|
|
|
2003-11-14 17:48:57 +01:00
|
|
|
#ifndef _RANDRSTR_H_
|
|
|
|
#define _RANDRSTR_H_
|
|
|
|
|
2006-09-17 08:21:37 +02:00
|
|
|
#include <X11/X.h>
|
|
|
|
#include <X11/Xproto.h>
|
|
|
|
#include "misc.h"
|
|
|
|
#include "os.h"
|
|
|
|
#include "dixstruct.h"
|
|
|
|
#include "resource.h"
|
|
|
|
#include "scrnintstr.h"
|
|
|
|
#include "windowstr.h"
|
|
|
|
#include "pixmapstr.h"
|
|
|
|
#include "extnsionst.h"
|
|
|
|
#include "servermd.h"
|
|
|
|
#include <X11/extensions/randr.h>
|
2006-07-02 04:46:38 +02:00
|
|
|
#include <X11/extensions/randrproto.h>
|
2006-09-17 08:21:37 +02:00
|
|
|
#ifdef RENDER
|
|
|
|
#include <X11/extensions/render.h> /* we share subpixel order information */
|
|
|
|
#include "picturestr.h"
|
|
|
|
#endif
|
|
|
|
#include <X11/Xfuncproto.h>
|
2003-11-14 17:48:57 +01:00
|
|
|
|
2006-09-17 06:44:42 +02:00
|
|
|
/* required for ABI compatibility for now */
|
2006-09-17 08:21:37 +02:00
|
|
|
#define RANDR_10_INTERFACE 1
|
|
|
|
/* #define RANDR_12_INTERFACE 1 */
|
2006-07-17 07:21:11 +02:00
|
|
|
|
2006-09-17 06:44:42 +02:00
|
|
|
typedef XID RRMode;
|
|
|
|
typedef XID RROutput;
|
|
|
|
typedef XID RRCrtc;
|
|
|
|
|
2006-09-18 08:03:23 +02:00
|
|
|
extern int RREventBase, RRErrorBase;
|
2006-09-17 08:21:37 +02:00
|
|
|
|
2006-09-18 08:03:23 +02:00
|
|
|
extern int (*ProcRandrVector[RRNumberRequests])(ClientPtr);
|
|
|
|
extern int (*SProcRandrVector[RRNumberRequests])(ClientPtr);
|
|
|
|
|
2006-07-17 07:21:11 +02:00
|
|
|
/*
|
|
|
|
* Modeline for a monitor. Name follows directly after this struct
|
|
|
|
*/
|
|
|
|
|
|
|
|
#define RRModeName(pMode) ((char *) (pMode + 1))
|
2006-09-17 06:44:42 +02:00
|
|
|
typedef struct _rrMode RRModeRec, *RRModePtr;
|
|
|
|
typedef struct _rrCrtc RRCrtcRec, *RRCrtcPtr;
|
|
|
|
typedef struct _rrOutput RROutputRec, *RROutputPtr;
|
|
|
|
|
|
|
|
struct _rrMode {
|
|
|
|
RRMode id;
|
|
|
|
int refcnt;
|
|
|
|
xRRModeInfo mode;
|
|
|
|
char *name;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct _rrCrtc {
|
|
|
|
RRCrtc id;
|
2006-07-02 04:46:38 +02:00
|
|
|
ScreenPtr pScreen;
|
2006-09-17 06:44:42 +02:00
|
|
|
RRModePtr mode;
|
2006-07-02 04:46:38 +02:00
|
|
|
int x, y;
|
|
|
|
Rotation rotation;
|
2006-09-17 06:44:42 +02:00
|
|
|
Rotation rotations;
|
|
|
|
Bool changed;
|
2006-09-17 08:21:37 +02:00
|
|
|
int numOutputs;
|
|
|
|
RROutputPtr *outputs;
|
2006-09-17 06:44:42 +02:00
|
|
|
void *devPrivate;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct _rrOutput {
|
|
|
|
RROutput id;
|
|
|
|
ScreenPtr pScreen;
|
|
|
|
char *name;
|
|
|
|
int nameLength;
|
|
|
|
CARD8 connection;
|
|
|
|
CARD8 subpixelOrder;
|
|
|
|
RRCrtcPtr crtc;
|
|
|
|
int numCrtcs;
|
|
|
|
RRCrtcPtr *crtcs;
|
|
|
|
int numClones;
|
2006-09-18 08:03:23 +02:00
|
|
|
RROutputPtr *clones;
|
2006-09-17 06:44:42 +02:00
|
|
|
int numModes;
|
|
|
|
RRModePtr *modes;
|
|
|
|
Bool changed;
|
|
|
|
void *devPrivate;
|
|
|
|
};
|
|
|
|
|
2006-09-17 08:21:37 +02:00
|
|
|
#if RANDR_12_INTERFACE
|
|
|
|
typedef Bool (*RRScreentSizeSetProcPtr) (ScreenPtr pScreen,
|
2006-07-02 04:46:38 +02:00
|
|
|
CARD16 width,
|
|
|
|
CARD16 height,
|
2006-09-17 08:21:37 +02:00
|
|
|
CARD32 mmWidth,
|
|
|
|
CARD32 mmHeight);
|
2006-07-02 04:46:38 +02:00
|
|
|
|
2006-09-17 06:44:42 +02:00
|
|
|
typedef Bool (*RRCrtcSetProcPtr) (ScreenPtr pScreen,
|
|
|
|
RRCrtcPtr crtc,
|
|
|
|
RRModePtr mode,
|
2006-07-02 04:46:38 +02:00
|
|
|
int x,
|
|
|
|
int y,
|
2006-09-17 06:44:42 +02:00
|
|
|
Rotation rotation,
|
2006-09-17 08:21:37 +02:00
|
|
|
int numOutputs,
|
2006-09-17 06:44:42 +02:00
|
|
|
RROutputPtr *outputs);
|
2006-09-17 08:21:37 +02:00
|
|
|
#endif
|
2006-07-02 04:46:38 +02:00
|
|
|
|
|
|
|
typedef Bool (*RRGetInfoProcPtr) (ScreenPtr pScreen, Rotation *rotations);
|
|
|
|
typedef Bool (*RRCloseScreenProcPtr) ( int i, ScreenPtr pscreen);
|
|
|
|
|
2006-09-17 06:44:42 +02:00
|
|
|
/* These are for 1.0 compatibility */
|
|
|
|
|
2006-07-17 07:21:11 +02:00
|
|
|
typedef struct _rrRefresh {
|
2006-09-17 06:44:42 +02:00
|
|
|
CARD16 rate;
|
|
|
|
RRModePtr mode;
|
|
|
|
} RRScreenRate, *RRScreenRatePtr;
|
2006-07-17 07:21:11 +02:00
|
|
|
|
|
|
|
typedef struct _rrScreenSize {
|
|
|
|
int id;
|
|
|
|
short width, height;
|
|
|
|
short mmWidth, mmHeight;
|
2006-09-17 06:44:42 +02:00
|
|
|
int nRates;
|
|
|
|
RRScreenRatePtr pRates;
|
|
|
|
} RRScreenSize, *RRScreenSizePtr;
|
|
|
|
|
2006-09-17 08:21:37 +02:00
|
|
|
#ifdef RANDR_10_INTERFACE
|
2003-11-14 17:48:57 +01:00
|
|
|
|
|
|
|
typedef Bool (*RRSetConfigProcPtr) (ScreenPtr pScreen,
|
|
|
|
Rotation rotation,
|
|
|
|
int rate,
|
|
|
|
RRScreenSizePtr pSize);
|
|
|
|
|
2006-07-02 04:46:38 +02:00
|
|
|
#endif
|
2003-11-14 17:48:57 +01:00
|
|
|
|
2006-07-02 04:46:38 +02:00
|
|
|
|
2003-11-14 17:48:57 +01:00
|
|
|
typedef struct _rrScrPriv {
|
2006-07-17 07:21:11 +02:00
|
|
|
/*
|
|
|
|
* 'public' part of the structure; DDXen fill this in
|
|
|
|
* as they initialize
|
|
|
|
*/
|
2006-09-17 08:21:37 +02:00
|
|
|
#if RANDR_10_INTERFACE
|
2006-07-17 07:21:11 +02:00
|
|
|
RRSetConfigProcPtr rrSetConfig;
|
|
|
|
#endif
|
2003-11-14 17:48:57 +01:00
|
|
|
RRGetInfoProcPtr rrGetInfo;
|
2006-09-17 08:21:37 +02:00
|
|
|
#if RANDR_12_INTERFACE
|
|
|
|
RRScreenSetSizeProcPtr rrScreenSizeSet;
|
2006-09-17 06:44:42 +02:00
|
|
|
RRCrtcSetProcPtr rrCrtcSet;
|
2006-09-17 08:21:37 +02:00
|
|
|
#endif
|
2003-11-14 17:48:57 +01:00
|
|
|
|
2006-07-17 07:21:11 +02:00
|
|
|
/*
|
|
|
|
* Private part of the structure; not considered part of the ABI
|
|
|
|
*/
|
2003-11-14 17:48:57 +01:00
|
|
|
TimeStamp lastSetTime; /* last changed by client */
|
|
|
|
TimeStamp lastConfigTime; /* possible configs changed */
|
2006-07-17 07:21:11 +02:00
|
|
|
RRCloseScreenProcPtr CloseScreen;
|
2006-09-17 06:44:42 +02:00
|
|
|
Bool changed;
|
|
|
|
CARD16 minWidth, minHeight;
|
|
|
|
CARD16 maxWidth, maxHeight;
|
2006-09-17 08:21:37 +02:00
|
|
|
CARD16 width, height; /* last known screen size */
|
2003-11-14 17:48:57 +01:00
|
|
|
|
2006-09-17 06:44:42 +02:00
|
|
|
/* modes, outputs and crtcs */
|
|
|
|
int numModes;
|
|
|
|
RRModePtr *modes;
|
|
|
|
|
|
|
|
int numOutputs;
|
|
|
|
RROutputPtr *outputs;
|
|
|
|
|
|
|
|
int numCrtcs;
|
|
|
|
RRCrtcPtr *crtcs;
|
2006-07-02 04:46:38 +02:00
|
|
|
|
2006-09-17 08:21:37 +02:00
|
|
|
#ifdef RANDR_10_INTERFACE
|
2003-11-14 17:48:57 +01:00
|
|
|
/*
|
|
|
|
* Configuration information
|
|
|
|
*/
|
|
|
|
Rotation rotations;
|
2006-09-17 06:44:42 +02:00
|
|
|
CARD16 reqWidth, reqHeight;
|
2003-11-14 17:48:57 +01:00
|
|
|
|
2006-09-17 06:44:42 +02:00
|
|
|
int nSizes;
|
|
|
|
RRScreenSizePtr pSizes;
|
|
|
|
|
2003-11-14 17:48:57 +01:00
|
|
|
Rotation rotation;
|
2006-09-17 06:44:42 +02:00
|
|
|
int rate;
|
|
|
|
int size;
|
2006-07-02 04:46:38 +02:00
|
|
|
#endif
|
2003-11-14 17:48:57 +01:00
|
|
|
} rrScrPrivRec, *rrScrPrivPtr;
|
|
|
|
|
|
|
|
extern int rrPrivIndex;
|
|
|
|
|
|
|
|
#define rrGetScrPriv(pScr) ((rrScrPrivPtr) (pScr)->devPrivates[rrPrivIndex].ptr)
|
|
|
|
#define rrScrPriv(pScr) rrScrPrivPtr pScrPriv = rrGetScrPriv(pScr)
|
|
|
|
#define SetRRScreen(s,p) ((s)->devPrivates[rrPrivIndex].ptr = (pointer) (p))
|
|
|
|
|
2006-09-18 08:03:23 +02:00
|
|
|
/*
|
|
|
|
* each window has a list of clients requesting
|
|
|
|
* RRNotify events. Each client has a resource
|
|
|
|
* for each window it selects RRNotify input for,
|
|
|
|
* this resource is used to delete the RRNotifyRec
|
|
|
|
* entry from the per-window queue.
|
|
|
|
*/
|
|
|
|
|
|
|
|
typedef struct _RREvent *RREventPtr;
|
|
|
|
|
|
|
|
typedef struct _RREvent {
|
|
|
|
RREventPtr next;
|
|
|
|
ClientPtr client;
|
|
|
|
WindowPtr window;
|
|
|
|
XID clientResource;
|
|
|
|
int mask;
|
|
|
|
} RREventRec;
|
|
|
|
|
|
|
|
typedef struct _RRTimes {
|
|
|
|
TimeStamp setTime;
|
|
|
|
TimeStamp configTime;
|
|
|
|
} RRTimesRec, *RRTimesPtr;
|
|
|
|
|
|
|
|
typedef struct _RRClient {
|
|
|
|
int major_version;
|
|
|
|
int minor_version;
|
|
|
|
/* RRTimesRec times[0]; */
|
|
|
|
} RRClientRec, *RRClientPtr;
|
|
|
|
|
|
|
|
extern RESTYPE RRClientType, RREventType; /* resource types for event masks */
|
|
|
|
extern int RRClientPrivateIndex;
|
|
|
|
extern RESTYPE RRCrtcType, RRModeType, RROutputType;
|
|
|
|
|
|
|
|
#define GetRRClient(pClient) ((RRClientPtr) (pClient)->devPrivates[RRClientPrivateIndex].ptr)
|
|
|
|
#define rrClientPriv(pClient) RRClientPtr pRRClient = GetRRClient(pClient)
|
|
|
|
|
2003-11-14 17:48:57 +01:00
|
|
|
/* Initialize the extension */
|
|
|
|
void
|
|
|
|
RRExtensionInit (void);
|
|
|
|
|
2006-09-17 08:21:37 +02:00
|
|
|
#ifdef RANDR_12_INTERFACE
|
2006-07-02 04:46:38 +02:00
|
|
|
/*
|
2006-09-17 06:44:42 +02:00
|
|
|
* Set the range of sizes for the screen
|
|
|
|
*/
|
|
|
|
void
|
|
|
|
RRScreenSetSizeRange (ScreenPtr pScreen,
|
|
|
|
CARD16 minWidth,
|
|
|
|
CARD16 minHeight,
|
|
|
|
CARD16 maxWidth,
|
|
|
|
CARD16 maxHeight);
|
2006-09-17 08:21:37 +02:00
|
|
|
#endif
|
2006-09-17 06:44:42 +02:00
|
|
|
|
2006-09-17 08:21:37 +02:00
|
|
|
/* rrscreen.c */
|
2006-09-17 06:44:42 +02:00
|
|
|
/*
|
2006-09-17 08:21:37 +02:00
|
|
|
* Notify the extension that the screen size has been changed.
|
|
|
|
* The driver is responsible for calling this whenever it has changed
|
|
|
|
* the size of the screen
|
2006-09-17 06:44:42 +02:00
|
|
|
*/
|
|
|
|
void
|
2006-09-17 08:21:37 +02:00
|
|
|
RRScreenSizeNotify (ScreenPtr pScreen);
|
2006-07-02 04:46:38 +02:00
|
|
|
|
|
|
|
/*
|
2006-09-17 08:21:37 +02:00
|
|
|
* Request that the screen be resized
|
2006-07-02 04:46:38 +02:00
|
|
|
*/
|
2006-09-17 08:21:37 +02:00
|
|
|
Bool
|
|
|
|
RRScreenSizeSet (ScreenPtr pScreen,
|
|
|
|
CARD16 width,
|
|
|
|
CARD16 height,
|
|
|
|
CARD32 mmWidth,
|
|
|
|
CARD32 mmHeight);
|
2006-09-17 06:44:42 +02:00
|
|
|
|
|
|
|
/*
|
2006-09-17 08:21:37 +02:00
|
|
|
* Deliver a ScreenNotify event
|
2006-09-17 06:44:42 +02:00
|
|
|
*/
|
|
|
|
void
|
2006-09-17 08:21:37 +02:00
|
|
|
RRDeliverScreenEvent (ClientPtr client, WindowPtr pWin, ScreenPtr pScreen);
|
|
|
|
|
|
|
|
/* mirandr.c */
|
2006-07-02 04:46:38 +02:00
|
|
|
Bool
|
|
|
|
miRandRInit (ScreenPtr pScreen);
|
|
|
|
|
|
|
|
Bool
|
|
|
|
miRRGetInfo (ScreenPtr pScreen, Rotation *rotations);
|
|
|
|
|
|
|
|
Bool
|
|
|
|
miRRGetScreenInfo (ScreenPtr pScreen);
|
|
|
|
|
|
|
|
Bool
|
2006-09-17 06:44:42 +02:00
|
|
|
miRRCrtcSet (ScreenPtr pScreen,
|
|
|
|
RRCrtcPtr crtc,
|
|
|
|
RRModePtr mode,
|
2006-07-17 07:21:11 +02:00
|
|
|
int x,
|
|
|
|
int y,
|
2006-09-17 06:44:42 +02:00
|
|
|
Rotation rotation,
|
|
|
|
int numOutput,
|
|
|
|
RROutputPtr *outputs);
|
2006-07-02 04:46:38 +02:00
|
|
|
|
2006-09-17 08:21:37 +02:00
|
|
|
/* randr.c */
|
|
|
|
/*
|
|
|
|
* Send all pending events
|
|
|
|
*/
|
|
|
|
void
|
|
|
|
RRTellChanged (ScreenPtr pScreen);
|
|
|
|
|
2006-09-18 08:03:23 +02:00
|
|
|
/*
|
|
|
|
* Poll the driver for changed information
|
|
|
|
*/
|
|
|
|
Bool
|
|
|
|
RRGetInfo (ScreenPtr pScreen);
|
|
|
|
|
2006-09-17 08:21:37 +02:00
|
|
|
Bool RRScreenInit(ScreenPtr pScreen);
|
|
|
|
|
2006-09-18 08:03:23 +02:00
|
|
|
RROutputPtr
|
|
|
|
RRFirstOutput (ScreenPtr pScreen);
|
|
|
|
|
2006-09-17 08:21:37 +02:00
|
|
|
Rotation
|
|
|
|
RRGetRotation (ScreenPtr pScreen);
|
|
|
|
|
|
|
|
CARD16
|
|
|
|
RRVerticalRefresh (xRRModeInfo *mode);
|
|
|
|
|
|
|
|
#ifdef RANDR_10_INTERFACE
|
2006-07-02 04:46:38 +02:00
|
|
|
/*
|
|
|
|
* This is the old interface, deprecated but left
|
|
|
|
* around for compatibility
|
|
|
|
*/
|
|
|
|
|
2003-11-14 17:48:57 +01:00
|
|
|
/*
|
|
|
|
* Then, register the specific size with the screen
|
|
|
|
*/
|
|
|
|
|
|
|
|
RRScreenSizePtr
|
|
|
|
RRRegisterSize (ScreenPtr pScreen,
|
|
|
|
short width,
|
|
|
|
short height,
|
|
|
|
short mmWidth,
|
|
|
|
short mmHeight);
|
|
|
|
|
|
|
|
Bool RRRegisterRate (ScreenPtr pScreen,
|
|
|
|
RRScreenSizePtr pSize,
|
|
|
|
int rate);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Finally, set the current configuration of the screen
|
|
|
|
*/
|
|
|
|
|
|
|
|
void
|
|
|
|
RRSetCurrentConfig (ScreenPtr pScreen,
|
|
|
|
Rotation rotation,
|
|
|
|
int rate,
|
|
|
|
RRScreenSizePtr pSize);
|
|
|
|
|
2006-09-17 06:44:42 +02:00
|
|
|
Bool RRScreenInit (ScreenPtr pScreen);
|
|
|
|
|
|
|
|
Rotation
|
|
|
|
RRGetRotation (ScreenPtr pScreen);
|
|
|
|
|
2004-06-25 10:56:04 +02:00
|
|
|
int
|
|
|
|
RRSetScreenConfig (ScreenPtr pScreen,
|
|
|
|
Rotation rotation,
|
|
|
|
int rate,
|
|
|
|
RRScreenSizePtr pSize);
|
|
|
|
|
2006-07-02 04:46:38 +02:00
|
|
|
#endif
|
2006-09-17 08:21:37 +02:00
|
|
|
|
|
|
|
/* rrcrtc.c */
|
|
|
|
/*
|
|
|
|
* Create a CRTC
|
|
|
|
*/
|
|
|
|
RRCrtcPtr
|
|
|
|
RRCrtcCreate (ScreenPtr pScreen,
|
|
|
|
void *devPrivate);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Notify the extension that the Crtc has been reconfigured,
|
|
|
|
* the driver calls this whenever it has updated the mode
|
|
|
|
*/
|
|
|
|
Bool
|
|
|
|
RRCrtcNotify (RRCrtcPtr crtc,
|
|
|
|
RRModePtr mode,
|
|
|
|
int x,
|
|
|
|
int y,
|
|
|
|
Rotation rotation,
|
|
|
|
int numOutput,
|
|
|
|
RROutputPtr *outputs);
|
|
|
|
|
2006-09-18 08:03:23 +02:00
|
|
|
void
|
|
|
|
RRDeliverCrtcEvent (ClientPtr client, WindowPtr pWin, RRCrtcPtr crtc);
|
|
|
|
|
2006-09-17 08:21:37 +02:00
|
|
|
/*
|
|
|
|
* Request that the Crtc be reconfigured
|
|
|
|
*/
|
|
|
|
Bool
|
|
|
|
RRCrtcSet (RRCrtcPtr crtc,
|
|
|
|
RRModePtr mode,
|
|
|
|
int x,
|
|
|
|
int y,
|
|
|
|
Rotation rotation,
|
|
|
|
int numOutput,
|
|
|
|
RROutputPtr *outputs);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Destroy a Crtc at shutdown
|
|
|
|
*/
|
|
|
|
void
|
|
|
|
RRCrtcDestroy (RRCrtcPtr crtc);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Initialize crtc type
|
|
|
|
*/
|
|
|
|
Bool
|
|
|
|
RRCrtcInit (void);
|
|
|
|
|
2006-09-18 08:03:23 +02:00
|
|
|
/* rrdispatch.c */
|
|
|
|
Bool
|
|
|
|
RRClientKnowsRates (ClientPtr pClient);
|
|
|
|
|
2006-09-17 08:21:37 +02:00
|
|
|
/* rrmode.c */
|
|
|
|
/*
|
|
|
|
* Find, and if necessary, create a mode
|
|
|
|
*/
|
|
|
|
|
|
|
|
RRModePtr
|
|
|
|
RRModeGet (ScreenPtr pScreen,
|
|
|
|
xRRModeInfo *modeInfo,
|
|
|
|
char *name);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Destroy a mode.
|
|
|
|
*/
|
|
|
|
|
|
|
|
void
|
|
|
|
RRModeDestroy (RRModePtr mode);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Initialize mode type
|
|
|
|
*/
|
|
|
|
Bool
|
|
|
|
RRModeInit (void);
|
|
|
|
|
|
|
|
/* rroutput.c */
|
|
|
|
/*
|
|
|
|
* Create an output
|
|
|
|
*/
|
|
|
|
|
|
|
|
RROutputPtr
|
|
|
|
RROutputCreate (ScreenPtr pScreen,
|
|
|
|
char *name,
|
|
|
|
int nameLength,
|
|
|
|
void *devPrivate);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Notify extension that output parameters have been changed
|
|
|
|
*/
|
|
|
|
Bool
|
|
|
|
RROutputSetClones (RROutputPtr output,
|
|
|
|
RROutputPtr *clones,
|
|
|
|
int numClones);
|
|
|
|
|
|
|
|
Bool
|
|
|
|
RROutputSetModes (RROutputPtr output,
|
|
|
|
RRModePtr *modes,
|
|
|
|
int numModes);
|
|
|
|
|
|
|
|
Bool
|
|
|
|
RROutputSetCrtcs (RROutputPtr output,
|
|
|
|
RRCrtcPtr *crtcs,
|
|
|
|
int numCrtcs);
|
|
|
|
|
2006-09-18 21:18:22 +02:00
|
|
|
void
|
|
|
|
RROutputSetCrtc (RROutputPtr output, RRCrtcPtr crtc);
|
|
|
|
|
2006-09-17 08:21:37 +02:00
|
|
|
Bool
|
|
|
|
RROutputSetConnection (RROutputPtr output,
|
|
|
|
CARD8 connection);
|
|
|
|
|
2006-09-18 08:03:23 +02:00
|
|
|
void
|
|
|
|
RRDeliverOutputEvent(ClientPtr client, WindowPtr pWin, RROutputPtr output);
|
|
|
|
|
2006-09-17 08:21:37 +02:00
|
|
|
void
|
|
|
|
RROutputDestroy (RROutputPtr output);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Initialize output type
|
|
|
|
*/
|
|
|
|
Bool
|
|
|
|
RROutputInit (void);
|
|
|
|
|
2003-11-14 17:48:57 +01:00
|
|
|
#endif /* _RANDRSTR_H_ */
|