ecore_x - vsync nvidia/glx service fix so it connects 1st not 2nd time

This commit is contained in:
Carsten Haitzler 2014-08-01 08:47:06 +09:00
parent 570c1f9692
commit 6e7b42111f
1 changed files with 8 additions and 5 deletions

View File

@ -398,7 +398,7 @@ _glvsync_animator_tick_source_set(void)
{ {
if (!vsync_server) if (!vsync_server)
{ {
char buf[4096], *disp, *s; char buf[4096], run[4096], *disp, *s;
int tries = 0; int tries = 0;
if (!handlers) if (!handlers)
@ -417,15 +417,18 @@ _glvsync_animator_tick_source_set(void)
if (*s == ':') *s = '='; if (*s == ':') *s = '=';
} }
vsync_server = ecore_con_server_connect(ECORE_CON_LOCAL_USER, buf, 1, NULL); vsync_server = ecore_con_server_connect(ECORE_CON_LOCAL_USER, buf, 1, NULL);
if (!vsync_server)
{
snprintf(run, sizeof(run), "%s/ecore_x/bin/%s/ecore_x_vsync",
eina_prefix_lib_get(_prefix), MODULE_ARCH);
ecore_exe_run(run, NULL);
}
while (!vsync_server) while (!vsync_server)
{ {
tries++; tries++;
if (tries > 50) return EINA_FALSE; if (tries > 50) return EINA_FALSE;
snprintf(buf, sizeof(buf), "%s/ecore_x/bin/%s/ecore_x_vsync",
eina_prefix_lib_get(_prefix), MODULE_ARCH);
ecore_exe_run(buf, NULL);
usleep(10000); usleep(10000);
vsync_server = ecore_con_server_connect(ECORE_CON_LOCAL_USER, buf, 0, NULL); vsync_server = ecore_con_server_connect(ECORE_CON_LOCAL_USER, buf, 1, NULL);
} }
if (!handlers) if (!handlers)
{ {