enlightenment/src/bin/e_canvas.c

97 lines
1.8 KiB
C

/*
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
*/
#include "e.h"
/* local subsystem functions */
/* local subsystem globals */
static Evas_List *_e_canvases = NULL;
/* externally accessible functions */
void
e_canvas_add(Ecore_Evas *ee)
{
Evas *e;
_e_canvases = evas_list_prepend(_e_canvases, ee);
e = ecore_evas_get(ee);
evas_image_cache_set(e, e_config->image_cache * 1024);
evas_font_cache_set(e, e_config->font_cache * 1024);
e_path_evas_append(path_fonts, e);
// evas_image_cache_flush(e);
// evas_image_cache_reload(e);
}
void
e_canvas_del(Ecore_Evas *ee)
{
_e_canvases = evas_list_remove(_e_canvases, ee);
}
int
e_canvas_engine_decide(int engine)
{
/* if use default - use it */
if (engine == E_EVAS_ENGINE_DEFAULT)
engine = e_config->evas_engine_default;
/* if engine is gl - do we support it? */
if (engine == E_EVAS_ENGINE_GL_X11)
{
/* if we dont - fall back to software x11 */
if (!ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_GL_X11))
engine = E_EVAS_ENGINE_SOFTWARE_X11;
}
return engine;
}
void
e_canvas_recache(void)
{
Evas_List *l;
for (l = _e_canvases; l; l = l->next)
{
Ecore_Evas *ee;
Evas *e;
ee = l->data;
e = ecore_evas_get(ee);
evas_image_cache_set(e, e_config->image_cache * 1024);
evas_font_cache_set(e, e_config->font_cache * 1024);
}
}
void
e_canvas_cache_flush(void)
{
Evas_List *l;
for (l = _e_canvases; l; l = l->next)
{
Ecore_Evas *ee;
Evas *e;
ee = l->data;
e = ecore_evas_get(ee);
evas_image_cache_flush(e);
evas_font_cache_flush(e);
}
}
void
e_canvas_cache_reload(void)
{
Evas_List *l;
for (l = _e_canvases; l; l = l->next)
{
Ecore_Evas *ee;
Evas *e;
ee = l->data;
e = ecore_evas_get(ee);
evas_image_cache_reload(e);
}
}