Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_canvas.c e_config.c e_config.h e_ipc_handlers.h e_ipc_handlers_list.h Log Message: more cache controls and a flusher... :) =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_canvas.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- e_canvas.c 3 Oct 2005 10:21:27 -0000 1.8 +++ e_canvas.c 24 Nov 2005 04:23:31 -0000 1.9 @@ -4,9 +4,11 @@ #include "e.h" /* local subsystem functions */ +static int _e_canvas_cb_flush(void *data); /* local subsystem globals */ static Evas_List *_e_canvases = NULL; +static Ecore_Timer *_e_canvas_cache_flush_timer = NULL; /* externally accessible functions */ void @@ -66,6 +68,19 @@ evas_image_cache_set(e, e_config->image_cache * 1024); evas_font_cache_set(e, e_config->font_cache * 1024); } + edje_file_cache_set(e_config->edje_cache); + edje_collection_cache_set(e_config->edje_cache); + if (_e_canvas_cache_flush_timer) + { + ecore_timer_del(_e_canvas_cache_flush_timer); + _e_canvas_cache_flush_timer = NULL; + } + if (e_config->cache_flush_interval > 0.0) + { + _e_canvas_cache_flush_timer = + ecore_timer_add(e_config->cache_flush_interval, _e_canvas_cb_flush, + NULL); + } } void @@ -83,6 +98,8 @@ evas_image_cache_flush(e); evas_font_cache_flush(e); } + edje_file_cache_flush(); + edje_collection_cache_flush(); } void @@ -145,3 +162,12 @@ } return ee; } + +/* local subsystem functions */ +static int +_e_canvas_cb_flush(void *data) +{ + e_canvas_cache_flush(); + return 1; +} + =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.c,v retrieving revision 1.124 retrieving revision 1.125 diff -u -3 -r1.124 -r1.125 --- e_config.c 23 Nov 2005 12:55:55 -0000 1.124 +++ e_config.c 24 Nov 2005 04:23:31 -0000 1.125 @@ -263,6 +263,9 @@ E_CONFIG_VAL(D, T, framerate, DOUBLE); /**/ E_CONFIG_VAL(D, T, image_cache, INT); /**/ E_CONFIG_VAL(D, T, font_cache, INT); /**/ + E_CONFIG_VAL(D, T, edje_cache, INT); /**/ + E_CONFIG_VAL(D, T, edje_collection_cache, INT); /**/ + E_CONFIG_VAL(D, T, cache_flush_interval, DOUBLE); /**/ E_CONFIG_VAL(D, T, zone_desks_x_count, INT); /**/ E_CONFIG_VAL(D, T, zone_desks_y_count, INT); /**/ E_CONFIG_VAL(D, T, use_virtual_roots, INT); /* should not make this a config option (for now) */ @@ -411,6 +414,9 @@ e_config->framerate = 30.0; e_config->image_cache = 4096; e_config->font_cache = 512; + e_config->edje_cache = 32; + e_config->edje_collection_cache = 64; + e_config->cache_flush_interval = 60.0; e_config->zone_desks_x_count = 4; e_config->zone_desks_y_count = 1; e_config->use_virtual_roots = 0; @@ -1395,6 +1401,9 @@ E_CONFIG_LIMIT(e_config->framerate, 1.0, 200.0); E_CONFIG_LIMIT(e_config->image_cache, 0, 256 * 1024); E_CONFIG_LIMIT(e_config->font_cache, 0, 32 * 1024); + E_CONFIG_LIMIT(e_config->edje_cache, 0, 256); + E_CONFIG_LIMIT(e_config->edje_collection_cache, 0, 512); + E_CONFIG_LIMIT(e_config->cache_flush_interval, 0.0, 600.0); E_CONFIG_LIMIT(e_config->zone_desks_x_count, 1, 64); E_CONFIG_LIMIT(e_config->zone_desks_y_count, 1, 64); E_CONFIG_LIMIT(e_config->use_edge_flip, 0, 1); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.h,v retrieving revision 1.66 retrieving revision 1.67 diff -u -3 -r1.66 -r1.67 --- e_config.h 22 Nov 2005 13:28:10 -0000 1.66 +++ e_config.h 24 Nov 2005 04:23:31 -0000 1.67 @@ -48,9 +48,10 @@ /* increment this whenever we change config enough that you need new * defaults for e to work - started at 100 when we introduced this config - * versioning feature + * versioning feature. the value of this is really irrelevant - just as + * long as it increases every time we change something */ -#define E_CONFIG_FILE_VERSION 129 +#define E_CONFIG_FILE_VERSION 132 #define E_EVAS_ENGINE_DEFAULT 0 #define E_EVAS_ENGINE_SOFTWARE_X11 1 @@ -87,6 +88,9 @@ double framerate; int image_cache; int font_cache; + int edje_cache; + int edje_collection_cache; + double cache_flush_interval; int zone_desks_x_count; int zone_desks_y_count; int use_virtual_roots; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_ipc_handlers.h,v retrieving revision 1.109 retrieving revision 1.110 diff -u -3 -r1.109 -r1.110 --- e_ipc_handlers.h 24 Nov 2005 01:37:01 -0000 1.109 +++ e_ipc_handlers.h 24 Nov 2005 04:23:31 -0000 1.110 @@ -1881,6 +1881,129 @@ #undef HDL /****************************************************************************/ +#define HDL E_IPC_OP_EDJE_CACHE_SET +#if (TYPE == E_REMOTE_OPTIONS) + OP("-edje-cache-set", 1, "Set the edje cache size (items)", 0, HDL) +#elif (TYPE == E_REMOTE_OUT) + REQ_INT(atoi(params[0]), HDL) +#elif (TYPE == E_WM_IN) + START_INT(val, HDL); + e_config->edje_cache = val; + E_CONFIG_LIMIT(e_config->edje_cache, 0, 256); + e_canvas_recache(); + SAVE; + END_INT; +#elif (TYPE == E_REMOTE_IN) +#endif +#undef HDL + +/****************************************************************************/ +#define HDL E_IPC_OP_EDJE_CACHE_GET +#if (TYPE == E_REMOTE_OPTIONS) + OP("-edje-cache-get", 0, "Get the speculative edje cache size (items)", 1, HDL) +#elif (TYPE == E_REMOTE_OUT) + REQ_NULL(HDL) +#elif (TYPE == E_WM_IN) + SEND_INT(e_config->edje_cache, E_IPC_OP_EDJE_CACHE_GET_REPLY, HDL); +#elif (TYPE == E_REMOTE_IN) +#endif +#undef HDL + +/****************************************************************************/ +#define HDL E_IPC_OP_EDJE_CACHE_GET_REPLY +#if (TYPE == E_REMOTE_OPTIONS) +#elif (TYPE == E_REMOTE_OUT) +#elif (TYPE == E_WM_IN) +#elif (TYPE == E_REMOTE_IN) + START_INT(val, HDL) + printf("REPLY: %i\n", val); + END_INT; +#endif +#undef HDL + +/****************************************************************************/ +#define HDL E_IPC_OP_EDJE_COLLECTION_CACHE_SET +#if (TYPE == E_REMOTE_OPTIONS) + OP("-edje-collection-cache-set", 1, "Set the edje collection cache size (items)", 0, HDL) +#elif (TYPE == E_REMOTE_OUT) + REQ_INT(atoi(params[0]), HDL) +#elif (TYPE == E_WM_IN) + START_INT(val, HDL); + e_config->edje_collection_cache = val; + E_CONFIG_LIMIT(e_config->edje_collection_cache, 0, 512); + e_canvas_recache(); + SAVE; + END_INT; +#elif (TYPE == E_REMOTE_IN) +#endif +#undef HDL + +/****************************************************************************/ +#define HDL E_IPC_OP_EDJE_COLLECTION_CACHE_GET +#if (TYPE == E_REMOTE_OPTIONS) + OP("-edje-collection-cache-get", 0, "Get the speculative edje collection cache size (items)", 1, HDL) +#elif (TYPE == E_REMOTE_OUT) + REQ_NULL(HDL) +#elif (TYPE == E_WM_IN) + SEND_INT(e_config->edje_collection_cache, E_IPC_OP_EDJE_COLLECTION_CACHE_GET_REPLY, HDL); +#elif (TYPE == E_REMOTE_IN) +#endif +#undef HDL + +/****************************************************************************/ +#define HDL E_IPC_OP_EDJE_COLLECTION_CACHE_GET_REPLY +#if (TYPE == E_REMOTE_OPTIONS) +#elif (TYPE == E_REMOTE_OUT) +#elif (TYPE == E_WM_IN) +#elif (TYPE == E_REMOTE_IN) + START_INT(val, HDL) + printf("REPLY: %i\n", val); + END_INT; +#endif +#undef HDL + +/****************************************************************************/ +#define HDL E_IPC_OP_CACHE_FLUSH_INTERVAL_SET +#if (TYPE == E_REMOTE_OPTIONS) + OP("-cache-flush-interval-set", 1, "Set the cache flush interval (sec) (0.0 = off)", 0, HDL) +#elif (TYPE == E_REMOTE_OUT) + REQ_DOUBLE(atof(params[0]), HDL); +#elif (TYPE == E_WM_IN) + START_DOUBLE(dbl, HDL); + e_config->cache_flush_interval = dbl; + E_CONFIG_LIMIT(e_config->cache_flush_interval, 0.0, 600.0); + e_canvas_recache(); + SAVE; + END_DOUBLE; +#elif (TYPE == E_REMOTE_IN) +#endif +#undef HDL + +/****************************************************************************/ +#define HDL E_IPC_OP_CACHE_FLUSH_INTERVAL_GET +#if (TYPE == E_REMOTE_OPTIONS) + OP("-cache-flush-interval-get", 0, "Get the interval between cache flushed (sec)", 1, HDL) +#elif (TYPE == E_REMOTE_OUT) + REQ_NULL(HDL); +#elif (TYPE == E_WM_IN) + SEND_DOUBLE(e_config->cache_flush_interval, E_IPC_OP_CACHE_FLUSH_INTERVAL_GET_REPLY, HDL); +#elif (TYPE == E_REMOTE_IN) +#endif +#undef HDL + +/****************************************************************************/ +#define HDL E_IPC_OP_CACHE_FLUSH_INTERVAL_GET_REPLY +#if (TYPE == E_REMOTE_OPTIONS) +#elif (TYPE == E_REMOTE_OUT) +#elif (TYPE == E_WM_IN) +#elif (TYPE == E_REMOTE_IN) + START_DOUBLE(fint, HDL); + printf("REPLY: %3.3f\n", fint); + END_DOUBLE; +#endif +#undef HDL + +/****************************************************************************/ #define HDL E_IPC_OP_MENUS_FAST_MOVE_THRESHOLD_SET #if (TYPE == E_REMOTE_OPTIONS) OP("-menus-fast-move-threshold-set", 1, "Set the mouse speed (pixels/second) that is considered a 'fast move'", 0, HDL) =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_ipc_handlers_list.h,v retrieving revision 1.38 retrieving revision 1.39 diff -u -3 -r1.38 -r1.39 --- e_ipc_handlers_list.h 9 Nov 2005 02:00:33 -0000 1.38 +++ e_ipc_handlers_list.h 24 Nov 2005 04:23:31 -0000 1.39 @@ -340,3 +340,15 @@ #define E_IPC_OP_FULLSCREEN_POLICY_GET_REPLY 322 #define E_IPC_EFM_START 323 + +#define E_IPC_OP_EDJE_CACHE_SET 324 +#define E_IPC_OP_EDJE_CACHE_GET 325 +#define E_IPC_OP_EDJE_CACHE_GET_REPLY 326 + +#define E_IPC_OP_EDJE_COLLECTION_CACHE_SET 327 +#define E_IPC_OP_EDJE_COLLECTION_CACHE_GET 328 +#define E_IPC_OP_EDJE_COLLECTION_CACHE_GET_REPLY 329 + +#define E_IPC_OP_CACHE_FLUSH_INTERVAL_SET 330 +#define E_IPC_OP_CACHE_FLUSH_INTERVAL_GET 331 +#define E_IPC_OP_CACHE_FLUSH_INTERVAL_GET_REPLY 332 ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs