summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2013-07-11 01:44:04 -0400
committerKristian Høgsberg <krh@bitplanet.net>2013-07-11 01:53:02 -0400
commitd911f1d5ee8be18c7b37816084be81e0d9c7ae41 (patch)
tree51c95677ce794ddea915d1946508b263064180fb
parent1825670bfdcfd19778d6fbde7aeb41d9e25d7fa7 (diff)
Rename library to csx, add randr stubs
-rw-r--r--configure.ac4
-rw-r--r--src/Makefile.am26
-rw-r--r--src/display.c30
-rw-r--r--src/private.h7
-rw-r--r--src/randr.c842
5 files changed, 893 insertions, 16 deletions
diff --git a/configure.ac b/configure.ac
index dfef254..6e77f4e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,9 +1,9 @@
AC_PREREQ([2.64])
-AC_INIT([libX11-wayland],
+AC_INIT([csx],
[0.1],
[no bugs],
- [libX11-wayland],
+ [csx],
[http://wayland.freedesktop.org/])
AC_CONFIG_HEADERS([config.h])
diff --git a/src/Makefile.am b/src/Makefile.am
index 3e2bd37..67e1339 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -2,18 +2,30 @@ AM_CFLAGS = -Wall -Wextra -Wno-unused-parameter \
-Wno-missing-field-initializers -g -fvisibility=hidden \
-Wstrict-prototypes -Wmissing-prototypes
-lib_LTLIBRARIES = libX11-wayland.la
+lib_LTLIBRARIES = libcsx.la
-libX11_wayland_la_LIBADD = $(CSX_LIBS)
-libX11_wayland_la_CPPFLAGS = $(CSX_CFLAGS)
-libX11_wayland_la_SOURCES = \
- display.c resource.c window.c pixmap.c event.c input.c private.h \
- hints.c xim.c draw.c font.c colormap.c xfixes.c
+libcsx_la_LIBADD = $(CSX_LIBS)
+libcsx_la_CPPFLAGS = $(CSX_CFLAGS)
+libcsx_la_SOURCES = \
+ private.h \
+ display.c \
+ resource.c \
+ window.c \
+ pixmap.c \
+ event.c \
+ input.c \
+ hints.c \
+ xim.c \
+ draw.c \
+ font.c \
+ colormap.c \
+ xfixes.c \
+ randr.c
noinst_PROGRAMS = csx-test xlib-test
csx_test_SOURCES = test.c
-csx_test_LDADD = libX11-wayland.la
+csx_test_LDADD = libcsx.la
xlib_test_SOURCES = test.c
xlib_test_LDADD = -lX11
diff --git a/src/display.c b/src/display.c
index fdd90da..f83e274 100644
--- a/src/display.c
+++ b/src/display.c
@@ -318,6 +318,11 @@ XOpenDisplay(const char *display_name)
return NULL;
}
+ if (csx_display_add_randr(display) == -1) {
+ free(xdisplay);
+ return NULL;
+ }
+
/* Test property on root window. */
XChangeProperty(display->xdisplay, display->root->id,
XInternAtom(display->xdisplay, "PHINEAS", False),
@@ -657,6 +662,18 @@ csx_display_add_extension(struct csx_display *display,
wl_list_insert(display->extension_list.prev, &extension->link);
}
+struct csx_extension *
+csx_display_get_extension(struct csx_display *display, const char *name)
+{
+ struct csx_extension *e;
+
+ wl_list_for_each(e, &display->extension_list, link)
+ if (strcmp(name, e->name) == 0)
+ return e;
+
+ return NULL;
+}
+
WL_EXPORT int
XQueryExtension(Display *xdisplay, const char *name,
int *major, int *first_event, int *first_error)
@@ -666,13 +683,12 @@ XQueryExtension(Display *xdisplay, const char *name,
csx_display_enter(display, X_QueryExtension, 0);
- wl_list_for_each(e, &display->extension_list, link) {
- if (strcmp(name, e->name) == 0) {
- *major = e->major;
- *first_event = e->first_event;
- *first_error = e->first_error;
- return True;
- }
+ e = csx_display_get_extension(display, name);
+ if (e != NULL) {
+ *major = e->major;
+ *first_event = e->first_event;
+ *first_error = e->first_error;
+ return True;
}
*major = 0;
diff --git a/src/private.h b/src/private.h
index c726b54..0ad198d 100644
--- a/src/private.h
+++ b/src/private.h
@@ -64,6 +64,10 @@ struct csx_display {
int next_event;
int next_error;
struct wl_list extension_list;
+
+ struct csx_xfixes *xfixes;
+ struct csx_randr *randr;
+
};
static inline struct csx_display *
@@ -84,8 +88,11 @@ void csx_display_add_seat(struct csx_display *display,
void csx_display_add_extension(struct csx_display *display,
struct csx_extension *extension,
const char *name, int nevents, int nerrors);
+struct csx_extension *csx_display_get_extension(struct csx_display *display,
+ const char *name);
int csx_display_add_xfixes(struct csx_display *display);
+int csx_display_add_randr(struct csx_display *display);
struct csx_property {
Atom name;
diff --git a/src/randr.c b/src/randr.c
new file mode 100644
index 0000000..82b65b8
--- /dev/null
+++ b/src/randr.c
@@ -0,0 +1,842 @@
+/*
+ * 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
+ */
+
+#include <stdint.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <wayland-client.h>
+
+#include <X11/Xproto.h>
+#include <X11/Xatom.h>
+#include <X11/Xlib.h>
+#include <X11/extensions/Xrandr.h>
+
+
+#include "private.h"
+
+struct csx_randr {
+ struct csx_extension extension;
+};
+
+int
+csx_display_add_randr(struct csx_display *display)
+{
+ struct csx_randr *randr;
+
+ randr = malloc(sizeof *randr);
+ if (randr == NULL)
+ return -1;
+
+ csx_display_add_extension(display, &randr->extension,
+ RANDR_NAME,
+ RRNumberEvents,
+ RRNumberErrors);
+ display->randr = randr;
+
+ return 0;
+}
+
+WL_EXPORT Bool
+XRRQueryExtension(Display *xdisplay,
+ int *event_base_return,
+ int *error_base_return)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ *event_base_return = randr->extension.first_event;
+ *error_base_return = randr->extension.first_error;
+
+ return True;
+}
+
+WL_EXPORT Status
+XRRQueryVersion(Display *xdisplay,
+ int *major_version_return,
+ int *minor_version_return)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ *major_version_return = 1;
+ *minor_version_return = 4;
+
+ return True;
+}
+
+WL_EXPORT XRRScreenConfiguration *
+XRRGetScreenInfo(Display *xdisplay, Window window)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return NULL;
+}
+
+WL_EXPORT void
+XRRFreeScreenConfigInfo(XRRScreenConfiguration *config)
+{
+ STUB();
+}
+
+WL_EXPORT Status
+XRRSetScreenConfig(Display *xdisplay,
+ XRRScreenConfiguration *config,
+ Drawable draw,
+ int size_index,
+ Rotation rotation,
+ Time timestamp)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return 0;
+}
+
+/* added in v1.1, sorry for the lame name */
+WL_EXPORT Status
+XRRSetScreenConfigAndRate(Display *xdisplay,
+ XRRScreenConfiguration *config,
+ Drawable draw,
+ int size_index,
+ Rotation rotation,
+ short rate,
+ Time timestamp)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return 0;
+}
+
+WL_EXPORT Rotation
+XRRConfigRotations(XRRScreenConfiguration *config, Rotation *current_rotation)
+{
+ STUB();
+
+ return 0;
+}
+
+WL_EXPORT Time
+XRRConfigTimes(XRRScreenConfiguration *config, Time *config_timestamp)
+{
+ STUB();
+
+ return 0;
+}
+
+WL_EXPORT XRRScreenSize *
+XRRConfigSizes(XRRScreenConfiguration *config, int *nsizes)
+{
+ STUB();
+
+ return NULL;
+}
+
+WL_EXPORT short *
+XRRConfigRates(XRRScreenConfiguration *config, int sizeID, int *nrates)
+{
+ STUB();
+
+ return NULL;
+}
+
+WL_EXPORT SizeID
+XRRConfigCurrentConfiguration(XRRScreenConfiguration *config,
+ Rotation *rotation)
+{
+ STUB();
+
+ return 0;
+}
+
+WL_EXPORT short
+XRRConfigCurrentRate(XRRScreenConfiguration *config)
+{
+ STUB();
+
+ return 0;
+}
+
+WL_EXPORT int
+XRRRootToScreen(Display *xdisplay, Window root)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return 0;
+}
+
+WL_EXPORT void
+XRRSelectInput(Display *xdisplay, Window window, int mask)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+}
+
+WL_EXPORT Rotation
+XRRRotations(Display *xdisplay, int screen, Rotation *current_rotation)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return 0;
+}
+
+WL_EXPORT XRRScreenSize *
+XRRSizes(Display *xdisplay, int screen, int *nsizes)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return NULL;
+}
+
+WL_EXPORT short *
+XRRRates(Display *xdisplay, int screen, int sizeID, int *nrates)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return NULL;
+}
+
+WL_EXPORT Time
+XRRTimes(Display *xdisplay, int screen, Time *config_timestamp)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return 0;
+}
+
+WL_EXPORT Status
+XRRGetScreenSizeRange(Display *xdisplay, Window window,
+ int *minWidth, int *minHeight,
+ int *maxWidth, int *maxHeight)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return 0;
+}
+
+WL_EXPORT void
+XRRSetScreenSize(Display *xdisplay, Window window,
+ int width, int height,
+ int mmWidth, int mmHeight)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+}
+
+WL_EXPORT XRRScreenResources *
+XRRGetScreenResources(Display *xdisplay, Window window)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return NULL;
+}
+
+WL_EXPORT void
+XRRFreeScreenResources(XRRScreenResources *resources)
+{
+ STUB();
+}
+
+WL_EXPORT XRROutputInfo *
+XRRGetOutputInfo(Display *xdisplay, XRRScreenResources *resources, RROutput output)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return NULL;
+}
+
+WL_EXPORT void
+XRRFreeOutputInfo(XRROutputInfo *outputInfo)
+{
+ STUB();
+}
+
+WL_EXPORT Atom *
+XRRListOutputProperties(Display *xdisplay, RROutput output, int *nprop)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return NULL;
+}
+
+WL_EXPORT XRRPropertyInfo *
+XRRQueryOutputProperty(Display *xdisplay, RROutput output, Atom property)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return NULL;
+}
+
+WL_EXPORT void
+XRRConfigureOutputProperty(Display *xdisplay, RROutput output, Atom property,
+ Bool pending, Bool range, int num_values,
+ long *values)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+}
+
+WL_EXPORT void
+XRRChangeOutputProperty(Display *xdisplay, RROutput output,
+ Atom property, Atom type,
+ int format, int mode,
+ _Xconst unsigned char *data, int nelements)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+}
+
+WL_EXPORT void
+XRRDeleteOutputProperty(Display *xdisplay, RROutput output, Atom property)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+}
+
+WL_EXPORT int
+XRRGetOutputProperty(Display *xdisplay, 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)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return 0;
+}
+
+WL_EXPORT XRRModeInfo *
+XRRAllocModeInfo(char *name, int nameLength)
+{
+ STUB();
+
+ return NULL;
+}
+
+WL_EXPORT RRMode
+XRRCreateMode(Display *xdisplay, Window window, XRRModeInfo *modeInfo)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return 0;
+}
+
+WL_EXPORT void
+XRRDestroyMode(Display *xdisplay, RRMode mode)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+}
+
+WL_EXPORT void
+XRRAddOutputMode(Display *xdisplay, RROutput output, RRMode mode)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+}
+
+WL_EXPORT void
+XRRDeleteOutputMode(Display *xdisplay, RROutput output, RRMode mode)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+}
+
+WL_EXPORT void
+XRRFreeModeInfo(XRRModeInfo *modeInfo)
+{
+ STUB();
+}
+
+WL_EXPORT XRRCrtcInfo *
+XRRGetCrtcInfo(Display *xdisplay, XRRScreenResources *resources, RRCrtc crtc)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return NULL;
+}
+
+WL_EXPORT void
+XRRFreeCrtcInfo(XRRCrtcInfo *crtcInfo)
+{
+ STUB();
+}
+
+WL_EXPORT Status
+XRRSetCrtcConfig(Display *xdisplay,
+ XRRScreenResources *resources,
+ RRCrtc crtc,
+ Time timestamp,
+ int x, int y,
+ RRMode mode,
+ Rotation rotation,
+ RROutput *outputs,
+ int noutputs)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return 0;
+}
+
+WL_EXPORT int
+XRRGetCrtcGammaSize(Display *xdisplay, RRCrtc crtc)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return 0;
+}
+
+WL_EXPORT XRRCrtcGamma *
+XRRGetCrtcGamma(Display *xdisplay, RRCrtc crtc)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return NULL;
+}
+
+WL_EXPORT XRRCrtcGamma *
+XRRAllocGamma(int size)
+{
+ STUB();
+
+ return NULL;
+}
+
+WL_EXPORT void
+XRRSetCrtcGamma(Display *xdisplay, RRCrtc crtc, XRRCrtcGamma *gamma)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+}
+
+WL_EXPORT void
+XRRFreeGamma(XRRCrtcGamma *gamma)
+{
+ STUB();
+}
+
+WL_EXPORT XRRScreenResources *
+XRRGetScreenResourcesCurrent(Display *xdisplay, Window window)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return NULL;
+}
+
+WL_EXPORT void
+XRRSetCrtcTransform(Display *xdisplay,
+ RRCrtc crtc,
+ XTransform *transform,
+ char *filter,
+ XFixed *params,
+ int nparams)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+}
+
+/*
+ * Get current crtc transforms and filters.
+ * Pass *attributes to XFree to free
+ */
+WL_EXPORT Status
+XRRGetCrtcTransform(Display *xdisplay,
+ RRCrtc crtc,
+ XRRCrtcTransformAttributes **attributes)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return 0;
+}
+
+/*
+ * intended to take RRScreenChangeNotify, or
+ * ConfigureNotify (on the root window)
+ * returns 1 if it is an event type it understands, 0 if not
+WL_EXPORT */
+int XRRUpdateConfiguration(XEvent *event)
+{
+ STUB();
+
+ return 0;
+}
+
+WL_EXPORT XRRPanning *
+XRRGetPanning(Display *xdisplay, XRRScreenResources *resources, RRCrtc crtc)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return NULL;
+}
+
+WL_EXPORT void
+XRRFreePanning(XRRPanning *panning)
+{
+ STUB();
+}
+
+WL_EXPORT Status
+XRRSetPanning(Display *xdisplay,
+ XRRScreenResources *resources,
+ RRCrtc crtc,
+ XRRPanning *panning)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return 0;
+}
+
+WL_EXPORT void
+XRRSetOutputPrimary(Display *xdisplay,
+ Window window,
+ RROutput output)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+}
+
+WL_EXPORT RROutput
+XRRGetOutputPrimary(Display *xdisplay,
+ Window window)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return 0;
+}
+
+WL_EXPORT XRRProviderResources *
+XRRGetProviderResources(Display *xdisplay, Window window)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return NULL;
+}
+
+WL_EXPORT void
+XRRFreeProviderResources(XRRProviderResources *resources)
+{
+ STUB();
+}
+
+WL_EXPORT XRRProviderInfo *
+XRRGetProviderInfo(Display *xdisplay, XRRScreenResources *resources, RRProvider provider)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return NULL;
+}
+
+WL_EXPORT void
+XRRFreeProviderInfo(XRRProviderInfo *provider)
+{
+ STUB();
+}
+
+WL_EXPORT int
+XRRSetProviderOutputSource(Display *xdisplay, XID provider, XID source_provider)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return 0;
+}
+
+WL_EXPORT int
+XRRSetProviderOffloadSink(Display *xdisplay, XID provider, XID sink_provider)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return 0;
+}
+
+WL_EXPORT Atom *
+XRRListProviderProperties(Display *xdisplay, RRProvider provider, int *nprop)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return NULL;
+}
+
+WL_EXPORT XRRPropertyInfo *
+XRRQueryProviderProperty(Display *xdisplay, RRProvider provider, Atom property)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return NULL;
+}
+
+WL_EXPORT void
+XRRConfigureProviderProperty(Display *xdisplay, RRProvider provider, Atom property,
+ Bool pending, Bool range, int num_values,
+ long *values)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+}
+
+WL_EXPORT void
+XRRChangeProviderProperty(Display *xdisplay, RRProvider provider,
+ Atom property, Atom type,
+ int format, int mode,
+ _Xconst unsigned char *data, int nelements)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+}
+
+WL_EXPORT void
+XRRDeleteProviderProperty(Display *xdisplay, RRProvider provider, Atom property)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+}
+
+WL_EXPORT int
+XRRGetProviderProperty(Display *xdisplay, 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)
+{
+ struct csx_display *display = csx_display(xdisplay);
+ struct csx_randr *randr = display->randr;
+
+ csx_display_enter(display, randr->extension.major, X_RRQueryVersion);
+
+ STUB();
+
+ return 0;
+}