core: query glx extension in session_init
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
This commit is contained in:
parent
fd4d43aa02
commit
2372127c0f
|
@ -45,8 +45,6 @@ struct _glx_data {
|
||||||
Display *display;
|
Display *display;
|
||||||
int screen;
|
int screen;
|
||||||
xcb_window_t target_win;
|
xcb_window_t target_win;
|
||||||
int glx_event;
|
|
||||||
int glx_error;
|
|
||||||
GLXContext ctx;
|
GLXContext ctx;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -246,7 +244,7 @@ static backend_t *glx_init(session_t *ps) {
|
||||||
XVisualInfo *pvis = NULL;
|
XVisualInfo *pvis = NULL;
|
||||||
|
|
||||||
// Check for GLX extension
|
// Check for GLX extension
|
||||||
if (!glXQueryExtension(ps->dpy, &gd->glx_event, &gd->glx_error)) {
|
if (!ps->glx_exists) {
|
||||||
log_error("No GLX extension.");
|
log_error("No GLX extension.");
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,12 +51,8 @@ bool glx_init(session_t *ps, bool need_render) {
|
||||||
|
|
||||||
// Check for GLX extension
|
// Check for GLX extension
|
||||||
if (!ps->glx_exists) {
|
if (!ps->glx_exists) {
|
||||||
if (glXQueryExtension(ps->dpy, &ps->glx_event, &ps->glx_error))
|
log_error("No GLX extension.");
|
||||||
ps->glx_exists = true;
|
goto glx_init_end;
|
||||||
else {
|
|
||||||
log_error("No GLX extension.");
|
|
||||||
goto glx_init_end;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get XVisualInfo
|
// Get XVisualInfo
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <xcb/composite.h>
|
#include <xcb/composite.h>
|
||||||
#include <xcb/damage.h>
|
#include <xcb/damage.h>
|
||||||
|
#include <xcb/glx.h>
|
||||||
#include <xcb/present.h>
|
#include <xcb/present.h>
|
||||||
#include <xcb/randr.h>
|
#include <xcb/randr.h>
|
||||||
#include <xcb/render.h>
|
#include <xcb/render.h>
|
||||||
|
@ -1721,6 +1722,7 @@ static session_t *session_init(int argc, char **argv, Display *dpy,
|
||||||
xcb_prefetch_extension_data(ps->c, &xcb_xinerama_id);
|
xcb_prefetch_extension_data(ps->c, &xcb_xinerama_id);
|
||||||
xcb_prefetch_extension_data(ps->c, &xcb_present_id);
|
xcb_prefetch_extension_data(ps->c, &xcb_present_id);
|
||||||
xcb_prefetch_extension_data(ps->c, &xcb_sync_id);
|
xcb_prefetch_extension_data(ps->c, &xcb_sync_id);
|
||||||
|
xcb_prefetch_extension_data(ps->c, &xcb_glx_id);
|
||||||
|
|
||||||
ext_info = xcb_get_extension_data(ps->c, &xcb_render_id);
|
ext_info = xcb_get_extension_data(ps->c, &xcb_render_id);
|
||||||
if (!ext_info || !ext_info->present) {
|
if (!ext_info || !ext_info->present) {
|
||||||
|
@ -1776,6 +1778,13 @@ static session_t *session_init(int argc, char **argv, Display *dpy,
|
||||||
XCB_XFIXES_MINOR_VERSION)
|
XCB_XFIXES_MINOR_VERSION)
|
||||||
.sequence);
|
.sequence);
|
||||||
|
|
||||||
|
ext_info = xcb_get_extension_data(ps->c, &xcb_glx_id);
|
||||||
|
if (ext_info && ext_info->present) {
|
||||||
|
ps->glx_exists = true;
|
||||||
|
ps->glx_error = ext_info->first_error;
|
||||||
|
ps->glx_event = ext_info->first_event;
|
||||||
|
}
|
||||||
|
|
||||||
// Parse configuration file
|
// Parse configuration file
|
||||||
win_option_mask_t winopt_mask[NUM_WINTYPES] = {{0}};
|
win_option_mask_t winopt_mask[NUM_WINTYPES] = {{0}};
|
||||||
bool shadow_enabled = false, fading_enable = false, hasneg = false;
|
bool shadow_enabled = false, fading_enable = false, hasneg = false;
|
||||||
|
|
Loading…
Reference in New Issue