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/ |