\doxysection{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface Struct Reference}
\hypertarget{struct__Evas__Native__Surface}{}\label{struct__Evas__Native__Surface}\index{\_Evas\_Native\_Surface@{\_Evas\_Native\_Surface}}


A generic datatype for engine specific native surface information.  




{\ttfamily \#include $<$Evas\+\_\+\+Legacy.\+h$>$}

\doxysubsubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
int \mbox{\hyperlink{struct__Evas__Native__Surface_a0af49510998474adb55978298f3e4904}{version}}
\begin{DoxyCompactList}\small\item\em Current Native Surface Version. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Evas__Object__Image_ga71f37ea086e194ace43ba28f03fb6206}{Evas\+\_\+\+Native\+\_\+\+Surface\+\_\+\+Type}} \mbox{\hyperlink{struct__Evas__Native__Surface_a53274b9ebae13690446f4c7d726deec0}{type}}
\begin{DoxyCompactList}\small\item\em Surface type. \end{DoxyCompactList}\item 
\Hypertarget{struct__Evas__Native__Surface_a7f3d847562d8887db70f5af35cb1614b}\label{struct__Evas__Native__Surface_a7f3d847562d8887db70f5af35cb1614b} 
\begin{tabbing}
xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
union \{\\
\>struct \{\\
\>\>void \texorpdfstring{$\ast$}{*} {\bfseries visual}\\
\>\>\>{\em visual of the pixmap to use (Visual) }\\
\>\>unsigned long {\bfseries pixmap}\\
\>\>\>{\em pixmap id to use (Pixmap) }\\
\>\>unsigned int \mbox{\hyperlink{struct__Evas__Native__Surface_a13d85349f869fc362a0d0cd9f90a25cc}{multiple\_buffer}}\\
\>\>\>{\em From version 4. }\\
\>\} {\bfseries x11}\\
\>\>\>{\em Set this struct fields if surface data is X11 based. }\\
\>struct \{\\
\>\>unsigned int {\bfseries texture\_id}\\
\>\>\>{\em opengl texture id to use from glGenTextures() }\\
\>\>unsigned int {\bfseries framebuffer\_id}\\
\>\>\>{\em 0 if not a FBO, FBO id otherwise from glGenFramebuffers() }\\
\>\>unsigned int {\bfseries internal\_format}\\
\>\>\>{\em same as \textquotesingle{}internalFormat\textquotesingle{} for glTexImage2D() }\\
\>\>unsigned int {\bfseries format}\\
\>\>\>{\em same as \textquotesingle{}format\textquotesingle{} for glTexImage2D() }\\
\>\>unsigned int {\bfseries x}\\
\>\>unsigned int {\bfseries y}\\
\>\>unsigned int {\bfseries w}\\
\>\>unsigned int {\bfseries h}\\
\>\>\>{\em 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) }\\
\>\} {\bfseries opengl}\\
\>\>\>{\em Set this struct fields if surface data is OpenGL based. }\\
\>struct \{\\
\>\>void \texorpdfstring{$\ast$}{*} {\bfseries legacy\_buffer}\\
\>\>\>{\em wayland client buffer to use }\\
\>\} {\bfseries wl}\\
\>\>\>{\em Set this struct fields if surface data is Wayland based. }\\
\>struct \{\\
\>\>void \texorpdfstring{$\ast$}{*} {\bfseries attr}\\
\>\>\>{\em Pointer to dmabuf attributes -\/ contents copied. }\\
\>\>void \texorpdfstring{$\ast$}{*} {\bfseries resource}\\
\>\>\>{\em Wayland resource pointer, kept as is. }\\
\>\>\mbox{\hyperlink{struct__Evas__Native__Scanout}{Evas\_Native\_Scanout}} {\bfseries scanout}\\
\>\} \mbox{\hyperlink{struct__Evas__Native__Surface_ad5005950250d00e4c4c62dbff8d20070}{wl\_dmabuf}}\\
\>\>\>{\em Set this struct fields if surface data is Wayland dmabuf based. }\\
\>struct \{\\
\>\>void \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct__Evas__Native__Surface_a02159f3324b239521043f853db9175fe}{buffer}}\\
\>\>\>{\em tbm surface buffer to use }\\
\>\} \mbox{\hyperlink{struct__Evas__Native__Surface_accf59d84eaf19348f1c7327232f83bc2}{tbm}}\\
\>\>\>{\em Set this struct fields if surface data is Tizen based. }\\
\>struct \{\\
\>\>void \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{struct__Evas__Native__Surface_abc95d992900eb3089d2ba3868916257c}{surface}}\\
\>\>\>{\em evas gl surface to use }\\
\>\} \mbox{\hyperlink{struct__Evas__Native__Surface_aa30df89ecf7530244e289ddc6b96c1e5}{evasgl}}\\
\>\>\>{\em Set this struct fields if surface data is Evas GL based. }\\
\} {\bfseries data}\\

\end{tabbing}\begin{DoxyCompactList}\small\item\em Choose one union data according to your surface. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{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.

\begin{DoxyWarning}{Warning}
Native surface types totally depend on the system. Please be aware that the types are supported on your system before using them.
\end{DoxyWarning}
\begin{DoxyNote}{Note}
The information stored in an {\ttfamily Evas\+\_\+\+Native\+\_\+\+Surface} returned by \doxylink{group__Evas__GL_ga0fa458ec536ee9a2578c3e35fef76da0}{evas\+\_\+gl\+\_\+native\+\_\+surface\+\_\+get()} is not meant to be used by applications except for passing it to \doxylink{group__Evas__Object__Image_ga6a611a449c189a1a52fff0e65ba7e227}{evas\+\_\+object\+\_\+image\+\_\+native\+\_\+surface\+\_\+set()}.
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\doxylink{group__Evas__Object__Image_ga6a611a449c189a1a52fff0e65ba7e227}{evas\+\_\+object\+\_\+image\+\_\+native\+\_\+surface\+\_\+set()} 
\end{DoxySeeAlso}


\doxysubsection{Field Documentation}
\Hypertarget{struct__Evas__Native__Surface_a0af49510998474adb55978298f3e4904}\label{struct__Evas__Native__Surface_a0af49510998474adb55978298f3e4904} 
\index{\_Evas\_Native\_Surface@{\_Evas\_Native\_Surface}!version@{version}}
\index{version@{version}!\_Evas\_Native\_Surface@{\_Evas\_Native\_Surface}}
\doxysubsubsection{\texorpdfstring{version}{version}}
{\footnotesize\ttfamily int \+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface\+::version}



Current Native Surface Version. 

Use EVAS\+\_\+\+NATIVE\+\_\+\+SURFACE\+\_\+\+VERSION \Hypertarget{struct__Evas__Native__Surface_a53274b9ebae13690446f4c7d726deec0}\label{struct__Evas__Native__Surface_a53274b9ebae13690446f4c7d726deec0} 
\index{\_Evas\_Native\_Surface@{\_Evas\_Native\_Surface}!type@{type}}
\index{type@{type}!\_Evas\_Native\_Surface@{\_Evas\_Native\_Surface}}
\doxysubsubsection{\texorpdfstring{type}{type}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Evas__Object__Image_ga71f37ea086e194ace43ba28f03fb6206}{Evas\+\_\+\+Native\+\_\+\+Surface\+\_\+\+Type}} \+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface\+::type}



Surface type. 

\begin{DoxySeeAlso}{See also}
\doxylink{group__Evas__Object__Image_ga71f37ea086e194ace43ba28f03fb6206}{Evas\+\_\+\+Native\+\_\+\+Surface\+\_\+\+Type} 
\end{DoxySeeAlso}
\Hypertarget{struct__Evas__Native__Surface_a13d85349f869fc362a0d0cd9f90a25cc}\label{struct__Evas__Native__Surface_a13d85349f869fc362a0d0cd9f90a25cc} 
\index{\_Evas\_Native\_Surface@{\_Evas\_Native\_Surface}!multiple\_buffer@{multiple\_buffer}}
\index{multiple\_buffer@{multiple\_buffer}!\_Evas\_Native\_Surface@{\_Evas\_Native\_Surface}}
\doxysubsubsection{\texorpdfstring{multiple\_buffer}{multiple\_buffer}}
{\footnotesize\ttfamily 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. \begin{DoxySince}{Since}
1.\+19 
\end{DoxySince}
\Hypertarget{struct__Evas__Native__Surface_ad5005950250d00e4c4c62dbff8d20070}\label{struct__Evas__Native__Surface_ad5005950250d00e4c4c62dbff8d20070} 
\index{\_Evas\_Native\_Surface@{\_Evas\_Native\_Surface}!wl\_dmabuf@{wl\_dmabuf}}
\index{wl\_dmabuf@{wl\_dmabuf}!\_Evas\_Native\_Surface@{\_Evas\_Native\_Surface}}
\doxysubsubsection{\texorpdfstring{[struct]}{[struct]}}
{\footnotesize\ttfamily struct  \{ ... \}  \+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface\+::wl\+\_\+dmabuf}



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

\begin{DoxySince}{Since}
1.\+18 
\end{DoxySince}
\Hypertarget{struct__Evas__Native__Surface_a02159f3324b239521043f853db9175fe}\label{struct__Evas__Native__Surface_a02159f3324b239521043f853db9175fe} 
\index{\_Evas\_Native\_Surface@{\_Evas\_Native\_Surface}!buffer@{buffer}}
\index{buffer@{buffer}!\_Evas\_Native\_Surface@{\_Evas\_Native\_Surface}}
\doxysubsubsection{\texorpdfstring{buffer}{buffer}}
{\footnotesize\ttfamily void\texorpdfstring{$\ast$}{*} \+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface\+::buffer}



tbm surface buffer to use 

\begin{DoxySince}{Since}
1.\+14 
\end{DoxySince}
\Hypertarget{struct__Evas__Native__Surface_accf59d84eaf19348f1c7327232f83bc2}\label{struct__Evas__Native__Surface_accf59d84eaf19348f1c7327232f83bc2} 
\index{\_Evas\_Native\_Surface@{\_Evas\_Native\_Surface}!tbm@{tbm}}
\index{tbm@{tbm}!\_Evas\_Native\_Surface@{\_Evas\_Native\_Surface}}
\doxysubsubsection{\texorpdfstring{[struct]}{[struct]}}
{\footnotesize\ttfamily struct  \{ ... \}  \+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface\+::tbm}



Set this struct fields if surface data is Tizen based. 

\begin{DoxySince}{Since}
1.\+14 
\end{DoxySince}
\Hypertarget{struct__Evas__Native__Surface_abc95d992900eb3089d2ba3868916257c}\label{struct__Evas__Native__Surface_abc95d992900eb3089d2ba3868916257c} 
\index{\_Evas\_Native\_Surface@{\_Evas\_Native\_Surface}!surface@{surface}}
\index{surface@{surface}!\_Evas\_Native\_Surface@{\_Evas\_Native\_Surface}}
\doxysubsubsection{\texorpdfstring{surface}{surface}}
{\footnotesize\ttfamily void\texorpdfstring{$\ast$}{*} \+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface\+::surface}



evas gl surface to use 

\begin{DoxySince}{Since}
1.\+14 
\end{DoxySince}
\Hypertarget{struct__Evas__Native__Surface_aa30df89ecf7530244e289ddc6b96c1e5}\label{struct__Evas__Native__Surface_aa30df89ecf7530244e289ddc6b96c1e5} 
\index{\_Evas\_Native\_Surface@{\_Evas\_Native\_Surface}!evasgl@{evasgl}}
\index{evasgl@{evasgl}!\_Evas\_Native\_Surface@{\_Evas\_Native\_Surface}}
\doxysubsubsection{\texorpdfstring{[struct]}{[struct]}}
{\footnotesize\ttfamily struct  \{ ... \}  \+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface\+::evasgl}



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

\begin{DoxySince}{Since}
1.\+14 
\end{DoxySince}
