Go back to Efl.Gfx.Filter.

Buffer

Apart from the predefined buffers input and output, buffers can also be created using the buffer command, and their contents will either be transparency (all pixels are rgba(0,0,0,0)) or they will reflect the contents of another Evas.Object. The latter case can be used to import external images and textures into a filter.

All buffers have the same size unless they come from an external source, in which case their size is equal to the geometry of the Evas.Object.

Buffers are either Alpha surfaces (8 bit, values in the range 0-255) or full RGBA bitmaps (32 bits).

Various buffers can be combined together with commands such as blend, blur, mask, etc…

Syntax
buffer ({ type = 'rgba', src = nil })
Parameters
type Can be either “alpha” or “rgba”
src A source name, specified in Efl.Gfx.Filter.source.set or in EDC with filter.source: “srcname”;
Examples
-- create a buffer (RGBA)
name1 = buffer()
-- create an Alpha buffer
name2 = buffer("alpha")
-- create an RGBA buffer
name3 = buffer("rgba")
name4 = buffer({ type = "rgba" })
 
-- create a proxy buffer whose pixels come from an external object
name5 = buffer({ src = "partname" })

partname above is either:

  filter.source: "/edje/part/name" "partname";
  filter.source: "partname";
Temporary buffers

Some commands might require the creation of internal buffers, which the script can not use directly, and that serve only as intermediate image processing surfaces.

This means that the memory usage of a filter operation might be larger than just that of the input and output buffers.