summaryrefslogtreecommitdiff
path: root/randr/randrstr.h
diff options
context:
space:
mode:
Diffstat (limited to 'randr/randrstr.h')
-rw-r--r--randr/randrstr.h39
1 files changed, 36 insertions, 3 deletions
diff --git a/randr/randrstr.h b/randr/randrstr.h
index 7c553f21f..10dd46d46 100644
--- a/randr/randrstr.h
+++ b/randr/randrstr.h
@@ -81,6 +81,7 @@ typedef struct _rrCrtc RRCrtcRec, *RRCrtcPtr;
typedef struct _rrScreenConfig RRScreenConfigRec, *RRScreenConfigPtr;
typedef struct _rrCrtcConfig RRCrtcConfigRec, *RRCrtcConfigPtr;
typedef struct _rrOutput RROutputRec, *RROutputPtr;
+typedef struct _rrPixmap RRPixmapRec, *RRPixmapPtr;
struct _rrMode {
int refcnt;
@@ -107,6 +108,12 @@ struct _rrProperty {
RRPropertyValueRec current, pending;
};
+struct _rrPixmap {
+ XID id;
+ PixmapPtr pixmap;
+ Rotation rotations;
+};
+
struct _rrCrtc {
RRCrtc id;
ScreenPtr pScreen;
@@ -136,6 +143,7 @@ struct _rrCrtc {
struct pict_f_transform f_inverse;
struct pict_f_transform f_sprite_position; /* crtc from screen */
struct pict_f_transform f_sprite_image_inverse; /* image from crtc */
+ int pixmap_x, pixmap_y;
};
struct _rrScreenConfig {
@@ -204,7 +212,9 @@ typedef Bool (*RRCrtcSetProcPtr) (ScreenPtr pScreen,
Rotation rotation,
int numOutputs,
RROutputPtr *outputs,
- PixmapPtr scanout_pixmap);
+ PixmapPtr scanout_pixmap,
+ int pixmap_x,
+ int pixmap_y);
typedef Bool (*RRCrtcSetGammaProcPtr) (ScreenPtr pScreen,
RRCrtcPtr crtc);
@@ -448,6 +458,18 @@ extern _X_EXPORT RESTYPE RRCrtcType, RRModeType, RROutputType;
#define GetRRClient(pClient) ((RRClientPtr)dixLookupPrivate(&(pClient)->devPrivates, RRClientPrivateKey))
#define rrClientPriv(pClient) RRClientPtr pRRClient = GetRRClient(pClient)
+extern _X_EXPORT RESTYPE RRPixmapType;
+
+#define VERIFY_RR_PIXMAP(id, ptr, a) \
+ { \
+ int rc = dixLookupResourceByType((pointer *)&(ptr), id, \
+ RRPixmapType, client, a); \
+ if (rc != Success) { \
+ client->errorValue = (id); \
+ return rc; \
+ } \
+ }
+
/* Initialize the extension */
extern _X_EXPORT void
RRExtensionInit (void);
@@ -630,7 +652,9 @@ RRCrtcNotify (RRCrtcPtr crtc,
RRTransformPtr transform,
int numOutputs,
RROutputPtr *outputs,
- PixmapPtr scanoutPixmap);
+ PixmapPtr scanoutPixmap,
+ int pixmap_x,
+ int pixmap_y);
extern _X_EXPORT void
RRDeliverCrtcEvent (ClientPtr client, WindowPtr pWin, RRCrtcPtr crtc);
@@ -646,7 +670,9 @@ RRCrtcSet (RRCrtcPtr crtc,
Rotation rotation,
int numOutput,
RROutputPtr *outputs,
- PixmapPtr scanout_pixmap);
+ PixmapPtr scanout_pixmap,
+ int pixmap_x,
+ int pixmap_y);
/*
* Request that the Crtc gamma be changed
@@ -729,6 +755,13 @@ RRCrtcTransformSet (RRCrtcPtr crtc,
int nparams);
/*
+ * The pixmap associated with this CRTC has been destroyed,
+ * reconfigure the screen so that this crtc shows something
+ */
+void
+RRCrtcLostPixmap(RRCrtcPtr crtc);
+
+/*
* Initialize crtc type
*/
extern _X_EXPORT Bool