summaryrefslogtreecommitdiff
path: root/legacy/evas/README.in
diff options
context:
space:
mode:
authorCarsten Haitzler <raster@rasterman.com>2010-08-19 08:22:44 +0000
committerCarsten Haitzler <raster@rasterman.com>2010-08-19 08:22:44 +0000
commitd9cef6b36e7813d8f6c9738845bbf4cb16691e81 (patch)
tree77d0d0776c9d8b401677363adedf7545142593c6 /legacy/evas/README.in
parent75a676f945d11d5a92942c94c5756597e3542874 (diff)
gl-x11 enabled now by default if deps found. it's a 1st class citizen
these days. and - readme updated and up to snuff for --enable opts. SVN revision: 51386
Diffstat (limited to 'legacy/evas/README.in')
-rw-r--r--legacy/evas/README.in483
1 files changed, 402 insertions, 81 deletions
diff --git a/legacy/evas/README.in b/legacy/evas/README.in
index f388689..305e0bb 100644
--- a/legacy/evas/README.in
+++ b/legacy/evas/README.in
@@ -38,12 +38,12 @@ little RAM too (try profiling it in memprof if you want to
38know) most of the ram allocated, if you look, is for freetype itself, 38know) most of the ram allocated, if you look, is for freetype itself,
39image pixel data, and font glyph data. You can't really avoid this, though 39image pixel data, and font glyph data. You can't really avoid this, though
40evas tries to share this data as much as possible and not duplicate where it 40evas tries to share this data as much as possible and not duplicate where it
41can. Feel free to point me at sensible memory optimisations etc. though :) I 41can. Feel free to point me at sensible memory optimizations etc. though :) I
42want this baby to be lean, mean tiny, fast and do everything from your 42want this baby to be lean, mean tiny, fast and do everything from your
43massive multi-cpu desktop with gobs of ram and disk to a tiny watch. 43massive multi-cpu desktop with gobs of ram and disk to a tiny watch.
44 44
45Evas also supports full UTF-8 for text object strings, thus allowing for 45Evas also supports full UTF-8 for text object strings, thus allowing for
46full internationalised text strings (if your font gives you all the 46full internationalized text strings (if your font gives you all the
47characters). I've tested with quite a few fonts and it works quite well. 47characters). I've tested with quite a few fonts and it works quite well.
48Though this requires a unicode compatible font with unicode charmap support 48Though this requires a unicode compatible font with unicode charmap support
49(cyberbit is quite good actually as a font). For now Evas draws the fonts 49(cyberbit is quite good actually as a font). For now Evas draws the fonts
@@ -61,6 +61,13 @@ COMPILING AND INSTALLING:
61if you want to know what options to enable 61if you want to know what options to enable
62./configure --help 62./configure --help
63 63
64Evas's rendering code assumes a decently optimizing compiler. For
65example gcc with -O2 -march=nocona for example (compile for core2 duo
66x86 or better). Yoiu may choose not to compile for a very modern
67architecture, and Evas still has MMX/SSE, NEON and other hand-crafted
68assembly, but not for everything, so make use of your compiler
69optimizing as much as possible. At least use -O2 or equivalents.
70
64Notes: 71Notes:
65 the small dither mask is faster on the ipaq, but is not as good looking. on 72 the small dither mask is faster on the ipaq, but is not as good looking. on
66 desktop machines it makes no speed difference so only use 73 desktop machines it makes no speed difference so only use
@@ -69,7 +76,9 @@ Notes:
69 gcc 3.0.x on solaris screws up the jpeg code so erroring out doesn't work. 76 gcc 3.0.x on solaris screws up the jpeg code so erroring out doesn't work.
70 use gcc 3.2 on solaris. 77 use gcc 3.2 on solaris.
71 78
72notes on features: 79notes on features (--enable-FEATURE enables it and --disable-FEATURE
80disables it, some being enabled or disabled by default or if
81dependencies are found):
73 82
74SCALING: 83SCALING:
75--enable-scale-sample 84--enable-scale-sample
@@ -82,9 +91,7 @@ speed vs. quality tradeoff
82--enable-scale-smooth 91--enable-scale-smooth
83 92
84this is the nicest looking scaler that is not that much slower than 93this is the nicest looking scaler that is not that much slower than
85tri-linear, but it looks really good. it also uses mipmaps and is optimised 94tri-linear, but it looks really good.
86heavily. it is recommended to always use this unless you are really
87struggling for speed and are qilling to forego the quality
88 95
89DITHERING: 96DITHERING:
90--enable-small-dither-mask 97--enable-small-dither-mask
@@ -92,13 +99,33 @@ DITHERING:
92this uses a 4x4 dither mask instead of 128x128. on desktop boxes these days 99this uses a 4x4 dither mask instead of 128x128. on desktop boxes these days
93(pentium, pentium2, amd etc.) the speed difference is not really measurable, 100(pentium, pentium2, amd etc.) the speed difference is not really measurable,
94but the quality of the 128x128 dither mask is quite a lot better. patterns 101but the quality of the 128x128 dither mask is quite a lot better. patterns
95of dithering are much less noticable, so it is recommended to not enable 102of dithering are much less noticeable, so it is recommended to not enable
96this unless you are struggling for speed. the compaq ipaq for example shows 103this unless you are struggling for speed. the compaq ipaq for example shows
97a slowdown with this large a dither mask so enabling a small dither mask is 104a slowdown with this large a dither mask so enabling a small dither mask is
98recommended unless you really want to forego the speed. 105recommended unless you really want to forgo the speed.
106
107--enable-line-dither-mask
108
109this is a faster alternative to the small or large dither masks above.
110this dithers only on an alternating-line basis. this only provides 1
111intermediate "dither" level whose odd and even pixels alternate
112between the 2 closest colors available, but it is very fast. almost as
113fast as no dithering. quality though will not be as good as small or
114default "large" dither masks.
115
116--enable-no-dither-mask
117
118this disables dithering entirely. this is the fastest option, but the
119lowest quality. not suggested in general unless you are really in need
120of an extra few percent speed and are willing to have fairly awful
121quality. but in general this is the standard rendering for most
122"realtime graphics" if it has to drop to lower bit-depths, so it's
123not anything unusual. just in the evas world the quality is considered
124poor enough to be discouraged as evas's internal rendering is so much
125higher quality.
99 126
100ENGINES: 127ENGINES:
101--enable-software-x11 128--enable-software-xlib
102 129
103this enables the software x11 rendering engine that renders to X drawable 130this enables the software x11 rendering engine that renders to X drawable
104targets using highly optimised software routines. there is no hardware 131targets using highly optimised software routines. there is no hardware
@@ -107,22 +134,21 @@ This is a godo generic engine that is fast and can run in X for good
107development and debugging purposes. 134development and debugging purposes.
108 135
109--enable-software-xcb 136--enable-software-xcb
137
110this enable the software xcb rendering engine. It allows the same 138this enable the software xcb rendering engine. It allows the same
111features than the software x11 engine. It require the XCB and XCBImage 139features than the software xlib engine. It require the XCB and XCBImage
112libraries. For the test programs, XCBICCCM is also needed. 140libraries. For the test programs, XCBICCCM is also needed.
113 141
114--enable-fb 142--enable-fb
115 143
116this is the software framebuffer driving engine. this uses the linux 144this is the software framebuffer driving engine. this uses the linux
117framebuffer device (/dev/fb<x>) and will currently just inherit the current 145framebuffer device (/dev/fb{X}) and will currently just inherit the current
118framebuffer settings on the fb device and use them to run in. this engine is 146framebuffer settings on the fb device and use them to run in. this engine is
119almost fully functional except for the fb management itself. i'd be quite 147almost fully functional except for the fb management itself. this engine is
120happy for people to help out with fixing up the fb init & management code to 148specifically geared towards people writing minimalist display systems for
121properly set up a vt and release it etc. this engine is specifically geared 149embedded devices such as the ipaq, zaurus, etc. it also scales up to high-res
122towards peoel writing minimalist display systems for embedded devices such 150desktop systems as
123as the ipaq, zaurus, etc. it also scales up to high-res desktop systems as 151well.
124well and performs outstandingly. i have measured up to 67% speedup over X11
125using the fb driver insetad of X11.
126 152
127--enable-direcfb 153--enable-direcfb
128 154
@@ -131,41 +157,160 @@ linux to access the framebuffer with (or maybe without) acceleration. for
131people making set-top boxes or just wanting an alternative to X this is 157people making set-top boxes or just wanting an alternative to X this is
132really good. it may also be useful for embedded devices supported by 158really good. it may also be useful for embedded devices supported by
133directfb that offer acceleration (otherwise the fb driver will likely be 159directfb that offer acceleration (otherwise the fb driver will likely be
134faster). 160faster). as such this engine is in relative disrepair and is not
161maintained. use with great care.
162
163--enable-buffer
164
165this enables the memory buffer rendering engine. this engine renders
166to a region of memory that is considered to be a 32bit ARGB buffer of
167pixels, allowing the results of rendering to be directly read out or
168used again for other purposes.
169
170--enable-xrender-x11
171
172this engine uses the xrender api to do drawing via (possibly)
173accelerated 2d or 3d hardware means. as such xrender has never lived
174up to its possible performance levels and has fallen into disrepair.
175use this engine at your own risk. it is considered to be "bitrotting"
176and be unmaintained.
177
178--enable-xrender-xcb
179
180this is the same as xrender-x11 but uses/exposes an xcb api.
181
182--enable-gl-x11
183
184this is the opengl engine. it is intended for an x11 target (via xlib)
185rather than framebuffer (even if you use EGL, the EGL flavor is
186expected to be an x11 one). it is a full opengl based rendering engine
187with all rendering implemented as a texture + triangle pipeline and
188more. it also supports opengl-es2.0 and is reliant on modern opengl2.0+
189shader support. this engine also supports the native surface api for
190adopting pixmaps directly to textures for compositing.
191
192--enable-gl-flavor-gles
193
194this enables the opengl-es 2.0 flavor of opengl (as opposed to desktop
195opengl) when building evas's gl-x11 engine above. this will be needed
196if you are building evas for opengl-es 2.0 enabled embedded devices.
197evas works on several opengl-es 2.0 compliant gpu's and gains more
198testing and optimization regularly. it is also capable of
199texture-from-pixmap support in opengl-es like it is in desktop opengl.
200
201--enable-gles-variety-sgx
202
203this tells evas that you are building the gl-es engine for a
204shader-compiler "sgx style" opengl-es 2.0 implementation. this is
205where the shader compiler is provided at runtime and can accept the
206shader glsl source and work
207
208--enable-gles-variety-s3c6410
209
210this tells evas that you have an s3c6410 style opengl-es
211implementation that has an offline shader compiler and that needs
212pre-compiled shader binaries (provided with evas). this has not been
213tested in quite a while as the drivers and environment for this system
214have gone missing
215
216--enable-software-gdi
217
218windows gdi based engine for evas
219
220--enable-software-ddraw
221
222windows direct-draw engine for evas
223
224--enable-direct3d
225
226evas direct3d engine (experimental)
227
228--enable-quartz
229
230macos-x quartz engine (experimental)
135 231
136--enable-sdl 232--enable-gl-glew
233
234opengl glew based gl engine for evas (experimental)
235
236--enable-software-sdl
137 237
138this is the sdl engine that uses sdl library (http://www.libsdl.org). This 238this is the sdl engine that uses sdl library (http://www.libsdl.org). This
139library should work on many operating system. 239library should work on many operating system. the buffer is
240software-rendered with evas's default software rendering core.
241
242--enable-gl-sdl
243
244opengl (and opengl-es2.0) rendering engine that uses sdl as the front
245end interface. see --enable-gl-x11 etc. for information.
246
247--enable-software-8-x11
248
2498bit only rendering core. intended for greyscale output on things like
250e-paper or simplistic greyscale LCD devices which have no color.
251
252--enable-software-16-x11
140 253
25416bit specific renderer. lower quality than the default. also limited
255in abilities. in a state of disrepair. do not use.
256
257--enable-software-16-ddraw
258
25916bit renderer for direct-draw. same as software-16-x11 - don't use.
260in disrepair.
261
262--enable-software-16-wince
263
264same as software-16-ddraw but for windows-ce. in disrepair. don't use.
141 265
142CPU: 266CPU:
143--enable-cpu-c 267--enable-cpu-c
144 268
145this enabled the c code. you can actually build the code withotu the c 269this enabled the c code. you can actually build the code without the c
146fallback code and only have the mmx routines for example. it is suggested to 270fallback code and only have the mmx routines for example. it is suggested to
147always use this regardless uness you have some definite size issues with the 271always use this regardless unless you have some definite size issues with the
148code. 272code.
149 273
150--enable-cpu-mmx 274--enable-cpu-mmx
151 275
152this enables the mmx optimised routines. this works for pentium, pentium2, 276this enables the mmx optimized routines. this works for pentium, pentium2,
153pentium3, pentium4, athlon and duron processors. it can get quite 277pentium3, pentium4, athlon and duron processors. it can get quite
154considerable speedups, souse it if you can. ppc owners just have to live with 278considerable speedups, souse it if you can. ppc owners just have to live with
155the c fallback functions unfortunately as no one has provided any ALTIVEC asm 279the c fallback functions unfortunately as no one has provided any ALTIVEC asm
156routines yet. :) arm owners will also have to rely on the c fallback 280routines yet. :) arm owners will also have to rely on the c fallback
157routines as i haven't managed to come up with any arm assembly that actually 281routines as i haven't managed to come up with any arm assembly that actually
158can beat the c code (when compiled with all optimisations) in speed. 282can beat the c code (when compiled with all optimizations) in speed.
159 283
160--enable-cpu-sse 284--enable-cpu-sse
161 285
162this enables sse optimizations availbale in he pentium3 and 4 cpus (not 286this enables sse optimizations available in he pentium3 and 4 cpus (not
163athlon and duron or pentium 2 or pentium cpu's). ppc owners just have to 287athlon and duron or pentium 2 or pentium cpu's). ppc owners just have to
164live with the c fallback functions unfortunately as no one has provided any 288live with the c fallback functions unfortunately as no one has provided any
165ALTIVEC asm routines yet. :) arm owners will also have to rely on the c 289ALTIVEC asm routines yet. :) arm owners will also have to rely on the c
166fallback routines as i haven't managed to come up with any arm assembly that 290fallback routines as i haven't managed to come up with any arm assembly that
167actually can beat the c code (when compiled with all optimizations) in speed. 291actually can beat the c code (when compiled with all optimizations) in speed.
168 292
293--enable-cpu-neon
294
295This enables support for the Arm Cortex-A8 and later Neon register
296set. In particular it will use neon optimised code for rotations and
297drawing with the software engines. Open GL based renderers will gain
298nothing from the use of neon.
299
300To use neon with gcc-4.4 you need a post-2009 gcc and options
301something like: -mcpu=cortex-a8 -mfloat-abi=softfp -mfpu=neon
302Note that this slightly slows down non-optimised parts of evas but
303the gains in drawing are more then worth it overall.
304
305This is enabled by default, and turns off if a small test program is
306unable to compile.
307
308Performance is at least 50%, and in some real world tests approaches
309100%.
310
311If you have any issues with neon, please report them to either the
312edevel mailing list or Brett Nash <nash@nash.id.uau>
313
169IMAGE LOADERS: 314IMAGE LOADERS:
170--enable-image-loader-png 315--enable-image-loader-png
171 316
@@ -176,9 +321,85 @@ for now this is the only loader so you may as well include it.
176 321
177--enable-image-loader-jpeg 322--enable-image-loader-jpeg
178 323
179this enables the loader code that loads jpeg files using libjpeg. 324this enables the loader code that loads jpeg files using libjpeg. this
325loader also supports load options to pre-scale jpeg images down to
326provide much faster load times while also getting downscaling by 1/2,
3271/4 or 1/8th the size in each dimension for "free". with an added
328patch to libjpeg7, it can also fast-decode a specific region of a jpeg
329file (without the patch it take a slow-path to do this).
330
331--enable-image-loader-edb
332
333edb image loader- can load images inside edb database files. not very
334useful as edb itself is no longer used by enlightenment. may be
335removed at some point, so unless you have a burning need for this,
336don't use edb files to store image data and rely on this loader
337
338--enable-image-loader-eet
339
340loads image data from eet files. eet files are the backing for edje
341storage, so this is needed for edje to work. it is very useful as it
342can load an image from anywhere in the eet archive by key value so eet
343files are like "zip" files where you can pack a whole lot of image and
344other data together and just pick out the pieces you need at runtime.
345requires the eet library.
346
347--enable-image-loader-gif
348
349gif image loader. gif is an obsolete format, but due to its longevity,
350sitll has lots of existing data around.
351
352--enable-image-loader-pmaps
353
354ppm/pnm/pgm image loader that can load the "pnm" style image format.
355not very common, but the files are simple raw RGB, greyscale image or
356bitmap data in binary or ascii format
357
358--enable-image-loader-svg
359
360this loader can load svg files via librsvg (thus it is a dependency).
361this loader supports load options to set the dpi to decode the svg at
362etc. which can then be used to create scalable images that scale to
363any size without becoming blocky or blurry, if the source is an svg
364file.
365
366--enable-image-loader-tiff
367
368this loader uses libtiff to load tiff image files
369
370--enable-image-loader-xpm
371
372this is an xpm format image loader. xpm format images are ascii files
373that look like c/c++ source code that contain images. these files are
374old-fashioned unix+x11 images you may encounter, but are inefficient
375for storage and decoding and have been superseded by png files in
376almost every way
377
378--enable-image-loader-bmp
379
380this enables the bmp image format loader. note that there seems to be
381a disagreement on 32bit bmp format images where alpha channels are
382concerned and you may run into issues with bmps generated by the gimp
383that have alpha channels. there is a problem where they don't seem to
384be spec-conformant.
385
386--enable-image-loader-tga
387
388this loader load tga format files. these files are very old-fashioned
389but found often in the 3d graphics world.
390
391FONT LOADERS:
392--enable-font-loader-eet
393
394this loader can load font (ttf) files directly from eet archives like
395the eet image loader. requires the eet library
180 396
181CONVERTERS: 397CONVERTERS:
398--enable-convert-yuv
399
400this enables an optimized yuv (yv12 601 colorspace) to ARGB32
401converter in evas
402
182--enable-convert-16-rgb-565 403--enable-convert-16-rgb-565
183 404
184the most common converter you'll want for 16bpp. this means 5 bits for red, 405the most common converter you'll want for 16bpp. this means 5 bits for red,
@@ -206,11 +427,11 @@ fill 16bits, with unused bits in the color masks. X on the ipaq advertises
206it as a full 16bpp 565 display (i can't remember what the linux framebuffer 427it as a full 16bpp 565 display (i can't remember what the linux framebuffer
207advertised it as) and so many lumps of code can be fooled into rendering 428advertised it as) and so many lumps of code can be fooled into rendering
208data badly because they think the output will look as the expect. This 429data badly because they think the output will look as the expect. This
209renderer assuems the upper 4 bits fo each color primitie only are 430renderer assumes the upper 4 bits fo each color primitive only are
210significant and renders accordingly. this produces nice quality images on 431significant and renders accordingly. this produces nice quality images on
211the ipaq and even still works in 16bpp 565 on your pc. it is highly 432the ipaq and even still works in 16bpp 565 on your pc. it is highly
212recommended to use this renderer if your target is an ipaq or your device 433recommended to use this renderer if your target is an ipaq or your device
213dislpays similar qualities of the ipaq for display purposes. 434displays similar qualities of the ipaq for display purposes.
214 435
215--enable-convert-16-rgb-rot-0 436--enable-convert-16-rgb-rot-0
216 437
@@ -220,95 +441,195 @@ only ever want to do portrait mode - perhaps like on an ipaq embedded device)
220 441
221--enable-convert-16-rgb-rot-270 442--enable-convert-16-rgb-rot-270
222 443
223this enables the portrait mode (270 degree rotation) converteres for 16bpp. 444this enables the portrait mode (270 degree rotation) converters for 16bpp.
224this is the standard display mode for things like pocketpc on the ipaq and 445this is the standard display mode for things like pocketpc on the ipaq and
225the zaurus etc. thsi si a optimized part of the rendering pipeline to allow 446the zaurus etc. this is an optimized part of the rendering pipeline to allow
226portrait display with a much lower overhead than doing it through X. 447portrait display with a much lower overhead than doing it through X.
227 448
449--enable-convert-16-rgb-rot-180
450
451same as --enable-convert-16-rgb-rot-270 but for 180 degrees
452
453--enable-convert-16-rgb-rot-90
454
455same as --enable-convert-16-rgb-rot-270 but for 90 degrees
456
228--enable-convert-24-rgb-888 457--enable-convert-24-rgb-888
229 458
230To be documented... 459this converts evas's 32bit ARGB to 24bit RGB packed format for output
460if needed
231 461
232--enable-convert-24-bgr-888 462--enable-convert-24-bgr-888
233 463
234To be documented... 464this converts evas's 32bit ARGB to 24bit packed BGR format for output
465if needed
235 466
236--enable-convert-32-rgb-8888 467--enable-convert-32-rgb-8888
237 468
238To be documented... 46932bit RGB output conversion support. byteswapping compared to evas's
470native colorspace
239 471
240--enable-convert-32-bgr-8888 472--enable-convert-32-bgr-8888
241 473
242To be documented... 474conversion (reduces toa memory copy) from evas's native colorspace to
475the same color format.
243 476
244--enable-convert-32-rgb-rot-0 477--enable-convert-32-rgb-rot-0
245 478
246To be documented... 479copies without rotation evas's native image format
247 480
248--enable-convert-32-rgb-rot-270 481--enable-convert-32-rgb-rot-270
249 482
250To be documented... 483copies evas's native ARGB32 pixels but at a rotation of 270 degrees.
251 484
252... 485--enable-convert-32-rgb-rot-180
253 486
487same as --enable-convert-32-rgb-rot-270 but for 180 degrees
254 488
255--enable-cpu-neon 489--enable-convert-32-rgb-rot-90
256 This enables support for the Arm Cortex-A8 and later Neon register 490
257 set. In particular it will use neon optimised code for rotations and 491same as --enable-convert-32-rgb-rot-270 but for 90 degrees
258 drawing with the software engines. Open GL based renderers will gain 492
259 nothing from the use of neon. 493--enable-convert-24-rgb-ezx
260 494
261 To use neon with gcc-4.4 you need a post-2009 gcc and options 495a special colorspace handler for 18bit color packed into 24bit output
262 something like: -mcpu=cortex-a8 -mfloat-abi=softfp -mfpu=neon 496(where only 6 bits per r, g and b byte are used). the only known
263 Note that this slightly slows down non-optimised parts of evas but 497platform that did this was the motorola esx based phones that used
264 the gains in drawing are more then worth it overall. 498qtopia originally and have open ezx ports for them.
265 499
266 This is enabled by default, and turns off if a small test program is 500--enable-convert-8-gry-1
267 unable to compile. 501
268 502enable 8bit gray to 1 bit black & white converter
269 Performance is at least 50%, and in some real world tests approaches 503
270 100%. 504--enable-convert-8-gry-16
505
5068bit grey to 16 level grayscale converter
507
508--enable-convert-8-grayscale-64
509
5108bit grey to 64 level grayscale converter
511
512--enable-convert-8-rgb-332
271 513
272 If you have any issues with neon, please report them to either the 514enable converter from 32bit ARGB to 8bit color "332" colorspace (3bits
273 edevel mailing list or Brett Nash <nash@nash.id.uau> 515red, 3 bits green, 2 bits blue)
516
517--enable-convert-8-rgb-666
518
519enable converter from 32bit ARGB to 8bit color "216" "websafe"
520colorspace (6 values for red, 6 for green and 6 for blue - 6x6x6 being
521216 colors).
522
523--enable-convert-8-rgb-232
524
525same as convert-8-rgb-332 but 2 bits red, 3 green, 2 blue
526
527--enable-convert-8-rgb-222
528
529same as convert-8-rgb-332 but 2 bits red, 2 green, 2 blue
530
531--enable-convert-8-rgb-221
532
533same as convert-8-rgb-332 but 2 bits red, 2 green, 1 blue
534
535--enable-convert-8-rgb-121
536
537same as convert-8-rgb-332 but 1 bit red, 2 green, 1 blue
538
539--enable-convert-8-rgb-111
540
541same as convert-8-rgb-332 but 1 bit red, 1 green, 1 blue. this is the
542lowest sized colorspace supported for rgb (3bits, 8 color).
543
544MISC:
545--enable-pthreads
546
547this enables pthread support in evas so multiple threads may run
548internally for parallel rendering, loading etc.
549
550--enable-async-events
551
552this provides the ability for evas to have an asynchronous event
553notification pipe to provide events when background threads are done
554with tasks, like pre-loading image files
555
556--enable-async-preload
557
558evas can load images (preload) them in the background using a thread
559if you ask it to, and provide events when done. this goes hand-in-hand
560with --enable-pthreads and --enable-async-events. you really want all
561of these available.
562
563--enable-async-render
564
565this enables a software multi-frame threaded renderer. this will
566allocate (for example) 2 frames to 2 cores, with one core of the cpu
567rendering the previous frame while the next frame starts rendering on
568another core in the meantime allowing for higher framerates with
569software rendering, using more cpu resources that are available on
570modern multi-core cpu's.
274 571
275--enable-word-cache 572--enable-word-cache
276 Cache rendered words and draw them as a single object, instead of
277 individual characters. This is a big gain for things like neon which
278 draw large runs effectively.
279 573
280 However it is useless on GL and similar backends as the cost in 574Cache rendered words and draw them as a single object, instead of
281 sending a word sized texture kills the performance gain (and GL is 575individual characters. This is a big gain for things like neon which
282 pretty good at drawing lots of small things anyway). 576draw large runs effectively.
577
578However it is useless on GL and similar back-ends as the cost in
579sending a word sized texture kills the performance gain (and GL is
580pretty good at drawing lots of small things anyway).
283 581
284 By default words (strings) of more then 50 characters are not cached. 582By default words (strings) of more then 50 characters are not cached.
285 The system caches 40 words by default, but this can be changed by 583The system caches 40 words by default, but this can be changed by
286 setting EVAS_WORD_CACHE_MAX_WORDS to another number. Setting it to 0 584setting EVAS_WORD_CACHE_MAX_WORDS to another number. Setting it to 0
287 will disable word-cache at run time. 585will disable word-cache at run time.
288 586
289 Text based benchmarks are 50-100% quicker. 587Text based benchmarks are 50-100% quicker.
290 588
291 If you have any issues with word caching, please report them to either 589If you have any issues with word caching, please report them to either
292 the edevel mailing list or Brett Nash <nash@nash.id.uau> 590the e-devel mailing list or Brett Nash <nash@nash.id.uau>
293 591
294 For GL see metric caching... 592For GL see metric caching...
295 593
296--enable-metric-cache 594--enable-metric-cache
297 Metric caching saves character metrics between characters in words.
298 This enables it to render words much quicker as it avoids things like
299 space calculations and kerning calculation.
300 595
301 The cache seize is also controlled by EVAS_WORD_CACHE_MAX_WORDS 596Metric caching saves character metrics between characters in words.
597This enables it to render words much quicker as it avoids things like
598space calculations and kerning calculation.
599
600The cache seize is also controlled by EVAS_WORD_CACHE_MAX_WORDS
601
602It is useful for GL in particular, although software engines do get
603some gain.
604
605Generally it is recommended you enable either word or metric caching,
606depending on your engine use. If you are using software, enable word
607caching (and neon on arm if you can), for GL, turn on metric caching.
608
609If you have any issues with metric caching, please report them to either
610the e-devel mailing list or Brett Nash <nash@nash.id.uau>
611
612--enable-fontconfig
613
614this enables fontconfig support for loading font files by using
615generic fontconfig font names and styles. you really should use this
616by default on any linux/unix platform for universal font support.
617
618--enable-fribidi
302 619
303 It is useful for GL in particular, although software engines do get 620this enables support for the fribidi library to have right to left and
304 some gain. 621left to right font rendering so languges such as arabic, hebrew and
622other "RTL" langauges display properly.
305 623
306 Generally it is recommended you enable either word or metric caching, 624--enable-evas-magic-debug
307 depending on your engine use. If you are using software, enable word
308 caching (and neon on arm if you can), for GL, turn on metric caching.
309 625
310 If you have any issues with metric caching, please report them to either 626this allows oyu to enable and disable evas's extra magic number
311 the edevel mailing list or Brett Nash <nash@nash.id.uau> 627checks. these allow better stability with runtime object magic
628"number" checks to make sure you are accessing a real object in memory
629of the right type, and will avoid doing "bad things" if they detect
630the wrong object type being passed in. if you are absolutely sure your
631system has no bugs in accessing objects of the wrong type with the
632wrong calls, you can gain some small performance by disabling this.
312 633
313NOTES: 634NOTES:
314 635