x: fix glx error codes

compton was using wrong set of constants as glx error codes.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
This commit is contained in:
Yuxuan Shui 2020-03-31 05:59:44 +01:00
parent bdf3aabb75
commit fd4d43aa02
No known key found for this signature in database
GPG Key ID: 37C999F617EA1A47
4 changed files with 18 additions and 13 deletions

View File

@ -80,6 +80,7 @@ Assuming you already have all the usual building tools installed (e.g. gcc, pyth
* xcb-image * xcb-image
* xcb-present * xcb-present
* xcb-xinerama * xcb-xinerama
* xcb-glx
* pixman * pixman
* libdbus (optional, disable with the `-Ddbus=false` meson configure flag) * libdbus (optional, disable with the `-Ddbus=false` meson configure flag)
* libconfig (optional, disable with the `-Dconfig_file=false` meson configure flag) * libconfig (optional, disable with the `-Dconfig_file=false` meson configure flag)
@ -91,7 +92,7 @@ Assuming you already have all the usual building tools installed (e.g. gcc, pyth
On Debian based distributions (e.g. Ubuntu), the list of needed packages are On Debian based distributions (e.g. Ubuntu), the list of needed packages are
``` ```
libxext-dev libxcb1-dev libxcb-damage0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-render-util0-dev libxcb-render0-dev libxcb-randr0-dev libxcb-composite0-dev libxcb-image0-dev libxcb-present-dev libxcb-xinerama0-dev libpixman-1-dev libdbus-1-dev libconfig-dev libgl1-mesa-dev libpcre2-dev libevdev-dev uthash-dev libev-dev libx11-xcb-dev libxext-dev libxcb1-dev libxcb-damage0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-render-util0-dev libxcb-render0-dev libxcb-randr0-dev libxcb-composite0-dev libxcb-image0-dev libxcb-present-dev libxcb-xinerama0-dev libxcb-glx0-dev libpixman-1-dev libdbus-1-dev libconfig-dev libgl1-mesa-dev libpcre2-dev libevdev-dev uthash-dev libev-dev libx11-xcb-dev
``` ```
To build the documents, you need `asciidoc` To build the documents, you need `asciidoc`

View File

@ -16,7 +16,7 @@ cflags = []
required_xcb_packages = [ required_xcb_packages = [
'xcb-render', 'xcb-damage', 'xcb-randr', 'xcb-sync', 'xcb-composite', 'xcb-render', 'xcb-damage', 'xcb-randr', 'xcb-sync', 'xcb-composite',
'xcb-shape', 'xcb-xinerama', 'xcb-xfixes', 'xcb-present', 'xcb' 'xcb-shape', 'xcb-xinerama', 'xcb-xfixes', 'xcb-present', 'xcb-glx', 'xcb'
] ]
required_packages = [ required_packages = [

View File

@ -1652,11 +1652,9 @@ static session_t *session_init(int argc, char **argv, Display *dpy,
.randr_exists = 0, .randr_exists = 0,
.randr_event = 0, .randr_event = 0,
.randr_error = 0, .randr_error = 0,
#ifdef CONFIG_OPENGL
.glx_exists = false, .glx_exists = false,
.glx_event = 0, .glx_event = 0,
.glx_error = 0, .glx_error = 0,
#endif
.xrfilter_convolution_exists = false, .xrfilter_convolution_exists = false,
.atoms_wintypes = {0}, .atoms_wintypes = {0},

24
src/x.c
View File

@ -7,6 +7,7 @@
#include <pixman.h> #include <pixman.h>
#include <xcb/composite.h> #include <xcb/composite.h>
#include <xcb/damage.h> #include <xcb/damage.h>
#include <xcb/glx.h>
#include <xcb/render.h> #include <xcb/render.h>
#include <xcb/sync.h> #include <xcb/sync.h>
#include <xcb/xcb.h> #include <xcb/xcb.h>
@ -361,20 +362,25 @@ _x_strerror(unsigned long serial, uint8_t major, uint16_t minor, uint8_t error_c
CASESTRRET2(RENDER_GLYPH); CASESTRRET2(RENDER_GLYPH);
} }
#ifdef CONFIG_OPENGL
if (ps->glx_exists) { if (ps->glx_exists) {
o = error_code - ps->glx_error; o = error_code - ps->glx_error;
switch (o) { switch (o) {
CASESTRRET(GLX_BAD_SCREEN); CASESTRRET2(GLX_BAD_CONTEXT);
CASESTRRET(GLX_BAD_ATTRIBUTE); CASESTRRET2(GLX_BAD_CONTEXT_STATE);
CASESTRRET(GLX_NO_EXTENSION); CASESTRRET2(GLX_BAD_DRAWABLE);
CASESTRRET(GLX_BAD_VISUAL); CASESTRRET2(GLX_BAD_PIXMAP);
CASESTRRET(GLX_BAD_CONTEXT); CASESTRRET2(GLX_BAD_CONTEXT_TAG);
CASESTRRET(GLX_BAD_VALUE); CASESTRRET2(GLX_BAD_CURRENT_WINDOW);
CASESTRRET(GLX_BAD_ENUM); CASESTRRET2(GLX_BAD_RENDER_REQUEST);
CASESTRRET2(GLX_BAD_LARGE_REQUEST);
CASESTRRET2(GLX_UNSUPPORTED_PRIVATE_REQUEST);
CASESTRRET2(GLX_BAD_FB_CONFIG);
CASESTRRET2(GLX_BAD_PBUFFER);
CASESTRRET2(GLX_BAD_CURRENT_DRAWABLE);
CASESTRRET2(GLX_BAD_WINDOW);
CASESTRRET2(GLX_GLX_BAD_PROFILE_ARB);
} }
} }
#endif
if (ps->xsync_exists) { if (ps->xsync_exists) {
o = error_code - ps->xsync_error; o = error_code - ps->xsync_error;