Skip to content

Commit fdc5080

Browse files
committed
backend/gl/glx: slight refactoring of glxext_init
Signed-off-by: Yuxuan Shui <[email protected]>
1 parent a59a9f5 commit fdc5080

File tree

2 files changed

+32
-33
lines changed

2 files changed

+32
-33
lines changed

src/backend/gl/glx.c

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -203,13 +203,13 @@ static void *glx_decouple_user_data(backend_t *base attr_unused, void *ud attr_u
203203

204204
static bool glx_set_swap_interval(int interval, Display *dpy, GLXDrawable drawable) {
205205
bool vsync_enabled = false;
206-
if (glxext.has_GLX_MESA_swap_control) {
206+
if (glxext.has_MESA_swap_control) {
207207
vsync_enabled = (glXSwapIntervalMESA((uint)interval) == 0);
208208
}
209-
if (!vsync_enabled && glxext.has_GLX_SGI_swap_control) {
209+
if (!vsync_enabled && glxext.has_SGI_swap_control) {
210210
vsync_enabled = (glXSwapIntervalSGI(interval) == 0);
211211
}
212-
if (!vsync_enabled && glxext.has_GLX_EXT_swap_control) {
212+
if (!vsync_enabled && glxext.has_EXT_swap_control) {
213213
// glXSwapIntervalEXT doesn't return if it's successful
214214
glXSwapIntervalEXT(dpy, drawable, interval);
215215
vsync_enabled = true;
@@ -264,12 +264,12 @@ static backend_t *glx_init(session_t *ps, xcb_window_t target) {
264264
goto end;
265265
}
266266

267-
if (!glxext.has_GLX_EXT_texture_from_pixmap) {
267+
if (!glxext.has_EXT_texture_from_pixmap) {
268268
log_error("GLX_EXT_texture_from_pixmap is not supported by your driver");
269269
goto end;
270270
}
271271

272-
if (!glxext.has_GLX_ARB_create_context) {
272+
if (!glxext.has_ARB_create_context) {
273273
log_error("GLX_ARB_create_context is not supported by your driver");
274274
goto end;
275275
}
@@ -295,7 +295,7 @@ static backend_t *glx_init(session_t *ps, xcb_window_t target) {
295295
0,
296296
0,
297297
0};
298-
if (glxext.has_GLX_ARB_create_context_robustness) {
298+
if (glxext.has_ARB_create_context_robustness) {
299299
attributes[6] = GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB;
300300
attributes[7] = GLX_LOSE_CONTEXT_ON_RESET_ARB;
301301
}
@@ -456,7 +456,7 @@ static bool glx_present(backend_t *base) {
456456
}
457457

458458
static int glx_buffer_age(backend_t *base) {
459-
if (!glxext.has_GLX_EXT_buffer_age) {
459+
if (!glxext.has_EXT_buffer_age) {
460460
return -1;
461461
}
462462

@@ -486,7 +486,7 @@ static void glx_diagnostics(backend_t *base) {
486486
}
487487

488488
#ifdef GLX_MESA_query_renderer
489-
if (glxext.has_GLX_MESA_query_renderer) {
489+
if (glxext.has_MESA_query_renderer) {
490490
unsigned int accelerated = 0;
491491
glXQueryCurrentRendererIntegerMESA(GLX_RENDERER_ACCELERATED_MESA, &accelerated);
492492
printf("* Accelerated: %d\n", accelerated);
@@ -557,23 +557,15 @@ void glxext_init(Display *dpy, int screen) {
557557
return;
558558
}
559559
glxext.initialized = true;
560-
#define check_ext(name) \
561-
glxext.has_##name = epoxy_has_glx_extension(dpy, screen, #name); \
562-
log_info("Extension " #name " - %s", glxext.has_##name ? "present" : "absent")
563-
564-
check_ext(GLX_SGI_video_sync);
565-
check_ext(GLX_SGI_swap_control);
566-
check_ext(GLX_OML_sync_control);
567-
check_ext(GLX_MESA_swap_control);
568-
check_ext(GLX_EXT_swap_control);
569-
check_ext(GLX_EXT_texture_from_pixmap);
570-
check_ext(GLX_ARB_create_context);
571-
check_ext(GLX_EXT_buffer_age);
572-
check_ext(GLX_ARB_create_context_robustness);
560+
#define X(name) \
561+
glxext.has_##name = epoxy_has_glx_extension(dpy, screen, "GLX_" #name); \
562+
log_info("GLX extension " #name " - %s", glxext.has_##name ? "present" : "absent");
563+
564+
GLX_EXTS;
573565
#ifdef GLX_MESA_query_renderer
574-
check_ext(GLX_MESA_query_renderer);
566+
X(MESA_query_renderer);
575567
#endif
576-
#undef check_ext
568+
#undef X
577569
}
578570

579571
BACKEND_ENTRYPOINT(glx_register) {

src/backend/gl/glx.h

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,25 @@ struct glx_fbconfig_info {
2020
bool glx_find_fbconfig(struct x_connection *c, struct xvisual_info m,
2121
struct glx_fbconfig_info *info);
2222

23+
#define GLX_EXTS \
24+
X(SGI_video_sync) \
25+
X(SGI_swap_control) \
26+
X(OML_sync_control) \
27+
X(MESA_swap_control) \
28+
X(EXT_swap_control) \
29+
X(EXT_texture_from_pixmap) \
30+
X(ARB_create_context) \
31+
X(EXT_buffer_age) \
32+
X(ARB_create_context_robustness)
33+
2334
struct glxext_info {
2435
bool initialized;
25-
bool has_GLX_SGI_video_sync;
26-
bool has_GLX_SGI_swap_control;
27-
bool has_GLX_OML_sync_control;
28-
bool has_GLX_MESA_swap_control;
29-
bool has_GLX_EXT_swap_control;
30-
bool has_GLX_EXT_texture_from_pixmap;
31-
bool has_GLX_ARB_create_context;
32-
bool has_GLX_EXT_buffer_age;
33-
bool has_GLX_MESA_query_renderer;
34-
bool has_GLX_ARB_create_context_robustness;
36+
#define X(name) bool has_##name;
37+
GLX_EXTS
38+
#undef X
39+
#ifdef GLX_MESA_query_renderer
40+
bool has_MESA_query_renderer;
41+
#endif
3542
};
3643

3744
extern struct glxext_info glxext;

0 commit comments

Comments
 (0)