manh more compositor options... in pareparation for more. use toolbook.

SVN revision: 45897
This commit is contained in:
Carsten Haitzler 2010-02-05 12:25:23 +00:00
parent a5c4d29cb9
commit 5a6a818195
4 changed files with 130 additions and 42 deletions

View File

@ -55,8 +55,8 @@ struct _E_Comp_Win
int border; // border width
Ecore_X_Pixmap pixmap; // the compositing pixmap
Ecore_X_Damage damage; // damage region
Ecore_X_Visual vis;
int depth;
Ecore_X_Visual vis; // window visual
int depth; // window depth
Evas_Object *obj; // composite object
Evas_Object *shobj; // shadow object
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
Ecore_X_Sync_Counter counter; // sync counter for syncronised drawing
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 input_only : 1; // is input_only
Eina_Bool argb : 1; // is argb

View File

@ -13,6 +13,13 @@ struct _E_Config_Dialog_Data
int efl_sync;
int loose_sync;
int grab;
int keep_unmapped;
int max_unmapped_pixels;
int max_unmapped_time;
int min_unmapped_time;
int send_flush;
int send_dump;
};
/* Protos */
@ -64,6 +71,7 @@ _create_data(E_Config_Dialog *cfd)
cfdata->efl_sync = _comp_mod->conf->efl_sync;
cfdata->loose_sync = _comp_mod->conf->loose_sync;
cfdata->grab = _comp_mod->conf->grab;
return cfdata;
}
@ -77,54 +85,115 @@ _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
static Evas_Object *
_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;
int engine;
o = e_widget_list_add(evas, 0, 0);
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);
ob = e_widget_check_add(evas, _("Shadow"), &(cfdata->use_shadow));
e_widget_framelist_object_append(of, ob);
ob = e_widget_check_add(evas, _("Limit FPS"), &(cfdata->lock_fps));
e_widget_framelist_object_append(of, ob);
ob = e_widget_check_add(evas, _("Sync EFL windows"), &(cfdata->efl_sync));
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);
rg = e_widget_radio_group_new(&(cfdata->engine));
engine = E_EVAS_ENGINE_SOFTWARE_X11;
ob = e_widget_radio_add(evas, _("Software"), engine, rg);
e_widget_framelist_object_append(of, ob);
otb = e_widget_toolbook_add(evas, 48 * e_scale, 48 * e_scale);
///////////////////////////////////////////
ol = e_widget_list_add(evas, 0, 0);
ob = e_widget_check_add(evas, _("Shadows"), &(cfdata->use_shadow));
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
ob = e_widget_check_add(evas, _("Limit framerate"), &(cfdata->lock_fps));
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
e_widget_toolbook_page_append(otb, NULL, _("Effects"), ol, 0, 0, 0, 0, 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));
ob = e_widget_radio_add(evas, _("Software"), E_EVAS_ENGINE_SOFTWARE_X11, rg);
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
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"), engine, rg);
e_widget_framelist_object_append(of, ob);
ob = e_widget_radio_add(evas, _("OpenGL"), E_EVAS_ENGINE_GL_X11, rg);
e_widget_list_object_append(ol, ob, 1, 1, 0.5);
}
e_widget_table_object_append(ot, of, 0, 1, 1, 1, 1, 1, 1, 1);
of = e_widget_framelist_add(evas, _("OpenGL Options"), 0);
of = e_widget_framelist_add(evas, _("OpenGL options"), 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_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);
return o;
///////////////////////////////////////////
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);
///////////////////////////////////////////
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

View File

@ -38,6 +38,12 @@ e_modapi_init(E_Module *m)
E_CONFIG_VAL(D, T, efl_sync, UCHAR);
E_CONFIG_VAL(D, T, loose_sync, 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);
if (!mod->conf)

View File

@ -15,6 +15,12 @@ struct _Config
unsigned char loose_sync;
unsigned char efl_sync;
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