Set the pixels for this buffer, managed externally by the client.

EFL will use the pixel data directly, and update the GPU-side texture if required. This will mark the image as dirty. If slice is null, this will detach the pixel data.

If the buffer already had pixel data, the previous image data will be dropped. This is the same as Efl.Gfx.Buffer.buffer_copy_set.

The memory buffer pixels must be large enough to hold width x height pixels encoded in the colorspace cspace.

See also Efl.Gfx.Buffer.buffer_copy_set if you want EFL to copy the input buffer internally.


buffer_managed_set @pure_virtual {
    params {
        @in slice: ptr(const(Eina.Slice)) @nullable;
        @in size: Eina.Size2D;
        @in stride: int @optional;
        @in cspace: Efl.Gfx.Colorspace @optional;
        @in plane: int @optional;
    return: bool;

C signature

Eina_Bool efl_gfx_buffer_managed_set(Eo *obj, const Eina_Slice *slice, Eina_Size2D size, int stride, Efl_Gfx_Colorspace cspace, int plane);


  • slice (in) - If null, detaches the previous buffer.
  • size (in) - The size in pixels.
  • stride (in) - If 0, automatically guessed from the width.
  • cspace (in) - argb8888 by default.
  • plane (in) - Plane ID. 0 by default. Useful for planar formats only.

Implemented by

  • Efl.Gfx.Buffer.buffer_managed_set