_Evas_Native_Surface(3)

NAME
_Evas_Native_Surface - A generic datatype for engine specific native surface information.

SYNOPSIS

  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.
} 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.
struct {
void * buffer
tbm surface buffer to use
} tbm
Set this struct fields if surface data is Tizen based.
struct {
void * surface
evas gl surface to use
} evasgl
Set this struct fields if surface data is Evas GL based.
} data
Choose one union data according to your surface.

Detailed Description

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.

Warning
    Native surface types totally depend on the system. Please be aware that the types are supported on your system before using them.

Note
    The information stored in an 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().

See also
    evas_object_image_native_surface_set()

Field Documentation

  int _Evas_Native_Surface::version

Current Native Surface Version. Use EVAS_NATIVE_SURFACE_VERSION

  Evas_Native_Surface_Type _Evas_Native_Surface::type

Surface type.

See also
    Evas_Native_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.

Since
    1.19

  struct { ... } _Evas_Native_Surface::wl_dmabuf

Set this struct fields if surface data is Wayland dmabuf based.

Since
    1.18

  void* _Evas_Native_Surface::buffer

tbm surface buffer to use

Since
    1.14

  struct { ... } _Evas_Native_Surface::tbm

Set this struct fields if surface data is Tizen based.

Since
    1.14

  void* _Evas_Native_Surface::surface

evas gl surface to use

Since
    1.14

  struct { ... } _Evas_Native_Surface::evasgl

Set this struct fields if surface data is Evas GL based.

Since
    1.14

Author

Generated automatically by Doxygen for EFL from the source code.