A generic datatype for engine specific native surface information. More...
Data Fields | |
| int | version |
| Current Native Surface Version. More... | |
| Evas_Native_Surface_Type | type |
| Surface type. More... | |
| union { | |
| struct { | |
| void * visual | |
| visual of the pixmap to use (Visual) | |
| unsigned long pixmap | |
| pixmap id to use (Pixmap) | |
| } x11 | |
| Set this struct fields if surface data is X11 based. More... | |
| 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. More... | |
| struct { | |
| void * legacy_buffer | |
| wayland client buffer to use | |
| } wl | |
| Set this struct fields if surface data is Wayland 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. More... | |
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
Referenced by evas_object_image_native_surface_set().
| Evas_Native_Surface_Type _Evas_Native_Surface::type |
| struct { ... } _Evas_Native_Surface::x11 |
Set this struct fields if surface data is X11 based.
| struct { ... } _Evas_Native_Surface::opengl |
Set this struct fields if surface data is OpenGL based.
| struct { ... } _Evas_Native_Surface::wl |
Set this struct fields if surface data is Wayland 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.
| union { ... } _Evas_Native_Surface::data |
Choose one union data according to your surface.