98 lines
3.2 KiB
C
98 lines
3.2 KiB
C
|
/*
|
||
|
* Copyright © 2000, Compaq Computer Corporation,
|
||
|
* Copyright © 2002, Hewlett Packard, 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 Compaq or HP not be used in advertising
|
||
|
* or publicity pertaining to distribution of the software without specific,
|
||
|
* written prior permission. HP makes no representations about the
|
||
|
* suitability of this software for any purpose. It is provided "as is"
|
||
|
* without express or implied warranty.
|
||
|
*
|
||
|
* HP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
|
||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL HP
|
||
|
* 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.
|
||
|
*/
|
||
|
|
||
|
#ifndef _XRANDRINT_H_
|
||
|
#define _XRANDRINT_H_
|
||
|
|
||
|
#include <X11/Xlibint.h>
|
||
|
#include <X11/Xutil.h>
|
||
|
#include <X11/extensions/Xext.h>
|
||
|
#include <X11/extensions/extutil.h>
|
||
|
#include "Xrandr.h"
|
||
|
#include <X11/extensions/randr.h>
|
||
|
#include <X11/extensions/randrproto.h>
|
||
|
|
||
|
extern char XRRExtensionName[];
|
||
|
|
||
|
#define RRCheckExtension(dpy,i,val) \
|
||
|
XextCheckExtension (dpy, i, XRRExtensionName, val)
|
||
|
#define RRSimpleCheckExtension(dpy,i) \
|
||
|
XextSimpleCheckExtension (dpy, i, XRRExtensionName)
|
||
|
|
||
|
XExtDisplayInfo *XRRFindDisplay (Display *dpy);
|
||
|
|
||
|
/* deliberately opaque internal data structure; can be extended,
|
||
|
but not reordered */
|
||
|
struct _XRRScreenConfiguration {
|
||
|
Screen *screen; /* the root window in GetScreenInfo */
|
||
|
XRRScreenSize *sizes;
|
||
|
Rotation rotations;
|
||
|
Rotation current_rotation;
|
||
|
int nsizes;
|
||
|
int current_size;
|
||
|
short current_rate;
|
||
|
Time timestamp;
|
||
|
Time config_timestamp;
|
||
|
int subpixel_order; /* introduced in randr v0.1 */
|
||
|
short *rates; /* introduced in randr v1.1 */
|
||
|
int nrates;
|
||
|
};
|
||
|
|
||
|
/*
|
||
|
* if a configure notify on the root is received, or
|
||
|
* an XRRScreenChangeNotify is received,
|
||
|
* XRRUpdateConfiguration should be called to update the X library's
|
||
|
* view of the screen configuration; it will also invalidate the cache
|
||
|
* provided by XRRScreenConfig and XRRConfig, and force a round trip
|
||
|
* when next used. Returns invalid status if not an event type
|
||
|
* the library routine understand.
|
||
|
*/
|
||
|
|
||
|
/* we cache one screen configuration/screen */
|
||
|
|
||
|
typedef struct _XRandRInfo {
|
||
|
XRRScreenConfiguration **config;
|
||
|
int major_version, minor_version; /* major_version = -1 means we don't know */
|
||
|
Bool has_rates; /* Server supports refresh rates */
|
||
|
} XRandRInfo;
|
||
|
|
||
|
typedef struct _randrVersionState {
|
||
|
unsigned long version_seq;
|
||
|
Bool error;
|
||
|
int major_version;
|
||
|
int minor_version;
|
||
|
} _XRRVersionState;
|
||
|
|
||
|
Bool
|
||
|
_XRRVersionHandler (Display *dpy,
|
||
|
xReply *rep,
|
||
|
char *buf,
|
||
|
int len,
|
||
|
XPointer data);
|
||
|
|
||
|
_X_HIDDEN Bool
|
||
|
_XRRHasRates (int major, int minor);
|
||
|
|
||
|
#endif /* _XRANDRINT_H_ */
|