From 07274513e984f0b5544586c74508ccd16e7dcafa Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Sun, 13 Jan 2013 17:29:19 +1000 Subject: Remove EFL, since it's been released now. --- libraries/evas/src/modules/loaders/gif/Makefile.am | 33 - libraries/evas/src/modules/loaders/gif/Makefile.in | 761 -------------- .../src/modules/loaders/gif/evas_image_load_gif.c | 1038 -------------------- 3 files changed, 1832 deletions(-) delete mode 100644 libraries/evas/src/modules/loaders/gif/Makefile.am delete mode 100644 libraries/evas/src/modules/loaders/gif/Makefile.in delete mode 100644 libraries/evas/src/modules/loaders/gif/evas_image_load_gif.c (limited to 'libraries/evas/src/modules/loaders/gif') diff --git a/libraries/evas/src/modules/loaders/gif/Makefile.am b/libraries/evas/src/modules/loaders/gif/Makefile.am deleted file mode 100644 index 3ae57a0..0000000 --- a/libraries/evas/src/modules/loaders/gif/Makefile.am +++ /dev/null @@ -1,33 +0,0 @@ - -MAINTAINERCLEANFILES = Makefile.in - -AM_CPPFLAGS = \ --I. \ --I$(top_srcdir)/src/lib \ --I$(top_srcdir)/src/lib/include \ -@FREETYPE_CFLAGS@ \ -@PIXMAN_CFLAGS@ \ -@evas_image_loader_gif_cflags@ \ -@EINA_CFLAGS@ - -if BUILD_LOADER_GIF -if !EVAS_STATIC_BUILD_GIF - -pkgdir = $(libdir)/evas/modules/loaders/gif/$(MODULE_ARCH) -pkg_LTLIBRARIES = module.la - -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 -endif diff --git a/libraries/evas/src/modules/loaders/gif/Makefile.in b/libraries/evas/src/modules/loaders/gif/Makefile.in deleted file mode 100644 index a7fae36..0000000 --- a/libraries/evas/src/modules/loaders/gif/Makefile.in +++ /dev/null @@ -1,761 +0,0 @@ -# Makefile.in generated by automake 1.11.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, -# Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src/modules/loaders/gif -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \ - $(top_srcdir)/m4/efl_coverage.m4 \ - $(top_srcdir)/m4/efl_doxygen.m4 \ - $(top_srcdir)/m4/efl_fnmatch.m4 \ - $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \ - $(top_srcdir)/m4/evas_check_engine.m4 \ - $(top_srcdir)/m4/evas_check_loader.m4 \ - $(top_srcdir)/m4/evas_converter.m4 \ - $(top_srcdir)/m4/evas_dither.m4 \ - $(top_srcdir)/m4/evas_scaler.m4 $(top_srcdir)/m4/libtool.m4 \ - $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ - $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ - $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__installdirs = "$(DESTDIR)$(pkgdir)" -LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkg_LTLIBRARIES) -libevas_loader_gif_la_DEPENDENCIES = -am__libevas_loader_gif_la_SOURCES_DIST = evas_image_load_gif.c -@BUILD_LOADER_GIF_TRUE@@EVAS_STATIC_BUILD_GIF_TRUE@am_libevas_loader_gif_la_OBJECTS = evas_image_load_gif.lo -libevas_loader_gif_la_OBJECTS = $(am_libevas_loader_gif_la_OBJECTS) -AM_V_lt = $(am__v_lt_$(V)) -am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) -am__v_lt_0 = --silent -@BUILD_LOADER_GIF_TRUE@@EVAS_STATIC_BUILD_GIF_TRUE@am_libevas_loader_gif_la_rpath = -@BUILD_LOADER_GIF_TRUE@@EVAS_STATIC_BUILD_GIF_FALSE@module_la_DEPENDENCIES = $(top_builddir)/src/lib/libevas.la -am__module_la_SOURCES_DIST = evas_image_load_gif.c -@BUILD_LOADER_GIF_TRUE@@EVAS_STATIC_BUILD_GIF_FALSE@am_module_la_OBJECTS = module_la-evas_image_load_gif.lo -module_la_OBJECTS = $(am_module_la_OBJECTS) -module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ - $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ - $(AM_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) -o $@ -@BUILD_LOADER_GIF_TRUE@@EVAS_STATIC_BUILD_GIF_FALSE@am_module_la_rpath = \ -@BUILD_LOADER_GIF_TRUE@@EVAS_STATIC_BUILD_GIF_FALSE@ -rpath \ -@BUILD_LOADER_GIF_TRUE@@EVAS_STATIC_BUILD_GIF_FALSE@ $(pkgdir) -DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles -am__mv = mv -f -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ - $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) -AM_V_CC = $(am__v_CC_$(V)) -am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) -am__v_CC_0 = @echo " CC " $@; -AM_V_at = $(am__v_at_$(V)) -am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) -am__v_at_0 = @ -CCLD = $(CC) -LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(AM_LDFLAGS) $(LDFLAGS) -o $@ -AM_V_CCLD = $(am__v_CCLD_$(V)) -am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) -am__v_CCLD_0 = @echo " CCLD " $@; -AM_V_GEN = $(am__v_GEN_$(V)) -am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) -am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(libevas_loader_gif_la_SOURCES) $(module_la_SOURCES) -DIST_SOURCES = $(am__libevas_loader_gif_la_SOURCES_DIST) \ - $(am__module_la_SOURCES_DIST) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -ALLOCA = @ALLOCA@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AR = @AR@ -AS = @AS@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CHECK_CFLAGS = @CHECK_CFLAGS@ -CHECK_LIBS = @CHECK_LIBS@ -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ -DIRECTFB_LIBS = @DIRECTFB_LIBS@ -DLLTOOL = @DLLTOOL@ -DSYMUTIL = @DSYMUTIL@ -DUMPBIN = @DUMPBIN@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@ -ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@ -EDB_CFLAGS = @EDB_CFLAGS@ -EDB_LIBS = @EDB_LIBS@ -EDJE_CFLAGS = @EDJE_CFLAGS@ -EDJE_LIBS = @EDJE_LIBS@ -EET_CFLAGS = @EET_CFLAGS@ -EET_LIBS = @EET_LIBS@ -EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@ -EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@ -EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@ -EGREP = @EGREP@ -EINA_CFLAGS = @EINA_CFLAGS@ -EINA_LIBS = @EINA_LIBS@ -EVAS_CFLAGS = @EVAS_CFLAGS@ -EVAS_LIBS = @EVAS_LIBS@ -EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@ -EVIL_CFLAGS = @EVIL_CFLAGS@ -EVIL_LIBS = @EVIL_LIBS@ -EXEEXT = @EXEEXT@ -EXOTIC_CFLAGS = @EXOTIC_CFLAGS@ -EXOTIC_LIBS = @EXOTIC_LIBS@ -FGREP = @FGREP@ -FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ -FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ -FREETYPE_CFLAGS = @FREETYPE_CFLAGS@ -FREETYPE_LIBS = @FREETYPE_LIBS@ -FRIBIDI_CFLAGS = @FRIBIDI_CFLAGS@ -FRIBIDI_LIBS = @FRIBIDI_LIBS@ -GL_EET_CFLAGS = @GL_EET_CFLAGS@ -GL_EET_LIBS = @GL_EET_LIBS@ -GREP = @GREP@ -HARFBUZZ_CFLAGS = @HARFBUZZ_CFLAGS@ -HARFBUZZ_LIBS = @HARFBUZZ_LIBS@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LD = @LD@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LIBTOOL = @LIBTOOL@ -LINEBREAK_CFLAGS = @LINEBREAK_CFLAGS@ -LINEBREAK_LIBS = @LINEBREAK_LIBS@ -LIPO = @LIPO@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -MODULE_ARCH = @MODULE_ARCH@ -NM = @NM@ -NMEDIT = @NMEDIT@ -OBJC = @OBJC@ -OBJCDEPMODE = @OBJCDEPMODE@ -OBJCFLAGS = @OBJCFLAGS@ -OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ -OTOOL = @OTOOL@ -OTOOL64 = @OTOOL64@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ -PIXMAN_LIBS = @PIXMAN_LIBS@ -PKG_CONFIG = @PKG_CONFIG@ -PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ -PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -PNG_CFLAGS = @PNG_CFLAGS@ -PNG_LIBS = @PNG_LIBS@ -RANLIB = @RANLIB@ -SDL_CFLAGS = @SDL_CFLAGS@ -SDL_LIBS = @SDL_LIBS@ -SED = @SED@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -SHM_OPEN_LINK = @SHM_OPEN_LINK@ -STRIP = @STRIP@ -SVG_CFLAGS = @SVG_CFLAGS@ -SVG_LIBS = @SVG_LIBS@ -VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ -VALGRIND_LIBS = @VALGRIND_LIBS@ -VERSION = @VERSION@ -VMAJ = @VMAJ@ -WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ -WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ -XCB_CFLAGS = @XCB_CFLAGS@ -XCB_GL_CFLAGS = @XCB_GL_CFLAGS@ -XCB_GL_LIBS = @XCB_GL_LIBS@ -XCB_LIBS = @XCB_LIBS@ -XEXT_CFLAGS = @XEXT_CFLAGS@ -XEXT_LIBS = @XEXT_LIBS@ -XMKMF = @XMKMF@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ -ac_ct_OBJC = @ac_ct_OBJC@ -altivec_cflags = @altivec_cflags@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -dlopen_libs = @dlopen_libs@ -docdir = @docdir@ -dvidir = @dvidir@ -edje_cc = @edje_cc@ -efl_doxygen = @efl_doxygen@ -efl_have_doxygen = @efl_have_doxygen@ -evas_engine_buffer_cflags = @evas_engine_buffer_cflags@ -evas_engine_buffer_libs = @evas_engine_buffer_libs@ -evas_engine_direct3d_cflags = @evas_engine_direct3d_cflags@ -evas_engine_direct3d_libs = @evas_engine_direct3d_libs@ -evas_engine_directfb_cflags = @evas_engine_directfb_cflags@ -evas_engine_directfb_libs = @evas_engine_directfb_libs@ -evas_engine_fb_cflags = @evas_engine_fb_cflags@ -evas_engine_fb_libs = @evas_engine_fb_libs@ -evas_engine_gl_cocoa_cflags = @evas_engine_gl_cocoa_cflags@ -evas_engine_gl_cocoa_libs = @evas_engine_gl_cocoa_libs@ -evas_engine_gl_common_libs = @evas_engine_gl_common_libs@ -evas_engine_gl_sdl_cflags = @evas_engine_gl_sdl_cflags@ -evas_engine_gl_sdl_libs = @evas_engine_gl_sdl_libs@ -evas_engine_gl_xcb_cflags = @evas_engine_gl_xcb_cflags@ -evas_engine_gl_xcb_libs = @evas_engine_gl_xcb_libs@ -evas_engine_gl_xlib_cflags = @evas_engine_gl_xlib_cflags@ -evas_engine_gl_xlib_libs = @evas_engine_gl_xlib_libs@ -evas_engine_psl1ght_cflags = @evas_engine_psl1ght_cflags@ -evas_engine_psl1ght_libs = @evas_engine_psl1ght_libs@ -evas_engine_software_16_ddraw_cflags = @evas_engine_software_16_ddraw_cflags@ -evas_engine_software_16_ddraw_libs = @evas_engine_software_16_ddraw_libs@ -evas_engine_software_16_sdl_cflags = @evas_engine_software_16_sdl_cflags@ -evas_engine_software_16_sdl_libs = @evas_engine_software_16_sdl_libs@ -evas_engine_software_16_wince_cflags = @evas_engine_software_16_wince_cflags@ -evas_engine_software_16_wince_libs = @evas_engine_software_16_wince_libs@ -evas_engine_software_16_x11_cflags = @evas_engine_software_16_x11_cflags@ -evas_engine_software_16_x11_libs = @evas_engine_software_16_x11_libs@ -evas_engine_software_8_x11_cflags = @evas_engine_software_8_x11_cflags@ -evas_engine_software_8_x11_libs = @evas_engine_software_8_x11_libs@ -evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@ -evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@ -evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@ -evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@ -evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@ -evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ -evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ -evas_engine_software_xlib_libs = @evas_engine_software_xlib_libs@ -evas_engine_wayland_egl_cflags = @evas_engine_wayland_egl_cflags@ -evas_engine_wayland_egl_libs = @evas_engine_wayland_egl_libs@ -evas_engine_wayland_shm_cflags = @evas_engine_wayland_shm_cflags@ -evas_engine_wayland_shm_libs = @evas_engine_wayland_shm_libs@ -evas_image_loader_bmp_cflags = @evas_image_loader_bmp_cflags@ -evas_image_loader_bmp_libs = @evas_image_loader_bmp_libs@ -evas_image_loader_edb_cflags = @evas_image_loader_edb_cflags@ -evas_image_loader_edb_libs = @evas_image_loader_edb_libs@ -evas_image_loader_eet_cflags = @evas_image_loader_eet_cflags@ -evas_image_loader_eet_libs = @evas_image_loader_eet_libs@ -evas_image_loader_generic_cflags = @evas_image_loader_generic_cflags@ -evas_image_loader_generic_libs = @evas_image_loader_generic_libs@ -evas_image_loader_gif_cflags = @evas_image_loader_gif_cflags@ -evas_image_loader_gif_libs = @evas_image_loader_gif_libs@ -evas_image_loader_ico_cflags = @evas_image_loader_ico_cflags@ -evas_image_loader_ico_libs = @evas_image_loader_ico_libs@ -evas_image_loader_jpeg_cflags = @evas_image_loader_jpeg_cflags@ -evas_image_loader_jpeg_libs = @evas_image_loader_jpeg_libs@ -evas_image_loader_pmaps_cflags = @evas_image_loader_pmaps_cflags@ -evas_image_loader_pmaps_libs = @evas_image_loader_pmaps_libs@ -evas_image_loader_png_cflags = @evas_image_loader_png_cflags@ -evas_image_loader_png_libs = @evas_image_loader_png_libs@ -evas_image_loader_psd_cflags = @evas_image_loader_psd_cflags@ -evas_image_loader_psd_libs = @evas_image_loader_psd_libs@ -evas_image_loader_svg_cflags = @evas_image_loader_svg_cflags@ -evas_image_loader_svg_libs = @evas_image_loader_svg_libs@ -evas_image_loader_tga_cflags = @evas_image_loader_tga_cflags@ -evas_image_loader_tga_libs = @evas_image_loader_tga_libs@ -evas_image_loader_tiff_cflags = @evas_image_loader_tiff_cflags@ -evas_image_loader_tiff_libs = @evas_image_loader_tiff_libs@ -evas_image_loader_wbmp_cflags = @evas_image_loader_wbmp_cflags@ -evas_image_loader_wbmp_libs = @evas_image_loader_wbmp_libs@ -evas_image_loader_xpm_cflags = @evas_image_loader_xpm_cflags@ -evas_image_loader_xpm_libs = @evas_image_loader_xpm_libs@ -exec_prefix = @exec_prefix@ -have_evas_engine_gl_x11 = @have_evas_engine_gl_x11@ -have_evas_engine_gl_xcb = @have_evas_engine_gl_xcb@ -have_evas_engine_gl_xlib = @have_evas_engine_gl_xlib@ -have_evas_engine_software_x11 = @have_evas_engine_software_x11@ -have_evas_engine_software_xcb = @have_evas_engine_software_xcb@ -have_evas_engine_software_xlib = @have_evas_engine_software_xlib@ -have_lcov = @have_lcov@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -lt_ECHO = @lt_ECHO@ -lt_enable_auto_import = @lt_enable_auto_import@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -pkgconfig_requires_private = @pkgconfig_requires_private@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -pthread_cflags = @pthread_cflags@ -pthread_libs = @pthread_libs@ -release_info = @release_info@ -requirement_evas = @requirement_evas@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -version_info = @version_info@ -MAINTAINERCLEANFILES = Makefile.in -AM_CPPFLAGS = \ --I. \ --I$(top_srcdir)/src/lib \ --I$(top_srcdir)/src/lib/include \ -@FREETYPE_CFLAGS@ \ -@PIXMAN_CFLAGS@ \ -@evas_image_loader_gif_cflags@ \ -@EINA_CFLAGS@ - -@BUILD_LOADER_GIF_TRUE@@EVAS_STATIC_BUILD_GIF_FALSE@pkgdir = $(libdir)/evas/modules/loaders/gif/$(MODULE_ARCH) -@BUILD_LOADER_GIF_TRUE@@EVAS_STATIC_BUILD_GIF_FALSE@pkg_LTLIBRARIES = module.la -@BUILD_LOADER_GIF_TRUE@@EVAS_STATIC_BUILD_GIF_FALSE@module_la_SOURCES = evas_image_load_gif.c -@BUILD_LOADER_GIF_TRUE@@EVAS_STATIC_BUILD_GIF_FALSE@module_la_LIBADD = @EINA_LIBS@ @evas_image_loader_gif_libs@ $(top_builddir)/src/lib/libevas.la -@BUILD_LOADER_GIF_TRUE@@EVAS_STATIC_BUILD_GIF_FALSE@module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version -@BUILD_LOADER_GIF_TRUE@@EVAS_STATIC_BUILD_GIF_FALSE@module_la_LIBTOOLFLAGS = --tag=disable-static -@BUILD_LOADER_GIF_TRUE@@EVAS_STATIC_BUILD_GIF_TRUE@noinst_LTLIBRARIES = libevas_loader_gif.la -@BUILD_LOADER_GIF_TRUE@@EVAS_STATIC_BUILD_GIF_TRUE@libevas_loader_gif_la_SOURCES = evas_image_load_gif.c -@BUILD_LOADER_GIF_TRUE@@EVAS_STATIC_BUILD_GIF_TRUE@libevas_loader_gif_la_LIBADD = @evas_image_loader_gif_libs@ -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .lo .o .obj -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/loaders/gif/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --gnu src/modules/loaders/gif/Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstLTLIBRARIES: - -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) - @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -install-pkgLTLIBRARIES: $(pkg_LTLIBRARIES) - @$(NORMAL_INSTALL) - test -z "$(pkgdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdir)" - @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkgdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkgdir)"; \ - } - -uninstall-pkgLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(pkg_LTLIBRARIES)'; test -n "$(pkgdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkgdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkgdir)/$$f"; \ - done - -clean-pkgLTLIBRARIES: - -test -z "$(pkg_LTLIBRARIES)" || rm -f $(pkg_LTLIBRARIES) - @list='$(pkg_LTLIBRARIES)'; for p in $$list; do \ - dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ - test "$$dir" != "$$p" || dir=.; \ - echo "rm -f \"$${dir}/so_locations\""; \ - rm -f "$${dir}/so_locations"; \ - done -libevas_loader_gif.la: $(libevas_loader_gif_la_OBJECTS) $(libevas_loader_gif_la_DEPENDENCIES) - $(AM_V_CCLD)$(LINK) $(am_libevas_loader_gif_la_rpath) $(libevas_loader_gif_la_OBJECTS) $(libevas_loader_gif_la_LIBADD) $(LIBS) -module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES) - $(AM_V_CCLD)$(module_la_LINK) $(am_module_la_rpath) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evas_image_load_gif.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-evas_image_load_gif.Plo@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` - -.c.lo: -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< - -module_la-evas_image_load_gif.lo: evas_image_load_gif.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT module_la-evas_image_load_gif.lo -MD -MP -MF $(DEPDIR)/module_la-evas_image_load_gif.Tpo -c -o module_la-evas_image_load_gif.lo `test -f 'evas_image_load_gif.c' || echo '$(srcdir)/'`evas_image_load_gif.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-evas_image_load_gif.Tpo $(DEPDIR)/module_la-evas_image_load_gif.Plo -@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='evas_image_load_gif.c' object='module_la-evas_image_load_gif.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o module_la-evas_image_load_gif.lo `test -f 'evas_image_load_gif.c' || echo '$(srcdir)/'`evas_image_load_gif.c - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - set x; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(LTLIBRARIES) -installdirs: - for dir in "$(DESTDIR)$(pkgdir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ - clean-pkgLTLIBRARIES mostlyclean-am - -distclean: distclean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-pkgLTLIBRARIES - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-pkgLTLIBRARIES - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES clean-pkgLTLIBRARIES \ - ctags distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-pkgLTLIBRARIES install-ps install-ps-am install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ - tags uninstall uninstall-am uninstall-pkgLTLIBRARIES - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/libraries/evas/src/modules/loaders/gif/evas_image_load_gif.c b/libraries/evas/src/modules/loaders/gif/evas_image_load_gif.c deleted file mode 100644 index dbb3584..0000000 --- a/libraries/evas/src/modules/loaders/gif/evas_image_load_gif.c +++ /dev/null @@ -1,1038 +0,0 @@ -#include "evas_common.h" -#include "evas_private.h" - -#include -#include -#include -#include - -#include - -typedef struct _Gif_Frame Gif_Frame; - -typedef enum _Frame_Load_Type -{ - LOAD_FRAME_NONE = 0, - LOAD_FRAME_INFO = 1, - LOAD_FRAME_DATA = 2, - LOAD_FRAME_DATA_INFO = 3 -} Frame_Load_Type; - -struct _Gif_Frame -{ - struct { - /* Image descriptor */ - int x; - int y; - int w; - int h; - int interlace; - } image_des; - - struct { - /* Graphic Control*/ - int disposal; - int transparent; - int delay; - int input; - } frame_info; -}; - -static Eina_Bool evas_image_load_file_data_gif_internal(Image_Entry *ie, Image_Entry_Frame *frame, int *error); - -static Eina_Bool evas_image_load_file_head_gif(Image_Entry *ie, const char *file, const char *key, int *error) EINA_ARG_NONNULL(1, 2, 4); -static Eina_Bool evas_image_load_file_data_gif(Image_Entry *ie, const char *file, const char *key, int *error) EINA_ARG_NONNULL(1, 2, 4); -static double evas_image_load_frame_duration_gif(Image_Entry *ie, const char *file, int start_frame, int frame_num) ; -static Eina_Bool evas_image_load_specific_frame(Image_Entry *ie, const char *file, int frame_index, int *error); - -static Evas_Image_Load_Func evas_image_load_gif_func = -{ - EINA_TRUE, - evas_image_load_file_head_gif, - evas_image_load_file_data_gif, - evas_image_load_frame_duration_gif, - EINA_FALSE -}; -#define byte2_to_int(a,b) (((b)<<8)|(a)) - -#define FRAME_MAX 1024 - -/* find specific frame in image entry */ -static Eina_Bool -_find_frame(Image_Entry *ie, int frame_index, Image_Entry_Frame **frame) -{ - Eina_List *l; - Image_Entry_Frame *hit_frame = NULL; - - if (!ie) return EINA_FALSE; - if (!ie->frames) return EINA_FALSE; - - EINA_LIST_FOREACH(ie->frames, l, hit_frame) - { - if (hit_frame->index == frame_index) - { - *frame = hit_frame; - return EINA_TRUE; - } - } - return EINA_FALSE; -} - -static Eina_Bool -_find_close_frame(Image_Entry *ie, int frame_index, Image_Entry_Frame **frame) -{ - int i; - Eina_Bool hit = EINA_FALSE; - i = frame_index -1; - - if (!ie) return EINA_FALSE; - if (!ie->frames) return EINA_FALSE; - - for (; i > 0; i--) - { - hit = _find_frame(ie, i, frame); - if (hit) - return EINA_TRUE; - } - return EINA_FALSE; -} - -static Eina_Bool -_evas_image_skip_frame(GifFileType *gif, int frame) -{ - int remain_frame = 0; - GifRecordType rec; - - if (!gif) return EINA_FALSE; - if (frame == 0) return EINA_TRUE; /* no need to skip */ - if (frame < 0 || frame > FRAME_MAX) return EINA_FALSE; - - remain_frame = frame; - - do - { - if (DGifGetRecordType(gif, &rec) == GIF_ERROR) return EINA_FALSE; - - if (rec == EXTENSION_RECORD_TYPE) - { - int ext_code; - GifByteType *ext; - - ext = NULL; - DGifGetExtension(gif, &ext_code, &ext); - while (ext) - { /*skip extention */ - ext = NULL; - DGifGetExtensionNext(gif, &ext); - } - } - - if (rec == IMAGE_DESC_RECORD_TYPE) - { - int img_code; - GifByteType *img; - - if (DGifGetImageDesc(gif) == GIF_ERROR) return EINA_FALSE; - - remain_frame --; - /* we have to count frame, so use DGifGetCode and skip decoding */ - if (DGifGetCode(gif, &img_code, &img) == GIF_ERROR) return EINA_FALSE; - - while (img) - { - img = NULL; - DGifGetCodeNext(gif, &img); - } - if (remain_frame < 1) return EINA_TRUE; - } - if (rec == TERMINATE_RECORD_TYPE) return EINA_FALSE; /* end of file */ - - } while ((rec != TERMINATE_RECORD_TYPE) && (remain_frame > 0)); - return EINA_FALSE; -} - -static Eina_Bool -_evas_image_load_frame_graphic_info(Image_Entry_Frame *frame, GifByteType *ext) -{ - Gif_Frame *gif_frame = NULL; - if ((!frame) || (!ext)) return EINA_FALSE; - - gif_frame = (Gif_Frame *) frame->info; - - /* transparent */ - if ((ext[1] & 0x1) != 0) - gif_frame->frame_info.transparent = ext[4]; - else - gif_frame->frame_info.transparent = -1; - - gif_frame->frame_info.input = (ext[1] >>1) & 0x1; - gif_frame->frame_info.disposal = (ext[1] >>2) & 0x7; - gif_frame->frame_info.delay = byte2_to_int(ext[2], ext[3]); - return EINA_TRUE; -} - -static Eina_Bool -_evas_image_load_frame_image_des_info(GifFileType *gif, Image_Entry_Frame *frame) -{ - Gif_Frame *gif_frame = NULL; - if ((!gif) || (!frame)) return EINA_FALSE; - - gif_frame = (Gif_Frame *) frame->info; - gif_frame->image_des.x = gif->Image.Left; - gif_frame->image_des.y = gif->Image.Top; - gif_frame->image_des.w = gif->Image.Width; - gif_frame->image_des.h = gif->Image.Height; - gif_frame->image_des.interlace = gif->Image.Interlace; - return EINA_TRUE; -} - -static Eina_Bool -_evas_image_load_frame_image_data(Image_Entry *ie, GifFileType *gif, Image_Entry_Frame *frame, int *error) -{ - int w; - int h; - int x; - int y; - int i,j; - int bg; - int r; - int g; - int b; - int alpha; - double per; - double per_inc; - ColorMapObject *cmap; - GifRowType *rows; - int intoffset[] = { 0, 4, 2, 1 }; - int intjump[] = { 8, 8, 4, 2 }; - size_t siz; - int cache_w; - int cache_h; - int cur_h; - int cur_w; - int disposal = 0; - int bg_val = 0; - DATA32 *ptr; - Gif_Frame *gif_frame = NULL; - - if ((!gif) || (!frame)) return EINA_FALSE; - - gif_frame = (Gif_Frame *) frame->info; - w = gif->Image.Width; - h = gif->Image.Height; - x = gif->Image.Left; - y = gif->Image.Top; - cache_w = ie->w; - cache_h = ie->h; - - rows = malloc(h * sizeof(GifRowType *)); - if (!rows) - { - *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; - return EINA_FALSE; - } - for (i = 0; i < h; i++) - { - rows[i] = NULL; - } - for (i = 0; i < h; i++) - { - rows[i] = malloc(w * sizeof(GifPixelType)); - if (!rows[i]) - { - for (i = 0; i < h; i++) - { - if (rows[i]) - { - free(rows[i]); - } - } - free(rows); - *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; - return EINA_FALSE; - } - } - if (gif->Image.Interlace) - { - for (i = 0; i < 4; i++) - { - for (j = intoffset[i]; j < h; j += intjump[i]) - { - DGifGetLine(gif, rows[j], w); - } - } - } - else - { - for (i = 0; i < h; i++) - { - if (DGifGetLine(gif, rows[i], w) != GIF_OK) - { - *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; - goto error; - } - } - } - alpha = gif_frame->frame_info.transparent; - siz = cache_w *cache_h * sizeof(DATA32); - frame->data = malloc(siz); - if (!frame->data) - { - *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; - goto error; - } - ptr = frame->data; - bg = gif->SBackGroundColor; - cmap = (gif->Image.ColorMap ? gif->Image.ColorMap : gif->SColorMap); - - if (!cmap) - { - DGifCloseFile(gif); - for (i = 0; i < h; i++) - { - free(rows[i]); - } - free(rows); - if (frame->data) free(frame->data); - *error = EVAS_LOAD_ERROR_CORRUPT_FILE; - return EINA_FALSE; - } - - /* get the background value */ - r = cmap->Colors[bg].Red; - g = cmap->Colors[bg].Green; - b = cmap->Colors[bg].Blue; - bg_val = ARGB_JOIN(0xff, r, g, b); - - per_inc = 100.0 / (((double)w) * h); - cur_h = h; - cur_w = w; - if (cur_h > cache_h) cur_h = cache_h; - if (cur_w > cache_w) cur_w = cache_w; - - if (frame->index > 1) - { - /* get previous frame only frame index is bigger than 1 */ - DATA32 *ptr_src; - Image_Entry_Frame *new_frame = NULL; - int cur_frame = frame->index; - int start_frame = 1; - int j = 0; - - if (_find_close_frame(ie, cur_frame, &new_frame)) - start_frame = new_frame->index + 1; - - if ((start_frame < 1) || (start_frame > cur_frame)) - { - *error = EVAS_LOAD_ERROR_CORRUPT_FILE; - goto error; - } - /* load previous frame of cur_frame */ - for (j = start_frame; j < cur_frame ; j++) - { - if (!evas_image_load_specific_frame(ie, ie->file, j, error)) - { - *error = EVAS_LOAD_ERROR_CORRUPT_FILE; - goto error; - } - } - if (!_find_frame(ie, cur_frame - 1, &new_frame)) - { - *error = EVAS_LOAD_ERROR_CORRUPT_FILE; - goto error; - } - else - { - Gif_Frame *gif_frame = NULL; - ptr_src = new_frame->data; - if (new_frame->info) - { - gif_frame = (Gif_Frame *)(new_frame->info); - disposal = gif_frame->frame_info.disposal; - } - switch(disposal) /* we only support disposal flag 0,1,2 */ - { - case 1: /* Do not dispose. need previous frame*/ - memcpy(ptr, ptr_src, siz); - /* composite frames */ - ptr = ptr + cache_w * y; - - for (i = 0; i < cur_h; i++) - { - ptr = ptr + x; - for (j = 0; j < cur_w; j++) - { - if (rows[i][j] == alpha) - { - ptr++ ; - } - else - { - r = cmap->Colors[rows[i][j]].Red; - g = cmap->Colors[rows[i][j]].Green; - b = cmap->Colors[rows[i][j]].Blue; - *ptr++ = ARGB_JOIN(0xff, r, g, b); - } - per += per_inc; - } - ptr = ptr + (cache_w - (x + cur_w)); - } - break; - case 2: /* Restore to background color */ - memcpy(ptr, ptr_src, siz); - /* composite frames */ - for (i = 0; i < cache_h; i++) - { - if ((i < y) || (i >= (y + cur_h))) - { - for (j = 0; j < cache_w; j++) - { - *ptr = bg_val; - ptr++; - } - } - else - { - int i1, j1; - i1 = i -y; - - for (j = 0; j < cache_w; j++) - { - j1 = j - x; - if ((j < x) || (j >= (x + cur_w))) - { - *ptr = bg_val; - ptr++; - } - else - { - r = cmap->Colors[rows[i1][j1]].Red; - g = cmap->Colors[rows[i1][j1]].Green; - b = cmap->Colors[rows[i1][j1]].Blue; - *ptr++ = ARGB_JOIN(0xff, r, g, b); - } - } - } - } - break; - case 0: /* No disposal specified */ - default: - memset(ptr, 0, siz); - for (i = 0; i < cache_h; i++) - { - if ((i < y) || (i >= (y + cur_h))) - { - for (j = 0; j < cache_w; j++) - { - *ptr = bg_val; - ptr++; - } - } - else - { - int i1, j1; - i1 = i -y; - - for (j = 0; j < cache_w; j++) - { - j1 = j - x; - if ((j < x) || (j >= (x + cur_w))) - { - *ptr = bg_val; - ptr++; - } - else - { - r = cmap->Colors[rows[i1][j1]].Red; - g = cmap->Colors[rows[i1][j1]].Green; - b = cmap->Colors[rows[i1][j1]].Blue; - *ptr++ = ARGB_JOIN(0xff, r, g, b); - } - } - } - } - break; - } - } - } - else /* first frame decoding */ - { - /* fill background color */ - for (i = 0; i < cache_h; i++) - { - if ((i < y) || (i >= (y + cur_h))) - { - for (j = 0; j < cache_w; j++) - { - *ptr = bg_val; - ptr++; - } - } - else - { - int i1, j1; - i1 = i -y; - - for (j = 0; j < cache_w; j++) - { - j1 = j - x; - if ((j < x) || (j >= (x + cur_w))) - { - *ptr = bg_val; - ptr++; - } - else - { - if (rows[i1][j1] == alpha) - { - ptr++ ; - } - else - { - r = cmap->Colors[rows[i1][j1]].Red; - g = cmap->Colors[rows[i1][j1]].Green; - b = cmap->Colors[rows[i1][j1]].Blue; - *ptr++ = ARGB_JOIN(0xff, r, g, b); - } - } - } - } - } - } - - for (i = 0; i < h; i++) - { - if (rows[i]) free(rows[i]); - } - if (rows) free(rows); - frame->loaded = EINA_TRUE; - return EINA_TRUE; -error: - for (i = 0; i < h; i++) - { - if (rows[i]) free(rows[i]); - } - if (rows) free(rows); - return EINA_FALSE; -} - -static Eina_Bool -_evas_image_load_frame(Image_Entry *ie, GifFileType *gif, Image_Entry_Frame *frame, Frame_Load_Type type, int *error) -{ - GifRecordType rec; - int gra_res = 0, img_res = 0; - Eina_Bool res = EINA_FALSE; - Gif_Frame *gif_frame = NULL; - - if ((!gif) || (!frame)) return EINA_FALSE; - gif_frame = (Gif_Frame *) frame->info; - - if (type > LOAD_FRAME_DATA_INFO) return EINA_FALSE; - - do - { - if (DGifGetRecordType(gif, &rec) == GIF_ERROR) return EINA_FALSE; - if (rec == IMAGE_DESC_RECORD_TYPE) - { - img_res++; - break; - } - else if (rec == EXTENSION_RECORD_TYPE) - { - int ext_code; - GifByteType *ext; - - ext = NULL; - DGifGetExtension(gif, &ext_code, &ext); - while (ext) - { - if (ext_code == 0xf9) /* Graphic Control Extension */ - { - gra_res++; - /* fill frame info */ - if ((type == LOAD_FRAME_INFO) || (type == LOAD_FRAME_DATA_INFO)) - _evas_image_load_frame_graphic_info(frame,ext); - } - ext = NULL; - DGifGetExtensionNext(gif, &ext); - } - } - } while ((rec != TERMINATE_RECORD_TYPE) && (img_res == 0)); - if (img_res != 1) return EINA_FALSE; - if (DGifGetImageDesc(gif) == GIF_ERROR) return EINA_FALSE; - if ((type == LOAD_FRAME_INFO) || (type == LOAD_FRAME_DATA_INFO)) - _evas_image_load_frame_image_des_info(gif, frame); - - if ((type == LOAD_FRAME_DATA) || (type == LOAD_FRAME_DATA_INFO)) - { - res = _evas_image_load_frame_image_data(ie, gif,frame, error); - if (!res) return EINA_FALSE; - } - return EINA_TRUE; -} - - -/* set frame data to cache entry's data */ -static Eina_Bool -evas_image_load_file_data_gif_internal(Image_Entry *ie, Image_Entry_Frame *frame, int *error) -{ - int w; - int h; - int dst_x; - int dst_y; - DATA32 *dst; - DATA32 *src; - int cache_w, cache_h; - size_t siz; - Gif_Frame *gif_frame = NULL; - - gif_frame = (Gif_Frame *) frame->info; - cache_w = ie->w; - cache_h = ie->h; - w = gif_frame->image_des.w; - h = gif_frame->image_des.h; - dst_x = gif_frame->image_des.x; - dst_y = gif_frame->image_des.y; - - src = frame->data; - - if (!evas_cache_image_pixels(ie)) - { - evas_cache_image_surface_alloc(ie, cache_w, cache_h); - } - - if (!evas_cache_image_pixels(ie)) - { - *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; - return EINA_FALSE; - } - - /* only copy real frame part */ - siz = cache_w * cache_h * sizeof(DATA32); - dst = evas_cache_image_pixels(ie); - - memcpy(dst, src, siz); - - evas_common_image_premul(ie); - - *error = EVAS_LOAD_ERROR_NONE; - return EINA_TRUE; -} - -static Eina_Bool -evas_image_load_file_head_gif(Image_Entry *ie, const char *file, const char *key __UNUSED__, int *error) -{ - int fd; - GifFileType *gif; - GifRecordType rec; - int w; - int h; - int alpha; - int loop_count = -1; - - w = 0; - h = 0; - alpha = -1; - -#ifndef __EMX__ - fd = open(file, O_RDONLY); -#else - fd = open(file, O_RDONLY | O_BINARY); -#endif - if (fd < 0) - { - *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; - return EINA_FALSE; - } - - gif = DGifOpenFileHandle(fd); - if (!gif) - { - if (fd) close(fd); - *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; - return EINA_FALSE; - } - - /* check logical screen size */ - w = gif->SWidth; - h = gif->SHeight; - - if ((w < 1) || (h < 1) || (w > IMG_MAX_SIZE) || (h > IMG_MAX_SIZE) || - IMG_TOO_BIG(w, h)) - { - DGifCloseFile(gif); - if (IMG_TOO_BIG(w, h)) - *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; - else - *error = EVAS_LOAD_ERROR_GENERIC; - return EINA_FALSE; - } - ie->w = w; - ie->h = h; - - do - { - if (DGifGetRecordType(gif, &rec) == GIF_ERROR) - { - /* PrintGifError(); */ - DGifCloseFile(gif); - *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; - return EINA_FALSE; - } - - /* image descript info */ - if (rec == IMAGE_DESC_RECORD_TYPE) - { - int img_code; - GifByteType *img; - - if (DGifGetImageDesc(gif) == GIF_ERROR) - { - /* PrintGifError(); */ - DGifCloseFile(gif); - *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; - return EINA_FALSE; - } - /* we have to count frame, so use DGifGetCode and skip decoding */ - if (DGifGetCode(gif, &img_code, &img) == GIF_ERROR) - { - /* PrintGifError(); */ - DGifCloseFile(gif); - *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; - return EINA_FALSE; - } - while (img) - { - img = NULL; - DGifGetCodeNext(gif, &img); - } - } - else if (rec == EXTENSION_RECORD_TYPE) - { - int ext_code; - GifByteType *ext; - - ext = NULL; - DGifGetExtension(gif, &ext_code, &ext); - while (ext) - { - if (ext_code == 0xf9) /* Graphic Control Extension */ - { - if ((ext[1] & 1) && (alpha < 0)) alpha = (int)ext[4]; - } - else if (ext_code == 0xff) /* application extension */ - { - if (!strncmp ((char*)(&ext[1]), "NETSCAPE2.0", 11) || - !strncmp ((char*)(&ext[1]), "ANIMEXTS1.0", 11)) - { - ext=NULL; - DGifGetExtensionNext(gif, &ext); - - if (ext[1] == 0x01) - { - loop_count = ext[2] + (ext[3] << 8); - if (loop_count > 0) loop_count++; - } - } - } - - ext = NULL; - DGifGetExtensionNext(gif, &ext); - } - } - } while (rec != TERMINATE_RECORD_TYPE); - - if (alpha >= 0) ie->flags.alpha = 1; - - if (gif->ImageCount > 1) - { - ie->flags.animated = 1; - ie->loop_count = loop_count; - ie->loop_hint = EVAS_IMAGE_ANIMATED_HINT_LOOP; - ie->frame_count = gif->ImageCount; - ie->frames = NULL; - } - - DGifCloseFile(gif); - *error = EVAS_LOAD_ERROR_NONE; - return EINA_TRUE; -} - -static Eina_Bool -evas_image_load_specific_frame(Image_Entry *ie, const char *file, int frame_index, int *error) -{ - int fd; - GifFileType *gif; - Image_Entry_Frame *frame = NULL; - Gif_Frame *gif_frame = NULL; - -#ifndef __EMX__ - fd = open(file, O_RDONLY); -#else - fd = open(file, O_RDONLY | O_BINARY); -#endif - if (fd < 0) - { - *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; - return EINA_FALSE; - } - - gif = DGifOpenFileHandle(fd); - if (!gif) - { - if (fd) close(fd); - *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; - return EINA_FALSE; - } - if (!_evas_image_skip_frame(gif, frame_index-1)) - { - if (fd) close(fd); - *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; - return EINA_FALSE; - } - - frame = malloc(sizeof (Image_Entry_Frame)); - if (!frame) - { - if (fd) close(fd); - *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; - return EINA_FALSE; - } - - gif_frame = malloc(sizeof (Gif_Frame)); - if (!gif_frame) - { - if (fd) close(fd); - *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; - return EINA_FALSE; - } - frame->info = gif_frame; - frame->index = frame_index; - if (!_evas_image_load_frame(ie,gif, frame, LOAD_FRAME_DATA_INFO,error)) - { - if (fd) close(fd); - *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; - return EINA_FALSE; - } - - ie->frames = eina_list_append(ie->frames, frame); - DGifCloseFile(gif); - return EINA_TRUE; -} - -static Eina_Bool -evas_image_load_file_data_gif(Image_Entry *ie, const char *file, const char *key __UNUSED__, int *error) -{ - int cur_frame_index; - Image_Entry_Frame *frame = NULL; - Eina_Bool hit; - - if(!ie->flags.animated) - cur_frame_index = 1; - else - cur_frame_index = ie->cur_frame; - - if ((ie->flags.animated) && - ((cur_frame_index <0) || (cur_frame_index > FRAME_MAX) || (cur_frame_index > ie->frame_count))) - { - *error = EVAS_LOAD_ERROR_GENERIC; - return EINA_FALSE; - } - - /* first time frame is set to be 0. so default is 1 */ - if (cur_frame_index == 0) cur_frame_index++; - - /* Check current frame exists in hash table */ - hit = _find_frame(ie, cur_frame_index, &frame); - - /* if current frame exist in has table, check load flag */ - if (hit) - { - if (frame->loaded) - evas_image_load_file_data_gif_internal(ie,frame,error); - else - { - int fd; - GifFileType *gif; - -#ifndef __EMX__ - fd = open(file, O_RDONLY); -#else - fd = open(file, O_RDONLY | O_BINARY); -#endif - if (fd < 0) - { - *error = EVAS_LOAD_ERROR_DOES_NOT_EXIST; - return EINA_FALSE; - } - - gif = DGifOpenFileHandle(fd); - if (!gif) - { - if (fd) close(fd); - *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; - return EINA_FALSE; - } - _evas_image_skip_frame(gif, cur_frame_index-1); - if (!_evas_image_load_frame(ie, gif, frame, LOAD_FRAME_DATA,error)) - { - if (fd) close(fd); - *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; - return EINA_FALSE; - } - if (!evas_image_load_file_data_gif_internal(ie, frame, error)) - { - if (fd) close(fd); - *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; - return EINA_FALSE; - } - DGifCloseFile(gif); - *error = EVAS_LOAD_ERROR_NONE; - return EINA_TRUE; - } - } - /* current frame does is not exist */ - else - { - if (!evas_image_load_specific_frame(ie, file, cur_frame_index, error)) - { - return EINA_FALSE; - } - hit = EINA_FALSE; - frame = NULL; - hit = _find_frame(ie, cur_frame_index, &frame); - if (!hit) return EINA_FALSE; - if (!evas_image_load_file_data_gif_internal(ie, frame, error)) - { - *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; - return EINA_FALSE; - } - return EINA_TRUE; - } - return EINA_FALSE; -} - -static double -evas_image_load_frame_duration_gif(Image_Entry *ie, const char *file, const int start_frame, const int frame_num) -{ - int fd; - GifFileType *gif; - GifRecordType rec; - int done; - int current_frame = 1; - int remain_frames = frame_num; - double duration = 0; - int frame_count = 0; - - frame_count = ie->frame_count; - - if (!ie->flags.animated) return -1; - if ((start_frame + frame_num) > frame_count) return -1; - if (frame_num < 0) return -1; - - done = 0; - -#ifndef __EMX__ - fd = open(file, O_RDONLY); -#else - fd = open(file, O_RDONLY | O_BINARY); -#endif - if (fd < 0) return -1; - - gif = DGifOpenFileHandle(fd); - if (!gif) - { - if (fd) close(fd); - return -1; - } - - do - { - if (DGifGetRecordType(gif, &rec) == GIF_ERROR) - { - rec = TERMINATE_RECORD_TYPE; - } - if (rec == IMAGE_DESC_RECORD_TYPE) - { - int img_code; - GifByteType *img; - - if (DGifGetImageDesc(gif) == GIF_ERROR) - { - /* PrintGifError(); */ - rec = TERMINATE_RECORD_TYPE; - } - current_frame++; - /* we have to count frame, so use DGifGetCode and skip decoding */ - if (DGifGetCode(gif, &img_code, &img) == GIF_ERROR) - { - rec = TERMINATE_RECORD_TYPE; - } - while (img) - { - img = NULL; - DGifGetExtensionNext(gif, &img); - } - } - else if (rec == EXTENSION_RECORD_TYPE) - { - int ext_code; - GifByteType *ext; - - ext = NULL; - DGifGetExtension(gif, &ext_code, &ext); - while (ext) - { - if (ext_code == 0xf9) /* Graphic Control Extension */ - { - if ((current_frame >= start_frame) && (current_frame <= frame_count)) - { - int frame_duration = 0; - if (remain_frames < 0) break; - frame_duration = byte2_to_int (ext[2], ext[3]); - if (frame_duration == 0) - duration += 0.1; - else - duration += (double)frame_duration/100; - remain_frames --; - } - } - ext = NULL; - DGifGetExtensionNext(gif, &ext); - } - } - } while (rec != TERMINATE_RECORD_TYPE); - - DGifCloseFile(gif); - return duration; -} - -static int -module_open(Evas_Module *em) -{ - if (!em) return 0; - em->functions = (void *)(&evas_image_load_gif_func); - return 1; -} - -static void -module_close(Evas_Module *em __UNUSED__) -{ -} - -static Evas_Module_Api evas_modapi = -{ - 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 -- cgit v1.1