~~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;