~~Title: Ector.Buffer.Flag~~
===== Description =====
%%Buffer capabilities%%
{{page>:develop:api-include:ector:buffer:flag:description&nouser&nolink&nodate}}
===== Fields =====
{{page>:develop:api-include:ector:buffer:flag:fields&nouser&nolink&nodate}}
* **none** - %%Buffer may not have any backing, indicates an invalid buffer.%%
* **cpu_readable** - %%Can be read from the CPU after map. Reading may still be very slow.%%
* **cpu_writable** - %%Can be written to by the CPU after map. Writing may still be very slow.%%
* **renderable** - %%Can be rendered to, ie CPU memory for SW rendering, or an FBO for GL engine.%%
* **drawable** - %%Can be used as a source of pixels to draw on Evas.%%
* **cpu_readable_fast** - %%Can be read by the CPU at high speed, ie no need for glReadPixels.%%
* **cpu_writable_fast** - %%Can be written by the CPU at high speed, ie no need for GPU texture upload.%%
* **uncached** - %%Backed by uncached memory, ie. slow-ish reads but faster than glReadPixels.%%
===== Signature =====
enum Ector.Buffer.Flag {
none: 0,
cpu_readable: 1,
cpu_writable: 2,
renderable: 4,
drawable: 8,
cpu_readable_fast: 16,
cpu_writable_fast: 32,
uncached: 64
}
===== C signature =====
typedef enum {
ECTOR_BUFFER_FLAG_NONE = 0,
ECTOR_BUFFER_FLAG_CPU_READABLE = 1,
ECTOR_BUFFER_FLAG_CPU_WRITABLE = 2,
ECTOR_BUFFER_FLAG_RENDERABLE = 4,
ECTOR_BUFFER_FLAG_DRAWABLE = 8,
ECTOR_BUFFER_FLAG_CPU_READABLE_FAST = 16,
ECTOR_BUFFER_FLAG_CPU_WRITABLE_FAST = 32,
ECTOR_BUFFER_FLAG_UNCACHED = 64
} Ector_Buffer_Flag;