elm can now set vsync for gl windows/clients

SVN revision: 59321
This commit is contained in:
Carsten Haitzler 2011-05-11 09:06:59 +00:00
parent 1f0bddcbae
commit 4d8465f5f1
6 changed files with 23 additions and 1 deletions

View File

@ -1,6 +1,7 @@
group "Elm_Config" struct {
value "config_version" int: 65539;
value "engine" string: "software_x11";
value "vsync" uchar: 0;
value "thumbscroll_enable" uchar: 1;
value "thumbscroll_threshold" int: 24;
value "thumbscroll_momentum_threshold" double: 100.0;

View File

@ -1,6 +1,7 @@
group "Elm_Config" struct {
value "config_version" int: 65539;
value "engine" string: "software_x11";
value "vsync" uchar: 0;
value "thumbscroll_enable" uchar: 1;
value "thumbscroll_threshold" int: 24;
value "thumbscroll_momentum_threshold" double: 100.0;

View File

@ -1,6 +1,7 @@
group "Elm_Config" struct {
value "config_version" int: 65539;
value "engine" string: "software_x11";
value "vsync" uchar: 0;
value "thumbscroll_enable" uchar: 0;
value "thumbscroll_threshold" int: 4;
value "thumbscroll_momentum_threshold" double: 100.0;

View File

@ -563,6 +563,7 @@ _desc_init(void)
#define D _config_edd
ELM_CONFIG_VAL(D, T, config_version, T_INT);
ELM_CONFIG_VAL(D, T, engine, T_STRING);
ELM_CONFIG_VAL(D, T, vsync, T_UCHAR);
ELM_CONFIG_VAL(D, T, thumbscroll_enable, T_UCHAR);
ELM_CONFIG_VAL(D, T, thumbscroll_threshold, T_INT);
ELM_CONFIG_VAL(D, T, thumbscroll_momentum_threshold, T_DOUBLE);
@ -1112,6 +1113,7 @@ _config_load(void)
_elm_config = ELM_NEW(Elm_Config);
_elm_config->config_version = ELM_CONFIG_VERSION;
_elm_config->engine = eina_stringshare_add("software_x11");
_elm_config->vsync = 0;
_elm_config->thumbscroll_enable = EINA_TRUE;
_elm_config->thumbscroll_threshold = 24;
_elm_config->thumbscroll_momentum_threshold = 100.0;
@ -1436,6 +1438,9 @@ _env_get(void)
else if ((!strncmp(s, "shot:", 5)))
eina_stringshare_replace(&_elm_config->engine, s);
}
s = getenv("ELM_VSYNC");
if (s) _elm_config->vsync = !!atoi(s);
s = getenv("ELM_THUMBSCROLL_ENABLE");
if (s) _elm_config->thumbscroll_enable = !!atoi(s);

View File

@ -78,6 +78,7 @@ struct _Elm_Config
{
int config_version;
const char *engine;
unsigned char vsync;
unsigned char thumbscroll_enable;
int thumbscroll_threshold;
double thumbscroll_momentum_threshold;

View File

@ -1371,7 +1371,20 @@ elm_win_add(Evas_Object *parent, const char *name, Elm_Win_Type type)
*/
else if (ENGINE_COMPARE(ELM_OPENGL_X11))
{
win->ee = ecore_evas_gl_x11_new(NULL, 0, 0, 0, 1, 1);
int opt[10];
int opt_i = 0;
if (_elm_config->vsync)
{
opt[opt_i] = ECORE_EVAS_GL_X11_OPT_VSYNC;
opt_i++;
opt[opt_i] = 1;
opt_i++;
}
if (opt_i > 0)
win->ee = ecore_evas_gl_x11_options_new(NULL, 0, 0, 0, 1, 1, opt);
else
win->ee = ecore_evas_gl_x11_new(NULL, 0, 0, 0, 1, 1);
FALLBACK_TRY("OpenGL");
#ifdef HAVE_ELEMENTARY_X
win->client_message_handler = ecore_event_handler_add