Graphical Objects: Managing and Rendering Evas Objects
Evas is a clean display canvas API for several target display systems that can draw, for example, anti-aliased text, smooth super and sub-sampled scaled images, and alpha-blend objects. Evas optimizes the rendering pipeline to minimize the effort of redrawing changes made to the canvas, and so takes this work out of your hand, saving a lot of time and energy.
Evas abstracts any need to know much about what the characteristics of your display system are, what graphics calls are used to draw them, and how. It deals on an object level where all you do is create and manipulate objects in a canvas and set their properties.
Evas is designed to work on embedded systems all the way to large and powerful multi-CPU workstations. If necessary, it can be compiled to only have the features you need for your target platform. It has several display back-ends, allowing it to display on several display systems, making it portable for cross-device and cross-platform development.
Evas is not a UI component set or a UI component toolkit, but it is their base. For a toolkit based on Evas, Edje, Ecore, and other Enlightenment technologies, see the Elementary API (in mobile and wearable applications).
The following figure illustrates the Evas object, which is the most basic visual entity.
Figure: Evas objects
Primitive and smart objects can be implemented by Evas objects:
- Basic objects, such as lines, rectangles, polygons, images, texts, and textblocks, are implemented by primitive objects in order to build a complex user interface.
- Container objects (such as box, table, and grid) that hold Evas and Edje objects and whole complex UI components as children are implemented by smart objects in order to provide intelligence and extension to simple Evas objects.
Evas is not dependent or aware of main loops, or input and output systems. Input must be polled from various sources and fed to Evas. It does not create windows or report windows updates to your system, but draws the pixels and reports to the user the areas that are changed. These operations are ready to be used in Ecore, particularly in the Ecore_Evas wrapper/helper set of functions.
Note |
---|
Except as noted, this content is licensed under LGPLv2.1+. |