\hypertarget{struct__Evas__Native__Surface}{}\section{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface Struct Reference}
\label{struct__Evas__Native__Surface}\index{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}}


A generic datatype for engine specific native surface information.  


\subsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{struct__Evas__Native__Surface_a0af49510998474adb55978298f3e4904}{version}
\begin{DoxyCompactList}\small\item\em Current Native Surface Version. \end{DoxyCompactList}\item 
\hyperlink{Evas__Common_8h_a9a76c4acb224938d174efd2f7ed4cb20}{Evas\+\_\+\+Native\+\_\+\+Surface\+\_\+\+Type} \hyperlink{struct__Evas__Native__Surface_a53274b9ebae13690446f4c7d726deec0}{type}
\begin{DoxyCompactList}\small\item\em Surface type. \end{DoxyCompactList}\item 
\begin{tabbing}
xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
union \{\\
\>struct \{\\
\>\>void $\ast$ \hyperlink{struct__Evas__Native__Surface_a542b703f910d271107281bfe45653516}{visual}\\
\>\>\>{\em visual of the pixmap to use (Visual) }\\
\>\>unsigned long \hyperlink{struct__Evas__Native__Surface_adb19d4d279416c2217496e764d27303a}{pixmap}\\
\>\>\>{\em pixmap id to use (Pixmap) }\\
\>\} \hyperlink{struct__Evas__Native__Surface_aa8bddb6eb2bb4d62844e00f871d0ba7c}{x11}\\
\>\>\>{\em Set this struct fields if surface data is X11 based. }\\
\>struct \{\\
\>\>unsigned int \hyperlink{struct__Evas__Native__Surface_a894229577541e8f379be097d648be2aa}{texture\_id}\\
\>\>\>{\em opengl texture id to use from glGenTextures() }\\
\>\>unsigned int \hyperlink{struct__Evas__Native__Surface_a8a1b39e1678509c020db5d784b83a1ea}{framebuffer\_id}\\
\>\>\>{\em 0 if not a FBO, FBO id otherwise from glGenFramebuffers() }\\
\>\>unsigned int \hyperlink{struct__Evas__Native__Surface_aae8a1d816abc248223d3ccd3c40de1c2}{internal\_format}\\
\>\>\>{\em same as \textquotesingle{}internalFormat\textquotesingle{} for glTexImage2D() }\\
\>\>unsigned int \hyperlink{struct__Evas__Native__Surface_a3e9a348eb2a7c964fb6c2ccd7faaf3d4}{format}\\
\>\>\>{\em same as \textquotesingle{}format\textquotesingle{} for glTexImage2D() }\\
\>\>unsigned int {\bfseries x}\\
\>\>unsigned int {\bfseries y}\\
\>\>unsigned int {\bfseries w}\\
\>\>unsigned int \hyperlink{struct__Evas__Native__Surface_a1e3c442de57e20ada2b33f562c1543de}{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) }\\
\>\} \hyperlink{struct__Evas__Native__Surface_ad2a8429bb6d35ab3b52225e7484f6050}{opengl}\\
\>\>\>{\em Set this struct fields if surface data is OpenGL based. }\\
\>struct \{\\
\>\>void $\ast$ \hyperlink{struct__Evas__Native__Surface_abee1906d1c13ed1c15fe925be8d21bfe}{legacy\_buffer}\\
\>\>\>{\em wayland client buffer to use }\\
\>\} \hyperlink{struct__Evas__Native__Surface_aabd8f041a9594bf107311e06e89b4c8b}{wl}\\
\>\>\>{\em Set this struct fields if surface data is Wayland based. }\\
\>struct \{\\
\>\>void $\ast$ \hyperlink{struct__Evas__Native__Surface_a02159f3324b239521043f853db9175fe}{buffer}\\
\>\>\>{\em tbm surface buffer to use }\\
\>\} \hyperlink{struct__Evas__Native__Surface_aad60e8c539c114e06ac13fd254a5f92f}{tbm}\\
\>\>\>{\em Set this struct fields if surface data is Tizen based. }\\
\>struct \{\\
\>\>void $\ast$ \hyperlink{struct__Evas__Native__Surface_abc95d992900eb3089d2ba3868916257c}{surface}\\
\>\>\>{\em evas gl surface to use }\\
\>\} \hyperlink{struct__Evas__Native__Surface_aed52a4b9a200c716d3a95d083ca15066}{evasgl}\\
\>\>\>{\em Set this struct fields if surface data is Evas GL based. }\\
\} \hyperlink{struct__Evas__Native__Surface_ada52a42c73c5b3d834e8f6709e2a0b8f}{data}\\

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


\subsection{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 E\+V\+A\+S\+\_\+\+N\+A\+T\+I\+V\+E\+\_\+\+S\+U\+R\+F\+A\+C\+E\+\_\+\+X11, you need to set union data with x11.\+visual or x11.\+pixmap. If you need to set the native surface as E\+V\+A\+S\+\_\+\+N\+A\+T\+I\+V\+E\+\_\+\+S\+U\+R\+F\+A\+C\+E\+\_\+\+O\+P\+E\+N\+G\+L, 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 E\+V\+A\+S\+\_\+\+N\+A\+T\+I\+V\+E\+\_\+\+S\+U\+R\+F\+A\+C\+E\+\_\+\+W\+L, you need to set union data with wl.\+legacy\+\_\+buffer. If you need to set the native surface as E\+V\+A\+S\+\_\+\+N\+A\+T\+I\+V\+E\+\_\+\+S\+U\+R\+F\+A\+C\+E\+\_\+\+T\+B\+M, you need to set union data with tbm surface. The version field should be set with E\+V\+A\+S\+\_\+\+N\+A\+T\+I\+V\+E\+\_\+\+S\+U\+R\+F\+A\+C\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N 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 \hyperlink{group__Evas__GL_ga4bf21b84364671f9e83bd071558935ad}{evas\+\_\+gl\+\_\+native\+\_\+surface\+\_\+get()} is not meant to be used by applications except for passing it to \hyperlink{group__Evas__Object__Image_gaabe0ddc5e656d6c09f9f4dd85f981279}{evas\+\_\+object\+\_\+image\+\_\+native\+\_\+surface\+\_\+set()}.
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Evas__Object__Image_gaabe0ddc5e656d6c09f9f4dd85f981279}{evas\+\_\+object\+\_\+image\+\_\+native\+\_\+surface\+\_\+set()} 
\end{DoxySeeAlso}


\subsection{Field Documentation}
\hypertarget{struct__Evas__Native__Surface_a0af49510998474adb55978298f3e4904}{}\index{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}!version@{version}}
\index{version@{version}!\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}}
\subsubsection[{version}]{\setlength{\rightskip}{0pt plus 5cm}int \+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface\+::version}\label{struct__Evas__Native__Surface_a0af49510998474adb55978298f3e4904}


Current Native Surface Version. 

Use E\+V\+A\+S\+\_\+\+N\+A\+T\+I\+V\+E\+\_\+\+S\+U\+R\+F\+A\+C\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N \hypertarget{struct__Evas__Native__Surface_a53274b9ebae13690446f4c7d726deec0}{}\index{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}!type@{type}}
\index{type@{type}!\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}}
\subsubsection[{type}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Evas\+\_\+\+Native\+\_\+\+Surface\+\_\+\+Type} \+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface\+::type}\label{struct__Evas__Native__Surface_a53274b9ebae13690446f4c7d726deec0}


Surface type. 

\begin{DoxySeeAlso}{See also}
\hyperlink{Evas__Common_8h_a9a76c4acb224938d174efd2f7ed4cb20}{Evas\+\_\+\+Native\+\_\+\+Surface\+\_\+\+Type} 
\end{DoxySeeAlso}
\hypertarget{struct__Evas__Native__Surface_aa8bddb6eb2bb4d62844e00f871d0ba7c}{}\index{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}!x11@{x11}}
\index{x11@{x11}!\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}}
\subsubsection[{x11}]{\setlength{\rightskip}{0pt plus 5cm}struct \{ ... \}   \+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface\+::x11}\label{struct__Evas__Native__Surface_aa8bddb6eb2bb4d62844e00f871d0ba7c}


Set this struct fields if surface data is X11 based. 

\hypertarget{struct__Evas__Native__Surface_ad2a8429bb6d35ab3b52225e7484f6050}{}\index{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}!opengl@{opengl}}
\index{opengl@{opengl}!\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}}
\subsubsection[{opengl}]{\setlength{\rightskip}{0pt plus 5cm}struct \{ ... \}   \+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface\+::opengl}\label{struct__Evas__Native__Surface_ad2a8429bb6d35ab3b52225e7484f6050}


Set this struct fields if surface data is Open\+G\+L based. 

\hypertarget{struct__Evas__Native__Surface_aabd8f041a9594bf107311e06e89b4c8b}{}\index{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}!wl@{wl}}
\index{wl@{wl}!\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}}
\subsubsection[{wl}]{\setlength{\rightskip}{0pt plus 5cm}struct \{ ... \}   \+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface\+::wl}\label{struct__Evas__Native__Surface_aabd8f041a9594bf107311e06e89b4c8b}


Set this struct fields if surface data is Wayland based. 

\hypertarget{struct__Evas__Native__Surface_a02159f3324b239521043f853db9175fe}{}\index{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}!buffer@{buffer}}
\index{buffer@{buffer}!\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}}
\subsubsection[{buffer}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ \+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface\+::buffer}\label{struct__Evas__Native__Surface_a02159f3324b239521043f853db9175fe}


tbm surface buffer to use 

\begin{DoxySince}{Since}
1.\+14 
\end{DoxySince}
\hypertarget{struct__Evas__Native__Surface_aad60e8c539c114e06ac13fd254a5f92f}{}\index{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}!tbm@{tbm}}
\index{tbm@{tbm}!\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}}
\subsubsection[{tbm}]{\setlength{\rightskip}{0pt plus 5cm}struct \{ ... \}   \+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface\+::tbm}\label{struct__Evas__Native__Surface_aad60e8c539c114e06ac13fd254a5f92f}


Set this struct fields if surface data is Tizen based. 

\begin{DoxySince}{Since}
1.\+14 
\end{DoxySince}
\hypertarget{struct__Evas__Native__Surface_abc95d992900eb3089d2ba3868916257c}{}\index{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}!surface@{surface}}
\index{surface@{surface}!\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}}
\subsubsection[{surface}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ \+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface\+::surface}\label{struct__Evas__Native__Surface_abc95d992900eb3089d2ba3868916257c}


evas gl surface to use 

\begin{DoxySince}{Since}
1.\+14 
\end{DoxySince}
\hypertarget{struct__Evas__Native__Surface_aed52a4b9a200c716d3a95d083ca15066}{}\index{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}!evasgl@{evasgl}}
\index{evasgl@{evasgl}!\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}}
\subsubsection[{evasgl}]{\setlength{\rightskip}{0pt plus 5cm}struct \{ ... \}   \+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface\+::evasgl}\label{struct__Evas__Native__Surface_aed52a4b9a200c716d3a95d083ca15066}


Set this struct fields if surface data is Evas G\+L based. 

\begin{DoxySince}{Since}
1.\+14 
\end{DoxySince}
\hypertarget{struct__Evas__Native__Surface_ada52a42c73c5b3d834e8f6709e2a0b8f}{}\index{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}!data@{data}}
\index{data@{data}!\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface@{\+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface}}
\subsubsection[{data}]{\setlength{\rightskip}{0pt plus 5cm}union \{ ... \}   \+\_\+\+Evas\+\_\+\+Native\+\_\+\+Surface\+::data}\label{struct__Evas__Native__Surface_ada52a42c73c5b3d834e8f6709e2a0b8f}


Choose one union data according to your surface. 

