and new much cleaner tree.

SVN revision: 12113
This commit is contained in:
Carsten Haitzler 2004-11-01 09:45:31 +00:00
parent 31660022d0
commit 5886f2a7cd
156 changed files with 50041 additions and 0 deletions

30
AUTHORS Normal file
View File

@ -0,0 +1,30 @@
The Rasterman (Carsten Haitzler) <raster@rasterman.com> <raster@valinux.com>
Ryan Gustafson <ryan_gustafson@yahoo.com>
Mandrake (Geoff Harrison) <mandrake@mandrake.net>
Willem Monsuwe <willem@stack.nl>
KainX (Michael Jennings) <mej@eterm.org>
Eric Dorland <dorland@lords.com>
Chutt (Isaac Richards) <ijr@po.cwru.edu>
giblet (Tom Gilbert) <tom@linuxbrit.co.uk>
Takis <takis@lumumba.luc.ac.be>
Dan Maas <dmaas@dcine.com>
Platon Fomichev <pla@cland.ru>
boris (Chris Ross) <chris@darkrock.co.uk>
Martin Grimm <grimm.martin@gmx.de>
Matt McClanahan <cardinal@dodds.net>
Steve Langasek <vorlon@dodds.net>
Christophe Tronche <ch.tronche@computer.org>
Nathan Ingersoll <ningerso@d.umn.edu>
Masa(Masahiko) Mori <masa@engr.sgi.com>
Term (Lyle Kempler) <term@twistedpath.org>
Adam Kisiel <kisiel@if.pw.edu.pl>
Carsten Pfeiffer <carpdjih@sp.zrz.tu-berlin.de>
Lightman (Franz Marini) <marini@pcmenelao.mi.infn.it>
Mark Bainter <mark-e@cymry.org>
Brian Lindholm <brian_lindholm@users.sourceforge.net>
Renchi Raju <renchi@pooh.tam.uiuc.edu>
Yuri Hudobin <glassy_ape@users.sourceforge.net>
Radoslaw Grzanka <radekg2@poczta.onet.pl>
Kim Woelders <kim@woelders.dk>
Nick Blievers <nickb@sgi.com>
Mike Castle <dalgoda@ix.netcom.com>

28
COPYING Normal file
View File

@ -0,0 +1,28 @@
Copyright (C) 2000 Carsten Haitzler and various contributors (see AUTHORS)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies of the Software and its Copyright notices. In addition publicly
documented acknowledgment must be given that this software has been used if no
source code of this software is made available publicly. This includes
acknowledgments in either Copyright notices, Manuals, Publicity and Marketing
documents or any documentation provided with any product containing this
software. This License does not apply to any software that links to the
libraries provided by this software (statically or dynamically), but only to
the software provided.
Please see the COPYING.PLAIN for a plain-english explanation of this notice
and it's intent.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

33
COPYING-PLAIN Normal file
View File

@ -0,0 +1,33 @@
Plain English Copyright Notice
This file is not intended to be the actual License. The reason this file
exists is that we here are programmers and engineers. We aren't lawyers. We
provide licenses that we THINK say the right things, but we have our own
intentions at heart. This is a plain-english explanation of what those
intentions are, and if you follow them you will be within the "spirit" of
the license.
The intent is for us to enjoy writing software that is useful to us (the
AUTHORS) and allow others to use it freely and also benefit from the work we
put into making it. We don't want to restrict others using it. They should
not *HAVE* to make the source code of the applications they write that
simply link to these libraries (be that statically or dynamically), or for
them to be limited as to what license they choose to use (be it open, closed
or anything else). But we would like to know you are using these libraries.
We simply would like to know that it has been useful to someone. This is why
we ask for acknowledgement of some sort.
You can do what you want with the source of this software - it doesn't
matter. We still have it here for ourselves and it is open and free to use
and download and play with. It can't be taken away. We don't really mind what
you do with the source to your software. We would simply like to know that
you are using it - especially if it makes it to a commerical product. If you
simply e-mail all the AUTHORS (see COPYING and AUTHORS files) telling us, and
then make sure you include a paragraph or page in the manual for the product
with the copyright notice and state that you used this software, we will be
very happy. If you want to contribute back modifications and fixes you may have
made we will welcome those too with open arms (generally). If you want help
with changes needed, ports needed or features to be added, arrangements can
be easily made with some dialogue.
Carsten Haitzler <raster@rasterman.com>

3007
ChangeLog Normal file

File diff suppressed because it is too large Load Diff

139
Doxyfile Normal file
View File

@ -0,0 +1,139 @@
PROJECT_NAME = Imlib2
PROJECT_NUMBER =
OUTPUT_DIRECTORY = doc
INPUT = imlib2.c
IMAGE_PATH = doc/img
OUTPUT_LANGUAGE = English
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER = doc/head.html
HTML_FOOTER = doc/foot.html
HTML_STYLESHEET = doc/imlib2.css
HTML_ALIGN_MEMBERS = YES
ENUM_VALUES_PER_LINE = 1
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = NO
EXTRACT_ALL = NO
EXTRACT_PRIVATE = NO
EXTRACT_STATIC = NO
EXTRACT_LOCAL_CLASSES = NO
HIDE_UNDOC_MEMBERS = YES
HIDE_UNDOC_CLASSES = YES
HIDE_FRIEND_COMPOUNDS = YES
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = NO
STRIP_FROM_PATH =
INTERNAL_DOCS = NO
STRIP_CODE_COMMENTS = YES
CASE_SENSE_NAMES = YES
SHORT_NAMES = NO
HIDE_SCOPE_NAMES = NO
VERBATIM_HEADERS = NO
SHOW_INCLUDE_FILES = NO
JAVADOC_AUTOBRIEF = YES
MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = NO
INHERIT_DOCS = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
DISTRIBUTE_GROUP_DOC = NO
TAB_SIZE = 2
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ALIASES =
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
SHOW_USED_FILES = NO
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
FILE_PATTERNS =
RECURSIVE = NO
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
INPUT_FILTER =
FILTER_SOURCE_FILES = NO
SOURCE_BROWSER = NO
INLINE_SOURCES = NO
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 2
IGNORE_PREFIX =
GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250
GENERATE_LATEX = YES
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = YES
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
GENERATE_MAN = YES
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = YES
GENERATE_XML = YES
XML_SCHEMA =
XML_DTD =
GENERATE_AUTOGEN_DEF = NO
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = NO
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
CLASS_DIAGRAMS = NO
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = NO
CLASS_GRAPH = NO
COLLABORATION_GRAPH = NO
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = NO
INCLUDED_BY_GRAPH = NO
GRAPHICAL_HIERARCHY = NO
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 512
MAX_DOT_GRAPH_HEIGHT = 512
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
SEARCHENGINE = NO

14
INSTALL Normal file
View File

@ -0,0 +1,14 @@
COMPILING and INSTALLING:
If you got a official release tar archive do:
./configure
( otherwise if you got this from enlightenment cvs do: ./autogen.sh )
Then to compile:
make
To install (run this as root, or the user who handles installs):
make install
NOTE: You MUST make install Epeg for it to run properly.

22
Makefile.am Normal file
View File

@ -0,0 +1,22 @@
## Process this file with automake to produce Makefile.in
SUBDIRS = src data doc debian
MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess \
config.h.in config.sub configure install-sh \
ltconfig ltmain.sh missing mkinstalldirs \
stamp-h.in imlib2_docs.tar imlib2_docs.tar.gz imlib2.c
dist-hook:
./gendoc; \
tar cvf imlib2_docs.tar doc; \
rm -f imlib2_docs.tar.gz; \
gzip -9 imlib2_docs.tar;
bin_SCRIPTS = imlib2-config
EXTRA_DIST = README AUTHORS COPYING COPYING-PLAIN TODO imlib2.spec imlib2.c.in imlib2.pc.in gendoc Doxyfile imlib2_docs.tar.gz
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = imlib2.pc

0
NEWS Normal file
View File

41
README Normal file
View File

@ -0,0 +1,41 @@
###############################################################################
# #
# I M L I B 2 #
# #
###############################################################################
This is the Imlib 2 library - a library that does image file loading and
saving as well as rendering, manipulation, arbitrary polygon support, etc.
It does ALL of these operations FAST. Imlib2 also tries to be highly
intelligent about doing them, so writing naive programs can be done
easily, without sacrificing speed.
This is a complete rewrite over the Imlib 1.x series. The architecture is
more modular, simple, and flexible. See index.html in the doc/ directory
for more information.
Imlib2 requires several libraries to be already installed. These are:
libjpeg http://www.ijg.org/
libpng http://www.libpng.org/pub/png/libpng.html
freetype 2.1.x http://www.freetype.org/
For examples of this library in use, seek:
Eterm http://www.eterm.org/ (CVS version only, currently)
feh http://www.linuxbrit.co.uk/feh.html
geist http://www.linuxbrit.co.uk/geist.html
A blurb about each of the directories:
debian/ Debian build files
demo/ Demo view program
doc/ Documentation for imlib2, primarily in html
filters/ Filter shared objects
libltdl/ Libtool LGPL-licensed loadable module support library source
loaders/ Imlib2's image loader-savers (jpg, png, etc)
src/ Imlib2 main source
test/ Test program(s)

6
TODO Normal file
View File

@ -0,0 +1,6 @@
* line code doesnt draw nice liens when clipping - fix
* filled polygons can break fill bounds on corner cases - fix
* go thru TODOs and FIXMEs
evas2 has fixed code for these 2 in it that work just fine. just need to
port over (should be fairly easy).

13
autogen.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/sh
rm -rf autom4te.cache
rm -f aclocal.m4
echo "Running aclocal..."; aclocal $ACLOCAL_FLAGS -I m4 \
&& echo "Running autoheader..."; autoheader \
&& echo "Running autoconf..."; autoconf \
&& echo "Running libtoolize..."; (libtoolize --automake || glibtoolize --automake) \
&& echo "Running automake..."; automake --add-missing --copy --gnu
### If you want this, uncomment it.
./configure "$@"

394
configure.in Normal file
View File

@ -0,0 +1,394 @@
# get rid of that stupid cache mechanism
rm -f config.cache
AC_INIT(configure.in)
AC_CANONICAL_BUILD
AC_CANONICAL_HOST
AC_CANONICAL_TARGET
AC_ISC_POSIX
AM_INIT_AUTOMAKE(imlib2, 1.2.0)
AM_CONFIG_HEADER(config.h)
AC_C_BIGENDIAN
AC_PROG_CC
AM_PROG_CC_STDC
AC_HEADER_STDC
AC_C_CONST
AM_ENABLE_SHARED
AM_PROG_LIBTOOL
if test "x${exec_prefix}" = "xNONE"; then
if test "x${prefix}" = "xNONE"; then
bindir="${ac_default_prefix}/bin";
else
bindir="${prefix}/bin";
fi
else
if test "x${prefix}" = "xNONE"; then
bindir="${ac_default_prefix}/bin";
else
bindir="${prefix}/bin";
fi
fi
if test "x${exec_prefix}" = "xNONE"; then
if test "x${prefix}" = "xNONE"; then
libdir="${ac_default_prefix}/lib";
else
libdir="${prefix}/lib";
fi
else
if test "x${prefix}" = "xNONE"; then
libdir="${ac_default_prefix}/lib";
else
libdir="${prefix}/lib";
fi
fi
dnl Set PACKAGE_BIN_DIR in config.h.
if test "x${bindir}" = 'xNONE'; then
if test "x${prefix}" = "xNONE"; then
AC_DEFINE_UNQUOTED(PACKAGE_BIN_DIR, "${ac_default_prefix}/bin", [Installation directory for user executables])
else
AC_DEFINE_UNQUOTED(PACKAGE_BIN_DIR, "${prefix}/bin", [Installation directory for user executables])
fi
else
AC_DEFINE_UNQUOTED(PACKAGE_BIN_DIR, "${bindir}", [Installation directory for user executables])
fi
dnl Set PACKAGE_LIB_DIR in config.h.
if test "x${libdir}" = 'xNONE'; then
if test "x${prefix}" = "xNONE"; then
AC_DEFINE_UNQUOTED(PACKAGE_LIB_DIR, "${ac_default_prefix}/lib", [Installation directory for libraries])
else
AC_DEFINE_UNQUOTED(PACKAGE_LIB_DIR, "${prefix}/lib", [Installation directory for libraries])
fi
else
AC_DEFINE_UNQUOTED(PACKAGE_LIB_DIR, "${libdir}", [Installation directory for libraries])
fi
dnl Set PACKAGE_DATA_DIR in config.h.
if test "x${datadir}" = 'x${prefix}/share'; then
if test "x${prefix}" = "xNONE"; then
AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${ac_default_prefix}/share/${PACKAGE}", "Package installed data destination")
else
AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${prefix}/share/${PACKAGE}", "Package installed data destination")
fi
else
AC_DEFINE_UNQUOTED(PACKAGE_DATA_DIR, "${datadir}/${PACKAGE}", "Package installed data destination")
fi
dnl Set PACKAGE_SOURCE_DIR in config.h.
packagesrcdir=`cd $srcdir && pwd`
AC_DEFINE_UNQUOTED(PACKAGE_SOURCE_DIR, "${packagesrcdir}", [Source code directory])
mmx=no
AC_ARG_ENABLE(mmx,[ --disable-mmx attempt compiling using mmx assembly [default=yes]],
[
if test x$enableval = xyes; then
mmx=yes
AC_MSG_RESULT(enabling mmx support)
else
mmx=no
AC_MSG_RESULT(disabling mmx support)
fi
],
[
if test x$target_os = xlinux-gnu; then
if test x$target_cpu = x$host_cpu; then
mmx=`cat /proc/cpuinfo | grep mmx`
if test -n "$mmx"; then
mmx=yes
fi
else
echo ""
echo "You are cross-compiling on a "$host_cpu" machine for a "$target_os" machine."
echo "If this target supports mmx, please enable mmx with --enable-mmx as a"
echo "configure option."
echo ""
fi
else
echo ""
echo "You are not running Linux - This script cannot auto-detect mmx assembly."
echo "You will have to enable the mmx assembly (which gives anywhere from 10%"
echo "to 300% speedups) by adding --enable-mmx on the configure command-line."
echo ""
fi
]
)
if test x$mmx = xyes; then
AC_DEFINE(DO_MMX_ASM, 1, [enabling MMX Assembly])
AC_MSG_RESULT(enabled mmx support)
else
AC_MSG_RESULT(disabled mmx support)
fi
AM_CONDITIONAL(BUILD_MMX, test x$mmx = xyes)
ASFLAGS="$ASFLAGS -I../"
AS=$CC
AC_SUBST(ASFLAGS)
AC_SUBST(AS)
CCASFLAGS="$ASFLAGS"
CCAS="$AS"
AC_SUBST(CCASFLAGS)
AC_SUBST(CCAS)
# check for freetype
AC_ARG_WITH(freetype-config,
[ --with-freetype-config=FREETYPE_CONFIG use freetype-config specified ],
[
PROG_CONFIG=$withval;
echo "using "$PROG_CONFIG" for freetype-config";
],[
PROG="freetype-config";
AC_PATH_PROG(PROG_CONFIG, $PROG, "", $PATH)
])
if test -n "$FREETYPE_CONFIG"; then
PROG_CONFIG=$FREETYPE_CONFIG;
fi
if test -z "$PROG_CONFIG"; then
echo $PROG " is not in your \$PATH. Please ensure it is.";
echo "You may need to install the library and/or development packages";
echo "that contain this configure-script.";
echo "FATAL ERROR. ABORT.";
exit -1;
fi
freetype_cflags=`$PROG_CONFIG --cflags`
freetype_libs=`$PROG_CONFIG --libs`
x11=no
AC_ARG_ENABLE(x11,[ --disable-x11 attempt to build with X11 support [default=yes]],
[
if test x$enableval = xyes; then
have_x=yes
else
have_x=no
fi
],
[
AC_CHECK_HEADER(X11/X.h,
[ have_x="yes" ],
[ have_x="no" ]
)
]
)
AC_MSG_CHECKING(whether X11 support is to be enabled)
if test "x$have_x" = "xyes"; then
x_dir="/usr/X11R6";
x_cflags="-I"$x_dir"/include"
x_libs="-L"$x_dir"/lib -lX11 -lXext"
AC_MSG_RESULT(enabling X11 support)
AM_CONDITIONAL(BUILD_X11, true)
AC_DEFINE(BUILD_X11, 1, [enabling X11 support])
else
x_dir=""
x_cflags=""
x_libs=""
AC_MSG_RESULT(disabling X11 support)
AM_CONDITIONAL(BUILD_X11, false)
fi
dlopen_libs=""
AC_CHECK_LIB(dl, dlopen, dlopen_libs=-ldl)
my_includes=$freetype_cflags" "$x_cflags" "
my_libs=$freetype_libs" "$x_libs" "$dlopen_libs" -lm"
AC_SUBST(my_includes)
AC_SUBST(my_libs)
AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
jpeg_ok=yes,
jpeg_ok=no
AC_MSG_WARN(*** Native JPEG support will not be built (JPEG library not found) ***),
)
if test "$jpeg_ok" = yes; then
AC_MSG_CHECKING([for jpeglib.h])
AC_TRY_CPP(
[#include <stdio.h>
#undef PACKAGE
#undef VERSION
#include <jpeglib.h>],
jpeg_ok=yes,
jpeg_ok=no)
AC_MSG_RESULT($jpeg_ok)
if test "$jpeg_ok" = yes; then
JPEGLIBS="-ljpeg"
else
AC_MSG_WARN(*** Native JPEG support will not be built (JPEG header file not found) ***)
fi
fi
AM_CONDITIONAL(BUILD_JPEG_LOADER, test "$jpeg_ok" = yes)
AC_SUBST(JPEGLIBS)
AC_CHECK_LIB(png, png_read_info,
png_ok=yes,
png_ok=no
AC_MSG_WARN(*** Native PNG support will not be built (PNG library not found) ***),
-lz -lm)
if test "$png_ok" = yes; then
AC_MSG_CHECKING([for png.h])
AC_TRY_CPP(
[#include <stdio.h>
#undef PACKAGE
#undef VERSION
#include <png.h>],
png_ok=yes,
png_ok=no)
AC_MSG_RESULT($png_ok)
if test "$png_ok" = yes; then
PNGLIBS="-lpng -lz -lm"
else
AC_MSG_WARN(*** Native PNG support will not be built (PNG header file not found) ***)
fi
fi
AM_CONDITIONAL(BUILD_PNG_LOADER, test "$png_ok" = yes)
AC_SUBST(PNGLIBS)
AC_CHECK_LIB(tiff, TIFFReadScanline,
tiff_libs="-ltiff"
tiff_ok=yes,
AC_CHECK_LIB(tiff, TIFFReadScanline,
tiff_libs="-ltiff -ljpeg -lz -lm"
tiff_ok=yes,
AC_CHECK_LIB(tiff34, TIFFReadScanline,
tiff_libs="-ltiff34 -ljpeg -lz -lm"
tiff_ok=yes,
tiff_ok=no
AC_MSG_WARN(*** Native TIFF support will not be built (TIFF library not found) ***),
-ljpeg -lz -lm),
-ljpeg -lz -lm),
)
if test "$tiff_ok" = yes; then
AC_MSG_CHECKING([for tiffio.h])
AC_TRY_CPP(
[#include <stdio.h>
#undef PACKAGE
#undef VERSION
#include <tiffio.h>],
tiff_ok=yes,
tiff_ok=no)
AC_MSG_RESULT($tiff_ok)
if test "$tiff_ok" = yes; then
TIFFLIBS=$tiff_libs
else
AC_MSG_WARN(*** Native TIFF support will not be built (TIFF header file not found) ***)
fi
fi
AM_CONDITIONAL(BUILD_TIFF_LOADER, test "$tiff_ok" = yes)
AC_SUBST(TIFFLIBS)
AC_CHECK_LIB(ungif, DGifOpenFileName,
gif_libs="-lungif"
gif_ok=yes,
gif_ok=no,
)
if test "$gif_ok" = yes; then
AC_MSG_CHECKING([for gif_lib.h])
AC_TRY_CPP(
[#include <stdio.h>
#undef PACKAGE
#undef VERSION
#include <gif_lib.h>],
gif_ok=yes,
gif_ok=no)
AC_MSG_RESULT($gif_ok)
if test "$gif_ok" = yes; then
GIFLIBS=$gif_libs
fi
fi
if test "$gif_ok" = no; then
AC_CHECK_LIB(gif, DGifOpenFileName,
gif_libs="-lgif"
gif_ok=yes,
gif_ok=no
AC_MSG_WARN(*** Native GIF support will not be built (GIF library not found) ***),
)
if test "$gif_ok" = yes; then
AC_MSG_CHECKING([for gif_lib.h])
AC_TRY_CPP(
[#include <stdio.h>
#undef PACKAGE
#undef VERSION
#include <gif_lib.h>],
gif_ok=yes,
gif_ok=no)
AC_MSG_RESULT($gif_ok)
if test "$gif_ok" = yes; then
GIFLIBS=$gif_libs
else
AC_MSG_WARN(*** Native GIF support will not be built (GIF header file not found) ***)
fi
fi
fi
AM_CONDITIONAL(BUILD_GIF_LOADER, test "$gif_ok" = yes)
AC_SUBST(GIFLIBS)
AC_CHECK_LIB(z, uncompress,
zlib_ok=yes,
zlib_ok=no
AC_MSG_WARN(*** Native zlib support will not be built (zlib not found) ***),
)
if test "$zlib_ok" = yes; then
AC_MSG_CHECKING([for zlib.h])
AC_TRY_CPP(
[#include <stdio.h>
#undef PACKAGE
#undef VERSION
#include <zlib.h>],
zlib_ok=yes,
zlib_ok=no)
AC_MSG_RESULT($zlib_ok)
if test "$zlib_ok" = yes; then
ZLIBLIBS="-lz"
else
AC_MSG_WARN(*** Native zlib support will not be built (zlib header file not found) ***)
fi
fi
AM_CONDITIONAL(BUILD_ZLIB_LOADER, test "$zlib_ok" = yes)
AC_SUBST(ZLIBLIBS)
AC_CHECK_LIB(bz2, BZ2_bzRead,
bz2_ok=yes,
bz2_ok=no
AC_MSG_WARN(*** Native bz2 support will not be built (bzip2 library not found) ***),
)
if test "$bz2_ok" = yes; then
AC_MSG_CHECKING([for bzlib.h])
AC_TRY_CPP(
[#include <stdio.h>
#undef PACKAGE
#undef VERSION
#include <bzlib.h>],
bz2_ok=yes,
bz2_ok=no)
AC_MSG_RESULT($bz2_ok)
if test "$bz2_ok" = yes; then
BZ2LIBS="-lbz2"
else
AC_MSG_WARN(*** Native bz2 support will not be built (bzip2 header file not found) ***)
fi
fi
AM_CONDITIONAL(BUILD_BZ2_LOADER, test "$bz2_ok" = yes)
AC_SUBST(BZ2LIBS)
AC_OUTPUT([
Makefile
src/Makefile
src/lib/Makefile
src/bin/Makefile
src/modules/Makefile
src/modules/filters/Makefile
src/modules/loaders/Makefile
data/Makefile
data/fonts/Makefile
data/images/Makefile
doc/Makefile
debian/Makefile
imlib2-config
imlib2.pc
],[
chmod +x imlib2-config
touch imlib2_docs.tar.gz
])

2
data/Makefile.am Normal file
View File

@ -0,0 +1,2 @@
MAINTAINERCLEANFILES = Makefile.in
SUBDIRS = fonts images

11
data/fonts/Makefile.am Normal file
View File

@ -0,0 +1,11 @@
MAINTAINERCLEANFILES = Makefile.in
FILES = \
cinema.ttf \
grunge.ttf \
morpheus.ttf \
notepad.ttf
filesdir = $(pkgdatadir)/data/fonts
files_DATA = $(FILES)
EXTRA_DIST = $(FILES)

BIN
data/fonts/cinema.ttf Normal file

Binary file not shown.

BIN
data/fonts/grunge.ttf Normal file

Binary file not shown.

BIN
data/fonts/morpheus.ttf Normal file

Binary file not shown.

BIN
data/fonts/notepad.ttf Normal file

Binary file not shown.

25
data/images/Makefile.am Normal file
View File

@ -0,0 +1,25 @@
MAINTAINERCLEANFILES = Makefile.in
FILES = \
audio.png \
bg.png \
bulb.png \
cal.png \
calc.png \
folder.png \
globe.png \
imlib2.png \
lock.png \
mail.png \
menu.png \
mush.png \
paper.png \
sh1.png \
sh2.png \
sh3.png \
stop.png \
tnt.png
filesdir = $(pkgdatadir)/data/images
files_DATA = $(FILES)
EXTRA_DIST = $(FILES)

BIN
data/images/audio.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
data/images/bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

BIN
data/images/bulb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
data/images/cal.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
data/images/calc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
data/images/folder.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
data/images/globe.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
data/images/imlib2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

BIN
data/images/lock.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
data/images/mail.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
data/images/menu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
data/images/mush.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
data/images/paper.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
data/images/sh1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 768 B

BIN
data/images/sh2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B

BIN
data/images/sh3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

BIN
data/images/stop.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
data/images/tnt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

9
debian/Makefile.am vendored Normal file
View File

@ -0,0 +1,9 @@
EXTRA_DIST = \
changelog \
control \
copyright \
imlib2-config.1 \
libimlib2-dev.doc-base \
libimlib2.files \
libimlib2-dev.files \
rules

5
debian/changelog vendored Normal file
View File

@ -0,0 +1,5 @@
imlib2 (1.1.2-0cvs20040918) unstable; urgency=low
* a CVS release
-- Sytse Wielinga <s.b.wielinga@student.utwente.nl> Sat, 18 Sep 2004 12:48:44 +0200

44
debian/control vendored Normal file
View File

@ -0,0 +1,44 @@
Source: imlib2
Section: libs
Priority: optional
Maintainer: Laurence J. Lane <ljlane@debian.org>
Build-Depends: libjpeg62-dev, libttf-dev, libpng3-dev | libpng2-dev | libpng-dev, libtiff4-dev | libtiff-dev, zlib1g-dev, libungif4-dev | libungif3g-dev | giflib3g-dev, xlibs-dev, libfreetype6-dev | freetype2-dev, libbz2-dev, libltdl3-dev, automake1.7 | automaken, libtool, debhelper (>= 4.0)
Standards-Version: 3.5.7.0
Package: imlib2-demo
Architecture: any
Section: graphics
Depends: ${shlibs:Depends}
Description: Imlib2 demo's
This package contains two small Imlib2-based programs: a simple
image viewer and a simple image conversion program.
Package: imlib2-test
Architecture: any
Section: graphics
Depends: ${shlibs:Depends}
Description: Imlib2 test programs
This package contains some, not generally usable, test programs
for Imlib2.
Package: libimlib2
Section: libs
Architecture: any
Depends: ${shlibs:Depends}
Suggests: imlib2-loaders, imlib2-demo (= ${Source-Version})
Description: Powerful image loading and rendering library
Imlib2 is an advanced replacement library for libraries like
libXpm that provides many more features with much greater
flexibility and speed than standard libraries, including font
rasterization, rotation, RGBA space rendering and blending,
dynamic binary filters, scripting, and more.
.
Imlib2 is not a drop-in replacement for Imlib 1.x.
Package: libimlib2-dev
Architecture: any
Section: devel
Architecture: any
Depends: libimlib2 (= ${Source-Version}), libc6-dev | libc-dev, libjpeg62-dev, libpng3-dev | libpng2-dev | libpng-dev, libtiff4-dev | libtiff-dev, zlib1g-dev, libttf-dev, libungif4-dev | libungif3g-dev | giflib3g-dev, xlibs-dev, libfreetype6-dev | freetype2-dev, libbz2-dev
Description: Imlib2 headers, static libraries and documentation
Headers, static libraries and documentation for Imlib2.

32
debian/copyright vendored Normal file
View File

@ -0,0 +1,32 @@
This package was debianized by Laurence J. Lane <ljlane@debian.org> on
Sat, 28 Oct 2000 17:56:46 -0400.
The source code is from the e17/libs/imlib2 module of the enlightenment CVS
tree. For more information, see:
http://www.enlightenment.org/cvs.html
Upstream Author: Carsten Haitzler <raster@rasterman.com>
Copyright:
Copyright (C) 2000 Carsten Haitzler and various contributors (see AUTHORS)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies of the Software, its documentation and marketing & publicity
materials, and acknowledgment shall be given in the documentation, materials
and software packages that this Software was used.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

17
debian/imlib2-config.1 vendored Normal file
View File

@ -0,0 +1,17 @@
.TH imlib2-config 1 "29 Oct 2000" imlib2-config
.SH NAME
.HP
imlib2-config - imlib2 build information script
.SH SYNOPSIS
.HP
imlib2-config [options]
.P
.SH DESCRIPTION
.HP
.I imlib2-config
is a script that's used by make and other build enviroments to
gather imlib2 information.
.HP
Run
.I imlib2-config
for additional information.

2
debian/imlib2-demo.install vendored Normal file
View File

@ -0,0 +1,2 @@
usr/bin/imconvert
usr/bin/imlib2_view

5
debian/imlib2-test.install vendored Normal file
View File

@ -0,0 +1,5 @@
usr/bin/imlib2
usr/bin/imlib2_test
usr/bin/bumpmaptest
usr/bin/color_spaces
usr/bin/polytest

10
debian/libimlib2-dev.doc-base vendored Normal file
View File

@ -0,0 +1,10 @@
Document: imlib2
Title: Imlib2 Guide
Author: Carsten Haitzler
Abstract: This document describes Imlib2 API
and provides sample C code.
Section: Apps/Programming
Format: HTML
Index: /usr/share/doc/libimlib2-dev/html/index.html
Files: /usr/share/doc/libimlib2-dev/html/index.html

10
debian/libimlib2-dev.install vendored Normal file
View File

@ -0,0 +1,10 @@
usr/bin/imlib2-config
usr/lib/pkgconfig/*
usr/include
usr/lib/*.so
usr/lib/*.a
usr/lib/*.la
usr/lib/imlib2_loaders/filter/*.a
usr/lib/imlib2_loaders/filter/*.la
usr/lib/imlib2_loaders/image/*.a
usr/lib/imlib2_loaders/image/*.la

3
debian/libimlib2.install vendored Normal file
View File

@ -0,0 +1,3 @@
usr/lib/*.so.*
usr/lib/imlib2_loaders/filter/*.so
usr/lib/imlib2_loaders/image/*.so

88
debian/rules vendored Normal file
View File

@ -0,0 +1,88 @@
#!/usr/bin/make -f
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
# This is the debhelper compatability version to use.
export DH_COMPAT=4
# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
CFLAGS ?= -Wall -g
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
CFLAGS += -O0
else
CFLAGS += -O2
endif
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
INSTALL_PROGRAM += -s
endif
ifneq (,$(findstring mmx,$(DEB_BUILD_OPTIONS)))
ENABLE_MMX = yes
else
ENABLE_MMX = no
endif
INSTALL=/usr/bin/install -p
CONFIGUREOPTS = --prefix=/usr --enable-mmx=$(ENABLE_MMX) --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
package=libimlib2
configure: configure-stamp
configure-stamp:
test -x autogen.sh && ./autogen.sh $(CONFIGUREOPTS) || ./configure $(CONFIGUREOPTS)
touch configure-stamp
build: build-stamp
build-stamp: configure-stamp
dh_testdir
$(MAKE)
touch build-stamp
clean:
dh_testdir
rm -f build-stamp configure-stamp
-$(MAKE) distclean
dh_clean
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp/
$(INSTALL) -d debian/$(package)-dev/usr/share/doc/$(package)-dev/html
$(INSTALL) -m 644 doc/*.html doc/*.gif \
debian/$(package)-dev/usr/share/doc/$(package)-dev/html
binary-indep: build install
binary-arch: build install
dh_testdir
dh_testroot
dh_install --sourcedir=debian/tmp --list-missing
dh_installdocs AUTHORS README
dh_installchangelogs
dh_link
dh_strip
dh_compress
dh_fixperms
dh_makeshlibs
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure

5
doc/Makefile.am Normal file
View File

@ -0,0 +1,5 @@
MAINTAINERCLEANFILES = Makefile.in
EXTRA_DIST = imlib2.gif \
blank.gif \
index.html

BIN
doc/blank.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 B

2
doc/foot.html Normal file
View File

@ -0,0 +1,2 @@
</body>
</html>

19
doc/head.html Normal file
View File

@ -0,0 +1,19 @@
<html>
<head>
<title>$title</title>
<link href=imlib2.css rel=stylesheet type=text/css>
</head>
<body>
<div class=nav>
<table border=0 align=center><tr>
<td width=16><img src=imlib2_mini.png width=16 height=16 alt=E></td>
<td width=100% align=center>
I : M : L : I : B : 2
</td>
<td width=16><img src=imlib2_mini.png width=16 height=16 alt=E></td>
</tr></table>
</div>

BIN
doc/img/hilite.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
doc/img/imlib2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

BIN
doc/img/imlib2_mini.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 753 B

178
doc/imlib2.css Normal file
View File

@ -0,0 +1,178 @@
td.md {
background-color: #ffffff;
font-family: monospace;
text-align: left;
vertical-align: center;
font-size: 10;
padding-right : 1px;
padding-top : 1px;
padding-left : 1px;
padding-bottom : 1px;
margin-left : 1px;
margin-right : 1px;
margin-top : 1px;
margin-bottom : 1px
}
td.mdname {
font-family: monospace;
text-align: left;
vertical-align: center;
font-size: 10;
padding-right : 1px;
padding-top : 1px;
padding-left : 1px;
padding-bottom : 1px;
margin-left : 1px;
margin-right : 1px;
margin-top : 1px;
margin-bottom : 1px
}
h1
{
text-align: center;
color: #333333
}
h2
{
text-align: left;
color: #333333
}
h3
{
text-align: left;
color: #333333
}
a:link
{
text-decoration: none;
color: #444444;
font-weight: bold;
}
a:visited
{
text-decoration: none;
color: #666666;
font-weight: bold;
}
a:hover
{
text-decoration: none;
color: #000000;
font-weight: bold;
}
a.nav:link
{
text-decoration: none;
color: #444444;
font-weight: normal;
}
a.nav:visited
{
text-decoration: none;
color: #666666;
font-weight: normal;
}
a.nav:hover
{
text-decoration: none;
color: #000000;
font-weight: normal;
}
a.qindex:link
{
text-decoration: none;
color: #444444;
font-weight: normal;
}
a.qindex:visited
{
text-decoration: none;
color: #666666;
font-weight: normal;
}
a.qindex:hover
{
text-decoration: none;
color: #000000;
font-weight: normal;
}
p
{
color: #000000;
font-family: sans-serif;
font-size: 10;
}
body {
background-image: url("hilite.png");
background-repeat: no-repeat;
background-position: left top;
background-color: #dddddd;
color: #000000;
font-family: sans-serif;
padding: 8px;
margin: 0;
}
div.fragment
{
background-image: url("hilite.png");
background-repeat: no-repeat;
background-position: left top;
border: thin solid #888888;
background-color: #eeeeee;
padding: 4px;
text-align: left;
vertical-align: center;
font-size: 12;
}
hr
{
border: 0;
background-color: #000000;
width: 80%;
height: 1;
}
dl
{
background-image: url("hilite.png");
background-repeat: no-repeat;
background-position: left top;
border: thin solid #aaaaaa;
background-color: #eeeeee;
padding: 4px;
text-align: left;
vertical-align: center;
font-size: 12;
}
em
{
color: #334466;
font-family: courier;
font-size: 10;
font-style: normal;
}
div.nav
{
border: thin solid #000000;
background-color: #ffffff;
padding: 1px;
text-align: center;
vertical-align: center;
font-size: 12;
}
div.body
{
border: thin solid #000000;
background-color: #ffffff;
padding: 4px;
text-align: left;
font-size: 10;
}
div.diag
{
border: thin solid #888888;
background-color: #eeeeee;
padding: 4px;
text-align: center;
font-size: 8;
}

BIN
doc/imlib2.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

2268
doc/index.html Normal file

File diff suppressed because it is too large Load Diff

17
gendoc Executable file
View File

@ -0,0 +1,17 @@
#!/bin/sh
cp ./imlib2.c.in ./imlib2.c
for I in `find ./src -name "api.c" -print`; do
cat $I >> ./imlib2.c
done
#for I in `find ./src/lib -name "*.c" -print`; do
# cat $I >> ./imlib2.c
#done
rm -rf ./doc/html ./doc/latex ./doc/man
doxygen
cp doc/img/*.png doc/html/
rm -f imlib2_docs.tar imlib2_docs.tar.gz
tar -cvf imlib2_docs.tar doc/html doc/man doc/latex
gzip -9 imlib2_docs.tar
exit 0

59
imlib2-config.in Normal file
View File

@ -0,0 +1,59 @@
#!/bin/sh
prefix=@prefix@
exec_prefix=@exec_prefix@
exec_prefix_set=no
usage="\
Usage: imlib2-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--libs] [--cflags]"
if test $# -eq 0; then
echo "${usage}" 1>&2
exit 1
fi
while test $# -gt 0; do
case "$1" in
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
*) optarg= ;;
esac
case $1 in
--prefix=*)
prefix=$optarg
if test $exec_prefix_set = no ; then
exec_prefix=$optarg
fi
;;
--prefix)
echo $prefix
;;
--exec-prefix=*)
exec_prefix=$optarg
exec_prefix_set=yes
;;
--exec-prefix)
echo $exec_prefix
;;
--version)
echo @VERSION@
;;
--cflags)
if test @includedir@ != /usr/include ; then
includes=-I@includedir@
fi
echo $includes
;;
--libs)
libdirs=-L@libdir@
echo $libdirs -lImlib2 @my_libs@
;;
*)
echo "${usage}" 1>&2
exit 1
;;
esac
shift
done
exit 0

547
imlib2.c.in Normal file
View File

@ -0,0 +1,547 @@
/**
@file
@brief Imlib2 library
Brief of imlib2 library
*/
/**
@mainpage Imlib2 Library Documentation
@image html imlib2.png
@version 1.1.1
@author Carsten Haitzler <raster@rasterman.com>
@date 1999-2004
@section intro What is Imlib2 ?
Imlib 2 is the successor to Imlib. It is NOT a newer version - it is a completely new library. Imlib 2 can be installed alongside Imlib 1.x without any problems since they are effectively different libraries - BUT they Have very similar functionality.
Imlib 2 does the following:
\li Load image files from disk in one of many formats
\li Save images to disk in one of many formats
\li Render image data onto other images
\li Render images to an X-Windows drawable
\li Produce pixmaps and pixmap masks of Images
\li Apply filters to images
\li Rotate images
\li Accept RGBA Data for images
\li Scale images
\li Alpha blend Images on other images or drawables
\li Apply color correction and modification tables and factors to images
\li Render images onto images with color correction and modification tables
\li Render truetype anti-aliased text
\li Render truetype anti-aliased text at any angle
\li Render anti-aliased lines
\li Render rectangles
\li Render linear multi-colored gradients
\li Cache data intelligently for maximum performance
\li Allocate colors automatically
\li Allow full control over caching and color allocation
\li Provide highly optimized MMX assembly for core routines
\li Provide plug-in filter interface
\li Provide on-the-fly runtime plug-in image loading and saving interface
\li Fastest image compositing, rendering and manipulation library for X
If what you want isn't in the list above somewhere then likely Imlib 2 does not do it. If it does it it likely does it faster than any other library you can find (this includes gdk-pixbuf, gdkrgb, etc.) primarily because of highly optimized code and a smart subsystem that does the dirty work for you and picks up the pieces for you so you can be lazy and let all the optimizations for FOR you.
Imlib 2 can run without a display, so it can be easily used for background image processing for web sites or servers - it only requires the X libraries to be installed - that is all - it does not require an XServer to run unless you wish to display images.
The interface is simple - once you get used to it, the functions do exactly what they say they do.
@section first_ex A Simple Example
The best way to start is to show a simple example of an Imlib2
program. This one will load an image of any format you have a loader
installed for (all loaders are dynamic code objects that Imlib2 will
use and update automatically runtime - anyone is free to write a
loader. All that has to be done is for the object to be dropped into
the loaders directory with the others and all Imlib2 programs will
automatically be able to use it - without a restart).
@code
/* main program */
int main(int argc, char **argv)
{
/* an image handle */
Imlib_Image image;
/* if we provided < 2 arguments after the command - exit */
if (argc != 3) exit(1);
/* load the image */