#include "vigs_offscreen_server.h"
#include "vigs_backend.h"
+#include "vigs_log.h"
#include "work_queue.h"
struct vigs_display_work_item
struct vigs_offscreen_server *offscreen_server =
(struct vigs_offscreen_server*)server;
- work_queue_destroy(offscreen_server->display_queue);
+ if (!offscreen_server->display_sync) {
+ work_queue_destroy(offscreen_server->display_queue);
+ }
vigs_server_cleanup(server);
struct vigs_backend *backend,
struct work_queue *render_queue)
{
+ const char *sync = getenv("VIGS_SYNC_READ_PIXELS");
struct vigs_offscreen_server *server = NULL;
server = g_malloc0(sizeof(*server));
return NULL;
}
- server->display_queue = work_queue_create("display_queue");
+ server->display_sync = sync ? !!atoi(sync) : false;
+ server->display_queue = server->display_sync ?
+ render_queue :
+ work_queue_create("display_queue");
+
+ VIGS_LOG_INFO("VIGS_SYNC_READ_PIXELS: %d", server->display_sync);
server->base.begin_update = &vigs_offscreen_server_begin_update;
server->base.finish_update = &vigs_offscreen_server_finish_update;