forked from enlightenment/enlightenment
more cache controls and a flusher... :)
SVN revision: 18627
This commit is contained in:
parent
da336f50b8
commit
eaadf415e0
2
TODO
2
TODO
|
@ -8,6 +8,8 @@ Some of the things (in very short form) that need to be done to E17...
|
|||
BUGS / FIXES
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
* BUG: in multihead dnd from pager to pager is pretty screwed especially at the
|
||||
top of the screen (if the pager is there)
|
||||
* BUG: if iconified window quits qhile iconified and ibox is being used then
|
||||
e segv's
|
||||
* BUG: dnd to ibar is broken if u did an icon that isn't IN the ibar yet
|
||||
|
|
|
@ -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 @@ e_canvas_recache(void)
|
|||
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 @@ e_canvas_cache_flush(void)
|
|||
evas_image_cache_flush(e);
|
||||
evas_font_cache_flush(e);
|
||||
}
|
||||
edje_file_cache_flush();
|
||||
edje_collection_cache_flush();
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -145,3 +162,12 @@ e_canvas_new(int engine_hint, Ecore_X_Window win, int x, int y, int w, int h,
|
|||
}
|
||||
return ee;
|
||||
}
|
||||
|
||||
/* local subsystem functions */
|
||||
static int
|
||||
_e_canvas_cb_flush(void *data)
|
||||
{
|
||||
e_canvas_cache_flush();
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -263,6 +263,9 @@ e_config_init(void)
|
|||
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_init(void)
|
|||
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_init(void)
|
|||
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);
|
||||
|
|
|
@ -48,9 +48,10 @@ typedef Eet_Data_Descriptor E_Config_DD;
|
|||
|
||||
/* 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 @@ struct _E_Config
|
|||
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;
|
||||
|
|
|
@ -1880,6 +1880,129 @@ break;
|
|||
#endif
|
||||
#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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue