efl/legacy/evas
Carsten Haitzler 73de169494 wooooo!
core bits of evas api actually do stuff now.. evas test it beginning to use them
if you want to have ann ide how easy it is to use evas as a rendeirng engine
just look at evas_test.. notice the evas setup is just a few calls (create,
set the output drawable, the output size of the window and the viewport into
the evas's virtual world - the its a mater of creating a few objects
and notice the main loo ONLy does 2 things - move the objects then call
render - evas will optimize to only render the bits that changed all for you.
there's a lot fo thank;less nasty state chekcing code just for this.
i'm going to have to write a lot fo it - image obejcts only done sofar.
you cant do anytign except move and resize them and add them and show and hide
them. freeing them wont work. layers dont work. no api to set performance cache
or to access it. fill modes for images dont work either nor is there an api
to set an images border scaling)


SVN revision: 3090
2000-08-11 07:47:52 +00:00
..
src wooooo! 2000-08-11 07:47:52 +00:00
test wooooo! 2000-08-11 07:47:52 +00:00
.cvsignore ignore more 2000-07-30 20:43:54 +00:00
AUTHORS evas........ 2000-07-30 20:21:14 +00:00
COPYING evas........ 2000-07-30 20:21:14 +00:00
Makefile.am evas........ 2000-07-30 20:21:14 +00:00
README imlib backend does text now too.. god that was easy! 2000-08-07 01:20:30 +00:00
acconfig.h blah! 2000-08-03 23:54:32 +00:00
autogen.sh evas........ 2000-07-30 20:21:14 +00:00
configure.in whooooppppppeeeeeeeeeeeeeeeeee! 2000-08-10 10:14:55 +00:00

README

-------------------------------------------------------------------------------
 E V A S - 0.0.0
-------------------------------------------------------------------------------

This is the ``E Canvas'' - a rip off of some of the other canvas's floating
about - Tk and gnome too. it's at the Xlib level. it's intended to be
accelerated by hardware or highly optimised software where possible. It is
intended to be simple and allow for the building of interfaces ontop of it.

if you got this from cvs do:
./autogen.sh

otherwise do:
./configure

then to compile:
make

if you wish to install (as root):
make install

in the test directory you will find a test program:
cd test
./evas_test


-------------------------------------------------------------------------------
MORE DETAILED DESCRIPTION:
-------------------------------------------------------------------------------

Evas? Canvas? What? OK.. you're baffled as to what that stuff is. Time to
explain.

A canvas is a high-level rendering engine. Instead of a program having to
handle exposes or updates then redraw bit by bit (draw line, draw box, 
paste image etc.) after having figured out what has changed and what need to
be re-rendered - what data loaded in maps to what... then finally order the
draw in the right way to optimize it - a canvas provides a high-level API to
this kind of thing and handles all the smarts inside.

The result is an application creates an Evas & attaches that evas to a window.
Now it just creates objects - create an image object, a text object, a line
object, a rectangle object etc. It just moves and resizes these objects around
by calling routines in Evas - Evas handles redrawing, scaling, ordering the
draws to acount for layers , clipping objects out that don't exist in the
visible Evas area etc.

This means less headache for tha application programmer. Now why do this as
a whole new library? Well - because the library can render the Evas as fast
as possible. It uses Imlib2 to do the grunt work of loading images - and
beyond that it can currently use either imlib2 or OpenGL to render to the
Evas - if you have decent hardware that's supported by OpenGL you will see
in the area of 10-50 times (in future even higher) speedups in rendering
using the GL backend instead of the Imlib2 one (even though Imlib2 is a
highly optimized software rendering engine). The good thing here is that the
application can choose what system to use. If that system isn't available or 
Evas didn't compile with it, it will fall back to the nearest approximation 
(it will ALWAYS have Imlib2 and X11 rendering backends - Imlib2 being able to
actually alpha blend, but X11 keeping the rendering server-side with pixmaps
and clip masks) so this means a highly optimized rendering subsystem to build
more complex things ontop of.