Home Man
Today's Posts

Linux & Unix Commands - Search Man Pages

X11R7.4 - man page for xrrqueryextension (x11r4 section 3)

XRANDR(3)			     Library Functions Manual				XRANDR(3)

	Xrandr - X Resize, Rotate and Reflection extension.

       #include <X11/extensions/Xrandr.h>

       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,
	    Drawable draw);

       void XRRFreeScreenConfigInfo (
	    XRRScreenConfiguration *config);

       Status XRRSetScreenConfig (Display *dpy,
	    XRRScreenConfiguration *config,
	    Drawable draw,
	    int size_index,
	    Rotation rotation,
	    Time timestamp);

       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 size_index,
	    int *nrates);

       SizeID XRRConfigCurrentConfiguration (
	    XRRScreenConfiguration *config,
	    Rotation *rotation);

       short XRRConfigCurrentRate (
	    XRRScreenConfiguration *config);

       int XRRRootToScreen(
	    Display *dpy,
	    Window root);

       void XRRSelectInput(Display *dpy, Window window, int mask);

	* 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^);

	* 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 size_index, int *nrates);

       Time XRRTimes (Display *dpy, int screen, Time *config_timestamp);

       display	 Specifies the connection to the X server.

       screen	 Specifies which screen.

       draw	 Specifies the screen.

       rotation  Specifies the rotations or reflections possible of the screen.

		 Specifies the current rotations and reflection of the screen.

       timestamp Specifies the server timestamp.

		 Specifies the timestamp when the screen was last (re)configured.

       config	 Specifies the screen configuration being used.

       sizes	 Specifies the array of sizes supported.

       rate	 Specifies the refresh rate in Hz.


       Can be any of:
       #define RR_Rotate_0	       1
       #define RR_Rotate_90	       2
       #define RR_Rotate_180	       4
       #define RR_Rotate_270	       8

       /* new in 1.0 protocol, to allow reflection of screen */
       /* reflection is applied after rotation */

       #define RR_Reflect_X	       16
       #define RR_Reflect_Y	       32

       typedef struct {
	   int	 width, height;
	   int	 mwidth, mheight;
       } XRRScreenSize;

       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;

       XRRScreenSize  structure  contains  a  possible	root  size  in pixels and in millimeters.
       XRRScreenChangeNotifyEvent Is sent to a client that has	requested  notification  whenever
       the screen configuration is changed.

       XRRScreenConfiguration  This  is an opaque data type containing the configuration informa-
       tion for a screen.


       Time stamps are included and must be used to ensure the client  is  playing  with  a  full
       deck:  the  screen  may change properties on the fly and this ensures its knowledge of the
       configuration is up to date.  This is to help issues when screens may become hot-pluggable
       in the future.

       Xrandr  is a simple library designed to interface the X Resize and Rotate Extension.  This
       allows clients to change the size and rotation of the root window of a screen, along  with
       the  ability to reflect the screen about either axis (if supported by the implementation).
       Rotation and reflection may be implemented by software and may result  in  slower  perfor-
       mance  if  rotation and reflection are implemented in this fashion (as are all implementa-
       tions as of October 2002).

       The Xrandr library does some minimal caching to avoid roundtrips to provide  clients  fre-
       quently used information.  See "The X Resize and Rotate Extension" for a detailed descrip-
       tion; also note that depth switching, as described in the document is not implemented, and
       may  (or  may not) ever be implemented, as display memory is growing rapidly, and toolkits
       are already beginning to support migration, mitigating the need for depth  switching.   If
       it  is implemented in the future, we expect to do so via an upward compatible extension to
       the current library/protocol; functionality described here should continue to work.

       Rotation and reflection and how they interact can be confusing.	In Randr, the  coordinate
       system  is  rotated  in	a counter-clockwise direction relative to the normal orientation.
       Reflection is along the window system coordinate system, not the physical screen X  and	Y
       axis,  so that rotation and reflection do not interact.	The other way to consider reflec-
       tion is to is specified in the "normal" orientation, before  rotation,  if  you	find  the
       other way confusing.

       The  XRRScreenChangeNotify  event  is sent to clients that ask to be informed whenever the
       root window configuration changes.  Configuration changes may include resolution, physical
       size,  subpixel	order (see XRender(3)), and rotation.  Note that changes to any or all of
       these could occur due to external events (user control in the X server, a different  moni-
       tor/flat panel display being hot-plugged) and is not only the result of a protocol/library
       request to the X server.

       Additionally, to eliminate a potential race condition, this event may be generated immedi-
       ately upon selecting for notification if the screen has changed since the client of Xrandr
       connected to the X server, to enable reliable screen resolution changing when a	user  may
       log in and change the configuration while one or many clients are starting up.

       Xlib notification

       Clients	must  call  back into Xlib using XRRUpdateConfiguration when screen configuration
       change notify events are generated (or root window configuration changes occur, to  update
       Xlib's  view  of the resolution, size, rotation, reflection or subpixel order.  Generally,
       toolkits will perform this operation on behalf of applications; we did not want to  change
       display	structure  data behind the back of toolkits, as in multithreaded clients, various
       race conditions might occur.  Toolkits should provide clients some mechanism for notifica-
       tion of screen change, of course.

       There are two classes of interfaces: those which can be safely called even if RandR is not
       implemented on a screen (to make common idioms not dependent on	the  server  having  sup-
       port), and those which will return errors if the extension is not present.

       XRRRotations  returns  both the possible set of rotations/reflections supported (as a bit-
       mask) as the value of the function, along with  the  current  rotation/reflection  of  the

       XRRSizes  returns  the  size and a pointer to the current sizes supported by the specified
       screen.	The first size specified is the default size of the server. If RandR is not  sup-
       ported, it returns 0 for the number of sizes.

       XRRRates  returns  a  pointer to a the rates supported by the specified size.  If RandR is
       not supported, it returns 0 for the number of rates.

       XRRTimes returns the time last reported by the server along with the  timestamp	the  last
       configuration changed.  If the configuration has changed since the client last updated its
       view of the server time, requests to change the configuration will fail until  the  client
       has an up to date timestamp.

       XRRRootToScreen	returns  the  screen  number  given  a	root window (for example, from an

       The rest of the functions will fail if applied  to  screens  not  implementing  the  RandR
       extension.   XRRSetScreenConfig	sets  the  screen size and rotation and reflection to the
       desired values on the screen specified by draw, or returns a BadValue  error.   size_index
       specifies  which  size  configuration  is to be used, rotation specifies which rotation or
       reflection is to be used (or a BadValue error is returned).  The timestamp is used by  the
       server  to  make  sure  the  client  has  up  to date configuration information. Status is
       returned to indicate success or failure; a client must refresh its configuration  informa-
       tion if it fails and try the call again (by calling XRRGetScreenInfo).

       XRRSetScreenConfigAndRate like XRRSetScreenConfig but also set the refresh rate. If speci-
       fied rate is not supported a BadValue error is returned.

       XRRConfigRotations, XRRConfigSizes, XRRConfigCurrentConfiguration, XRRConfigTimes, XRRCon-
       figRates,  and XRRConfigCurrentRate are used to get specific configuration information out
       of a screen configuration.

       XRRGetScreenInfo Returns a screen configuration for later use; the information is  private
       to  the	library.  Call XRRFreeScreenConfigInfo to free this information when you are fin-
       ished with it.  It forces a round trip to the server.

       Other functions include: XRRQueryExtension which returns the event and error  base  codes,
       XRRQueryVersion	, which returns the current version of the extension (this information is
       cached by the library).

       Xrandr will remain upward compatible after the current 1.0 release.

       Jim Gettys, and Keith Packard, HP.

X Version 11				 libXrandr 1.3.0				XRANDR(3)

All times are GMT -4. The time now is 02:21 PM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
Show Password