Put the whole vtable in backend_list
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
This commit is contained in:
@ -838,7 +838,8 @@ void configure_root(session_t *ps, int width, int height) {
|
||||
if (has_root_change) {
|
||||
ps->backend_data->ops->root_change(ps->backend_data, ps);
|
||||
} else {
|
||||
ps->backend_data = backend_list[ps->o.backend](ps);
|
||||
ps->backend_data = backend_list[ps->o.backend]->init(ps);
|
||||
ps->backend_data->ops = backend_list[ps->o.backend];
|
||||
if (!ps->backend_data) {
|
||||
log_fatal("Failed to re-initialize backend after root change, aborting...");
|
||||
ps->quit = true;
|
||||
@ -1991,7 +1992,8 @@ redir_start(session_t *ps) {
|
||||
|
||||
if (ps->o.experimental_backends) {
|
||||
// Reinitialize win_data
|
||||
ps->backend_data = backend_list[ps->o.backend](ps);
|
||||
ps->backend_data = backend_list[ps->o.backend]->init(ps);
|
||||
ps->backend_data->ops = backend_list[ps->o.backend];
|
||||
if (!ps->backend_data) {
|
||||
log_fatal("Failed to initialize backend, aborting...");
|
||||
ps->quit = true;
|
||||
@ -2721,6 +2723,13 @@ session_init(int argc, char **argv, Display *dpy, const char *config_file,
|
||||
}
|
||||
}
|
||||
|
||||
if (ps->o.experimental_backends) {
|
||||
if (ps->o.monitor_repaint && !backend_list[ps->o.backend]->fill_rectangle) {
|
||||
log_warn("--monitor-repaint is not supported by the backend, disabling");
|
||||
ps->o.monitor_repaint = false;
|
||||
}
|
||||
}
|
||||
|
||||
// Initialize software optimization
|
||||
if (ps->o.sw_opti)
|
||||
ps->o.sw_opti = swopti_init(ps);
|
||||
|
Reference in New Issue
Block a user