Improvement: Change VSync mode with D-Bus & Makefile update & Misc
- Add on-the-fly VSync option modification via D-Bus, as requested by kunitoki (#80). Expose parse_vsync(), create vsync_init() and ensure_glx_context(). - Change default value of ps->drm_fd to -1. - Update Makefile. Change the install/uninstall rules and add doc installation, requested by hasufell in #85. - Mark window not damaged in map_win(). It helps in reducing flickering with inverted window color, but I'm not completely sure if it's safe. - Avoid modifying w->invert_color when window is unmapped. - Update documentation. Thanks to hasufell for pointing out.
This commit is contained in:
@ -707,6 +707,39 @@ usage(void);
|
||||
static bool
|
||||
register_cm(session_t *ps, bool glx);
|
||||
|
||||
#ifdef CONFIG_VSYNC_OPENGL
|
||||
/**
|
||||
* Ensure we have a GLX context.
|
||||
*/
|
||||
static inline bool
|
||||
ensure_glx_context(session_t *ps) {
|
||||
if (ps->glx_context)
|
||||
return true;
|
||||
|
||||
// Check for GLX extension
|
||||
if (!ps->glx_exists) {
|
||||
if (glXQueryExtension(ps->dpy, &ps->glx_event, &ps->glx_error))
|
||||
ps->glx_exists = true;
|
||||
else {
|
||||
printf_errf("(): No GLX extension.");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Create GLX context
|
||||
if (ps->reg_win) {
|
||||
XDestroyWindow(ps->dpy, ps->reg_win);
|
||||
ps->reg_win = None;
|
||||
}
|
||||
if (!register_cm(ps, true) || !ps->glx_context) {
|
||||
printf_errf("(): Failed to acquire GLX context.");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
inline static void
|
||||
ev_focus_in(session_t *ps, XFocusChangeEvent *ev);
|
||||
|
||||
|
Reference in New Issue
Block a user