PATH:
usr
/
include
/
X11
/
extensions
/* * Copyright © 2000 Compaq Computer Corporation, Inc. * Copyright © 2002 Hewlett-Packard Company, Inc. * Copyright © 2006 Intel Corporation * Copyright © 2008 Red Hat, Inc. * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * 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. * * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE * OF THIS SOFTWARE. * * Author: Jim Gettys, HP Labs, Hewlett-Packard, Inc. * Keith Packard, Intel Corporation */ #ifndef _XRANDR_H_ #define _XRANDR_H_ #include <X11/extensions/randr.h> #include <X11/extensions/Xrender.h> #include <X11/Xfuncproto.h> _XFUNCPROTOBEGIN typedef XID RROutput; typedef XID RRCrtc; typedef XID RRMode; typedef XID RRProvider; typedef struct { int width, height; int mwidth, mheight; } XRRScreenSize; /* * Events. */ typedef struct { int type; /* event base */ unsigned long serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; /* window which selected for this event */ Window root; /* Root window for changed screen */ Time timestamp; /* when the screen change occurred */ Time config_timestamp; /* when the last configuration change */ SizeID size_index; SubpixelOrder subpixel_order; Rotation rotation; int width; int height; int mwidth; int mheight; } XRRScreenChangeNotifyEvent; typedef struct { int type; /* event base */ unsigned long serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; /* window which selected for this event */ int subtype; /* RRNotify_ subtype */ } XRRNotifyEvent; typedef struct { int type; /* event base */ unsigned long serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; /* window which selected for this event */ int subtype; /* RRNotify_OutputChange */ RROutput output; /* affected output */ RRCrtc crtc; /* current crtc (or None) */ RRMode mode; /* current mode (or None) */ Rotation rotation; /* current rotation of associated crtc */ Connection connection; /* current connection status */ SubpixelOrder subpixel_order; } XRROutputChangeNotifyEvent; typedef struct { int type; /* event base */ unsigned long serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; /* window which selected for this event */ int subtype; /* RRNotify_CrtcChange */ RRCrtc crtc; /* current crtc (or None) */ RRMode mode; /* current mode (or None) */ Rotation rotation; /* current rotation of associated crtc */ int x, y; /* position */ unsigned int width, height; /* size */ } XRRCrtcChangeNotifyEvent; typedef struct { int type; /* event base */ unsigned long serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; /* window which selected for this event */ int subtype; /* RRNotify_OutputProperty */ RROutput output; /* related output */ Atom property; /* changed property */ Time timestamp; /* time of change */ int state; /* NewValue, Deleted */ } XRROutputPropertyNotifyEvent; typedef struct { int type; /* event base */ unsigned long serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; /* window which selected for this event */ int subtype; /* RRNotify_ProviderChange */ RRProvider provider; /* current provider (or None) */ Time timestamp; /* time of change */ unsigned int current_role; } XRRProviderChangeNotifyEvent; typedef struct { int type; /* event base */ unsigned long serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; /* window which selected for this event */ int subtype; /* RRNotify_ProviderProperty */ RRProvider provider; /* related provider */ Atom property; /* changed property */ Time timestamp; /* time of change */ int state; /* NewValue, Deleted */ } XRRProviderPropertyNotifyEvent; typedef struct { int type; /* event base */ unsigned long serial; /* # of last request processed by server */ Bool send_event; /* true if this came from a SendEvent request */ Display *display; /* Display the event was read from */ Window window; /* window which selected for this event */ int subtype; /* RRNotify_ResourceChange */ Time timestamp; /* time of change */ } XRRResourceChangeNotifyEvent; /* internal representation is private to the library */ typedef struct _XRRScreenConfiguration XRRScreenConfiguration; Bool XRRQueryExtension (Display *dpy, int *event_base_return, int *error_base_return); Status XRRQueryVersion (Display *dpy, int *major_version_return, int *minor_version_return); XRRScreenConfiguration *XRRGetScreenInfo (Display *dpy, Window window); void XRRFreeScreenConfigInfo (XRRScreenConfiguration *config); /* * Note that screen configuration changes are only permitted if the client can * prove it has up to date configuration information. We are trying to * insist that it become possible for screens to change dynamically, so * we want to ensure the client knows what it is talking about when requesting * changes. */ Status XRRSetScreenConfig (Display *dpy, XRRScreenConfiguration *config, Drawable draw, int size_index, Rotation rotation, Time timestamp); /* added in v1.1, sorry for the lame name */ Status XRRSetScreenConfigAndRate (Display *dpy, XRRScreenConfiguration *config, Drawable draw, int size_index, Rotation rotation, short rate, Time timestamp); Rotation XRRConfigRotations(XRRScreenConfiguration *config, Rotation *current_rotation); Time XRRConfigTimes (XRRScreenConfiguration *config, Time *config_timestamp); XRRScreenSize *XRRConfigSizes(XRRScreenConfiguration *config, int *nsizes); short *XRRConfigRates (XRRScreenConfiguration *config, int sizeID, int *nrates); SizeID XRRConfigCurrentConfiguration (XRRScreenConfiguration *config, Rotation *rotation); short XRRConfigCurrentRate (XRRScreenConfiguration *config); int XRRRootToScreen(Display *dpy, Window root); /* * returns the screen configuration for the specified screen; does a lazy * evalution to delay getting the information, and caches the result. * These routines should be used in preference to XRRGetScreenInfo * to avoid unneeded round trips to the X server. These are new * in protocol version 0.1. */ void XRRSelectInput(Display *dpy, Window window, int mask); /* * the following are always safe to call, even if RandR is not implemented * on a screen */ Rotation XRRRotations(Display *dpy, int screen, Rotation *current_rotation); XRRScreenSize *XRRSizes(Display *dpy, int screen, int *nsizes); short *XRRRates (Display *dpy, int screen, int sizeID, int *nrates); Time XRRTimes (Display *dpy, int screen, Time *config_timestamp); /* Version 1.2 additions */ /* despite returning a Status, this returns 1 for success */ Status XRRGetScreenSizeRange (Display *dpy, Window window, int *minWidth, int *minHeight, int *maxWidth, int *maxHeight); void XRRSetScreenSize (Display *dpy, Window window, int width, int height, int mmWidth, int mmHeight); typedef unsigned long XRRModeFlags; typedef struct _XRRModeInfo { RRMode id; unsigned int width; unsigned int height; unsigned long dotClock; unsigned int hSyncStart; unsigned int hSyncEnd; unsigned int hTotal; unsigned int hSkew; unsigned int vSyncStart; unsigned int vSyncEnd; unsigned int vTotal; char *name; unsigned int nameLength; XRRModeFlags modeFlags; } XRRModeInfo; typedef struct _XRRScreenResources { Time timestamp; Time configTimestamp; int ncrtc; RRCrtc *crtcs; int noutput; RROutput *outputs; int nmode; XRRModeInfo *modes; } XRRScreenResources; XRRScreenResources * XRRGetScreenResources (Display *dpy, Window window); void XRRFreeScreenResources (XRRScreenResources *resources); typedef struct _XRROutputInfo { Time timestamp; RRCrtc crtc; char *name; int nameLen; unsigned long mm_width; unsigned long mm_height; Connection connection; SubpixelOrder subpixel_order; int ncrtc; RRCrtc *crtcs; int nclone; RROutput *clones; int nmode; int npreferred; RRMode *modes; } XRROutputInfo; XRROutputInfo * XRRGetOutputInfo (Display *dpy, XRRScreenResources *resources, RROutput output); void XRRFreeOutputInfo (XRROutputInfo *outputInfo); Atom * XRRListOutputProperties (Display *dpy, RROutput output, int *nprop); typedef struct { Bool pending; Bool range; Bool immutable; int num_values; long *values; } XRRPropertyInfo; XRRPropertyInfo * XRRQueryOutputProperty (Display *dpy, RROutput output, Atom property); void XRRConfigureOutputProperty (Display *dpy, RROutput output, Atom property, Bool pending, Bool range, int num_values, long *values); void XRRChangeOutputProperty (Display *dpy, RROutput output, Atom property, Atom type, int format, int mode, _Xconst unsigned char *data, int nelements); void XRRDeleteOutputProperty (Display *dpy, RROutput output, Atom property); int XRRGetOutputProperty (Display *dpy, RROutput output, Atom property, long offset, long length, Bool _delete, Bool pending, Atom req_type, Atom *actual_type, int *actual_format, unsigned long *nitems, unsigned long *bytes_after, unsigned char **prop); XRRModeInfo * XRRAllocModeInfo (_Xconst char *name, int nameLength); RRMode XRRCreateMode (Display *dpy, Window window, XRRModeInfo *modeInfo); void XRRDestroyMode (Display *dpy, RRMode mode); void XRRAddOutputMode (Display *dpy, RROutput output, RRMode mode); void XRRDeleteOutputMode (Display *dpy, RROutput output, RRMode mode); void XRRFreeModeInfo (XRRModeInfo *modeInfo); typedef struct _XRRCrtcInfo { Time timestamp; int x, y; unsigned int width, height; RRMode mode; Rotation rotation; int noutput; RROutput *outputs; Rotation rotations; int npossible; RROutput *possible; } XRRCrtcInfo; XRRCrtcInfo * XRRGetCrtcInfo (Display *dpy, XRRScreenResources *resources, RRCrtc crtc); void XRRFreeCrtcInfo (XRRCrtcInfo *crtcInfo); Status XRRSetCrtcConfig (Display *dpy, XRRScreenResources *resources, RRCrtc crtc, Time timestamp, int x, int y, RRMode mode, Rotation rotation, RROutput *outputs, int noutputs); int XRRGetCrtcGammaSize (Display *dpy, RRCrtc crtc); typedef struct _XRRCrtcGamma { int size; unsigned short *red; unsigned short *green; unsigned short *blue; } XRRCrtcGamma; XRRCrtcGamma * XRRGetCrtcGamma (Display *dpy, RRCrtc crtc); XRRCrtcGamma * XRRAllocGamma (int size); void XRRSetCrtcGamma (Display *dpy, RRCrtc crtc, XRRCrtcGamma *gamma); void XRRFreeGamma (XRRCrtcGamma *gamma); /* Version 1.3 additions */ XRRScreenResources * XRRGetScreenResourcesCurrent (Display *dpy, Window window); void XRRSetCrtcTransform (Display *dpy, RRCrtc crtc, XTransform *transform, _Xconst char *filter, XFixed *params, int nparams); typedef struct _XRRCrtcTransformAttributes { XTransform pendingTransform; char *pendingFilter; int pendingNparams; XFixed *pendingParams; XTransform currentTransform; char *currentFilter; int currentNparams; XFixed *currentParams; } XRRCrtcTransformAttributes; /* * Get current crtc transforms and filters. * Pass *attributes to XFree to free */ Status XRRGetCrtcTransform (Display *dpy, RRCrtc crtc, XRRCrtcTransformAttributes **attributes); /* * intended to take RRScreenChangeNotify, or * ConfigureNotify (on the root window) * returns 1 if it is an event type it understands, 0 if not */ int XRRUpdateConfiguration(XEvent *event); typedef struct _XRRPanning { Time timestamp; unsigned int left; unsigned int top; unsigned int width; unsigned int height; unsigned int track_left; unsigned int track_top; unsigned int track_width; unsigned int track_height; int border_left; int border_top; int border_right; int border_bottom; } XRRPanning; XRRPanning * XRRGetPanning (Display *dpy, XRRScreenResources *resources, RRCrtc crtc); void XRRFreePanning (XRRPanning *panning); Status XRRSetPanning (Display *dpy, XRRScreenResources *resources, RRCrtc crtc, XRRPanning *panning); void XRRSetOutputPrimary(Display *dpy, Window window, RROutput output); RROutput XRRGetOutputPrimary(Display *dpy, Window window); typedef struct _XRRProviderResources { Time timestamp; int nproviders; RRProvider *providers; } XRRProviderResources; XRRProviderResources * XRRGetProviderResources(Display *dpy, Window window); void XRRFreeProviderResources(XRRProviderResources *resources); typedef struct _XRRProviderInfo { unsigned int capabilities; int ncrtcs; RRCrtc *crtcs; int noutputs; RROutput *outputs; char *name; int nassociatedproviders; RRProvider *associated_providers; unsigned int *associated_capability; int nameLen; } XRRProviderInfo; XRRProviderInfo * XRRGetProviderInfo(Display *dpy, XRRScreenResources *resources, RRProvider provider); void XRRFreeProviderInfo(XRRProviderInfo *provider); int XRRSetProviderOutputSource(Display *dpy, XID provider, XID source_provider); int XRRSetProviderOffloadSink(Display *dpy, XID provider, XID sink_provider); Atom * XRRListProviderProperties (Display *dpy, RRProvider provider, int *nprop); XRRPropertyInfo * XRRQueryProviderProperty (Display *dpy, RRProvider provider, Atom property); void XRRConfigureProviderProperty (Display *dpy, RRProvider provider, Atom property, Bool pending, Bool range, int num_values, long *values); void XRRChangeProviderProperty (Display *dpy, RRProvider provider, Atom property, Atom type, int format, int mode, _Xconst unsigned char *data, int nelements); void XRRDeleteProviderProperty (Display *dpy, RRProvider provider, Atom property); int XRRGetProviderProperty (Display *dpy, RRProvider provider, Atom property, long offset, long length, Bool _delete, Bool pending, Atom req_type, Atom *actual_type, int *actual_format, unsigned long *nitems, unsigned long *bytes_after, unsigned char **prop); typedef struct _XRRMonitorInfo { Atom name; Bool primary; Bool automatic; int noutput; int x; int y; int width; int height; int mwidth; int mheight; RROutput *outputs; } XRRMonitorInfo; XRRMonitorInfo * XRRAllocateMonitor(Display *dpy, int noutput); XRRMonitorInfo * XRRGetMonitors(Display *dpy, Window window, Bool get_active, int *nmonitors); void XRRSetMonitor(Display *dpy, Window window, XRRMonitorInfo *monitor); void XRRDeleteMonitor(Display *dpy, Window window, Atom name); void XRRFreeMonitors(XRRMonitorInfo *monitors); _XFUNCPROTOEND #endif /* _XRANDR_H_ */
[-] bigreqsproto.h
[edit]
[-] dpms.h
[edit]
[-] Xeviestr.h
[edit]
[-] XI.h
[edit]
[-] xfixeswire.h
[edit]
[-] composite.h
[edit]
[-] XShm.h
[edit]
[-] dmxproto.h
[edit]
[-] XKB.h
[edit]
[-] shmproto.h
[edit]
[-] multibufconst.h
[edit]
[-] dbeproto.h
[edit]
[-] agproto.h
[edit]
[-] shape.h
[edit]
[-] Xrender.h
[edit]
[-] shapeproto.h
[edit]
[-] mitmiscproto.h
[edit]
[-] dbe.h
[edit]
[-] saver.h
[edit]
[+]
..
[-] geproto.h
[edit]
[-] dri2proto.h
[edit]
[-] damageproto.h
[edit]
[-] shm.h
[edit]
[-] Xdbe.h
[edit]
[-] evieproto.h
[edit]
[-] Xv.h
[edit]
[-] xf86bigfproto.h
[edit]
[-] xf86bigfstr.h
[edit]
[-] cup.h
[edit]
[-] XEVI.h
[edit]
[-] recordconst.h
[edit]
[-] randrproto.h
[edit]
[-] multibuf.h
[edit]
[-] panoramiXext.h
[edit]
[-] xf86mscstr.h
[edit]
[-] ge.h
[edit]
[-] xf86misc.h
[edit]
[-] Xdamage.h
[edit]
[-] xfixesproto.h
[edit]
[-] XKBgeom.h
[edit]
[-] shmstr.h
[edit]
[-] xf86dga1proto.h
[edit]
[-] dpmsconst.h
[edit]
[-] render.h
[edit]
[-] EVI.h
[edit]
[-] EVIproto.h
[edit]
[-] xtestext1const.h
[edit]
[-] randr.h
[edit]
[-] XInput2.h
[edit]
[-] syncconst.h
[edit]
[-] vldXvMC.h
[edit]
[-] Xcup.h
[edit]
[-] damagewire.h
[edit]
[-] Xext.h
[edit]
[-] dri3proto.h
[edit]
[-] XvMC.h
[edit]
[-] xf86dga1const.h
[edit]
[-] dri2tokens.h
[edit]
[-] XKBstr.h
[edit]
[-] xtestext1.h
[edit]
[-] syncstr.h
[edit]
[-] mitmiscconst.h
[edit]
[-] XI2proto.h
[edit]
[-] sync.h
[edit]
[-] syncproto.h
[edit]
[-] xcmiscstr.h
[edit]
[-] lbxproto.h
[edit]
[-] xtestproto.h
[edit]
[-] xtestconst.h
[edit]
[-] secur.h
[edit]
[-] dmx.h
[edit]
[-] cupproto.h
[edit]
[-] xcmiscproto.h
[edit]
[-] bigreqstr.h
[edit]
[-] Xag.h
[edit]
[-] XLbx.h
[edit]
[-] compositeproto.h
[edit]
[-] xf86dga1str.h
[edit]
[-] xf86dgaconst.h
[edit]
[-] panoramiXproto.h
[edit]
[-] Xfixes.h
[edit]
[-] xtestext1proto.h
[edit]
[-] XI2.h
[edit]
[-] XInput.h
[edit]
[-] Xcomposite.h
[edit]
[-] Xinerama.h
[edit]
[-] xf86vmproto.h
[edit]
[-] XIproto.h
[edit]
[-] XKBsrv.h
[edit]
[-] Xrandr.h
[edit]
[-] MITMisc.h
[edit]
[-] extutil.h
[edit]
[-] XKBproto.h
[edit]
[-] XResproto.h
[edit]
[-] XvMCproto.h
[edit]
[-] xf86bigfont.h
[edit]
[-] xf86vmode.h
[edit]
[-] saverproto.h
[edit]
[-] Xvproto.h
[edit]
[-] lbx.h
[edit]
[-] xf86dga.h
[edit]
[-] xf86dgastr.h
[edit]
[-] shapeconst.h
[edit]
[-] xf86vm.h
[edit]
[-] multibufproto.h
[edit]
[-] dpmsproto.h
[edit]
[-] presentproto.h
[edit]
[-] presenttokens.h
[edit]
[-] security.h
[edit]
[-] xf86vmstr.h
[edit]
[-] recordproto.h
[edit]
[-] shapestr.h
[edit]
[-] xf86dgaproto.h
[edit]
[-] Xge.h
[edit]
[-] recordstr.h
[edit]
[-] renderproto.h
[edit]
[-] ag.h
[edit]
[-] securproto.h
[edit]