README   README 
Evas 1.2.1 Evas 1.7.0
*************************************************************************** *** *************************************************************************** ***
FOR ANY ISSUES PLEASE EMAIL: FOR ANY ISSUES PLEASE EMAIL:
enlightenment-devel@lists.sourceforge.net enlightenment-devel@lists.sourceforge.net
*************************************************************************** *** *************************************************************************** ***
Requirements: Requirements:
------------- -------------
Must: Must:
libc libc
eina (1.2.0 or better) eina (1.1.0 or better)
freetype (2.1.9 or better) freetype (2.1.9 or better)
Recommended: Recommended:
libX11 + libXext + libXrender libX11 + libXext + libXrender
OpenGL2.0 or OpenGL-ES 2.0 OpenGL2.0 or OpenGL-ES 2.0
fontconfig fontconfig
libpng libpng
libjpeg (6.0 or better) libjpeg (6.0 or better)
eet (1.6.0 or better) eet (1.5.0 or better)
fribidi fribidi
harfbuzz harfbuzz
liblinebreak liblinebreak
Optional: Optional:
XCB SDL OpenGL librsvg libtiff libgif edb DirectFB evas_generic_loaders XCB SDL OpenGL esvg libtiff libgif edb DirectFB evas_generic_loaders
Evas is a clean display canvas API for several target display systems Evas is a clean display canvas API for several target display systems
that can draw anti-aliased text, smooth super and sub-sampled scaled that can draw anti-aliased text, smooth super and sub-sampled scaled
images, alpha-blend objects much and more. images, alpha-blend objects much and more.
Evas is designed to be portable to different display systems. Evas uses ver y Evas is designed to be portable to different display systems. Evas uses ver y
little RAM too (try profiling it in memprof if you want to little RAM too (try profiling it in memprof if you want to
know) most of the ram allocated, if you look, is for freetype itself, know) most of the ram allocated, if you look, is for freetype itself,
image pixel data, and font glyph data. You can't really avoid this, though image pixel data, and font glyph data. You can't really avoid this, though
evas tries to share this data as much as possible and not duplicate where i t evas tries to share this data as much as possible and not duplicate where i t
skipping to change at line 83 skipping to change at line 83
desktop machines it makes no speed difference so only use desktop machines it makes no speed difference so only use
--enable-small-dither-mask if you really need the speed for low depth --enable-small-dither-mask if you really need the speed for low depth
you need at least 1 image loader if you want to load images. you need at least 1 image loader if you want to load images.
gcc 3.0.x on solaris screws up the jpeg code so erroring out doesn't work . gcc 3.0.x on solaris screws up the jpeg code so erroring out doesn't work .
use gcc 3.2 on solaris. use gcc 3.2 on solaris.
notes on features (--enable-FEATURE enables it and --disable-FEATURE notes on features (--enable-FEATURE enables it and --disable-FEATURE
disables it, some being enabled or disabled by default or if disables it, some being enabled or disabled by default or if
dependencies are found): dependencies are found):
Also the wayland supoprt (EGL and SHM engines) is considered experimental a s Also the wayland support (EGL and SHM engines) is considered experimental a s
wayland itself is still unstable and liable to change core protocol. wayland itself is still unstable and liable to change core protocol.
If you use this api, it is possible it will break in future, until this If you use this api, it is possible it will break in future, until this
notice is removed. notice is removed.
--------------------------------------------------------------------------- --- --------------------------------------------------------------------------- ---
SCALING: SCALING:
--enable-scale-sample --enable-scale-sample
this enables the sampling scaler code. this is the fastest image scaling this enables the sampling scaler code. this is the fastest image scaling
code, but also the lowest quality. when scaling up pixels will become block y code, but also the lowest quality. when scaling up pixels will become block y
skipping to change at line 475 skipping to change at line 475
supported! supported!
--enable-image-loader-pmaps[=static] --enable-image-loader-pmaps[=static]
ppm/pnm/pgm image loader that can load the "pnm" style image format. ppm/pnm/pgm image loader that can load the "pnm" style image format.
not very common, but the files are simple raw RGB, greyscale image or not very common, but the files are simple raw RGB, greyscale image or
bitmap data in binary or ascii format bitmap data in binary or ascii format
--enable-image-loader-svg[=static] --enable-image-loader-svg[=static]
this loader can load svg files via librsvg (thus it is a dependency). this loader can load svg files via esvg (thus it is a dependency). This
this loader supports load options to set the dpi to decode the svg at loader supports load options to set the dpi to decode the svg at etc. which
etc. which can then be used to create scalable images that scale to can then be used to create scalable images that scale to any size without
any size without becoming blocky or blurry, if the source is an svg becoming blocky or blurry, if the source is an svg file.
file.
Esvg can be found here:
http://code.google.com/p/enesim/
Install (in that order):
enesim
ender
etch
egueb
--enable-image-loader-tiff[=static] --enable-image-loader-tiff[=static]
this loader uses libtiff to load tiff image files this loader uses libtiff to load tiff image files
--enable-image-loader-xpm[=static] --enable-image-loader-xpm[=static]
this is an xpm format image loader. xpm format images are ascii files this is an xpm format image loader. xpm format images are ascii files
that look like c/c++ source code that contain images. these files are that look like c/c++ source code that contain images. these files are
old-fashioned unix+x11 images you may encounter, but are inefficient old-fashioned unix+x11 images you may encounter, but are inefficient
skipping to change at line 506 skipping to change at line 516
a disagreement on 32bit bmp format images where alpha channels are a disagreement on 32bit bmp format images where alpha channels are
concerned and you may run into issues with bmps generated by the gimp concerned and you may run into issues with bmps generated by the gimp
that have alpha channels. there is a problem where they don't seem to that have alpha channels. there is a problem where they don't seem to
be spec-conformant. be spec-conformant.
--enable-image-loader-tga[=static] --enable-image-loader-tga[=static]
this loader load tga format files. these files are very old-fashioned this loader load tga format files. these files are very old-fashioned
but found often in the 3d graphics world. but found often in the 3d graphics world.
--enable-image-loader-generic[=static]
this loader will execute a given binary to decode an image and read
the resulting image data via a shared memory segment, a mmaped file or
stdout. it uses the command-line to pass the filename and any load
parameters, and reads stdout from the loader binary to get metadata like
width, height, alpha channel flag and location of pixel data. this
loader has no dependencies as the binaries run are to be found in
PREIFX/lib/evas/utils and are named evas_image_loader.EXTENSION where
.EXTENSION is replaced by the filename extension to be decoded. if
this binary does not exist then evas_image_loader (with no extension) is
tried as a last fallback allowing it to handle "all cases".
since this loader doesn't use any libraires, it relies on runtime
dependencies and executables existing in the utils directory. note that
images loaded via this mechanism will have slower load times due to the
overhead of execution of another binary, but any instability in the
loaders themselves will not affect the application using evas.
this also means that licenses such as GPL for the binaries in this
utils directory do not affect evas and the applications or libraries
using evas.
there is a separately released evas_generic_loaders package which
builds stand-alone binaries that can do this style of decoding for for
evas. this package currently handles XCF, PDF, PS, RAW, SVG (via
librsvg) and video formats (via gstreamer).
--------------------------------------------------------------------------- --- --------------------------------------------------------------------------- ---
FONT LOADERS: FONT LOADERS:
--enable-font-loader-eet[=static] --enable-font-loader-eet[=static]
this loader can load font (ttf) files directly from eet archives like this loader can load font (ttf) files directly from eet archives like
the eet image loader. requires the eet library the eet image loader. requires the eet library
--------------------------------------------------------------------------- --- --------------------------------------------------------------------------- ---
CONVERTERS: CONVERTERS:
--enable-convert-yuv --enable-convert-yuv
skipping to change at line 681 skipping to change at line 719
notification pipe to provide events when background threads are done notification pipe to provide events when background threads are done
with tasks, like pre-loading image files with tasks, like pre-loading image files
--enable-async-preload --enable-async-preload
evas can load images (preload) them in the background using a thread evas can load images (preload) them in the background using a thread
if you ask it to, and provide events when done. this goes hand-in-hand if you ask it to, and provide events when done. this goes hand-in-hand
with --enable-pthreads and --enable-async-events. you really want all with --enable-pthreads and --enable-async-events. you really want all
of these available. of these available.
--enable-pipe-render **NOT ON BY DEFAULT DUE TO DUBIOUS IMPROVEMENTS**
this enables a software multi-frame threaded renderer. this will
allocate (for example) 2 frames to 2 cores, with one core of the cpu
rendering the previous frame while the next frame starts rendering on
another core in the meantime allowing for higher framerates with
software rendering, using more cpu resources that are available on
modern multi-core cpu's.
This is buggy! it will likely cause crashes and rendering corruption.
Do not enable it unless you plan to actually work on it. This requires you
also set the environment variable EVAS_RENDER_MODE to "non-blocking" to
enable it at runtime, as the compile-time enable simply sets up the feature
to be ready to work. The runtime switch actually turns it on. If you don't
plan to use this feature, don't enable it in the build as there is a genera
l
performance hit of maintaining this feature at all, so beware that
enabling it for single core systems will likely take a performance hit.
this enables a multiple-thread renderer that divides the rendering this enables a multiple-thread renderer that divides the rendering
into N regions (1 per core) to speed up rendering in software when you into N regions (1 per core) to speed up rendering in software when you
have multiple cpu cores. have multiple cpu cores.
Cache rendered words and draw them as a single object, instead of
individual characters. This is a big gain for things like neon which
draw large runs effectively.
However it is useless on GL and similar back-ends as the cost in
sending a word sized texture kills the performance gain (and GL is
pretty good at drawing lots of small things anyway). If it detects a GL
backend is in use, it disables itself.
By default words (strings) of more then 50 characters are not cached.
The system caches 40 words by default, but this can be changed by
setting EVAS_WORD_CACHE_MAX_WORDS to another number. Setting it to 0
will disable word-cache at run time.
Text based benchmarks are 50-100% quicker.
If you have any issues with word caching, please report them to either
the e-devel mailing list or Brett Nash <nash@nash.id.uau>
For GL see metric caching...
Metric caching saves character metrics between characters in words.
This enables it to render words much quicker as it avoids things like
space calculations and kerning calculation.
The cache size is also controlled by EVAS_WORD_CACHE_MAX_WORDS.
It is useful for GL in particular, although software engines do get
some gain.
Generally it is recommended you enable one or both of word or metric cachin
g,
depending on your engine use. If you are only using software, enable word
caching (and neon on arm if you can), for GL, turn on metric caching.
A simple solution is enable both, and let the engine sort it out at run tim
e.
If you have any issues with metric caching, please report them to either
the e-devel mailing list or Brett Nash <nash@nash.id.uau>
--enable-fontconfig --enable-fontconfig
this enables fontconfig support for loading font files by using this enables fontconfig support for loading font files by using
generic fontconfig font names and styles. you really should use this generic fontconfig font names and styles. you really should use this
by default on any linux/unix platform for universal font support. by default on any linux/unix platform for universal font support.
--enable-fribidi --enable-fribidi
this enables support for the fribidi library to have right to left and this enables support for the fribidi library to have right to left and
left to right font rendering so languges such as arabic, hebrew and left to right font rendering so languges such as arabic, hebrew and
 End of changes. 9 change blocks. 
70 lines changed or deleted 49 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/