* evas: Move to Eina module and make it possible to build a libevas with

everything in it.

	Note: This patch break the module API, so make sure you recompile and install
	every thing.


SVN revision: 41055
This commit is contained in:
Cedric BAIL 2009-06-16 13:01:36 +00:00
parent e0c6b0df8d
commit 575b0579cd
80 changed files with 1938 additions and 918 deletions

View File

@ -405,6 +405,33 @@ if test "x$have_evas_engine_software_16_wince" = "xyes"; then
fi
AM_CONDITIONAL(BUILD_ENGINE_SOFTWARE_16, test "x$have_evas_engine_software_16" = "xyes")
# if software generic need to be build as part of libevas.so
have_static_software_generic="no"
AC_ARG_ENABLE([static-software-generic],
[AC_HELP_STRING([--enable-static-software-generic], [Build software generic engine as part of libevas])],
[have_static_software_generic=${enableval}]
)
AC_MSG_CHECKING([Whether to build software generic engine as part of libevas])
AC_MSG_RESULT([${have_static_software_generic}])
AM_CONDITIONAL(EVAS_STATIC_BUILD_SOFTWARE_GENERIC, test "x${have_static_software_generic}" = "xyes")
if test "x${have_static_software_generic}" = "xyes"; then
AC_DEFINE(EVAS_STATIC_BUILD_SOFTWARE_GENERIC, [1], [Build software generic engine as part of libevas])
fi
# if software 16 need to be build as part of libevas.so
have_static_software_16="no"
AC_ARG_ENABLE([static-software-16],
[AC_HELP_STRING([--enable-static-software-16], [Build software 16 engine as part of libevas])],
[have_static_software_16=${enableval}]
)
AC_MSG_CHECKING([Whether to build software 16 engine as part of libevas])
AC_MSG_RESULT([${have_static_software_16}])
AM_CONDITIONAL(EVAS_STATIC_BUILD_SOFTWARE_16, test "x${have_static_software_16}" = "xyes")
if test "x${have_static_software_16}" = "xyes"; then
AC_DEFINE(EVAS_STATIC_BUILD_SOFTWARE_16, [1], [Build software 16 engine as part of libevas])
fi
#####################################################################
## Image loaders
@ -1198,37 +1225,37 @@ echo
echo "Configuration Options Summary:"
echo
echo "Engines:"
echo " Software Memory Buffer.....: $have_evas_engine_buffer"
echo " Software X11...............: $have_evas_engine_software_x11 (XCB: $have_evas_engine_software_xcb)"
echo " XRender X11................: $have_evas_engine_xrender_x11 (XCB: $have_evas_engine_xrender_xcb)"
echo " OpenGL X11.................: $have_evas_engine_gl_x11"
#echo " Cairo X11..................: $have_evas_engine_cairo_x11"
echo " Software GDI...............: $have_evas_engine_software_gdi"
echo " Software DirectDraw........: $have_evas_engine_software_ddraw"
echo " Direct3d...................: $have_evas_engine_direct3d"
echo " Quartz.....................: $have_evas_engine_quartz"
echo " OpenGL Glew................: $have_evas_engine_gl_glew"
echo " Software SDL...............: $have_evas_engine_software_sdl (primitive: $sdl_primitive)"
echo " Software Framebuffer.......: $have_evas_engine_fb"
echo " DirectFB...................: $have_evas_engine_directfb"
#echo " Software Qtopia............: $have_evas_engine_software_qtopia"
echo " Software 16bit ............: $have_evas_engine_software_16"
echo " Software 16bit X11.........: $have_evas_engine_software_16_x11"
echo " Software 16bit Directdraw..: $have_evas_engine_software_16_ddraw"
echo " Software 16bit WinCE.......: $have_evas_engine_software_16_wince"
echo " Software 16bit SDL.........: $have_evas_engine_software_sdl (primitive: $sdl_primitive)"
echo " Software Memory Buffer.....: $have_evas_engine_buffer $have_static_evas_engine_buffer"
echo " Software X11...............: $have_evas_engine_software_x11 $have_static_evas_engine_software_x11 (XCB: $have_evas_engine_software_xcb)"
echo " XRender X11................: $have_evas_engine_xrender_x11 $have_static_evas_engine_xrender_x11 (XCB: $have_evas_engine_xrender_xcb)"
echo " OpenGL X11.................: $have_evas_engine_gl_x11 $have_static_evas_engine_gl_x11"
#echo " Cairo X11..................: $have_evas_engine_cairo_x11 $have_static_evas_engine_cairo_x11"
echo " Software GDI...............: $have_evas_engine_software_gdi $have_static_evas_engine_gdi"
echo " Software DirectDraw........: $have_evas_engine_software_ddraw $have_static_evas_engine_ddraw"
echo " Direct3d...................: $have_evas_engine_direct3d $have_static_evas_engine_direct3d"
echo " Quartz.....................: $have_evas_engine_quartz $have_static_evas_engine_quartz"
echo " OpenGL Glew................: $have_evas_engine_gl_glew $have_static_evas_engine_gl_glew"
echo " Software SDL...............: $have_evas_engine_software_sdl $have_static_evas_engine_software_sdl (primitive: $sdl_primitive)"
echo " Software Framebuffer.......: $have_evas_engine_fb $have_static_evas_engine_fb"
echo " DirectFB...................: $have_evas_engine_directfb $have_static_evas_engine_directfb"
#echo " Software Qtopia............: $have_evas_engine_software_qtopia $have_static_evas_engine_software_qtopia"
echo " Software 16bit ............: $have_evas_engine_software_16 $have_static_evas_engine_software_16"
echo " Software 16bit X11.........: $have_evas_engine_software_16_x11 $have_static_evas_engine_software_16_x11"
echo " Software 16bit Directdraw..: $have_evas_engine_software_16_ddraw $have_static_evas_engine_ddraw"
echo " Software 16bit WinCE.......: $have_evas_engine_software_16_wince $have_static_evas_engine_wince"
echo " Software 16bit SDL.........: $have_evas_engine_software_sdl $have_static_evas_engine_software_sdl (primitive: $sdl_primitive)"
# FIXME: opengl engine needs to be fixed and tested lots for all drivers
echo
echo "Image Loaders:"
echo " EDB.....................: $have_evas_image_loader_edb"
echo " EET.....................: $have_evas_image_loader_eet"
echo " GIF.....................: $have_evas_image_loader_gif"
echo " JPEG....................: $have_evas_image_loader_jpeg"
echo " PMAPS...................: $have_evas_image_loader_pmaps"
echo " PNG.....................: $have_evas_image_loader_png"
echo " SVG.....................: $have_evas_image_loader_svg"
echo " TIFF....................: $have_evas_image_loader_tiff"
echo " XPM.....................: $have_evas_image_loader_xpm"
echo " EDB.....................: $have_evas_image_loader_edb $have_static_evas_image_loader_edb"
echo " EET.....................: $have_evas_image_loader_eet $have_static_evas_image_loader_eet"
echo " GIF.....................: $have_evas_image_loader_gif $have_static_evas_image_loader_gif"
echo " JPEG....................: $have_evas_image_loader_jpeg $have_static_evas_image_loader_jpg"
echo " PMAPS...................: $have_evas_image_loader_pmaps $have_static_evas_image_loader_pmaps"
echo " PNG.....................: $have_evas_image_loader_png $have_static_evas_image_loader_png"
echo " SVG.....................: $have_evas_image_loader_svg $have_static_evas_image_loader_svg"
echo " TIFF....................: $have_evas_image_loader_tiff $have_static_evas_image_loader_tiff"
echo " XPM.....................: $have_evas_image_loader_xpm $have_static_evas_image_loader_xpm"
# FIXME: need to add modular image loader system
# FIXME: add more image loader modules
echo

View File

@ -617,6 +617,24 @@ fi
AM_CONDITIONAL(BUILD_ENGINE_[]UP, [test "x${have_evas_engine_[]DOWN}" = "xyes"])
want_static="no"
have_static_evas_engine_[]DOWN=""
AC_ARG_ENABLE([static-$1],
[AC_HELP_STRING([--enable-static-$1], [enable static build of $4 rendering backend])],
[want_static=${enableval}]
)
AC_MSG_CHECKING([whether to statically include $4 rendering backend inside evas library])
AC_MSG_RESULT([${want_static}])
AM_CONDITIONAL(EVAS_STATIC_BUILD_[]UP, [test "x${want_static}" = "xyes" -a "x${have_evas_engine_[]DOWN}" = "xyes"])
if test "x${want_static}" = "xyes" -a "x${have_evas_engine_[]DOWN}" = "xyes"; then
have_static_evas_engine_[]DOWN="(static)"
AC_DEFINE(EVAS_STATIC_BUILD_[]UP, [1], [Build $1 engine inside libevas])
fi
m4_popdef([UP])
m4_popdef([DOWN])

View File

@ -304,6 +304,23 @@ fi
AM_CONDITIONAL(BUILD_LOADER_[]UP, [test "x${have_evas_image_loader_[]DOWN}" = "xyes"])
want_static_[]DOWN="no"
have_static_evas_image_loader_[]DOWN=""
AC_ARG_ENABLE([static-image-loader-[]DOWN],
[AC_HELP_STRING([--enable-static-image-loader-[]DOWN], [Build $1 image loader inside evas library])],
[want_static_[]DOWN=${enableval}]
)
AC_MSG_CHECKING([whether to build inside evas library $1 image loader])
AC_MSG_RESULT([${want_static_[]DOWN}])
AM_CONDITIONAL(EVAS_STATIC_BUILD_[]UP, [test "x${want_static_[]DOWN}" = "xyes" -a "x${have_evas_image_loader_[]DOWN}" = "xyes"])
if test "x${want_static_[]DOWN}" = "xyes" -a "x${have_evas_image_loader_[]DOWN}" = "xyes"; then
have_static_evas_image_loader_[]DOWN="(static)"
AC_DEFINE(EVAS_STATIC_BUILD_[]UP, [1], [Build $1 image loader inside libevas])
fi
m4_popdef([UP])
m4_popdef([DOWN])

View File

@ -1,6 +1,164 @@
MAINTAINERCLEANFILES = Makefile.in
SUBDIRS = canvas data cache cserve file engines imaging include
EVAS_STATIC_MODULE =
EVAS_STATIC_LIBADD =
if EVAS_STATIC_BUILD_SOFTWARE_GENERIC
SUBDIRS += ../modules/engines/software_generic/
EVAS_STATIC_MODULE += ../modules/engines/software_generic/libevas_engine_software_generic.la
endif
if EVAS_STATIC_BUILD_BUFFER
SUBDIRS += ../modules/engines/buffer/
EVAS_STATIC_MODULE += ../modules/engines/buffer/libevas_engine_buffer.la
endif
if EVAS_STATIC_BUILD_DIRECT3D
SUBDIRS += ../modules/engines/direct3d/
EVAS_STATIC_MODULE += ../modules/engines/direct3d/libevas_engine_direct3d.la
EVAS_STATIC_LIBADD += @evas_engine_direct3d_libs@
endif
if EVAS_STATIC_BUILD_DIRECTFB
SUBDIRS += ../modules/engines/directfb/
EVAS_STATIC_MODULE += ../modules/engines/directfb/libevas_engine_directfb.la
EVAS_STATIC_LIBADD += @evas_engine_directfb_libs@
endif
if EVAS_STATIC_BUILD_FB
SUBDIRS += ../modules/engines/fb/
EVAS_STATIC_MODULE += ../modules/engines/fb/libevas_engine_fb.la
EVAS_STATIC_LIBADD += @evas_engine_fb_libs@
endif
if EVAS_STATIC_BUILD_GL_GLEW
SUBDIRS += \
../modules/engines/gl_common \
../modules/engines/gl_glew
EVAS_STATIC_MODULE += \
../modules/engines/gl_common/libevas_engine_gl_common.la \
../modules/engines/gl_glew/libevas_engine_gl_glew.la
EVAS_STATIC_LIBADD += @evas_engine_gl_common_libs@ @evas_engine_gl_glew_libs@
endif
if EVAS_STATIC_BUILD_GL_X11
SUBDIRS += \
../modules/engines/gl_common \
../modules/engines/gl_x11
EVAS_STATIC_MODULE += \
../modules/engines/gl_common/libevas_engine_gl_common.la \
../modules/engines/gl_x11/libevas_engine_gl_x11.la
EVAS_STATIC_LIBADD += @evas_engine_gl_common_libs@ @evas_engine_gl_x11_libs@
endif
if EVAS_STATIC_BUILD_QUARTZ
SUBDIRS += ../modules/engines/quartz/
EVAS_STATIC_MODULE += ../modules/engines/quartz/libevas_engine_quartz.la
EVAS_STATIC_LIBADD += @evas_engine_quartz_libs@
endif
if EVAS_STATIC_BUILD_SOFTWARE_16
SUBDIRS += ../modules/engines/software_16/
EVAS_STATIC_MODULE += ../modules/engines/software_16/libevas_engine_software_16.la
endif
if EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW
SUBDIRS += ../modules/engines/software_16_ddraw/
EVAS_STATIC_MODULE += ../modules/engines/software_16_ddraw/libevas_engine_software_16_ddraw.la
EVAS_STATIC_LIBADD += @evas_engine_software_16_ddraw_libs@
endif
if EVAS_STATIC_BUILD_SOFTWARE_16_WINCE
SUBDIRS += ../modules/engines/software_16_wince/
EVAS_STATIC_MODULE += ../modules/engines/software_16_wince/libevas_engine_software_16_wince.la
EVAS_STATIC_LIBADD += @evas_engine_software_16_wince_libs@
endif
if EVAS_STATIC_BUILD_SOFTWARE_16_X11
SUBDIRS += ../modules/engines/software_16_x11/
EVAS_STATIC_MODULE += ../modules/engines/software_16_x11/libevas_engine_software_16_x11.la
EVAS_STATIC_LIBADD += @evas_engine_software_16_x11_libs@
endif
if EVAS_STATIC_BUILD_SOFTWARE_SDL
SUBDIRS += \
../modules/engines/software_16_sdl/ \
../modules/engines/software_sdl/
EVAS_STATIC_MODULE += \
../modules/engines/software_16_sdl/libevas_engine_software_16_sdl.la \
../modules/engines/software_sdl/libevas_engine_software_sdl.la
EVAS_STATIC_LIBADD += @SDL_LIBS@
endif
if EVAS_STATIC_BUILD_SOFTWARE_DDRAW
SUBDIRS += ../modules/engines/software_ddraw/
EVAS_STATIC_MODULE += ../modules/engines/software_ddraw/libevas_engine_software_ddraw.la
EVAS_STATIC_LIBADD += @evas_engine_software_ddraw_libs@
endif
if EVAS_STATIC_BUILD_SOFTWARE_GDI
SUBDIRS += ../modules/engines/software_gdi/
EVAS_STATIC_MODULE += ../modules/engines/software_gdi/libevas_engine_software_gdi.la
EVAS_STATIC_LIBADD += @evas_engine_software_gdi_libs@
endif
if EVAS_STATIC_BUILD_SOFTWARE_X11
SUBDIRS += ../modules/engines/software_x11/
EVAS_STATIC_MODULE += ../modules/engines/software_x11/libevas_engine_software_x11.la
EVAS_STATIC_LIBADD += @evas_engine_software_x11_libs@ @evas_engine_software_xcb_libs@
endif
if EVAS_STATIC_BUILD_XRENDER_X11
SUBDIRS += ../modules/engines/xrender_x11/
EVAS_STATIC_MODULE += ../modules/engines/xrender_x11/libevas_engine_xrender_x11.la
EVAS_STATIC_LIBADD += @evas_engine_xrender_x11_libs@ @evas_engine_xrender_xcb_libs@
endif
if EVAS_STATIC_BUILD_EDB
SUBDIRS += ../modules/savers/edb ../modules/loaders/edb
EVAS_STATIC_MODULE += ../modules/savers/edb/libevas_saver_edb.la ../modules/loaders/edb/libevas_loader_edb.la
EVAS_STATIC_LIBADD += @evas_image_loader_edb_libs@
endif
if EVAS_STATIC_BUILD_EET
SUBDIRS += ../modules/savers/eet ../modules/loaders/eet
EVAS_STATIC_MODULE += ../modules/savers/eet/libevas_saver_eet.la ../modules/loaders/eet/libevas_loader_eet.la
EVAS_STATIC_LIBADD += @evas_image_loader_eet_libs@
endif
if EVAS_STATIC_BUILD_GIF
SUBDIRS += ../modules/loaders/gif
EVAS_STATIC_MODULE += ../modules/loaders/gif/libevas_loader_gif.la
EVAS_STATIC_LIBADD += @evas_image_loader_gif_libs@
endif
if EVAS_STATIC_BUILD_JPEG
SUBDIRS += ../modules/savers/jpeg ../modules/loaders/jpeg
EVAS_STATIC_MODULE += ../modules/savers/jpeg/libevas_saver_jpeg.la ../modules/loaders/jpeg/libevas_loader_jpeg.la
EVAS_STATIC_LIBADD += @evas_image_loader_jpeg_libs@
endif
if EVAS_STATIC_BUILD_PMAPS
SUBDIRS += ../modules/loaders/pmaps
EVAS_STATIC_MODULE += ../modules/loaders/pmaps/libevas_loader_pmaps.la
EVAS_STATIC_LIBADD += @evas_image_loader_pmaps_libs@
endif
if EVAS_STATIC_BUILD_PNG
SUBDIRS += ../modules/savers/png ../modules/loaders/png
EVAS_STATIC_MODULE += ../modules/savers/png/libevas_saver_png.la ../modules/loaders/png/libevas_loader_png.la
EVAS_STATIC_LIBADD += @evas_image_loader_png_libs@
endif
if EVAS_STATIC_BUILD_SVG
SUBDIRS += ../modules/loaders/svg
EVAS_STATIC_MODULE += ../modules/loaders/svg/libevas_loader_svg.la
EVAS_STATIC_LIBADD += @evas_image_loader_svg_libs@
endif
if EVAS_STATIC_BUILD_TIFF
SUBDIRS += ../modules/savers/tiff ../modules/loaders/tiff
EVAS_STATIC_MODULE += ../modules/savers/tiff/libevas_saver_tiff.la ../modules/loaders/tiff/libevas_loader_tiff.la
EVAS_STATIC_LIBADD += @evas_image_loader_tiff_libs@
endif
if EVAS_STATIC_BUILD_XPM
SUBDIRS += ../modules/loaders/xpm
EVAS_STATIC_MODULE += ../modules/loaders/xpm/libevas_loader_xpm.la
EVAS_STATIC_LIBADD += @evas_image_loader_xpm_libs@
endif
#if EVAS_STATIC_BUILD_CAIRO_X11
#SUBDIRS += \
# ../modules/engines/cairo_common \
# ../modules/engines/cairo_x11
#EVAS_STATIC_MODULE += \
# ../modules/engines/cairo_common/libevas_engine_cairo_common.la \
# ../modules/engines/cairo_x11/libevas_engine_cairo_x11.la
#EVAS_STATIC_LIBADD += @CAIRO_CFLAGS@
#endif
#if EVAS_STATIC_BUILD_SOFTWARE_QTOPIA
#SUBDIRS += ../modules/engines/software_qtopia/
#EVAS_STATIC_MODULE += ../modules/engines/software_qtopia/libevas_engine_software_qtopia.la
#EVAS_STATIC_LIBADD += @evas_engine_software_qtopia_libs@
#endif
AM_CPPFLAGS = \
-I. \
@ -45,6 +203,8 @@ engines/common/libevas_engine_common.la \
@FONTCONFIG_LIBS@ \
@pthread_libs@ \
@EINA_LIBS@ \
$(EVAS_STATIC_MODULE) \
$(EVAS_STATIC_LIBADD) \
-lm
libevas_la_DEPENDENCIES = \
@ -54,7 +214,8 @@ file/libevas_file.la \
cache/libevas_cache.la \
imaging/libevas_imaging.la \
$(libevas_cserve_la) \
engines/common/libevas_engine_common.la
engines/common/libevas_engine_common.la \
$(EVAS_STATIC_MODULE)
if BUILD_ENGINE_SOFTWARE_16

View File

@ -2,7 +2,6 @@
#include "evas_private.h"
#include "evas_cs.h"
extern Eina_List *evas_modules;
static int initcount = 0;
Eina_Mempool *_evas_rectangle_mp = NULL;
@ -250,7 +249,6 @@ evas_free(Evas *e)
EAPI void
evas_output_method_set(Evas *e, int render_method)
{
Eina_List *l;
Evas_Module *em;
MAGIC_CHECK(e, Evas, MAGIC_EVAS);
@ -261,27 +259,22 @@ evas_output_method_set(Evas *e, int render_method)
if (render_method == RENDER_METHOD_INVALID) return;
/* if the engine is already set up - abort */
if (e->output.render_method != RENDER_METHOD_INVALID) return;
/* iterate trough the list to find the id */
EINA_LIST_FOREACH(evas_modules, l, em)
{
Evas_Module_Engine *eme;
/* Request the right engine. */
em = evas_module_engine_get(render_method);
if (!em) return ;
if (em->id_engine != render_method) return;
if (!evas_module_load(em)) return;
if (em->type != EVAS_MODULE_TYPE_ENGINE) continue;
if (!em->data) continue;
eme = (Evas_Module_Engine *)em->data;
if (eme->id != render_method) continue;
if (!evas_module_load(em)) return;
/* set the correct render */
e->output.render_method = render_method;
e->engine.func = (em->functions);
evas_module_use(em);
if (e->engine.module) evas_module_unref(e->engine.module);
e->engine.module = em;
evas_module_ref(em);
/* get the engine info struct */
if (e->engine.func->info) e->engine.info = e->engine.func->info(e);
return;
}
/* set the correct render */
e->output.render_method = render_method;
e->engine.func = (em->functions);
evas_module_use(em);
if (e->engine.module) evas_module_unref(e->engine.module);
e->engine.module = em;
evas_module_ref(em);
/* get the engine info struct */
if (e->engine.func->info) e->engine.info = e->engine.func->info(e);
return;
}
/**
@ -689,25 +682,14 @@ evas_coord_world_y_to_screen(const Evas *e, Evas_Coord y)
EAPI int
evas_render_method_lookup(const char *name)
{
static int i = 1;
Evas_Module *em;
Evas_Module_Engine *eem;
if (!name) return RENDER_METHOD_INVALID;
/* search on the engines list for the name */
em = evas_module_find_type(EVAS_MODULE_TYPE_ENGINE, name);
if (!em) return RENDER_METHOD_INVALID;
eem = (Evas_Module_Engine *)em->data;
if (!eem)
{
eem = malloc(sizeof(Evas_Module_Engine));
em->data = eem;
eem->id = i;
i++;
}
return eem->id;
return em->id_engine;
}
/**
@ -748,58 +730,58 @@ evas_render_method_list(void)
/* FIXME: get from modules - this is currently coded-in */
#ifdef BUILD_ENGINE_SOFTWARE_GDI
methods = eina_list_append(methods, strdup("software_gdi"));
methods = eina_list_append(methods, "software_gdi");
#endif
#ifdef BUILD_ENGINE_SOFTWARE_DDRAW
methods = eina_list_append(methods, strdup("software_ddraw"));
methods = eina_list_append(methods, "software_ddraw");
#endif
#ifdef BUILD_ENGINE_SOFTWARE_16_DDRAW
methods = eina_list_append(methods, strdup("software_16_ddraw"));
methods = eina_list_append(methods, "software_16_ddraw");
#endif
#ifdef BUILD_ENGINE_DIRECT3D
methods = eina_list_append(methods, strdup("direct3d"));
methods = eina_list_append(methods, "direct3d");
#endif
#ifdef BUILD_ENGINE_SOFTWARE_16_WINCE
methods = eina_list_append(methods, strdup("software_16_wince"));
methods = eina_list_append(methods, "software_16_wince");
#endif
#ifdef BUILD_ENGINE_SOFTWARE_X11
methods = eina_list_append(methods, strdup("software_x11"));
methods = eina_list_append(methods, "software_x11");
#endif
#ifdef BUILD_ENGINE_XRENDER_X11
methods = eina_list_append(methods, strdup("xrender_x11"));
methods = eina_list_append(methods, "xrender_x11");
#endif
#ifdef BUILD_ENGINE_XRENDER_XCB
methods = eina_list_append(methods, strdup("xrender_xcb"));
methods = eina_list_append(methods, "xrender_xcb");
#endif
#ifdef BUILD_ENGINE_SOFTWARE_16_X11
methods = eina_list_append(methods, strdup("software_16_x11"));
methods = eina_list_append(methods, "software_16_x11");
#endif
#ifdef BUILD_ENGINE_GL_X11
methods = eina_list_append(methods, strdup("gl_x11"));
methods = eina_list_append(methods, "gl_x11");
#endif
#ifdef BUILD_ENGINE_GL_GLEW
methods = eina_list_append(methods, strdup("gl_glew"));
methods = eina_list_append(methods, "gl_glew");
#endif
#ifdef BUILD_ENGINE_CAIRO_X11
methods = eina_list_append(methods, strdup("cairo_x11"));
methods = eina_list_append(methods, "cairo_x11");
#endif
#ifdef BUILD_ENGINE_DIRECTFB
methods = eina_list_append(methods, strdup("directfb"));
methods = eina_list_append(methods, "directfb");
#endif
#ifdef BUILD_ENGINE_FB
methods = eina_list_append(methods, strdup("fb"));
methods = eina_list_append(methods, "fb");
#endif
#ifdef BUILD_ENGINE_BUFFER
methods = eina_list_append(methods, strdup("buffer"));
methods = eina_list_append(methods, "buffer");
#endif
#ifdef BUILD_ENGINE_SOFTWARE_WIN32_GDI
methods = eina_list_append(methods, strdup("software_win32_gdi"));
methods = eina_list_append(methods, "software_win32_gdi");
#endif
#ifdef BUILD_ENGINE_SOFTWARE_QTOPIA
methods = eina_list_append(methods, strdup("software_qtopia"));
methods = eina_list_append(methods, "software_qtopia");
#endif
#ifdef BUILD_ENGINE_SOFTWARE_SDL
methods = eina_list_append(methods, strdup("software_sdl"));
methods = eina_list_append(methods, "software_sdl");
#endif
return methods;
@ -835,11 +817,7 @@ evas_render_method_list(void)
EAPI void
evas_render_method_list_free(Eina_List *list)
{
while (list)
{
free(list->data);
list = eina_list_remove(list, list->data);
}
eina_list_free(list);
}
/**

View File

@ -6,8 +6,6 @@
#include "evas_private.h"
#include "evas_cs.h"
extern Eina_List *evas_modules;
struct ext_loader_s {
const char* extention;
const char* loader;
@ -34,12 +32,30 @@ static struct ext_loader_s loaders[] = {
{ "pnm", "pmaps" }
};
static Eina_Bool
_evas_image_foreach_loader(const Eina_Hash *hash, const char *key, Evas_Module *em, Image_Entry *ie)
{
Evas_Image_Load_Func *evas_image_load_func = NULL;
if (!evas_module_load(em)) return EINA_TRUE;
evas_image_load_func = em->functions;
evas_module_use(em);
if (evas_image_load_func && evas_image_load_func->file_head(ie, ie->file, ie->key))
{
ie->info.module = (void*) em;
ie->info.loader = (void*) evas_image_load_func;
evas_module_ref((Evas_Module*) ie->info.module);
return EINA_FALSE;
}
return EINA_TRUE;
}
EAPI int
evas_common_load_rgba_image_module_from_file(Image_Entry *ie)
{
Evas_Image_Load_Func *evas_image_load_func = NULL;
const char *loader = NULL;
Eina_List *l;
Evas_Module *em;
char *dot;
int i;
@ -82,21 +98,9 @@ evas_common_load_rgba_image_module_from_file(Image_Entry *ie)
}
}
EINA_LIST_FOREACH(evas_modules, l, em)
{
if (em->type != EVAS_MODULE_TYPE_IMAGE_LOADER) continue;
if (!evas_module_load(em)) continue;
evas_image_load_func = em->functions;
evas_module_use(em);
if (evas_image_load_func && evas_image_load_func->file_head(ie, ie->file, ie->key))
{
if (evas_modules != l)
{
evas_modules = eina_list_promote_list(evas_modules, l);
}
goto ok;
}
}
/* FIXME: We don't try not loaded module yet, changed behaviour with previous one. */
evas_module_foreach_image_loader(_evas_image_foreach_loader, ie);
if (ie->info.module) return 0;
return -1;

View File

@ -12,8 +12,6 @@
#include "evas_private.h"
extern Eina_List *evas_modules;
int
evas_common_save_image_to_file(RGBA_Image *im, const char *file, const char *key, int quality, int compress)
{

View File

@ -2,35 +2,35 @@
# define _GNU_SOURCE
#endif
#include <dirent.h> /* DIR, dirent */
#include <dlfcn.h> /* dlopen,dlclose,etc */
#include <string.h>
#include <evas_common.h>
#include <evas_private.h>
Eina_List *evas_modules = NULL;
static Eina_Hash *evas_modules[4] = {
NULL,
NULL,
NULL,
NULL
};
static Eina_List *eina_evas_modules = NULL;
static Eina_List *evas_module_paths = NULL;
static Eina_Array *evas_engines = NULL;
static void
_evas_module_path_append(Evas_Module_Type type, char *path, const char *subdir)
static Eina_List *
_evas_module_append(Eina_List *list, char *path)
{
Evas_Module_Path *mp;
char *buf;
buf = evas_file_path_join(path, subdir);
if (!buf) return;
if (evas_file_path_exists(buf))
if (path)
{
mp = malloc(sizeof(Evas_Module_Path));
mp->type = type;
mp->path = buf;
evas_module_paths = eina_list_append(evas_module_paths, mp);
if (evas_file_path_exists(path))
list = eina_list_append(list, path);
else
free(path);
}
else
free(buf);
return list;
}
/* this will alloc a list of paths to search for the modules */
/* by now these are: */
/* 1. ~/.evas/modules/ */
@ -40,73 +40,21 @@ _evas_module_path_append(Evas_Module_Type type, char *path, const char *subdir)
void
evas_module_paths_init(void)
{
char *prefix;
char *path;
Eina_List *paths = NULL;
/* 1. ~/.evas/modules/ */
prefix = getenv("HOME");
if (prefix)
{
path = malloc(strlen(prefix) + 1 + strlen("/.evas/modules"));
if (path)
{
path[0] = 0;
strcpy(path, prefix);
strcat(path, "/.evas/modules");
if (evas_file_path_exists(path))
paths = eina_list_append(paths, path);
else
free(path);
}
}
path = eina_module_environment_path_get("HOME", "/.evas/modules");
evas_module_paths = _evas_module_append(evas_module_paths, path);
/* 2. $(EVAS_MODULE_DIR)/evas/modules/ */
prefix = getenv("EVAS_MODULES_DIR");
if (prefix)
{
path = malloc(strlen(prefix) + 1 + strlen("/evas/modules"));
if (path)
{
path[0] = 0;
strcpy(path, prefix);
strcat(path, "/evas/modules");
if (evas_file_path_exists(path))
paths = eina_list_append(paths, path);
else
free(path);
}
}
path = eina_module_environment_path_get("EVAS_MODULES_DIR", "/evas/modules");
evas_module_paths = _evas_module_append(evas_module_paths, path);
#ifdef HAVE_DLADDR
{
Dl_info evas_dl;
/* 3. libevas.so/../evas/modules/ */
if (dladdr(evas_module_paths_init, &evas_dl))
{
int length;
/* 3. libevas.so/../evas/modules/ */
path = eina_module_symbol_path_get(evas_module_paths_init, "/evas/modules");
evas_module_paths = _evas_module_append(evas_module_paths, path);
if (strrchr(evas_dl.dli_fname, '/'))
{
length = strlen(strrchr(evas_dl.dli_fname, '/'));
path = malloc(strlen(evas_dl.dli_fname) - length +
strlen("/evas/modules") + 1);
if (path)
{
strncpy(path, evas_dl.dli_fname,
strlen(evas_dl.dli_fname) - length);
path[strlen(evas_dl.dli_fname) - length] = 0;
strcat(path, "/evas/modules");
if (evas_file_path_exists(path))
paths = eina_list_append(paths, path);
else
free(path);
}
}
}
}
#else
/* 4. PREFIX/evas/modules/ */
prefix = PACKAGE_LIB_DIR;
path = malloc(strlen(prefix) + 1 + strlen("/evas/modules"));
@ -114,187 +62,323 @@ evas_module_paths_init(void)
{
strcpy(path, prefix);
strcat(path, "/evas/modules");
if (evas_file_path_exists(path))
paths = eina_list_append(paths, path);
else
free(path);
}
#endif
/* append all the module types subdirs */
while (paths)
{
/* here must be added all the types of modules and their subdirectory */
/* do this on a separate function */
/* 1. engines */
_evas_module_path_append(EVAS_MODULE_TYPE_ENGINE, paths->data, "engines");
_evas_module_path_append(EVAS_MODULE_TYPE_IMAGE_LOADER, paths->data, "loaders");
_evas_module_path_append(EVAS_MODULE_TYPE_IMAGE_SAVER, paths->data, "savers");
_evas_module_path_append(EVAS_MODULE_TYPE_OBJECT, paths->data, "objects");
free(paths->data);
paths = eina_list_remove_list(paths, paths);
evas_module_paths = _evas_module_append(evas_module_paths, path);
}
}
#define EVAS_EINA_STATIC_MODULE_DEFINE(Tn, Name) \
Eina_Bool evas_##Tn##_##Name##_init(void); \
void evas_##Tn##_##Name##_shutdown(void);
#define EVAS_EINA_STATIC_MODULE_USE(Tn, Name) \
{ evas_##Tn##_##Name##_init, evas_##Tn##_##Name##_shutdown }
EVAS_EINA_STATIC_MODULE_DEFINE(engine, buffer);
EVAS_EINA_STATIC_MODULE_DEFINE(engine, cairo_x11);
EVAS_EINA_STATIC_MODULE_DEFINE(engine, direct3d);
EVAS_EINA_STATIC_MODULE_DEFINE(engine, directfb);
EVAS_EINA_STATIC_MODULE_DEFINE(engine, fb);
EVAS_EINA_STATIC_MODULE_DEFINE(engine, gl_glew);
EVAS_EINA_STATIC_MODULE_DEFINE(engine, gl_x11);
EVAS_EINA_STATIC_MODULE_DEFINE(engine, quartz);
EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_16);
EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_16_ddraw);
EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_16_sdl);
EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_16_wince);
EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_16_x11);
EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_ddraw);
EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_gdi);
EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_generic);
EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_qtopia);
EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_sdl);
EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_x11);
EVAS_EINA_STATIC_MODULE_DEFINE(engine, xrender_x11);
EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, xpm);
EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, tiff);
EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, svg);
EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, png);
EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, pmaps);
EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, jpeg);
EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, gif);
EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, eet);
EVAS_EINA_STATIC_MODULE_DEFINE(image_loader, edb);
EVAS_EINA_STATIC_MODULE_DEFINE(image_saver, edb);
EVAS_EINA_STATIC_MODULE_DEFINE(image_saver, eet);
EVAS_EINA_STATIC_MODULE_DEFINE(image_saver, jpeg);
EVAS_EINA_STATIC_MODULE_DEFINE(image_saver, png);
EVAS_EINA_STATIC_MODULE_DEFINE(image_saver, tiff);
static const struct {
Eina_Bool (*init)(void);
void (*shutdown)(void);
} evas_static_module[] = {
#ifdef EVAS_STATIC_BUILD_BUFFER
EVAS_EINA_STATIC_MODULE_USE(engine, buffer),
#endif
#ifdef EVAS_STATIC_BUILD_CAIRO_X11
EVAS_EINA_STATIC_MODULE_USE(engine, cairo_x11),
#endif
#ifdef EVAS_STATIC_BUILD_DIRECT3D
EVAS_EINA_STATIC_MODULE_USE(engine, direct3d),
#endif
#ifdef EVAS_STATIC_BUILD_DIRECTFB
EVAS_EINA_STATIC_MODULE_USE(engine, directfb),
#endif
#ifdef EVAS_STATIC_BUILD_FB
EVAS_EINA_STATIC_MODULE_USE(engine, fb),
#endif
#ifdef EVAS_STATIC_BUILD_GL_GLEW
EVAS_EINA_STATIC_MODULE_USE(engine, gl_glew),
#endif
#ifdef EVAS_STATIC_BUILD_GL_X11
EVAS_EINA_STATIC_MODULE_USE(engine, gl_x11),
#endif
#ifdef EVAS_STATIC_BUILD_QUARTZ
EVAS_EINA_STATIC_MODULE_USE(engine, quartz),
#endif
#ifdef EVAS_STATIC_BUILD_SOFTWARE_16
EVAS_EINA_STATIC_MODULE_USE(engine, software_16),
#endif
#ifdef EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW
EVAS_EINA_STATIC_MODULE_USE(engine, software_16_ddraw),
#endif
#ifdef EVAS_STATIC_BUILD_SOFTWARE_16_SDL
EVAS_EINA_STATIC_MODULE_USE(engine, software_16_sdl),
#endif
#ifdef EVAS_STATIC_BUILD_SOFTWARE_16_WINCE
EVAS_EINA_STATIC_MODULE_USE(engine, software_16_wince),
#endif
#ifdef EVAS_STATIC_BUILD_SOFTWARE_16_X11
EVAS_EINA_STATIC_MODULE_USE(engine, software_16_x11),
#endif
#ifdef EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW
EVAS_EINA_STATIC_MODULE_USE(engine, software_ddraw),
#endif
#ifdef EVAS_STATIC_BUILD_SOFTWARE_16_GDI
EVAS_EINA_STATIC_MODULE_USE(engine, software_gdi),
#endif
#ifdef EVAS_STATIC_BUILD_SOFTWARE_GENERIC
EVAS_EINA_STATIC_MODULE_USE(engine, software_generic),
#endif
#ifdef EVAS_STATIC_BUILD_SOFTWARE_QTOPIA
EVAS_EINA_STATIC_MODULE_USE(engine, software_qtopia),
#endif
#ifdef EVAS_STATIC_BUILD_SOFTWARE_SDL
EVAS_EINA_STATIC_MODULE_USE(engine, software_sdl),
#endif
#ifdef EVAS_STATIC_BUILD_SOFTWARE_X11
EVAS_EINA_STATIC_MODULE_USE(engine, software_x11),
#endif
#ifdef EVAS_STATIC_BUILD_XRENDER_X11
EVAS_EINA_STATIC_MODULE_USE(engine, xrender_x11),
#endif
#ifdef EVAS_STATIC_BUILD_XPM
EVAS_EINA_STATIC_MODULE_USE(image_loader, xpm),
#endif
#ifdef EVAS_STATIC_BUILD_TIFF
EVAS_EINA_STATIC_MODULE_USE(image_loader, tiff),
#endif
#ifdef EVAS_STATIC_BUILD_SVG
EVAS_EINA_STATIC_MODULE_USE(image_loader, svg),
#endif
#ifdef EVAS_STATIC_BUILD_PNG
EVAS_EINA_STATIC_MODULE_USE(image_loader, png),
#endif
#ifdef EVAS_STATIC_BUILD_PMAPS
EVAS_EINA_STATIC_MODULE_USE(image_loader, pmaps),
#endif
#ifdef EVAS_STATIC_BUILD_JPEG
EVAS_EINA_STATIC_MODULE_USE(image_loader, jpeg),
#endif
#ifdef EVAS_STATIC_BUILD_GIF
EVAS_EINA_STATIC_MODULE_USE(image_loader, gif),
#endif
#ifdef EVAS_STATIC_BUILD_EET
EVAS_EINA_STATIC_MODULE_USE(image_loader, eet),
#endif
#ifdef EVAS_STATIC_BUILD_EDB
EVAS_EINA_STATIC_MODULE_USE(image_loader, edb),
#endif
#ifdef EVAS_STATIC_BUILD_
EVAS_EINA_STATIC_MODULE_USE(image_saver, edb),
#endif
#ifdef EVAS_STATIC_BUILD_
EVAS_EINA_STATIC_MODULE_USE(image_saver, eet),
#endif
#ifdef EVAS_STATIC_BUILD_
EVAS_EINA_STATIC_MODULE_USE(image_saver, jpeg),
#endif
#ifdef EVAS_STATIC_BUILD_
EVAS_EINA_STATIC_MODULE_USE(image_saver, png),
#endif
#ifdef EVAS_STATIC_BUILD_
EVAS_EINA_STATIC_MODULE_USE(image_saver, tiff),
#endif
{ NULL, NULL }
};
/* this will alloc an Evas_Module struct for each module
* it finds on the paths */
void
evas_module_init(void)
{
Eina_List *l;
Evas_Module_Path *mp;
int new_id_engine = 1;
int i;
/* printf("[init modules]\n"); */
evas_module_paths_init();
EINA_LIST_FOREACH(evas_module_paths, l, mp)
{
DIR *dir;
struct dirent *de;
if (!(dir = opendir(mp->path))) break;
/* printf("[evas module] searching modules on %s\n", mp->path); */
while ((de = readdir(dir)))
{
char *buf;
evas_modules[EVAS_MODULE_TYPE_ENGINE] = eina_hash_string_small_new(/* FIXME: Add a function to cleanup stuff. */ NULL);
evas_modules[EVAS_MODULE_TYPE_IMAGE_LOADER] = eina_hash_string_small_new(/* FIXME: Add a function to cleanup stuff. */ NULL);
evas_modules[EVAS_MODULE_TYPE_IMAGE_SAVER] = eina_hash_string_small_new(/* FIXME: Add a function to cleanup stuff. */ NULL);
evas_modules[EVAS_MODULE_TYPE_OBJECT] = eina_hash_string_small_new(/* FIXME: Add a function to cleanup stuff. */ NULL);
if ((!strcmp(de->d_name, ".")) || (!strcmp(de->d_name, "..")))
continue;
buf = malloc(strlen(mp->path) + 1 + strlen(de->d_name) + 1);
sprintf(buf, "%s/%s", mp->path, de->d_name);
if (evas_file_path_is_dir(buf))
{
Evas_Module *em;
evas_engines = eina_array_new(4);
em = calloc(1, sizeof(Evas_Module));
if (!em) continue;
em->name = strdup(de->d_name);
em->path = strdup(mp->path);
em->type = mp->type;
em->handle = NULL;
em->data = NULL;
em->loaded = 0;
#ifdef BUILD_ASYNC_PRELOAD
LKI(em->lock);
#endif
//#if defined(BUILD_PTHREAD) && defined(BUILD_ASYNC_PRELOAD)
// pthread_mutex_init(&em->lock, NULL);
//#endif
if (em->type == EVAS_MODULE_TYPE_ENGINE)
{
Evas_Module_Engine *eme;
eme = malloc(sizeof(Evas_Module_Engine));
if (eme)
{
eme->id = new_id_engine;
em->data = eme;
new_id_engine++;
}
}
else if (em->type == EVAS_MODULE_TYPE_IMAGE_LOADER)
{
}
else if (em->type == EVAS_MODULE_TYPE_IMAGE_SAVER)
{
}
/* printf("[evas module] including module path %s/%s of type %d\n",em->path, em->name, em->type); */
evas_modules = eina_list_append(evas_modules, em);
}
free(buf);
}
closedir(dir);
}
for (i = 0; evas_static_module[i].init != NULL; ++i)
evas_static_module[i].init();
}
Eina_Bool
evas_module_register(const Evas_Module_Api *module, Evas_Module_Type type)
{
Evas_Module *em;
if (type < 0 || type > 3) return EINA_FALSE;
if (module->version != EVAS_MODULE_API_VERSION) return EINA_FALSE;
if (!module) return EINA_FALSE;
em = eina_hash_find(evas_modules[type], module->name);
if (em) return EINA_FALSE;
em = calloc(1, sizeof (Evas_Module));
if (!em) return EINA_FALSE;
em->public = module;
if (type == EVAS_MODULE_TYPE_ENGINE)
{
eina_array_push(evas_engines, em);
em->id_engine = eina_array_count_get(evas_engines);
}
eina_hash_direct_add(evas_modules[type], module->name, em);
return EINA_TRUE;
}
Eina_Bool
evas_module_unregister(const Evas_Module_Api *module, Evas_Module_Type type)
{
Evas_Module *em;
if (type < 0 || type > 3) return EINA_FALSE;
if (!module) return EINA_FALSE;
em = eina_hash_find(evas_modules[type], module->name);
if (!em || em->public != module) return EINA_FALSE;
if (type == EVAS_MODULE_TYPE_ENGINE)
eina_array_data_set(evas_engines, em->id_engine, NULL);
eina_hash_del(evas_modules[type], module->name, em);
free(em);
return EINA_TRUE;
}
#if defined(__CEGCC__) || defined(__MINGW32CE__)
# define EVAS_MODULE_NAME_IMAGE_SAVER "saver_%s.dll"
# define EVAS_MODULE_NAME_IMAGE_LOADER "loader_%s.dll"
# define EVAS_MODULE_NAME_ENGINE "engine_%s.dll"
# define EVAS_MODULE_NAME_OBJECT "object_%s.dll"
#elif _WIN32
# define EVAS_MODULE_NAME_IMAGE_SAVER "module.dll"
# define EVAS_MODULE_NAME_IMAGE_LOADER "module.dll"
# define EVAS_MODULE_NAME_ENGINE "module.dll"
# define EVAS_MODULE_NAME_OBJECT "module.dll"
#else
# define EVAS_MODULE_NAME_IMAGE_SAVER "module.so"
# define EVAS_MODULE_NAME_IMAGE_LOADER "module.so"
# define EVAS_MODULE_NAME_ENGINE "module.so"
# define EVAS_MODULE_NAME_OBJECT "module.so"
#endif
Evas_Module *
evas_module_find_type(Evas_Module_Type type, const char *name)
{
Eina_List *l;
const char *path;
const char *format = NULL;
char buffer[4096];
Evas_Module *em;
Eina_Module *en;
Eina_List *l;
EINA_LIST_FOREACH(evas_modules, l, em)
if (type < 0 || type > 3) return NULL;
em = eina_hash_find(evas_modules[type], name);
if (em) return em;
EINA_LIST_FOREACH(evas_module_paths, l, path)
{
if ((type == em->type) && (!strcmp(name,em->name)))
switch (type)
{
if (evas_modules != l)
{
evas_modules = eina_list_promote_list(evas_modules, l);
}
case EVAS_MODULE_TYPE_ENGINE: format = "%s/engines/%s/%s/" EVAS_MODULE_NAME_ENGINE; break;
case EVAS_MODULE_TYPE_IMAGE_LOADER: format = "%s/loaders/%s/%s/" EVAS_MODULE_NAME_IMAGE_LOADER; break;
case EVAS_MODULE_TYPE_IMAGE_SAVER: format = "%s/savers/%s/%s/" EVAS_MODULE_NAME_IMAGE_SAVER; break;
case EVAS_MODULE_TYPE_OBJECT: format = "%s/object/%s/%s/" EVAS_MODULE_NAME_OBJECT; break;
}
snprintf(buffer, sizeof (buffer), format, path, name, MODULE_ARCH, name);
if (!evas_file_path_is_file(buffer)) continue;
en = eina_module_new(buffer);
if (!en) continue;
if (!eina_module_load(en))
{
eina_module_delete(en);
continue;
}
em = eina_hash_find(evas_modules[type], name);
if (em)
{
eina_evas_modules = eina_list_append(eina_evas_modules, en);
return em;
}
eina_module_delete(en);
}
return NULL;
}
Evas_Module *
evas_module_engine_get(int render_method)
{
if (render_method <= 0 || render_method > eina_array_count_get(evas_engines))
return NULL;
return eina_array_data_get(evas_engines, render_method - 1);
}
void
evas_module_foreach_image_loader(Eina_Hash_Foreach cb, const void *fdata)
{
eina_hash_foreach(evas_modules[EVAS_MODULE_TYPE_IMAGE_LOADER], cb, fdata);
}
int
evas_module_load(Evas_Module *em)
{
char buf[4096];
void *handle;
if (em->loaded) return 1;
if (em->public == NULL) return 0;
/* printf("LOAD %s\n", em->name); */
#if defined(__CEGCC__) || defined(__MINGW32CE__)
switch (em->type) {
case EVAS_MODULE_TYPE_IMAGE_SAVER:
snprintf(buf, sizeof(buf), "%s/%s/%s/saver_%s.dll", em->path, em->name, MODULE_ARCH, em->name);
break;
case EVAS_MODULE_TYPE_IMAGE_LOADER:
snprintf(buf, sizeof(buf), "%s/%s/%s/loader_%s.dll", em->path, em->name, MODULE_ARCH, em->name);
break;
case EVAS_MODULE_TYPE_ENGINE:
snprintf(buf, sizeof(buf), "%s/%s/%s/engine_%s.dll", em->path, em->name, MODULE_ARCH, em->name);
break;
default:
snprintf(buf, sizeof(buf), "%s/%s/%s/object_%s.dll", em->path, em->name, MODULE_ARCH, em->name);
}
#elif _WIN32
snprintf(buf, sizeof(buf), "%s/%s/%s/module.dll", em->path, em->name, MODULE_ARCH);
#else
snprintf(buf, sizeof(buf), "%s/%s/%s/module.so", em->path, em->name, MODULE_ARCH);
if (!em->public->func.open(em)) return 0;
em->loaded = 1;
#ifdef BUILD_ASYNC_PRELOAD
LKI(em->lock);
#endif
if (!evas_file_path_exists(buf))
{
printf("[evas module] error loading the module %s. It doesnt exists\n", buf);
return 0;
}
handle = dlopen(buf, RTLD_LAZY);
if (handle)
{
em->handle = handle;
em->func.open = dlsym(em->handle, "module_open");
em->func.close = dlsym(em->handle, "module_close");
em->api = dlsym(em->handle, "evas_modapi");
if ((!em->func.open) || (!em->api) || (!em->func.close))
goto error_dl;
/* check the api */
if (em->api->version != EVAS_MODULE_API_VERSION)
{
printf("[evas module] error loading the modules %s. The version doesnt match\n", buf);
goto error_dl;
}
em->func.open(em);
em->loaded = 1;
return 1;
}
error_dl:
{
const char *err;
err = dlerror();
printf("[evas module] error loading the module %s. %s\n", buf, err);
if (handle)
dlclose(handle);
em->handle = NULL;
em->func.open = NULL;
em->func.close = NULL;
em->api = NULL;
}
return 0;
return 1;
}
void
@ -302,22 +386,15 @@ evas_module_unload(Evas_Module *em)
{
if (!em->loaded)
return;
if (em->handle)
{
em->func.close(em);
dlclose(em->handle);
}
em->handle = NULL;
em->func.open = NULL;
em->func.close = NULL;
em->api = NULL;
if (em->public == NULL)
return ;
em->public->func.close(em);
em->loaded = 0;
#ifdef BUILD_ASYNC_PRELOAD
#ifdef BUILD_ASYNC_PRELOAD
LKD(em->lock);
#endif
//#if defined(BUILD_PTHREAD) && defined(BUILD_ASYNC_PRELOAD)
// pthread_mutex_destroy(&em->lock);
//#endif
}
void
@ -325,18 +402,11 @@ evas_module_ref(Evas_Module *em)
{
#ifdef BUILD_ASYNC_PRELOAD
LKL(em->lock);
#endif
//#if defined(BUILD_PTHREAD) && defined(BUILD_ASYNC_PRELOAD)
// pthread_mutex_lock(&em->lock);
//#endif
#endif
em->ref++;
/* printf("M: %s ref++ = %i\n", em->name, em->ref); */
#ifdef BUILD_ASYNC_PRELOAD
LKU(em->lock);
#endif
//#if defined(BUILD_PTHREAD) && defined(BUILD_ASYNC_PRELOAD)
// pthread_mutex_unlock(&em->lock);
//#endif
}
void
@ -344,18 +414,11 @@ evas_module_unref(Evas_Module *em)
{
#ifdef BUILD_ASYNC_PRELOAD
LKL(em->lock);
#endif
//#if defined(BUILD_PTHREAD) && defined(BUILD_ASYNC_PRELOAD)
// pthread_mutex_lock(&em->lock);
//#endif
#endif
em->ref--;
/* printf("M: %s ref-- = %i\n", em->name, em->ref); */
#ifdef BUILD_ASYNC_PRELOAD
LKU(em->lock);
#endif
//#if defined(BUILD_PTHREAD) && defined(BUILD_ASYNC_PRELOAD)
// pthread_mutex_unlock(&em->lock);
//#endif
}
static int use_count = 0;
@ -370,10 +433,10 @@ void
evas_module_clean(void)
{
static int call_count = 0;
int ago;
/* int ago; */
int noclean = -1;
Eina_List *l;
Evas_Module *em;
/* Eina_List *l; */
/* Evas_Module *em; */
/* only clean modules every 256 calls */
call_count++;
@ -393,64 +456,51 @@ evas_module_clean(void)
/* disable module cleaning for now - may cause instability with some modules */
return;
/* incriment use counter = 28bits */
use_count++;
if (use_count > 0x0fffffff) use_count = 0;
/* FIXME: Don't know what it is supposed to do. */
/* /\* incriment use counter = 28bits *\/ */
/* use_count++; */
/* if (use_count > 0x0fffffff) use_count = 0; */
/* printf("CLEAN!\n"); */
/* go through all modules */
EINA_LIST_FOREACH(evas_modules, l, em)
{
/* printf("M %s %i %i\n", em->name, em->ref, em->loaded); */
/* if the module is refernced - skip */
if ((em->ref > 0) || (!em->loaded)) continue;
/* how many clean cycles ago was this module last used */
ago = use_count - em->last_used;
if (em->last_used > use_count) ago += 0x10000000;
/* if it was used last more than N clean cycles ago - unload */
if (ago > 5)
{
/* printf(" UNLOAD %s\n", em->name); */
evas_module_unload(em);
}
}
/* /\* printf("CLEAN!\n"); *\/ */
/* /\* go through all modules *\/ */
/* EINA_LIST_FOREACH(evas_modules, l, em) */
/* { */
/* /\* printf("M %s %i %i\n", em->name, em->ref, em->loaded); *\/ */
/* /\* if the module is refernced - skip *\/ */
/* if ((em->ref > 0) || (!em->loaded)) continue; */
/* /\* how many clean cycles ago was this module last used *\/ */
/* ago = use_count - em->last_used; */
/* if (em->last_used > use_count) ago += 0x10000000; */
/* /\* if it was used last more than N clean cycles ago - unload *\/ */
/* if (ago > 5) */
/* { */
/* /\* printf(" UNLOAD %s\n", em->name); *\/ */
/* evas_module_unload(em); */
/* } */
/* } */
}
/* will dlclose all the modules loaded and free all the structs */
void
evas_module_shutdown(void)
{
Evas_Module *em;
Eina_Module *en;
char *path;
int i;
/* printf("[shutdown modules]\n"); */
while (evas_modules)
{
em = (Evas_Module *)evas_modules->data;
evas_module_unload(em);
if (em->name) free(em->name);
if (em->path) free(em->path);
if (em->type == EVAS_MODULE_TYPE_ENGINE)
{
if (em->data) free(em->data);
}
else if (em->type == EVAS_MODULE_TYPE_IMAGE_LOADER)
{
}
else if (em->type == EVAS_MODULE_TYPE_IMAGE_SAVER)
{
}
free(evas_modules->data);
evas_modules = eina_list_remove_list(evas_modules, evas_modules);
}
while (evas_module_paths)
{
Evas_Module_Path *mp;
for (i = 0; evas_static_module[i].shutdown != NULL; ++i)
evas_static_module[i].shutdown();
mp = evas_module_paths->data;
evas_module_paths = eina_list_remove_list(evas_module_paths, evas_module_paths);
free(mp->path);
free(mp);
}
EINA_LIST_FREE(eina_evas_modules, en)
eina_module_delete(en);
eina_hash_free(evas_modules[EVAS_MODULE_TYPE_ENGINE]);
eina_hash_free(evas_modules[EVAS_MODULE_TYPE_IMAGE_LOADER]);
eina_hash_free(evas_modules[EVAS_MODULE_TYPE_IMAGE_SAVER]);
eina_hash_free(evas_modules[EVAS_MODULE_TYPE_OBJECT]);
EINA_LIST_FREE(evas_module_paths, path)
free(path);
}
EAPI int

View File

@ -3,16 +3,16 @@
/* the module api version */
#define EVAS_MODULE_API_VERSION 1
#define EVAS_MODULE_API_VERSION 2
/* the module types */
typedef enum _Evas_Module_Type
{
EVAS_MODULE_TYPE_ENGINE,
EVAS_MODULE_TYPE_IMAGE_LOADER,
EVAS_MODULE_TYPE_IMAGE_SAVER,
EVAS_MODULE_TYPE_OBJECT
EVAS_MODULE_TYPE_ENGINE = 0,
EVAS_MODULE_TYPE_IMAGE_LOADER = 1,
EVAS_MODULE_TYPE_IMAGE_SAVER = 2,
EVAS_MODULE_TYPE_OBJECT = 3
} Evas_Module_Type;
@ -20,40 +20,34 @@ typedef struct _Evas_Module_Api Evas_Module_Api;
typedef struct _Evas_Module Evas_Module;
typedef struct _Evas_Module_Path Evas_Module_Path;
typedef struct _Evas_Module_Engine Evas_Module_Engine;
typedef struct _Evas_Module_Public Evas_Module_Public;
/* the module api structure, all modules should define this struct */
struct _Evas_Module_Api
{
int version;
Evas_Module_Type type;
const char *name;
const char *author;
};
/* the module structure */
struct _Evas_Module
{
Evas_Module_Api *api;
void *handle; /* the dlopen handle */
char *path; /* the path where this modules is */
char *name; /* the name of the dir where this module is */
struct
{
int (*open)(Evas_Module *);
void (*close)(Evas_Module *);
} func;
void *functions; /* this are the functions exported by the module */
void *data; /* some internal data for the module i.e the id for engines */
};
Evas_Module_Type type; /* the type detected by the path */
/* the module structure */
struct _Evas_Module
{
const Evas_Module_Api *public;
void *functions; /* this are the functions exported by the module */
int id_engine; /* some internal data for the module i.e the id for engines */
int ref; /* how many refs */
int last_used; /* the cycle count when it was last used */
LK(lock);
//#if defined(HAVE_PTHREAD_H) && defined(BUILD_ASYNC_PRELOAD)
// pthread_mutex_t lock;
//#endif
unsigned char loaded : 1;
};
@ -68,14 +62,11 @@ struct _Evas_Module_Path
char *path;
};
struct _Evas_Module_Engine
{
int id;
};
void evas_module_paths_init (void);
void evas_module_init (void);
Evas_Module *evas_module_find_type (Evas_Module_Type type, const char *name);
Evas_Module *evas_module_engine_get(int render_method);
void evas_module_foreach_image_loader(Eina_Hash_Foreach cb, const void *fdata);
int evas_module_load (Evas_Module *em);
void evas_module_unload (Evas_Module *em);
void evas_module_ref (Evas_Module *em);
@ -83,6 +74,21 @@ void evas_module_unref (Evas_Module *em);
void evas_module_use (Evas_Module *em);
void evas_module_clean (void);
void evas_module_shutdown (void);
Eina_Bool evas_module_register (const Evas_Module_Api *module, Evas_Module_Type type);
Eina_Bool evas_module_unregister (const Evas_Module_Api *module, Evas_Module_Type type);
#define EVAS_MODULE_DEFINE(Type, Tn, Name) \
Eina_Bool evas_##Tn##_##Name##_init(void) \
{ \
return evas_module_register(&evas_modapi, Type); \
} \
void evas_##Tn##_##Name##_shutdown(void) \
{ \
evas_module_unregister(&evas_modapi, Type); \
}
#define EVAS_EINA_MODULE_DEFINE(Tn, Name) \
EINA_MODULE_INIT(evas_##Tn##_##Name##_init); \
EINA_MODULE_SHUTDOWN(evas_##Tn##_##Name##_shutdown);
#endif /* _EVAS_MODULE_H */

View File

@ -1,25 +1,65 @@
MAINTAINERCLEANFILES = Makefile.in
SUBDIRS = \
software_generic \
buffer \
directfb \
fb \
gl_common \
gl_x11 \
gl_glew \
software_gdi \
software_ddraw \
software_x11 \
xrender_x11 \
software_sdl \
software_16 \
software_16_x11 \
direct3d \
software_16_ddraw \
software_16_wince \
software_16_sdl \
quartz
SUBDIRS =
if !EVAS_STATIC_BUILD_SOFTWARE_GENERIC
SUBDIRS += software_generic
endif
if !EVAS_STATIC_BUILD_BUFFER
SUBDIRS += buffer
endif
if !EVAS_STATIC_BUILD_DIRECT3D
SUBDIRS += direct3d
endif
if !EVAS_STATIC_BUILD_DIRECTFB
SUBDIRS += directfb
endif
if !EVAS_STATIC_BUILD_FB
SUBDIRS += fb
endif
if !EVAS_STATIC_BUILD_GL_GLEW
SUBDIRS += gl_common gl_glew
endif
if !EVAS_STATIC_BUILD_GL_X11
SUBDIRS += gl_common gl_x11
endif
if !EVAS_STATIC_BUILD_QUARTZ
SUBDIRS += quartz
endif
if !EVAS_STATIC_BUILD_SOFTWARE_16
SUBDIRS += software_16
endif
if !EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW
SUBDIRS += software_16_ddraw
endif
if !EVAS_STATIC_BUILD_SOFTWARE_16_WINCE
SUBDIRS += software_16_wince
endif
if !EVAS_STATIC_BUILD_SOFTWARE_16_X11
SUBDIRS += software_16_x11
endif
if !EVAS_STATIC_BUILD_SOFTWARE_SDL
SUBDIRS += software_16_sdl software_sdl
endif
if !EVAS_STATIC_BUILD_SOFTWARE_DDRAW
SUBDIRS += software_ddraw
endif
if !EVAS_STATIC_BUILD_SOFTWARE_GDI
SUBDIRS += software_gdi
endif
if !EVAS_STATIC_BUILD_SOFTWARE_X11
SUBDIRS += software_x11
endif
if !EVAS_STATIC_BUILD_XRENDER_X11
SUBDIRS += xrender_x11
endif
#if !EVAS_STATIC_BUILD_CAIRO_X11
#SUBDIRS +=
#cairo_common
#cairo_x11
#software_qtopia
#endif
#if !EVAS_STATIC_BUILD_SOFTWARE_QTOPIA
#SUBDIRS += software_qtopia
#endif

View File

@ -13,20 +13,30 @@ AM_CFLAGS = @WIN32_CFLAGS@
if BUILD_ENGINE_BUFFER
pkgdir = $(libdir)/evas/modules/engines/buffer/$(MODULE_ARCH)
pkg_LTLIBRARIES = module.la
module_la_SOURCES = \
BUFFER_SOURCES = \
evas_engine.c \
evas_outbuf.c
pkgdir = $(libdir)/evas/modules/engines/buffer/$(MODULE_ARCH)
include_HEADERS = Evas_Engine_Buffer.h
if !EVAS_STATIC_BUILD_BUFFER
pkg_LTLIBRARIES = module.la
module_la_SOURCES = $(BUFFER_SOURCES)
module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@
module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
include_HEADERS = Evas_Engine_Buffer.h
else
noinst_LTLIBRARIES = libevas_engine_buffer.la
libevas_engine_buffer_la_SOURCES = $(BUFFER_SOURCES)
endif
endif
EXTRA_DIST = evas_engine.h

View File

@ -323,7 +323,7 @@ eng_output_idle_flush(void *data)
}
/* module advertising code */
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -351,15 +351,25 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_ENGINE,
"buffer",
"none"
EVAS_MODULE_API_VERSION,
"buffer",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, buffer);
#ifndef EVAS_STATIC_BUILD_BUFFER
EVAS_EINA_MODULE_DEFINE(engine, buffer);
#endif

View File

@ -12,20 +12,34 @@ AM_CPPFLAGS = \
if BUILD_ENGINE_CAIRO_X11
pkgdir = $(libdir)/evas/modules/engines/cairo_x11/$(MODULE_ARCH)
pkg_LTLIBRARIES = module.la
module_la_SOURCES = \
CAIRO_X11_SOURCES = \
evas_engine.c \
evas_x_main.c
module_la_LIBADD = @EINA_LIBS@ @evas_engine_cairo_x11_libs@ $(top_builddir)/src/modules/engines/cairo_common/libevas_engine_cairo_common.la $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
CAIRO_X11_LIBADD = @evas_engine_cairo_x11_libs@ $(top_builddir)/src/modules/engines/cairo_common/libevas_engine_cairo_common.la
pkgdir = $(libdir)/evas/modules/engines/cairo_x11/$(MODULE_ARCH)
include_HEADERS = Evas_Engine_Cairo_X11.h
if !EVAS_STATIC_BUILD_CAIRO_X11
pkg_LTLIBRARIES = module.la
module_la_SOURCES = $(CAIRO_X11_SOURCES)
module_la_LIBADD = @EINA_LIBS@ $(CAIRO_X11_SOURCES) $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_engine_cairo_x11.la
libevas_engine_cairo_x11_la_SOURCES = $(CAIRO_X11_SOURCES)
libevas_engine_cairo_x11_la_LIBADD = $(CAIRO_X11_LIBADD)
endif
endif
EXTRA_DIST = evas_engine.h

View File

@ -1478,7 +1478,7 @@ eng_font_hinting_can_hint(void *data, int hinting)
re = (Render_Engine *)data;
}
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -1486,16 +1486,24 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_ENGINE,
"cairo_x11",
"none"
"cairo_x11",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, cairo_x11);
#ifndef EVAS_STATIC_BUILD_CAIRO_X11
EVAS_EINA_MODULE_DEFINE(engine, cairo_x11);
#endif

View File

@ -12,10 +12,7 @@ AM_CPPFLAGS = \
if BUILD_ENGINE_DIRECT3D
pkgdir = $(libdir)/evas/modules/engines/direct3d/$(MODULE_ARCH)
pkg_LTLIBRARIES = module.la
module_la_SOURCES = \
DIRECT3D_SOURCES = \
evas_engine.c \
evas_direct3d_context.cpp \
evas_direct3d_device.cpp \
@ -30,13 +27,29 @@ evas_direct3d_scene.cpp \
evas_direct3d_shader_pack.cpp \
evas_direct3d_vertex_buffer_cache.cpp
module_la_CXXFLAGS = -fno-exceptions
module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ @evas_engine_direct3d_libs@
module_la_LDFLAGS = -no-undefined -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
DIRECT3D_LIBADD = @evas_engine_direct3d_libs@
pkgdir = $(libdir)/evas/modules/engines/direct3d/$(MODULE_ARCH)
include_HEADERS = Evas_Engine_Direct3D.h
if !EVAS_STATIC_BUILD_DIRECT3D
pkg_LTLIBRARIES = module.la
module_la_SOURCES = $(DIRECT3D_SOURCES)
module_la_CXXFLAGS = -fno-exceptions
module_la_LIBADD = $(top_builddir)/src/lib/libevas.la $(DIRECT3D_LIBADD) @EINA_LIBS@
module_la_LDFLAGS = -no-undefined -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_engine_direct3d.la
libevas_engine_direct3d_la_SOURCES = $(DIRECT3D_SOURCES)
libevas_engine_direct3d_la_LIBADD = $(DIRECT3D_LIBADD)
endif
endif
EXTRA_DIST = \

View File

@ -527,7 +527,7 @@ eng_gradient2_radial_draw(void *data, void *context, void *surface, void *radial
/* module advertising code */
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -600,15 +600,24 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_ENGINE,
"direct3d",
"none"
EVAS_MODULE_API_VERSION,
"direct3d",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, direct3d);
#ifndef EVAS_STATIC_BUILD_DIRECT3D
EVAS_EINA_MODULE_DEFINE(engine, direct3d);
#endif

View File

@ -14,18 +14,31 @@ AM_CFLAGS = @WIN32_CFLAGS@
if BUILD_ENGINE_DIRECTFB
DIRECTFB_SOURCES = evas_engine.c polygon.c
DIRECTFB_LIBADD = @evas_engine_directfb_libs@
pkgdir = $(libdir)/evas/modules/engines/directfb/$(MODULE_ARCH)
pkg_LTLIBRARIES = module.la
module_la_SOURCES = evas_engine.c polygon.c
module_la_LIBADD = @EINA_LIBS@ @evas_engine_directfb_libs@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
include_HEADERS = Evas_Engine_DirectFB.h
if !EVAS_STATIC_BUILD_DIRECTFB
pkg_LTLIBRARIES = module.la
module_la_SOURCES = $(DIRECTFB_SOURCES)
module_la_LIBADD = @EINA_LIBS@ $(DIRECTFB_LIBADD) $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_engine_directfb.la
libevas_engine_directfb_la_SOURCES = $(DIRECTFB_SOURCES)
libevas_engine_directfb_la_LIBADD = $(DIRECTFB_LIBADD)
endif
endif
EXTRA_DIST = evas_engine.h

View File

@ -1611,7 +1611,7 @@ evas_engine_dfb_image_scale_hint_get(void *data __UNUSED__, void *image)
return EVAS_IMAGE_SCALE_HINT_NONE;
}
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -1666,15 +1666,24 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_ENGINE,
"directfb",
"ProFUSION embedded systems"
EVAS_MODULE_API_VERSION,
"directfb",
"ProFUSION embedded systems",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, directfb);
#ifndef EVAS_STATIC_BUILD_DIRECTFB
EVAS_EINA_MODULE_DEFINE(engine, directfb);
#endif

View File

@ -12,20 +12,33 @@ AM_CPPFLAGS = \
if BUILD_ENGINE_FB
pkgdir = $(libdir)/evas/modules/engines/fb/$(MODULE_ARCH)
pkg_LTLIBRARIES = module.la
module_la_SOURCES = \
FB_SOURCES = \
evas_engine.c \
evas_fb_main.c \
evas_outbuf.c
module_la_LIBADD = @EINA_LIBS@ @evas_engine_fb_libs@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
FB_LIBADD = @evas_engine_fb_libs@
pkgdir = $(libdir)/evas/modules/engines/fb/$(MODULE_ARCH)
include_HEADERS = Evas_Engine_FB.h
if !EVAS_STATIC_BUILD_FB
pkg_LTLIBRARIES = module.la
module_la_SOURCES = $(FB_SOURCES)
module_la_LIBADD = @EINA_LIBS@ $(FB_LIBADD) $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_engine_fb.la
libevas_engine_fb_la_SOURCES = $(FB_SOURCES)
libevas_engine_fb_la_LIBADD = $(FB_LIBADD)
endif
endif
EXTRA_DIST = \

View File

@ -248,7 +248,7 @@ eng_output_idle_flush(void *data)
}
/* module advertising code */
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -276,15 +276,24 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_ENGINE,
"fb",
"none"
EVAS_MODULE_API_VERSION,
"fb",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, fb);
#ifndef EVAS_STATIC_BUILD_FB
EVAS_EINA_MODULE_DEFINE(engine, fb);
#endif

View File

@ -12,20 +12,33 @@ AM_CPPFLAGS = \
if BUILD_ENGINE_GL_GLEW
pkgdir = $(libdir)/evas/modules/engines/gl_glew/$(MODULE_ARCH)
pkg_LTLIBRARIES = module.la
module_la_SOURCES = \
GL_GLEW_SOURCES = \
evas_engine.c \
evas_glew_main.c
module_la_LIBADD = $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la $(top_builddir)/src/lib/libevas.la @evas_engine_gl_glew_libs@
module_la_LDFLAGS = -no-undefined -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
GL_GLEW_LIBADD = @evas_engine_gl_glew_libs@ $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la
pkgdir = $(libdir)/evas/modules/engines/gl_glew/$(MODULE_ARCH)
include_HEADERS = Evas_Engine_GL_Glew.h
if !EVAS_STATIC_BUILD_GL_GLEW
pkg_LTLIBRARIES = module.la
module_la_SOURCES = $(GL_GLEW_SOURCES)
module_la_LIBADD = $(GL_GLEW_LIBADD) $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_engine_gl_glew.la
libevas_engine_gl_glew_la_SOURCES = $(GL_GLEW_SOURCES)
libevas_engine_gl_glew_la_LIBADD = $(GL_GLEW_LIBADD)
endif
endif
EXTRA_DIST = evas_engine.h

View File

@ -922,8 +922,7 @@ eng_font_draw(void *data, void *context, void *surface, void *font, int x, int y
}
}
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -1004,16 +1003,24 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_ENGINE,
"gl_glew",
"none"
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, gl_glew);
#ifndef EVAS_STATIC_BUILD_GL_GLEW
EVAS_EINA_MODULE_DEFINE(engine, gl_glew);
#endif

View File

@ -12,20 +12,33 @@ AM_CPPFLAGS = \
if BUILD_ENGINE_GL_X11
pkgdir = $(libdir)/evas/modules/engines/gl_x11/$(MODULE_ARCH)
pkg_LTLIBRARIES = module.la
module_la_SOURCES = \
GL_X11_SOURCES = \
evas_engine.c \
evas_x_main.c
module_la_LIBADD = @EINA_LIBS@ @evas_engine_gl_x11_libs@ $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
GL_X11_LIBADD = @evas_engine_gl_x11_libs@ $(top_builddir)/src/modules/engines/gl_common/libevas_engine_gl_common.la
pkgdir = $(libdir)/evas/modules/engines/gl_x11/$(MODULE_ARCH)
include_HEADERS = Evas_Engine_GL_X11.h
if !EVAS_STATIC_BUILD_GL_X11
pkg_LTLIBRARIES = module.la
module_la_SOURCES = $(GL_X11_SOURCES)
module_la_LIBADD = @EINA_LIBS@ $(GL_X11_LIBADD) $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_engine_gl_x11.la
libevas_engine_gl_x11_la_SOURCES = $(GL_X11_SOURCES)
libevas_engine_gl_x11_la_LIBADD = $(GL_X11_LIBADD)
endif
endif
EXTRA_DIST = evas_engine.h

View File

@ -1086,7 +1086,7 @@ eng_best_depth_get(Display *disp, int screen)
return _evas_gl_x11_vi->depth;
}
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -1189,16 +1189,24 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_ENGINE,
"gl_x11",
"none"
"gl_x11",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, gl_x11);
#ifndef EVAS_STATIC_BUILD_GL_X11
EVAS_EINA_MODULE_DEFINE(engine, gl_x11);
#endif

View File

@ -11,18 +11,30 @@ AM_CPPFLAGS = \
if BUILD_ENGINE_QUARTZ
QUARTZ_SOURCES = evas_engine.c
QUARTZ_LIBADD = @evas_engine_quartz_libs@
pkgdir = $(libdir)/evas/modules/engines/quartz/$(MODULE_ARCH)
pkg_LTLIBRARIES = module.la
module_la_SOURCES = evas_engine.c
module_la_LIBADD = @EINA_LIBS@ @evas_engine_quartz_libs@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
include_HEADERS = Evas_Engine_Quartz.h
if !EVAS_STATIC_BUILD_QUARTZ
pkg_LTLIBRARIES = module.la
module_la_SOURCES = $(QUARTZ_SOURCES)
module_la_LIBADD = @EINA_LIBS@ $(QUARTZ_LIBADD) $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_engine_quartz.la
libevas_engine_quartz_la_SOURCES = $(QUARTZ_SOURCES)
libevas_engine_quartz_la_LIBADD = $(QUARTZ_LIBADD)
endif
endif
EXTRA_DIST = \

View File

@ -1412,7 +1412,7 @@ eng_font_draw(void *data, void *context, void *surface, void *font, int x, int y
#pragma mark Module Function Export
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -1511,16 +1511,25 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_ENGINE,
"quartz",
"none"
"quartz",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, quartz);
#ifndef EVAS_STATIC_BUILD_QUARTZ
EVAS_EINA_MODULE_DEFINE(engine, quartz);
#endif

View File

@ -13,14 +13,26 @@ AM_CFLAGS = @WIN32_CFLAGS@
if BUILD_ENGINE_SOFTWARE_16
SOFTWARE_16_SOURCES = evas_engine.c
pkgdir = $(libdir)/evas/modules/engines/software_16/$(MODULE_ARCH)
pkg_LTLIBRARIES = module.la
module_la_SOURCES = \
evas_engine.c
if !EVAS_STATIC_BUILD_SOFTWARE_16
pkg_LTLIBRARIES = module.la
module_la_SOURCES = $(SOFTWARE_16_SOURCES)
module_la_LIBADD = @EINA_LIBS@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_engine_software_16.la
libevas_engine_software_16_la_SOURCES = $(SOFTWARE_16_SOURCES)
endif
endif
EXTRA_DIST = \
evas_engine.c

View File

@ -984,7 +984,7 @@ static Evas_Func func =
*****
*/
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -992,15 +992,24 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_ENGINE,
"software_16",
"none"
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_16);
#ifndef EVAS_STATIC_BUILD_SOFTWARE_16
EVAS_EINA_MODULE_DEFINE(engine, software_16);
#endif

View File

@ -13,22 +13,35 @@ AM_CPPFLAGS = \
if BUILD_ENGINE_SOFTWARE_16_DDRAW
pkgdir = $(libdir)/evas/modules/engines/software_16_ddraw/$(MODULE_ARCH)
pkg_LTLIBRARIES = module.la
module_la_SOURCES = \
SOFTWARE_16_DDRAW_SOURCES = \
evas_engine.c \
evas_ddraw_buffer.cpp \
evas_ddraw_main.cpp
module_la_CXXFLAGS = -fno-rtti -fno-exceptions
module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ @evas_engine_software_16_ddraw_libs@
module_la_LDFLAGS = -no-undefined -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
SOFTWARE_16_DDRAW_LIBADD = @evas_engine_software_16_ddraw_libs@
pkgdir = $(libdir)/evas/modules/engines/software_16_ddraw/$(MODULE_ARCH)
include_HEADERS = Evas_Engine_Software_16_DDraw.h
if !EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW
pkg_LTLIBRARIES = module.la
module_la_SOURCES = $(SOFTWARE_16_DDRAW_SOURCES)
module_la_CXXFLAGS = -fno-rtti -fno-exceptions
module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ $(SOFTWARE_16_DDRAW_LIBADD)
module_la_LDFLAGS = -no-undefined -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_engine_software_16_ddraw.la
libevas_engine_software_16_ddraw_la_SOURCES = $(SOFTWARE_16_DDRAW_SOURCES)
libevas_engine_software_16_ddraw_la_LIBADD = $(SOFTWARE_16_DDRAW_LIBADD)
endif
endif
EXTRA_DIST = evas_engine.h

View File

@ -564,7 +564,7 @@ eng_output_idle_flush(void *data)
/* module advertising code */
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -592,15 +592,24 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_ENGINE,
"software_16_ddraw",
"none"
"software_16_ddraw",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_16_ddraw);
#ifndef EVAS_STATIC_BUILD_SOFTWARE_16_DDRAW
EVAS_EINA_MODULE_DEFINE(engine, software_16_ddraw);
#endif

View File

@ -6,19 +6,31 @@ INCLUDES = -I. -I$(top_srcdir)/src/lib -I$(top_srcdir)/src/lib/include @FREETYPE
if BUILD_ENGINE_SOFTWARE_SDL
SOFTWARE_SDL_SOURCES = \
evas_engine.c \
evas_engine.h
pkgdir = $(libdir)/evas/modules/engines/software_16_sdl/$(MODULE_ARCH)
include_HEADERS = Evas_Engine_SDL_16.h
if !EVAS_STATIC_BUILD_SOFTWARE_SDL
pkg_LTLIBRARIES = module.la
module_la_SOURCES = \
evas_engine.c \
evas_engine.h
module_la_SOURCES = $(SOFTWARE_SDL_SOURCES)
module_la_LIBADD = @EINA_LIBS@ @SDL_LIBS@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined -module -avoid-version -L$(top_builddir)/src/lib -L$(top_builddir)/src/lib/.libs
include_HEADERS = Evas_Engine_SDL_16.h
else
noinst_LTLIBRARIES = libevas_engine_software_16_sdl.la
libevas_engine_software_16_sdl_la_SOURCES = $(SOFTWARE_SDL_SOURCES)
libevas_engine_software_16_sdl_la_LIBADD = @SDL_LIBS@
endif
endif
EXTRA_DIST = \

View File

@ -1019,7 +1019,7 @@ evas_engine_sdl16_image_stride_get(void *data __UNUSED__, void *image, int *stri
}
/* module advertising code */
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -1079,19 +1079,28 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_ENGINE,
"software_16_sdl",
"none"
EVAS_MODULE_API_VERSION,
"software_16_sdl",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_16_sdl);
#ifndef EVAS_STATIC_BUILD_SOFTWARE_SDL
EVAS_EINA_MODULE_DEFINE(engine, software_16_sdl);
#endif
static Engine_Image_Entry*
_sdl16_image_alloc(void)
{

View File

@ -16,11 +16,7 @@ AM_CPPFLAGS = \
if BUILD_ENGINE_SOFTWARE_16_WINCE
pkgdir = $(libdir)/evas/modules/engines/software_16_wince/$(MODULE_ARCH)
pkg_LTLIBRARIES = module.la
module_la_SOURCES = \
SOFTWARE_16_WINCE_SOURCE = \
evas_engine.c \
evas_wince_ddraw_buffer.cpp \
evas_wince_fb_buffer.c \
@ -28,14 +24,31 @@ evas_wince_gapi_buffer.c \
evas_wince_gdi_buffer.c \
evas_wince_gapi.rc
module_la_CFLAGS = @WIN32_CFLAGS@
module_la_CXXFLAGS = -fno-rtti -fno-exceptions
module_la_LIBADD = @EINA_LIBS@ $(top_builddir)/src/lib/libevas.la @evas_engine_software_16_wince_libs@
module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
SOFTWARE_16_WINCE_LIBADD = @evas_engine_software_16_wince_libs@
pkgdir = $(libdir)/evas/modules/engines/software_16_wince/$(MODULE_ARCH)
include_HEADERS = Evas_Engine_Software_16_WinCE.h
if !EVAS_STATIC_BUILD_SOFTWARE_16_WINCE
pkg_LTLIBRARIES = module.la
module_la_SOURCES = $(SOFTWARE_16_WINCE_SOURCE)
module_la_CFLAGS = @WIN32_CFLAGS@
module_la_CXXFLAGS = -fno-rtti -fno-exceptions
module_la_LIBADD = @EINA_LIBS@ $(top_builddir)/src/lib/libevas.la $(SOFTWARE_16_WINCE_LIBADD)
module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_engine_software_16_wince.la
libevas_engine_software_16_wince_la_SOURCES = $(SOFTWARE_16_WINCE_SOURCE)
libevas_engine_software_16_wince_la_LIBADD = $(SOFTWARE_16_WINCE_LIBADD)
endif
endif
EXTRA_DIST = evas_engine.h

View File

@ -705,7 +705,7 @@ eng_output_idle_flush(void *data)
/* module advertising code */
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -733,15 +733,24 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_ENGINE,
"software_16_wince_fb",
"none"
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_16_wince_fb);
#ifndef EVAS_STATIC_BUILD_SOFTWARE_16_WINCE_FB
EVAS_EINA_MODULE_DEFINE(engine, software_16_wince_fb);
#endif

View File

@ -13,20 +13,33 @@ AM_CPPFLAGS = \
if BUILD_ENGINE_SOFTWARE_16_X11
pkgdir = $(libdir)/evas/modules/engines/software_16_x11/$(MODULE_ARCH)
pkg_LTLIBRARIES = module.la
module_la_SOURCES = \
SOFTWARE_16_X11_SOURCES = \
evas_engine.c \
evas_x_buffer.c
module_la_LIBADD = @EINA_LIBS@ @evas_engine_software_16_x11_libs@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
SOFTWARE_16_X11_LIBADD = @evas_engine_software_16_x11_libs@
pkgdir = $(libdir)/evas/modules/engines/software_16_x11/$(MODULE_ARCH)
include_HEADERS = Evas_Engine_Software_16_X11.h
if !EVAS_STATIC_BUILD_SOFTWARE_16_X11
pkg_LTLIBRARIES = module.la
module_la_SOURCES = $(SOFTWARE_16_X11_SOURCES)
module_la_LIBADD = @EINA_LIBS@ $(SOFTWARE_16_X11_LIBADD) $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_engine_software_16_x11.la
libevas_engine_software_16_x11_la_SOURCES = $(SOFTWARE_16_X11_SOURCES)
libevas_engine_software_16_x11_la_LIBADD = $(SOFTWARE_16_X11_LIBADD)
endif
endif
EXTRA_DIST = evas_engine.h

View File

@ -544,7 +544,7 @@ eng_output_idle_flush(void *data)
/* module advertising code */
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -572,15 +572,25 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_ENGINE,
"software_16_x11",
"none"
EVAS_MODULE_API_VERSION,
"software_16_x11",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_16_x11);
#ifndef EVAS_STATIC_BUILD_SOFTWARE_16_X11
EVAS_EINA_MODULE_DEFINE(engine, software_16_x11);
#endif

View File

@ -12,22 +12,35 @@ AM_CPPFLAGS = \
if BUILD_ENGINE_SOFTWARE_DDRAW
pkgdir = $(libdir)/evas/modules/engines/software_ddraw/$(MODULE_ARCH)
pkg_LTLIBRARIES = module.la
module_la_SOURCES = \
SOFTWARE_DDRAW_SOURCES = \
evas_engine.c \
evas_outbuf.c \
evas_ddraw_buffer.c \
evas_ddraw_main.cpp
module_la_CXXFLAGS = -fno-rtti -fno-exceptions
module_la_LIBADD = @EINA_LIBS@ @evas_engine_software_ddraw_libs@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
SOFTWARE_DDRAW_LIBADD = @evas_engine_software_ddraw_libs@
pkgdir = $(libdir)/evas/modules/engines/software_ddraw/$(MODULE_ARCH)
include_HEADERS = Evas_Engine_Software_DDraw.h
if !EVAS_STATIC_BUILD_SOFTWARE_DDRAW
pkg_LTLIBRARIES = module.la
module_la_SOURCES = $(SOFTWARE_DDRAW_SOURCES)
module_la_CXXFLAGS = -fno-rtti -fno-exceptions
module_la_LIBADD = @EINA_LIBS@ $(SOFTWARE_DDRAW_LIBADD) $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_engine_software_ddraw.la
libevas_engine_software_ddraw_la_SOURCES = $(SOFTWARE_DDRAW_SOURCES)
libevas_engine_software_ddraw_la_LIBADD = $(SOFTWARE_DDRAW_LIBADD)
endif
endif
EXTRA_DIST = evas_engine.h

View File

@ -311,7 +311,7 @@ eng_output_idle_flush(void *data)
/* module advertising code */
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -339,15 +339,24 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_ENGINE,
"software_ddraw",
"none"
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_ddraw);
#ifndef EVAS_STATIC_BUILD_SOFTWARE_DDRAW
EVAS_EINA_MODULE_DEFINE(engine, software_ddraw);
#endif

View File

@ -12,21 +12,34 @@ AM_CPPFLAGS = \
if BUILD_ENGINE_SOFTWARE_GDI
pkgdir = $(libdir)/evas/modules/engines/software_gdi/$(MODULE_ARCH)
pkg_LTLIBRARIES = module.la
module_la_SOURCES = \
SOFTWARE_GDI_SOURCES = \
evas_engine.c \
evas_outbuf.c \
evas_gdi_buffer.c \
evas_gdi_main.c
module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ @evas_engine_software_gdi_libs@
module_la_LDFLAGS = -no-undefined -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
SOFTWARE_GDI_LIBADD = @evas_engine_software_gdi_libs@
pkgdir = $(libdir)/evas/modules/engines/software_gdi/$(MODULE_ARCH)
include_HEADERS = Evas_Engine_Software_Gdi.h
if !EVAS_STATIC_BUILD_SOFTWARE_GDI
pkg_LTLIBRARIES = module.la
module_la_SOURCES = $(SOFTWARE_GDI_SOURCES)
module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ $(SOFTWARE_GDI_LIBADD)
module_la_LDFLAGS = -no-undefined -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_engine_software_gdi.la
libevas_engine_software_gdi_la_SOURCES = $(SOFTWARE_GDI_SOURCES)
libevas_engine_software_gdi_la_LIBADD = $(SOFTWARE_GDI_LIBADD)
endif
endif
EXTRA_DIST = evas_engine.h

View File

@ -321,7 +321,7 @@ eng_output_idle_flush(void *data)
/* module advertising code */
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -349,15 +349,24 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_ENGINE,
"software_gdi",
"none"
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_gdi);
#ifndef EVAS_STATIC_BUILD_SOFTWARE_GDI
EVAS_EINA_MODULE_DEFINE(engine, software_gdi);
#endif

View File

@ -11,12 +11,24 @@ AM_CPPFLAGS = \
AM_CFLAGS = @WIN32_CFLAGS@
SOFTWARE_GENERIC_SOURCES = evas_engine.c
pkgdir = $(libdir)/evas/modules/engines/software_generic/$(MODULE_ARCH)
if !EVAS_STATIC_BUILD_SOFTWARE_GENERIC
pkg_LTLIBRARIES = module.la
module_la_SOURCES = evas_engine.c
module_la_SOURCES = $(SOFTWARE_GENERIC_SOURCES)
module_la_LIBADD = @EINA_LIBS@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_engine_software_generic.la
libevas_engine_software_generic_la_SOURCES = $(SOFTWARE_GENERIC_SOURCES)
endif

View File

@ -1121,7 +1121,7 @@ static Evas_Func func =
*****
*/
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -1130,15 +1130,24 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_ENGINE,
"software_generic",
"none"
EVAS_MODULE_API_VERSION,
"software_generic",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_generic);
#ifndef EVAS_STATIC_BUILD_SOFTWARE_GENERIC
EVAS_EINA_MODULE_DEFINE(engine, software_generic);
#endif

View File

@ -14,20 +14,33 @@ AM_CXXFLAGS = $(CFLAGS) -DQT_QWS_EBX -DQT_QWS_CUSTOM -DQWS -DNO_DEBUG
if BUILD_ENGINE_SOFTWARE_QTOPIA
pkgdir = $(libdir)/evas/modules/engines/software_qtopia/$(MODULE_ARCH)
pkg_LTLIBRARIES = module.la
module_la_SOURCES = \
SOFTWARE_QTOPIA_SOURCES = \
evas_engine.c \
evas_outbuf.c \
evas_qt_main.cpp
module_la_LIBADD = @EINA_LIBS@ @evas_engine_software_qtopia_libs@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
SOFTWARE_QTOPIA_LIBADD = @evas_engine_software_qtopia_libs@
pkgdir = $(libdir)/evas/modules/engines/software_qtopia/$(MODULE_ARCH)
include_HEADERS = Evas_Engine_Software_Qtopia.h
if !EVAS_STATIC_BUILD_SOFTWARE_QTOPIA
pkg_LTLIBRARIES = module.la
module_la_SOURCES = $(SOFTWARE_QTOPIA_SOURCES)
module_la_LIBADD = @EINA_LIBS@ $(SOFTWARE_QTOPIA_LIBADD) $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_engine_software_qtopia.la
libevas_engine_software_qtopia_la_SOURCES = $(SOFTWARE_QTOPIA_SOURCES)
libevas_engine_software_qtopia_la_LIBADD = $(SOFTWARE_QTOPIA_LIBADD)
endif
endif
EXTRA_DIST = evas_engine.h

View File

@ -263,7 +263,7 @@ eng_output_idle_flush(void *data)
}
/* module advertising code */
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -291,15 +291,24 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_ENGINE,
"software_qtopia",
"none"
"software_qtopia",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_qtopia);
#ifndef EVAS_STATIC_BUILD_SOFTWARE_QTOPIA
EVAS_EINA_MODULE_DEFINE(engine, software_qtopia);
#endif

View File

@ -14,18 +14,30 @@ AM_CFLAGS = @WIN32_CFLAGS@
if BUILD_ENGINE_SOFTWARE_SDL
SOFTWARE_SDL_SOURCES = evas_engine.c
SOFTWARE_SDL_LIBADD = @evas_engine_software_sdl_libs@
pkgdir = $(libdir)/evas/modules/engines/software_sdl/$(MODULE_ARCH)
pkg_LTLIBRARIES = module.la
module_la_SOURCES = evas_engine.c
module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ @evas_engine_software_sdl_libs@
module_la_LDFLAGS = -no-undefined -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
include_HEADERS = Evas_Engine_SDL.h
if !EVAS_STATIC_BUILD_SOFTWARE_SDL
pkg_LTLIBRARIES = module.la
module_la_SOURCES = $(SOFTWARE_SDL_SOURCES)
module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ $(SOFTWARE_SDL_LIBADD)
module_la_LDFLAGS = -no-undefined -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_engine_software_sdl.la
libevas_engine_software_sdl_la_SOURCES = $(SOFTWARE_SDL_SOURCES)
libevas_engine_software_sdl_la_LIBADD = $(SOFTWARE_SDL_LIBADD)
endif
endif
EXTRA_DIST = evas_engine.h

View File

@ -817,7 +817,7 @@ evas_engine_sdl_gradient_draw(void *data __UNUSED__, void *context, void *surfac
SDL_UnlockSurface(eim->surface);
}
EAPI int module_open(Evas_Module *em)
static int module_open(Evas_Module *em)
{
if (!em) return 0;
/* get whatever engine module we inherit from */
@ -876,19 +876,28 @@ EAPI int module_open(Evas_Module *em)
return 1;
}
EAPI void module_close(void)
static void module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_ENGINE,
"software_sdl",
"none"
EVAS_MODULE_API_VERSION,
"software_sdl",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_sdl);
#ifndef EVAS_STATIC_BUILD_SOFTWARE_SDL
EVAS_EINA_MODULE_DEFINE(engine, software_sdl);
#endif
/* Private routines. */
static void*

View File

@ -13,20 +13,18 @@ AM_CPPFLAGS = \
if BUILD_ENGINE_SOFTWARE_X11
pkgdir = $(libdir)/evas/modules/engines/software_x11/$(MODULE_ARCH)
pkg_LTLIBRARIES = module.la
module_la_SOURCES = \
SOFTWARE_X11_SOURCES = \
evas_engine.c \
evas_xlib_outbuf.c \
evas_xlib_buffer.c \
evas_xlib_color.c \
evas_xlib_main.c
SOFTWARE_X11_LIBADD = @evas_engine_software_x11_libs@ @evas_engine_software_xcb_libs@
if BUILD_ENGINE_SOFTWARE_XCB
module_la_SOURCES += \
SOFTWARE_X11_SOURCES +=\
evas_xcb_outbuf.c \
evas_xcb_buffer.c \
evas_xcb_color.c \
@ -34,12 +32,27 @@ evas_xcb_main.c
endif
module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ @evas_engine_software_x11_libs@ @evas_engine_software_xcb_libs@
module_la_LDFLAGS = -no-undefined -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
pkgdir = $(libdir)/evas/modules/engines/software_x11/$(MODULE_ARCH)
include_HEADERS = Evas_Engine_Software_X11.h
if !EVAS_STATIC_BUILD_SOFTWARE_X11
pkg_LTLIBRARIES = module.la
module_la_SOURCES = $(SOFTWARE_X11_SOURCES)
module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ $(SOFTWARE_X11_LIBADD)
module_la_LDFLAGS = -no-undefined -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_engine_software_x11.la
libevas_engine_software_x11_la_SOURCES = $(SOFTWARE_X11_SOURCES)
libevas_engine_software_x11_la_LIBADD = $(SOFTWARE_X11_LIBADD)
endif
endif
EXTRA_DIST = \

View File

@ -613,7 +613,7 @@ eng_output_idle_flush(void *data)
/* module advertising code */
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -641,15 +641,25 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_ENGINE,
"software_x11",
"none"
"software_x11",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, software_x11);
#ifndef EVAS_STATIC_BUILD_SOFTWARE_X11
EVAS_EINA_MODULE_DEFINE(engine, software_x11);
#endif

View File

@ -13,11 +13,7 @@ AM_CPPFLAGS = \
if BUILD_ENGINE_XRENDER_X11
pkgdir = $(libdir)/evas/modules/engines/xrender_x11/$(MODULE_ARCH)
pkg_LTLIBRARIES = module.la
module_la_SOURCES = \
XRENDER_X11_SOURCES = \
evas_engine_xlib_font.c \
evas_engine_xlib_gradient.c \
evas_engine_xlib_image.c \
@ -26,20 +22,39 @@ evas_engine_xlib_ximage.c \
evas_engine.c
if BUILD_ENGINE_XRENDER_XCB
module_la_SOURCES += \
XRENDER_X11_SOURCES += \
evas_engine_xcb_font.c \
evas_engine_xcb_gradient.c \
evas_engine_xcb_image.c \
evas_engine_xcb_render.c \
evas_engine_xcb_ximage.c
endif
module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ @evas_engine_xrender_xcb_libs@ @evas_engine_xrender_x11_libs@
module_la_LDFLAGS = -no-undefined -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
XRENDER_X11_LIBADD = @evas_engine_xrender_xcb_libs@ @evas_engine_xrender_x11_libs@
pkgdir = $(libdir)/evas/modules/engines/xrender_x11/$(MODULE_ARCH)
include_HEADERS = Evas_Engine_XRender_X11.h
if !EVAS_STATIC_BUILD_XRENDER_X11
pkg_LTLIBRARIES = module.la
module_la_SOURCES = $(XRENDER_X11_SOURCES)
module_la_LIBADD = $(top_builddir)/src/lib/libevas.la @EINA_LIBS@ $(XRENDER_X11_LIBADD)
module_la_LDFLAGS = -no-undefined -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_engine_xrender_x11.la
libevas_engine_xrender_x11_la_SOURCES = $(XRENDER_X11_SOURCES)
libevas_engine_xrender_x11_la_LIBADD = $(XRENDER_X11_LIBADD)
endif
endif
EXTRA_DIST = evas_engine.h

View File

@ -1398,12 +1398,13 @@ eng_font_draw(void *data, void *context, void *surface, void *font, int x, int y
}
/* module advertising code */
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
/* get whatever engine module we inherit from */
if (!_evas_module_engine_inherit(&pfunc, "software_generic")) return 0;
/* store it for later use */
func = pfunc;
/* now to override methods */
@ -1500,15 +1501,24 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_ENGINE,
"xrender_x11",
"none"
"xrender_x11",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_ENGINE, engine, xrender_x11);
#ifndef EVAS_STATIC_BUILD_XRENDER_X11
EVAS_EINA_MODULE_DEFINE(engine, xrender_x11);
#endif

View File

@ -1,40 +1,58 @@
MAINTAINERCLEANFILES = Makefile.in
if BUILD_LOADER_EDB
if !EVAS_STATIC_BUILD_EDB
edb_subdir = edb
endif
endif
if BUILD_LOADER_EET
if !EVAS_STATIC_BUILD_EET
eet_subdir = eet
endif
endif
if BUILD_LOADER_GIF
if !EVAS_STATIC_BUILD_GIF
gif_subdir = gif
endif
endif
if BUILD_LOADER_JPEG
if !EVAS_STATIC_BUILD_JPEG
jpeg_subdir = jpeg
endif
endif
if BUILD_LOADER_PMAPS
if !EVAS_STATIC_BUILD_PMAPS
pmaps_subdir = pmaps
endif
endif
if BUILD_LOADER_PNG
if !EVAS_STATIC_BUILD_PNG
png_subdir = png
endif
endif
if BUILD_LOADER_SVG
if !EVAS_STATIC_BUILD_SVG
svg_subdir = svg
endif
endif
if BUILD_LOADER_TIFF
if !EVAS_STATIC_BUILD_TIFF
tiff_subdir = tiff
endif
endif
if BUILD_LOADER_XPM
if !EVAS_STATIC_BUILD_XPM
xpm_subdir = xpm
endif
endif
SUBDIRS = $(edb_subdir) $(eet_subdir) $(gif_subdir) $(jpeg_subdir) $(pmaps_subdir) $(png_subdir) $(svg_subdir) $(tiff_subdir) $(xpm_subdir)

View File

@ -11,6 +11,8 @@ AM_CPPFLAGS = \
pkgdir = $(libdir)/evas/modules/loaders/edb/$(MODULE_ARCH)
if !EVAS_STATIC_BUILD_EDB
pkg_LTLIBRARIES = module.la
module_la_SOURCES = evas_image_load_edb.c
@ -18,3 +20,12 @@ module_la_SOURCES = evas_image_load_edb.c
module_la_LIBADD = @evas_image_loader_edb_libs@ @EINA_LIBS@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_loader_edb.la
libevas_loader_edb_la_SOURCES = evas_image_load_edb.c
libevas_loader_edb_la_LIBADD = @evas_image_loader_edb_libs@
endif

View File

@ -8,17 +8,16 @@
#define SWAP32(x) (x) = ((((x) & 0x000000ff ) << 24) | (((x) & 0x0000ff00 ) << 8) | (((x) & 0x00ff0000 ) >> 8) | (((x) & 0xff000000 ) >> 24))
int evas_image_load_file_head_edb(Image_Entry *ie, const char *file, const char *key);
int evas_image_load_file_data_edb(Image_Entry *ie, const char *file, const char *key);
static int evas_image_load_file_head_edb(Image_Entry *ie, const char *file, const char *key);
static int evas_image_load_file_data_edb(Image_Entry *ie, const char *file, const char *key);
Evas_Image_Load_Func evas_image_load_edb_func =
static Evas_Image_Load_Func evas_image_load_edb_func =
{
evas_image_load_file_head_edb,
evas_image_load_file_data_edb
};
int
static int
evas_image_load_file_head_edb(Image_Entry *ie, const char *file, const char *key)
{
int w, h, alpha, compression, size;
@ -80,7 +79,7 @@ evas_image_load_file_head_edb(Image_Entry *ie, const char *file, const char *key
return 1;
}
int
static int
evas_image_load_file_data_edb(Image_Entry *ie, const char *file, const char *key)
{
int w, h, alpha, compression, size;
@ -181,7 +180,7 @@ evas_image_load_file_data_edb(Image_Entry *ie, const char *file, const char *key
return 1;
}
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -189,16 +188,24 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_IMAGE_LOADER,
"edb",
"none"
"edb",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, image_saver, edb);
#ifndef EVAS_STATIC_BUILD_EDB
EVAS_EINA_MODULE_DEFINE(image_saver, edb);
#endif

View File

@ -13,6 +13,8 @@ AM_CFLAGS = @WIN32_CFLAGS@
pkgdir = $(libdir)/evas/modules/loaders/eet/$(MODULE_ARCH)
if !EVAS_STATIC_BUILD_EET
pkg_LTLIBRARIES = module.la
module_la_SOURCES = evas_image_load_eet.c
@ -20,3 +22,12 @@ module_la_SOURCES = evas_image_load_eet.c
module_la_LIBADD = @EINA_LIBS@ @evas_image_loader_eet_libs@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_loader_eet.la
libevas_loader_eet_la_SOURCES = evas_image_load_eet.c
libevas_loader_eet_la_LIBADD = @evas_image_loader_eet_libs@
endif

View File

@ -98,7 +98,7 @@ evas_image_load_file_data_eet(Image_Entry *ie, const char *file, const char *key
return res;
}
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -106,16 +106,24 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_IMAGE_LOADER,
"eet",
"none"
"eet",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, image_loader, eet);
#ifndef EVAS_STATIC_BUILD_EET
EVAS_EINA_MODULE_DEFINE(image_loader, eet);
#endif

View File

@ -13,6 +13,8 @@ AM_CFLAGS = @WIN32_CFLAGS@
pkgdir = $(libdir)/evas/modules/loaders/gif/$(MODULE_ARCH)
if !EVAS_STATIC_BUILD_GIF
pkg_LTLIBRARIES = module.la
module_la_SOURCES = evas_image_load_gif.c
@ -20,3 +22,12 @@ module_la_SOURCES = evas_image_load_gif.c
module_la_LIBADD = @EINA_LIBS@ @evas_image_loader_gif_libs@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_loader_gif.la
libevas_loader_gif_la_SOURCES = evas_image_load_gif.c
libevas_loader_gif_la_LIBADD = @evas_image_loader_gif_libs@
endif

View File

@ -7,18 +7,16 @@
#include <gif_lib.h>
static int evas_image_load_file_head_gif(Image_Entry *ie, const char *file, const char *key);
static int evas_image_load_file_data_gif(Image_Entry *ie, const char *file, const char *key);
int evas_image_load_file_head_gif(Image_Entry *ie, const char *file, const char *key);
int evas_image_load_file_data_gif(Image_Entry *ie, const char *file, const char *key);
Evas_Image_Load_Func evas_image_load_gif_func =
static Evas_Image_Load_Func evas_image_load_gif_func =
{
evas_image_load_file_head_gif,
evas_image_load_file_data_gif
};
int
static int
evas_image_load_file_head_gif(Image_Entry *ie, const char *file, const char *key __UNUSED__)
{
int fd;
@ -101,7 +99,7 @@ evas_image_load_file_head_gif(Image_Entry *ie, const char *file, const char *key
return 1;
}
int
static int
evas_image_load_file_data_gif(Image_Entry *ie, const char *file, const char *key __UNUSED__)
{
int intoffset[] = { 0, 4, 2, 1 };
@ -284,7 +282,7 @@ evas_image_load_file_data_gif(Image_Entry *ie, const char *file, const char *key
return 1;
}
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -292,16 +290,24 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_IMAGE_LOADER,
"gif",
"none"
EVAS_MODULE_API_VERSION,
"gif",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, image_loader, gif);
#ifndef EVAS_STATIC_BUILD_GIF
EVAS_EINA_MODULE_DEFINE(image_loader, gif);
#endif

View File

@ -15,6 +15,8 @@ AM_CFLAGS = @WIN32_CFLAGS@
pkgdir = $(libdir)/evas/modules/loaders/jpeg/$(MODULE_ARCH)
if !EVAS_STATIC_BUILD_JPEG
pkg_LTLIBRARIES = module.la
module_la_SOURCES = evas_image_load_jpeg.c
@ -22,3 +24,11 @@ module_la_SOURCES = evas_image_load_jpeg.c
module_la_LIBADD = @EINA_LIBS@ @EVIL_LIBS@ @evas_image_loader_jpeg_libs@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_loader_jpeg.la
libevas_loader_jpeg_la_SOURCES = evas_image_load_jpeg.c
libevas_loader_jpeg_la_LIBADD = @evas_image_loader_jpeg_libs@
endif

View File

@ -31,10 +31,10 @@ static int evas_image_load_file_data_jpeg_internal(Image_Entry *ie, FILE *f);
static int evas_image_load_file_data_jpeg_alpha_internal(Image_Entry *ie, FILE *f);
#endif
int evas_image_load_file_head_jpeg(Image_Entry *ie, const char *file, const char *key);
int evas_image_load_file_data_jpeg(Image_Entry *ie, const char *file, const char *key);
static int evas_image_load_file_head_jpeg(Image_Entry *ie, const char *file, const char *key);
static int evas_image_load_file_data_jpeg(Image_Entry *ie, const char *file, const char *key);
Evas_Image_Load_Func evas_image_load_jpeg_func =
static Evas_Image_Load_Func evas_image_load_jpeg_func =
{
evas_image_load_file_head_jpeg,
evas_image_load_file_data_jpeg
@ -251,7 +251,7 @@ evas_image_load_file_data_jpeg_internal(Image_Entry *ie, FILE *f)
if (!(((cinfo.out_color_space == JCS_RGB) &&
((cinfo.output_components == 3) || (cinfo.output_components == 1))) ||
(cinfo.out_color_space == JCS_CMYK) && (cinfo.output_components == 4)))
((cinfo.out_color_space == JCS_CMYK) && (cinfo.output_components == 4))))
{
jpeg_destroy_decompress(&cinfo);
return 0;
@ -473,7 +473,7 @@ evas_image_load_file_data_jpeg_alpha_internal(Image_Entry *ie, FILE *f)
}
#endif
int
static int
evas_image_load_file_head_jpeg(Image_Entry *ie, const char *file, const char *key)
{
int val;
@ -488,7 +488,7 @@ evas_image_load_file_head_jpeg(Image_Entry *ie, const char *file, const char *ke
key = 0;
}
int
static int
evas_image_load_file_data_jpeg(Image_Entry *ie, const char *file, const char *key)
{
int val;
@ -503,7 +503,7 @@ evas_image_load_file_data_jpeg(Image_Entry *ie, const char *file, const char *ke
key = 0;
}
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -511,16 +511,25 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_IMAGE_LOADER,
"jpeg",
"none"
"jpeg",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, image_loader, jpeg);
#ifndef EVAS_STATIC_BUILD_JPEG
EVAS_EINA_MODULE_DEFINE(image_loader, jpeg);
#endif

View File

@ -15,6 +15,8 @@ AM_CFLAGS = @WIN32_CFLAGS@
pkgdir = $(libdir)/evas/modules/loaders/pmaps/$(MODULE_ARCH)
if !EVAS_STATIC_BUILD_PMAPS
pkg_LTLIBRARIES = module.la
module_la_SOURCES = evas_image_load_pmaps.c
@ -22,3 +24,11 @@ module_la_SOURCES = evas_image_load_pmaps.c
module_la_LIBADD = @evas_image_loader_pmaps_libs@ @EINA_LIBS@ @EVIL_LIBS@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_loader_pmaps.la
libevas_loader_pmaps_la_SOURCES = evas_image_load_pmaps.c
libevas_loader_pmaps_la_LIBADD = @evas_image_loader_pmaps_libs@
endif

View File

@ -539,7 +539,7 @@ pmaps_buffer_plain_bw_get(Pmaps_Buffer *b, DATA32 *val)
}
/* external functions */
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em)
@ -548,16 +548,23 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi = {
static Evas_Module_Api evas_modapi = {
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_IMAGE_LOADER,
"pmaps",
"none"
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, image_loader, pmaps);
#ifndef EVAS_STATIC_BUILD_PMAPS
EVAS_EINA_MODULE_DEFINE(image_loader, pmaps);
#endif

View File

@ -13,6 +13,8 @@ AM_CPPFLAGS = \
pkgdir = $(libdir)/evas/modules/loaders/png/$(MODULE_ARCH)
if !EVAS_STATIC_BUILD_PNG
pkg_LTLIBRARIES = module.la
module_la_SOURCES = evas_image_load_png.c
@ -20,3 +22,11 @@ module_la_SOURCES = evas_image_load_png.c
module_la_LIBADD = @EINA_LIBS@ @evas_image_loader_png_libs@ @EVIL_LIBS@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_loader_png.la
libevas_loader_png_la_SOURCES = evas_image_load_png.c
libevas_loader_png_la_LIBADD = @evas_image_loader_png_libs@
endif

View File

@ -32,17 +32,16 @@
#define PNG_BYTES_TO_CHECK 4
int evas_image_load_file_head_png(Image_Entry *ie, const char *file, const char *key);
int evas_image_load_file_data_png(Image_Entry *ie, const char *file, const char *key);
static int evas_image_load_file_head_png(Image_Entry *ie, const char *file, const char *key);
static int evas_image_load_file_data_png(Image_Entry *ie, const char *file, const char *key);
Evas_Image_Load_Func evas_image_load_png_func =
static Evas_Image_Load_Func evas_image_load_png_func =
{
evas_image_load_file_head_png,
evas_image_load_file_data_png
};
int
static int
evas_image_load_file_head_png(Image_Entry *ie, const char *file, const char *key)
{
png_uint_32 w32, h32;
@ -108,7 +107,7 @@ evas_image_load_file_head_png(Image_Entry *ie, const char *file, const char *key
key = 0;
}
int
static int
evas_image_load_file_data_png(Image_Entry *ie, const char *file, const char *key)
{
unsigned char *surface;
@ -217,7 +216,7 @@ evas_image_load_file_data_png(Image_Entry *ie, const char *file, const char *key
key = 0;
}
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -225,16 +224,24 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_IMAGE_LOADER,
"png",
"none"
"png",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, image_loader, png);
#ifndef EVAS_STATIC_BUILD_PNG
EVAS_EINA_MODULE_DEFINE(image_loader, png);
#endif

View File

@ -13,6 +13,8 @@ AM_CFLAGS = @WIN32_CFLAGS@
pkgdir = $(libdir)/evas/modules/loaders/svg/$(MODULE_ARCH)
if !EVAS_STATIC_BUILD_SVG
pkg_LTLIBRARIES = module.la
module_la_SOURCES = evas_image_load_svg.c
@ -20,3 +22,11 @@ module_la_SOURCES = evas_image_load_svg.c
module_la_LIBADD = @EINA_LIBS@ @evas_image_loader_svg_libs@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_loader_svg.la
libevas_loader_svg_la_SOURCES = evas_image_load_svg.c
libevas_loader_svg_la_LIBADD = @evas_image_loader_svg_libs@
endif

View File

@ -4,8 +4,8 @@
#include <librsvg/rsvg.h>
#include <librsvg/rsvg-cairo.h>
int evas_image_load_file_head_svg(Image_Entry *ie, const char *file, const char *key);
int evas_image_load_file_data_svg(Image_Entry *ie, const char *file, const char *key);
static int evas_image_load_file_head_svg(Image_Entry *ie, const char *file, const char *key);
static int evas_image_load_file_data_svg(Image_Entry *ie, const char *file, const char *key);
Evas_Image_Load_Func evas_image_load_svg_func =
{
@ -35,7 +35,7 @@ svg_loader_unpremul_data(DATA32 *data, unsigned int len)
}
}
int
static int
evas_image_load_file_head_svg(Image_Entry *ie, const char *file, const char *key __UNUSED__)
{
char cwd[PATH_MAX], pcwd[PATH_MAX], *p;
@ -131,7 +131,7 @@ evas_image_load_file_head_svg(Image_Entry *ie, const char *file, const char *key
}
/** FIXME: All evas loaders need to be tightened up **/
int
static int
evas_image_load_file_data_svg(Image_Entry *ie, const char *file, const char *key __UNUSED__)
{
DATA32 *pixels;
@ -268,7 +268,7 @@ evas_image_load_file_data_svg(Image_Entry *ie, const char *file, const char *key
return 1;
}
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -278,19 +278,27 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
if (!rsvg_initialized) return;
rsvg_term();
rsvg_initialized = 0;
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_IMAGE_LOADER,
"svg",
"none"
"svg",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, image_loader, svg);
#ifndef EVAS_STATIC_BUILD_SVG
EVAS_EINA_MODULE_DEFINE(image_loader, svg);
#endif

View File

@ -15,6 +15,8 @@ AM_CFLAGS = @WIN32_CFLAGS@
pkgdir = $(libdir)/evas/modules/loaders/tiff/$(MODULE_ARCH)
if !EVAS_STATIC_BUILD_TIFF
pkg_LTLIBRARIES = module.la
module_la_SOURCES = evas_image_load_tiff.c
@ -22,3 +24,12 @@ module_la_SOURCES = evas_image_load_tiff.c
module_la_LIBADD = @EINA_LIBS@ @EVIL_LIBS@ @evas_image_loader_tiff_libs@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_loader_tiff.la
libevas_loader_tiff_la_SOURCES = evas_image_load_tiff.c
libevas_loader_tiff_la_LIBADD = @evas_image_loader_tiff_libs@
endif

View File

@ -13,11 +13,10 @@
#include "evas_common.h"
#include "evas_private.h"
static int evas_image_load_file_head_tiff(Image_Entry *ie, const char *file, const char *key);
static int evas_image_load_file_data_tiff(Image_Entry *ie, const char *file, const char *key);
int evas_image_load_file_head_tiff(Image_Entry *ie, const char *file, const char *key);
int evas_image_load_file_data_tiff(Image_Entry *ie, const char *file, const char *key);
Evas_Image_Load_Func evas_image_load_tiff_func =
static Evas_Image_Load_Func evas_image_load_tiff_func =
{
evas_image_load_file_head_tiff,
evas_image_load_file_data_tiff
@ -118,7 +117,7 @@ raster(TIFFRGBAImage_Extra * img, uint32 * rast,
}
}
int
static int
evas_image_load_file_head_tiff(Image_Entry *ie, const char *file, const char *key __UNUSED__)
{
char txt[1024];
@ -188,7 +187,7 @@ evas_image_load_file_head_tiff(Image_Entry *ie, const char *file, const char *ke
return 1;
}
int
static int
evas_image_load_file_data_tiff(Image_Entry *ie, const char *file, const char *key __UNUSED__)
{
char txt[1024];
@ -325,7 +324,7 @@ evas_image_load_file_data_tiff(Image_Entry *ie, const char *file, const char *ke
return 1;
}
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -333,16 +332,25 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_IMAGE_LOADER,
"tiff",
"none"
"tiff",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, image_loader, tiff);
#ifndef EVAS_STATIC_BUILD_TIFF
EVAS_EINA_MODULE_DEFINE(image_loader, tiff);
#endif

View File

@ -15,6 +15,8 @@ AM_CFLAGS = @WIN32_CFLAGS@
pkgdir = $(libdir)/evas/modules/loaders/xpm/$(MODULE_ARCH)
if !EVAS_STATIC_BUILD_XPM
pkg_LTLIBRARIES = module.la
module_la_SOURCES = evas_image_load_xpm.c
@ -22,3 +24,13 @@ module_la_SOURCES = evas_image_load_xpm.c
module_la_LIBADD = @EINA_LIBS@ @EVIL_LIBS@ @evas_image_loader_xpm_libs@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_loader_xpm.la
libevas_loader_xpm_la_SOURCES = evas_image_load_xpm.c
libevas_loader_xpm_la_LIBADD = @evas_image_loader_xpm_libs@
endif

View File

@ -10,16 +10,15 @@
#include "evas_common.h"
#include "evas_private.h"
int evas_image_load_file_head_xpm(Image_Entry *ie, const char *file, const char *key);
int evas_image_load_file_data_xpm(Image_Entry *ie, const char *file, const char *key);
static int evas_image_load_file_head_xpm(Image_Entry *ie, const char *file, const char *key);
static int evas_image_load_file_data_xpm(Image_Entry *ie, const char *file, const char *key);
Evas_Image_Load_Func evas_image_load_xpm_func =
static Evas_Image_Load_Func evas_image_load_xpm_func =
{
evas_image_load_file_head_xpm,
evas_image_load_file_data_xpm
};
static FILE *rgb_txt = NULL;
static void
@ -617,22 +616,19 @@ evas_image_load_file_xpm(Image_Entry *ie, const char *file, const char *key __UN
return 1;
}
int
static int
evas_image_load_file_head_xpm(Image_Entry *ie, const char *file, const char *key)
{
return evas_image_load_file_xpm(ie, file, key, 0);
}
int
static int
evas_image_load_file_data_xpm(Image_Entry *ie, const char *file, const char *key)
{
return evas_image_load_file_xpm(ie, file, key, 1);
}
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -640,16 +636,24 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_IMAGE_LOADER,
"xpm",
"none"
"xpm",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_LOADER, image_loader, xpm);
#ifndef EVAS_STATIC_BUILD_XPM
EVAS_EINA_MODULE_DEFINE(image_loader, xpm);
#endif

View File

@ -1,23 +1,33 @@
MAINTAINERCLEANFILES = Makefile.in
if BUILD_LOADER_EDB
if !EVAS_STATIC_BUILD_EDB
edb_subdir = edb
endif
endif
if BUILD_LOADER_EET
if !EVAS_STATIC_BUILD_EET
eet_subdir = eet
endif
endif
if BUILD_SAVER_JPEG
if !EVAS_STATIC_BUILD_JPEG
jpeg_subdir = jpeg
endif
endif
if BUILD_LOADER_PNG
if !EVAS_STATIC_BUILD_PNG
png_subdir = png
endif
endif
if BUILD_LOADER_TIFF
if !EVAS_STATIC_BUILD_TIFF
tiff_subdir = tiff
endif
endif
SUBDIRS = $(edb_subdir) $(eet_subdir) $(jpeg_subdir) $(png_subdir) $(tiff_subdir)

View File

@ -9,6 +9,8 @@ AM_CPPFLAGS = -I. \
pkgdir = $(libdir)/evas/modules/savers/edb/$(MODULE_ARCH)
if !EVAS_STATIC_BUILD_EDB
pkg_LTLIBRARIES = module.la
module_la_SOURCES = evas_image_save_edb.c
@ -17,4 +19,13 @@ module_la_LIBADD = @EINA_LIBS@ @evas_image_loader_edb_libs@ $(top_builddir
module_la_LDFLAGS = -no-undefined -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_saver_edb.la
libevas_saver_edb_la_SOURCES = evas_image_save_edb.c
libevas_saver_edb_la_LIBADD = @evas_image_loader_edb_libs@
endif
EXTRA_DIST = evas_image_save_edb.c

View File

@ -4,20 +4,20 @@
#include <Edb.h>
#include <zlib.h>
int evas_image_save_file_edb(RGBA_Image *im, const char *file, const char *key, int quality, int compress);
static int evas_image_save_file_edb(RGBA_Image *im, const char *file, const char *key, int quality, int compress);
Evas_Image_Save_Func evas_image_save_edb_func =
static Evas_Image_Save_Func evas_image_save_edb_func =
{
evas_image_save_file_edb
};
int
static int
evas_image_save_file_edb(RGBA_Image *im, const char *file, const char *key, int quality, int compress)
{
return 0;
}
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -25,16 +25,24 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_IMAGE_SAVER,
"edb",
"none"
"edb",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_SAVER, image_saver, edb);
#ifndef EVAS_STATIC_BUILD_EDB
EVAS_EINA_MODULE_DEFINE(image_saver, edb);
#endif

View File

@ -13,6 +13,8 @@ AM_CFLAGS = @WIN32_CFLAGS@
pkgdir = $(libdir)/evas/modules/savers/eet/$(MODULE_ARCH)
if !EVAS_STATIC_BUILD_EET
pkg_LTLIBRARIES = module.la
module_la_SOURCES = evas_image_save_eet.c
@ -20,3 +22,12 @@ module_la_SOURCES = evas_image_save_eet.c
module_la_LIBADD = @EINA_LIBS@ @evas_image_loader_eet_libs@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_saver_eet.la
libevas_saver_eet_la_SOURCES = evas_image_save_eet.c
libevas_saver_eet_la_LIBADD = @evas_image_loader_eet_libs@
endif

View File

@ -7,14 +7,14 @@
#include "evas_common.h"
#include "evas_private.h"
int evas_image_save_file_eet(RGBA_Image *im, const char *file, const char *key, int quality, int compress);
static int evas_image_save_file_eet(RGBA_Image *im, const char *file, const char *key, int quality, int compress);
Evas_Image_Save_Func evas_image_save_eet_func =
static Evas_Image_Save_Func evas_image_save_eet_func =
{
evas_image_save_file_eet
};
int
static int
evas_image_save_file_eet(RGBA_Image *im, const char *file, const char *key, int quality, int compress)
{
Eet_File *ef;
@ -51,7 +51,7 @@ evas_image_save_file_eet(RGBA_Image *im, const char *file, const char *key, int
return ok;
}
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -59,16 +59,25 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_IMAGE_SAVER,
"eet",
"none"
"eet",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_SAVER, image_saver, eet);
#ifndef EVAS_STATIC_BUILD_EET
EVAS_EINA_MODULE_DEFINE(image_saver, eet);
#endif

View File

@ -13,6 +13,8 @@ AM_CFLAGS = @WIN32_CFLAGS@
pkgdir = $(libdir)/evas/modules/savers/jpeg/$(MODULE_ARCH)
if !EVAS_STATIC_BUILD_JPEG
pkg_LTLIBRARIES = module.la
module_la_SOURCES = evas_image_save_jpeg.c
@ -20,3 +22,11 @@ module_la_SOURCES = evas_image_save_jpeg.c
module_la_LIBADD = @EINA_LIBS@ @evas_image_loader_jpeg_libs@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_saver_jpeg.la
libevas_saver_jpeg_la_SOURCES = evas_image_save_jpeg.c
libevas_saver_jpeg_la_LIBADD = @evas_image_loader_jpeg_libs@
endif

View File

@ -5,9 +5,9 @@
#include <jpeglib.h>
#include <setjmp.h>
int evas_image_save_file_jpeg(RGBA_Image *im, const char *file, const char *key, int quality, int compress);
static int evas_image_save_file_jpeg(RGBA_Image *im, const char *file, const char *key, int quality, int compress);
Evas_Image_Save_Func evas_image_save_jpeg_func =
static Evas_Image_Save_Func evas_image_save_jpeg_func =
{
evas_image_save_file_jpeg
};
@ -111,12 +111,12 @@ save_image_jpeg(RGBA_Image *im, const char *file, int quality)
return 1;
}
int evas_image_save_file_jpeg(RGBA_Image *im, const char *file, const char *key __UNUSED__, int quality, int compress __UNUSED__)
static int evas_image_save_file_jpeg(RGBA_Image *im, const char *file, const char *key __UNUSED__, int quality, int compress __UNUSED__)
{
return save_image_jpeg(im, file, quality);
}
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -124,16 +124,25 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_IMAGE_SAVER,
"jpeg",
"none"
"jpeg",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_SAVER, image_saver, jpeg);
#ifndef EVAS_STATIC_BUILD_JPEG
EVAS_EINA_MODULE_DEFINE(image_saver, jpeg);
#endif

View File

@ -15,6 +15,8 @@ AM_CFLAGS = @WIN32_CFLAGS@
pkgdir = $(libdir)/evas/modules/savers/png/$(MODULE_ARCH)
if !EVAS_STATIC_BUILD_PNG
pkg_LTLIBRARIES = module.la
module_la_SOURCES = evas_image_save_png.c
@ -22,3 +24,12 @@ module_la_SOURCES = evas_image_save_png.c
module_la_LIBADD = @EINA_LIBS@ @evas_image_loader_png_libs@ @EVIL_LIBS@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_saver_png.la
libevas_saver_png_la_SOURCES = evas_image_save_png.c
libevas_saver_png_la_LIBADD = @evas_image_loader_png_libs@
endif

View File

@ -26,9 +26,9 @@
#include "evas_common.h"
#include "evas_private.h"
int evas_image_save_file_png(RGBA_Image *im, const char *file, const char *key, int quality, int compress);
static int evas_image_save_file_png(RGBA_Image *im, const char *file, const char *key, int quality, int compress);
Evas_Image_Save_Func evas_image_save_png_func =
static Evas_Image_Save_Func evas_image_save_png_func =
{
evas_image_save_file_png
};
@ -153,12 +153,12 @@ save_image_png(RGBA_Image *im, const char *file, int compress, int interlace)
return 0;
}
int evas_image_save_file_png(RGBA_Image *im, const char *file, const char *key __UNUSED__, int quality __UNUSED__, int compress)
static int evas_image_save_file_png(RGBA_Image *im, const char *file, const char *key __UNUSED__, int quality __UNUSED__, int compress)
{
return save_image_png(im, file, compress, 0);
}
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -166,16 +166,25 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_IMAGE_SAVER,
"png",
"none"
"png",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_SAVER, image_saver, png);
#ifndef EVAS_STATIC_BUILD_PNG
EVAS_EINA_MODULE_DEFINE(image_saver, png);
#endif

View File

@ -13,6 +13,8 @@ AM_CFLAGS = @WIN32_CFLAGS@
pkgdir = $(libdir)/evas/modules/savers/tiff/$(MODULE_ARCH)
if !EVAS_STATIC_BUILD_TIFF
pkg_LTLIBRARIES = module.la
module_la_SOURCES = evas_image_save_tiff.c
@ -20,3 +22,12 @@ module_la_SOURCES = evas_image_save_tiff.c
module_la_LIBADD = @EINA_LIBS@ @evas_image_loader_tiff_libs@ $(top_builddir)/src/lib/libevas.la
module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
module_la_LIBTOOLFLAGS = --tag=disable-static
else
noinst_LTLIBRARIES = libevas_saver_tiff.la
libevas_saver_tiff_la_SOURCES = evas_image_save_tiff.c
libevas_saver_tiff_la_LIBADD = @evas_image_loader_tiff_libs@
endif

View File

@ -3,9 +3,9 @@
#include <tiffio.h>
int evas_image_save_file_tiff(RGBA_Image *im, const char *file, const char *key, int quality, int compress);
static int evas_image_save_file_tiff(RGBA_Image *im, const char *file, const char *key, int quality, int compress);
Evas_Image_Save_Func evas_image_save_tiff_func =
static Evas_Image_Save_Func evas_image_save_tiff_func =
{
evas_image_save_file_tiff
};
@ -102,12 +102,12 @@ save_image_tiff(RGBA_Image *im, const char *file, int compress __UNUSED__, int i
return 1;
}
int evas_image_save_file_tiff(RGBA_Image *im, const char *file, const char *key __UNUSED__, int quality __UNUSED__, int compress)
static int evas_image_save_file_tiff(RGBA_Image *im, const char *file, const char *key __UNUSED__, int quality __UNUSED__, int compress)
{
return save_image_tiff(im, file, compress, 0);
}
EAPI int
static int
module_open(Evas_Module *em)
{
if (!em) return 0;
@ -115,16 +115,25 @@ module_open(Evas_Module *em)
return 1;
}
EAPI void
module_close(void)
static void
module_close(Evas_Module *em)
{
}
EAPI Evas_Module_Api evas_modapi =
static Evas_Module_Api evas_modapi =
{
EVAS_MODULE_API_VERSION,
EVAS_MODULE_TYPE_IMAGE_SAVER,
"tiff",
"none"
"tiff",
"none",
{
module_open,
module_close
}
};
EVAS_MODULE_DEFINE(EVAS_MODULE_TYPE_IMAGE_SAVER, image_saver, tiff);
#ifndef EVAS_STATIC_BUILD_TIFF
EVAS_EINA_MODULE_DEFINE(image_saver, tiff);
#endif