forked from enlightenment/enlightenment
manh more compositor options... in pareparation for more. use toolbook.
SVN revision: 45897
This commit is contained in:
parent
a5c4d29cb9
commit
5a6a818195
|
@ -55,8 +55,8 @@ struct _E_Comp_Win
|
||||||
int border; // border width
|
int border; // border width
|
||||||
Ecore_X_Pixmap pixmap; // the compositing pixmap
|
Ecore_X_Pixmap pixmap; // the compositing pixmap
|
||||||
Ecore_X_Damage damage; // damage region
|
Ecore_X_Damage damage; // damage region
|
||||||
Ecore_X_Visual vis;
|
Ecore_X_Visual vis; // window visual
|
||||||
int depth;
|
int depth; // window depth
|
||||||
Evas_Object *obj; // composite object
|
Evas_Object *obj; // composite object
|
||||||
Evas_Object *shobj; // shadow object
|
Evas_Object *shobj; // shadow object
|
||||||
Ecore_X_Image *xim; // x image - software fallback
|
Ecore_X_Image *xim; // x image - software fallback
|
||||||
|
@ -64,6 +64,13 @@ struct _E_Comp_Win
|
||||||
E_Object_Delfn *dfn; // delete function handle for objects being tracked
|
E_Object_Delfn *dfn; // delete function handle for objects being tracked
|
||||||
Ecore_X_Sync_Counter counter; // sync counter for syncronised drawing
|
Ecore_X_Sync_Counter counter; // sync counter for syncronised drawing
|
||||||
Ecore_Timer *update_timeout; // max time between damage and "done" event
|
Ecore_Timer *update_timeout; // max time between damage and "done" event
|
||||||
|
|
||||||
|
Ecore_X_Pixmap cache_pixmap; // the cached pixmap (1/nth the dimensions)
|
||||||
|
int cache_w, cache_h; // cached pixmap size
|
||||||
|
int update_count; // how many updates have happend to this win
|
||||||
|
double last_visible_time; // last time window was visible
|
||||||
|
double last_draw_time; // last time window was damaged
|
||||||
|
|
||||||
Eina_Bool visible : 1; // is visible
|
Eina_Bool visible : 1; // is visible
|
||||||
Eina_Bool input_only : 1; // is input_only
|
Eina_Bool input_only : 1; // is input_only
|
||||||
Eina_Bool argb : 1; // is argb
|
Eina_Bool argb : 1; // is argb
|
||||||
|
|
|
@ -13,6 +13,13 @@ struct _E_Config_Dialog_Data
|
||||||
int efl_sync;
|
int efl_sync;
|
||||||
int loose_sync;
|
int loose_sync;
|
||||||
int grab;
|
int grab;
|
||||||
|
|
||||||
|
int keep_unmapped;
|
||||||
|
int max_unmapped_pixels;
|
||||||
|
int max_unmapped_time;
|
||||||
|
int min_unmapped_time;
|
||||||
|
int send_flush;
|
||||||
|
int send_dump;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Protos */
|
/* Protos */
|
||||||
|
@ -64,6 +71,7 @@ _create_data(E_Config_Dialog *cfd)
|
||||||
cfdata->efl_sync = _comp_mod->conf->efl_sync;
|
cfdata->efl_sync = _comp_mod->conf->efl_sync;
|
||||||
cfdata->loose_sync = _comp_mod->conf->loose_sync;
|
cfdata->loose_sync = _comp_mod->conf->loose_sync;
|
||||||
cfdata->grab = _comp_mod->conf->grab;
|
cfdata->grab = _comp_mod->conf->grab;
|
||||||
|
|
||||||
return cfdata;
|
return cfdata;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,54 +85,115 @@ _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||||
static Evas_Object *
|
static Evas_Object *
|
||||||
_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
|
_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
|
||||||
{
|
{
|
||||||
Evas_Object *o, *ob, *of, *ot;
|
Evas_Object *ob, *ol, *ol2, *of, *otb;
|
||||||
E_Radio_Group *rg;
|
E_Radio_Group *rg;
|
||||||
int engine;
|
|
||||||
|
|
||||||
o = e_widget_list_add(evas, 0, 0);
|
otb = e_widget_toolbook_add(evas, 48 * e_scale, 48 * e_scale);
|
||||||
ot = e_widget_table_add(evas, 0);
|
|
||||||
|
|
||||||
of = e_widget_framelist_add(evas, _("General"), 0);
|
///////////////////////////////////////////
|
||||||
e_widget_framelist_content_align_set(of, 0.5, 0.0);
|
ol = e_widget_list_add(evas, 0, 0);
|
||||||
ob = e_widget_check_add(evas, _("Shadow"), &(cfdata->use_shadow));
|
ob = e_widget_check_add(evas, _("Shadows"), &(cfdata->use_shadow));
|
||||||
e_widget_framelist_object_append(of, ob);
|
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
|
||||||
ob = e_widget_check_add(evas, _("Limit FPS"), &(cfdata->lock_fps));
|
ob = e_widget_check_add(evas, _("Limit framerate"), &(cfdata->lock_fps));
|
||||||
e_widget_framelist_object_append(of, ob);
|
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
|
||||||
ob = e_widget_check_add(evas, _("Sync EFL windows"), &(cfdata->efl_sync));
|
e_widget_toolbook_page_append(otb, NULL, _("Effects"), ol, 0, 0, 0, 0, 0.5, 0.0);
|
||||||
e_widget_framelist_object_append(of, ob);
|
|
||||||
ob = e_widget_check_add(evas, _("Loose Sync"), &(cfdata->loose_sync));
|
|
||||||
e_widget_framelist_object_append(of, ob);
|
|
||||||
ob = e_widget_check_add(evas, _("Grab during composite"), &(cfdata->grab));
|
|
||||||
e_widget_framelist_object_append(of, ob);
|
|
||||||
e_widget_table_object_append(ot, of, 0, 0, 1, 1, 1, 1, 1, 1);
|
|
||||||
|
|
||||||
of = e_widget_framelist_add(evas, _("Engine"), 0);
|
///////////////////////////////////////////
|
||||||
e_widget_framelist_content_align_set(of, 0.5, 0.0);
|
ol = e_widget_list_add(evas, 0, 0);
|
||||||
|
ob = e_widget_check_add(evas, _("Sync windows"), &(cfdata->efl_sync));
|
||||||
|
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
|
||||||
|
ob = e_widget_check_add(evas, _("Loose sync"), &(cfdata->loose_sync));
|
||||||
|
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
|
||||||
|
ob = e_widget_check_add(evas, _("Grab X11 during draw"), &(cfdata->grab));
|
||||||
|
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
|
||||||
|
e_widget_toolbook_page_append(otb, NULL, _("Sync"), ol, 0, 0, 0, 0, 0.5, 0.0);
|
||||||
|
|
||||||
|
///////////////////////////////////////////
|
||||||
|
ol = e_widget_list_add(evas, 0, 0);
|
||||||
rg = e_widget_radio_group_new(&(cfdata->engine));
|
rg = e_widget_radio_group_new(&(cfdata->engine));
|
||||||
|
ob = e_widget_radio_add(evas, _("Software"), E_EVAS_ENGINE_SOFTWARE_X11, rg);
|
||||||
engine = E_EVAS_ENGINE_SOFTWARE_X11;
|
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
|
||||||
ob = e_widget_radio_add(evas, _("Software"), engine, rg);
|
|
||||||
e_widget_framelist_object_append(of, ob);
|
|
||||||
|
|
||||||
if (ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_OPENGL_X11))
|
if (ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_OPENGL_X11))
|
||||||
{
|
{
|
||||||
engine = E_EVAS_ENGINE_GL_X11;
|
ob = e_widget_radio_add(evas, _("OpenGL"), E_EVAS_ENGINE_GL_X11, rg);
|
||||||
ob = e_widget_radio_add(evas, _("OpenGL"), engine, rg);
|
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
|
||||||
e_widget_framelist_object_append(of, ob);
|
|
||||||
}
|
}
|
||||||
|
of = e_widget_framelist_add(evas, _("OpenGL options"), 0);
|
||||||
e_widget_table_object_append(ot, of, 0, 1, 1, 1, 1, 1, 1, 1);
|
|
||||||
|
|
||||||
of = e_widget_framelist_add(evas, _("OpenGL Options"), 0);
|
|
||||||
e_widget_framelist_content_align_set(of, 0.5, 0.0);
|
e_widget_framelist_content_align_set(of, 0.5, 0.0);
|
||||||
ob = e_widget_check_add(evas, _("Texture from Pixmap"), &(cfdata->texture_from_pixmap));
|
ob = e_widget_check_add(evas, _("Texture from pixmap"), &(cfdata->texture_from_pixmap));
|
||||||
e_widget_framelist_object_append(of, ob);
|
e_widget_framelist_object_append(of, ob);
|
||||||
e_widget_table_object_append(ot, of, 0, 2, 1, 1, 1, 1, 1, 1);
|
e_widget_list_object_append(ol, of, 1, 1, 0.5);
|
||||||
|
e_widget_toolbook_page_append(otb, NULL, _("Engine"), ol, 0, 0, 0, 0, 0.5, 0.0);
|
||||||
|
|
||||||
e_widget_list_object_append(o, ot, 1, 1, 0.5);
|
///////////////////////////////////////////
|
||||||
|
ol = e_widget_list_add(evas, 0, 0);
|
||||||
|
ob = e_widget_check_add(evas, _("Send flush"), &(cfdata->send_flush));
|
||||||
|
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
|
||||||
|
ob = e_widget_check_add(evas, _("Send dump"), &(cfdata->send_dump));
|
||||||
|
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
|
||||||
|
ob = e_widget_check_add(evas, _("Keep hidden windows"), &(cfdata->keep_unmapped));
|
||||||
|
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
|
||||||
|
of = e_widget_framelist_add(evas, _("Maximum hidden pixels"), 0);
|
||||||
|
e_widget_framelist_content_align_set(of, 0.5, 0.0);
|
||||||
|
rg = e_widget_radio_group_new(&(cfdata->max_unmapped_pixels));
|
||||||
|
ob = e_widget_radio_add(evas, _("1M"), 1 * 1024, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, _("2M"), 2 * 1024, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, _("8M"), 8 * 1024, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, _("32M"), 32 * 1024, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, _("256M"), 256 * 1024, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
e_widget_list_object_append(ol, of, 1, 1, 0.5);
|
||||||
|
e_widget_toolbook_page_append(otb, NULL, _("Memory"), ol, 0, 0, 0, 0, 0.5, 0.0);
|
||||||
|
|
||||||
return o;
|
///////////////////////////////////////////
|
||||||
|
ol = e_widget_list_add(evas, 0, 0);
|
||||||
|
ol2 = e_widget_list_add(evas, 1, 1);
|
||||||
|
of = e_widget_framelist_add(evas, _("Min hidden"), 0);
|
||||||
|
e_widget_framelist_content_align_set(of, 0.5, 0.0);
|
||||||
|
rg = e_widget_radio_group_new(&(cfdata->min_unmapped_time));
|
||||||
|
ob = e_widget_radio_add(evas, _("30 Seconds"), 30, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, _("1 Minute"), 60, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, _("5 Minutes"), 5 * 60, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, _("30 Minutes"), 30 * 60, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, _("2 Hours"), 2 * 3600, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, _("10 Hours"), 10 * 3600, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, _("Forever"), 0, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
e_widget_list_object_append(ol2, of, 1, 1, 0.5);
|
||||||
|
of = e_widget_framelist_add(evas, _("Max hidden"), 0);
|
||||||
|
e_widget_framelist_content_align_set(of, 0.5, 0.0);
|
||||||
|
rg = e_widget_radio_group_new(&(cfdata->max_unmapped_time));
|
||||||
|
ob = e_widget_radio_add(evas, _("30 Seconds"), 30, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, _("1 Minute"), 60, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, _("5 Minutes"), 5 * 60, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, _("30 Minutes"), 30 * 60, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, _("2 Hours"), 2 * 3600, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, _("10 Hours"), 10 * 3600, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
ob = e_widget_radio_add(evas, _("Forever"), 0, rg);
|
||||||
|
e_widget_framelist_object_append(of, ob);
|
||||||
|
e_widget_list_object_append(ol2, of, 1, 1, 0.5);
|
||||||
|
e_widget_list_object_append(ol, ol2, 1, 1, 0.5);
|
||||||
|
e_widget_toolbook_page_append(otb, NULL, _("Timeouts"), ol, 0, 0, 0, 0, 0.5, 0.0);
|
||||||
|
|
||||||
|
e_widget_toolbook_page_show(otb, 0);
|
||||||
|
|
||||||
|
return otb;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
|
|
@ -38,6 +38,12 @@ e_modapi_init(E_Module *m)
|
||||||
E_CONFIG_VAL(D, T, efl_sync, UCHAR);
|
E_CONFIG_VAL(D, T, efl_sync, UCHAR);
|
||||||
E_CONFIG_VAL(D, T, loose_sync, UCHAR);
|
E_CONFIG_VAL(D, T, loose_sync, UCHAR);
|
||||||
E_CONFIG_VAL(D, T, grab, UCHAR);
|
E_CONFIG_VAL(D, T, grab, UCHAR);
|
||||||
|
E_CONFIG_VAL(D, T, keep_unmapped, UCHAR);
|
||||||
|
E_CONFIG_VAL(D, T, send_flush, UCHAR);
|
||||||
|
E_CONFIG_VAL(D, T, send_dump, UCHAR);
|
||||||
|
E_CONFIG_VAL(D, T, max_unmapped_pixels, INT);
|
||||||
|
E_CONFIG_VAL(D, T, max_unmapped_time, INT);
|
||||||
|
E_CONFIG_VAL(D, T, min_unmapped_time, INT);
|
||||||
|
|
||||||
mod->conf = e_config_domain_load("module.comp", mod->conf_edd);
|
mod->conf = e_config_domain_load("module.comp", mod->conf_edd);
|
||||||
if (!mod->conf)
|
if (!mod->conf)
|
||||||
|
|
|
@ -15,6 +15,12 @@ struct _Config
|
||||||
unsigned char loose_sync;
|
unsigned char loose_sync;
|
||||||
unsigned char efl_sync;
|
unsigned char efl_sync;
|
||||||
unsigned char grab;
|
unsigned char grab;
|
||||||
|
unsigned char keep_unmapped;
|
||||||
|
unsigned char send_flush;
|
||||||
|
unsigned char send_dump;
|
||||||
|
int max_unmapped_pixels;
|
||||||
|
int max_unmapped_time;
|
||||||
|
int min_unmapped_time;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _Mod
|
struct _Mod
|
||||||
|
|
Loading…
Reference in New Issue