- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files
- Examples

- Data Structures
- Data Structure Index
- Class Hierarchy
- Data Fields

Data Fields
_Evas_Native_Surface Struct Reference

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...
} | data
| Choose one union data according to your surface. More...

## 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. 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.

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

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.

union { ... } _Evas_Native_Surface::data

Choose one union data according to your surface.