101 } XRRScreenResources; 102 103 typedef struct { 104 Time timestamp; 105 RRCrtc crtc; 106 char *name; 107 int nameLen; 108 unsigned long mm_width; 109 unsigned long mm_height; 110 Connection connection; 111 SubpixelOrder subpixel_order; 112 int ncrtc; 113 RRCrtc *crtcs; 114 int nclone; 115 RROutput *clones; 116 int nmode; 117 int npreferred; 118 RRMode *modes; 119 } XRROutputInfo; 120 121 XRRScreenResources *XRRGetScreenResources (Display *dpy, Window window); 122 123 void XRRFreeScreenResources (XRRScreenResources *resources); 124 125 XRROutputInfo * XRRGetOutputInfo (Display *dpy, XRRScreenResources *resources, 126 RROutput output); 127 void XRRFreeOutputInfo (XRROutputInfo *outputInfo); 128 129 /* internal representation is private to the library */ 130 typedef struct _XRRScreenConfiguration XRRScreenConfiguration; 131 132 Bool XRRQueryExtension (Display *dpy, int *event_basep, int *error_basep); 133 Status XRRQueryVersion (Display *dpy, 134 int *major_versionp, 135 int *minor_versionp); 136 137 XRRScreenConfiguration *XRRGetScreenInfo (Display *dpy, 138 Drawable draw); 139 140 void XRRFreeScreenConfigInfo (XRRScreenConfiguration *config); 141 142 /* 143 * Note that screen configuration changes are only permitted if the client can 144 * prove it has up to date configuration information. We are trying to 145 * insist that it become possible for screens to change dynamically, so 146 * we want to ensure the client knows what it is talking about when requesting 147 * changes. | 101 } XRRScreenResources; 102 103 typedef struct { 104 Time timestamp; 105 RRCrtc crtc; 106 char *name; 107 int nameLen; 108 unsigned long mm_width; 109 unsigned long mm_height; 110 Connection connection; 111 SubpixelOrder subpixel_order; 112 int ncrtc; 113 RRCrtc *crtcs; 114 int nclone; 115 RROutput *clones; 116 int nmode; 117 int npreferred; 118 RRMode *modes; 119 } XRROutputInfo; 120 121 typedef struct { 122 Time timestamp; 123 int x, y; 124 unsigned int width, height; 125 RRMode mode; 126 Rotation rotation; 127 int noutput; 128 RROutput *outputs; 129 Rotation rotations; 130 int npossible; 131 RROutput *possible; 132 } XRRCrtcInfo; 133 134 XRRScreenResources *XRRGetScreenResources (Display *dpy, Window window); 135 136 void XRRFreeScreenResources (XRRScreenResources *resources); 137 138 XRROutputInfo * XRRGetOutputInfo (Display *dpy, XRRScreenResources *resources, 139 RROutput output); 140 void XRRFreeOutputInfo (XRROutputInfo *outputInfo); 141 142 XRRCrtcInfo *XRRGetCrtcInfo (Display *dpy, XRRScreenResources *resources, 143 RRCrtc crtc); 144 void XRRFreeCrtcInfo (XRRCrtcInfo *crtcInfo); 145 146 147 /* internal representation is private to the library */ 148 typedef struct _XRRScreenConfiguration XRRScreenConfiguration; 149 150 Bool XRRQueryExtension (Display *dpy, int *event_basep, int *error_basep); 151 Status XRRQueryVersion (Display *dpy, 152 int *major_versionp, 153 int *minor_versionp); 154 155 XRRScreenConfiguration *XRRGetScreenInfo (Display *dpy, 156 Drawable draw); 157 158 void XRRFreeScreenConfigInfo (XRRScreenConfiguration *config); 159 160 /* 161 * Note that screen configuration changes are only permitted if the client can 162 * prove it has up to date configuration information. We are trying to 163 * insist that it become possible for screens to change dynamically, so 164 * we want to ensure the client knows what it is talking about when requesting 165 * changes. |