Method

GeglBufferget

Declaration [src]

void
gegl_buffer_get (
  GeglBuffer* buffer,
  const GeglRectangle* rect,
  gdouble scale,
  const Babl* format,
  gpointer dest,
  gint rowstride,
  GeglAbyssPolicy repeat_mode
)

Description [src]

Fetch a rectangular linear buffer of pixel data from the GeglBuffer, the data is converted to the desired BablFormat, if the BablFormat stored and fetched is the same this amounts to a series of memcpy’s aligned to demux the tile structure into a linear buffer.

This method is not directly available to language bindings.

The implementation of this method is provided by gegl_buffer_introspectable_get() in language bindings

Parameters

rect

Type: GeglRectangle

The coordinates we want to retrieve data from, and width/height of destination buffer, if NULL equal to the extent of the buffer. The coordinates and dimensions are after scale has been applied.

The data is owned by the caller of the function.
scale

Type: gdouble

Sampling scale, 1.0 = pixel for pixel 2.0 = magnify, 0.5 scale down.

format

Type: Babl

The BablFormat to store in the linear buffer dest.

The data is owned by the caller of the function.
dest

Type: gpointer

The memory destination for a linear buffer for the pixels, the size needed depends on the requested BablFormat.

The argument can be NULL.
The data is owned by the caller of the function.
rowstride

Type: gint

Rowstride in bytes, or GEGL_AUTO_ROWSTRIDE to compute the rowstride based on the width and bytes per pixel for the specified format.

repeat_mode

Type: GeglAbyssPolicy

How requests outside the buffer extent are handled. Valid values: GEGL_ABYSS_NONE (abyss pixels are zeroed), GEGL_ABYSS_WHITE (abyss pixels are white), GEGL_ABYSS_BLACK (abyss pixels are black), GEGL_ABYSS_CLAMP (coordinates are clamped to the abyss rectangle), GEGL_ABYSS_LOOP (buffer contents are tiled if outside of the abyss rectangle) this argument also takes a GEGL_BUFFER_FILTER value or’ed into it, allowing to specify trade-off of performance/quality, valid values are: GEGL_BUFFER_FILTER_NEAREST, GEGL_BUFFER_FILTER_BILINEAR, GEGL_BUFFER_FILTER_BOX and GEGL_BUFFER_FILTER_AUTO.