A generic datatype for engine specific native surface information. More...
#include <Evas_Legacy.h>
Data Fields | ||
int | version | |
Current Native Surface Version. | ||
Evas_Native_Surface_Type | type | |
Surface type. | ||
union { | ||
struct { | ||
void * visual | ||
visual of the pixmap to use (Visual) | ||
unsigned long pixmap | ||
pixmap id to use (Pixmap) | ||
unsigned int multiple_buffer | ||
From version 4. More... | ||
} x11 | ||
Set this struct fields if surface data is X11 based. | ||
struct { | ||
unsigned int texture_id | ||
opengl texture id to use from glGenTextures() | ||
unsigned int framebuffer_id | ||
0 if not a FBO, FBO id otherwise from glGenFramebuffers() | ||
unsigned int internal_format | ||
same as 'internalFormat' for glTexImage2D() | ||
unsigned int format | ||
same as 'format' for glTexImage2D() | ||
unsigned int x | ||
unsigned int y | ||
unsigned int w | ||
unsigned int h | ||
region inside the texture to use (image size is assumed as texture size, with 0, 0 being the top-left and co-ordinates working down to the right and bottom being positive) | ||
} opengl | ||
Set this struct fields if surface data is OpenGL based. | ||
struct { | ||
void * legacy_buffer | ||
wayland client buffer to use | ||
} wl | ||
Set this struct fields if surface data is Wayland based. | ||
struct { | ||
void * attr | ||
Pointer to dmabuf attributes - contents copied. | ||
void * resource | ||
Wayland resource pointer, kept as is. | ||
Evas_Native_Scanout scanout | ||
} wl_dmabuf | ||
Set this struct fields if surface data is Wayland dmabuf based. More... | ||
struct { | ||
void * buffer | ||
tbm surface buffer to use More... | ||
} tbm | ||
Set this struct fields if surface data is Tizen based. More... | ||
struct { | ||
void * surface | ||
evas gl surface to use More... | ||
} evasgl | ||
Set this struct fields if surface data is Evas GL based. More... | ||
} | data | |
Choose one union data according to your surface. | ||
A generic datatype for engine specific native surface information.
Please fill up Evas_Native_Surface fields that regarded with current surface type. If you want to set the native surface type to EVAS_NATIVE_SURFACE_X11, you need to set union data with x11.visual or x11.pixmap. If you need to set the native surface as EVAS_NATIVE_SURFACE_OPENGL, on the other hand, you need to set union data with opengl.texture_id or opengl.framebuffer_id and so on. If you need to set the native surface as EVAS_NATIVE_SURFACE_WL, you need to set union data with wl.legacy_buffer. If you need to set the native surface as EVAS_NATIVE_SURFACE_TBM, you need to set union data with tbm surface. The version field should be set with EVAS_NATIVE_SURFACE_VERSION in order to check abi break in your application on the different efl library versions.
Evas_Native_Surface
returned by evas_gl_native_surface_get() is not meant to be used by applications except for passing it to evas_object_image_native_surface_set().int _Evas_Native_Surface::version |
Current Native Surface Version.
Use EVAS_NATIVE_SURFACE_VERSION
Evas_Native_Surface_Type _Evas_Native_Surface::type |
Surface type.
unsigned int _Evas_Native_Surface::multiple_buffer |
From version 4.
1 if pixmap is multiple buffer pixmap such as named pixmap created by enlightenment. driver dependent.
struct { ... } _Evas_Native_Surface::wl_dmabuf |
Set this struct fields if surface data is Wayland dmabuf based.
void* _Evas_Native_Surface::buffer |
tbm surface buffer to use
struct { ... } _Evas_Native_Surface::tbm |
Set this struct fields if surface data is Tizen based.
void* _Evas_Native_Surface::surface |
evas gl surface to use
struct { ... } _Evas_Native_Surface::evasgl |
Set this struct fields if surface data is Evas GL based.