\hypertarget{group__Evas__Output__Method}{}\section{Render Engine Functions}
\label{group__Evas__Output__Method}\index{Render Engine Functions@{Render Engine Functions}}


Functions that are used to set the render engine for a given function, and then get that engine working.  


\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
E\+O\+A\+P\+I void \hyperlink{group__Evas__Output__Method_gafa03e732ee5046c9580ddb2a4e7a2ad3}{evas\+\_\+canvas\+\_\+output\+\_\+method\+\_\+set} (int render\+\_\+method)
\begin{DoxyCompactList}\small\item\em Sets the output engine for the given evas. \end{DoxyCompactList}\item 
E\+O\+A\+P\+I int \hyperlink{group__Evas__Output__Method_ga156a57144e6bfbb833d3baee675666bf}{evas\+\_\+canvas\+\_\+output\+\_\+method\+\_\+get} (void)
\begin{DoxyCompactList}\small\item\em Retrieves the number of the output engine used for the given evas. \end{DoxyCompactList}\item 
E\+O\+A\+P\+I \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Evas__Output__Method_gaad29567f138b14ff0a8ca8ffd29e1934}{evas\+\_\+canvas\+\_\+engine\+\_\+info\+\_\+set} (\hyperlink{Evas__Common_8h_a86d67b69014ab10fffe20b883685fa46}{Evas\+\_\+\+Engine\+\_\+\+Info} $\ast$info)
\begin{DoxyCompactList}\small\item\em Applies the engine settings for the given evas from the given {\ttfamily Evas\+\_\+\+Engine\+\_\+\+Info} structure. \end{DoxyCompactList}\item 
E\+O\+A\+P\+I \hyperlink{Evas__Common_8h_a86d67b69014ab10fffe20b883685fa46}{Evas\+\_\+\+Engine\+\_\+\+Info} $\ast$ \hyperlink{group__Evas__Output__Method_gac1e5e5dc6dc567593830a9e5f4202384}{evas\+\_\+canvas\+\_\+engine\+\_\+info\+\_\+get} (void)
\begin{DoxyCompactList}\small\item\em Retrieves the current render engine info struct from the given evas. \end{DoxyCompactList}\item 
int \hyperlink{group__Evas__Output__Method_ga4a470a911d7731f1fe16787ed4c0ed8a}{evas\+::canvas\+::output\+\_\+method\+\_\+get} () const 
\begin{DoxyCompactList}\small\item\em Retrieves the number of the output engine used for the given evas. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Output__Method_ga1bdecc0772e049d4dc62f454cb1a6684}{evas\+::canvas\+::output\+\_\+method\+\_\+set} (int render\+\_\+method\+\_\+) const 
\begin{DoxyCompactList}\small\item\em Sets the output engine for the given evas. \end{DoxyCompactList}\item 
\hyperlink{Evas__Common_8h_a86d67b69014ab10fffe20b883685fa46}{Evas\+\_\+\+Engine\+\_\+\+Info} $\ast$ \hyperlink{group__Evas__Output__Method_gab85f1fd25a2f49c574d28cbe7f65afbe}{evas\+::canvas\+::engine\+\_\+info\+\_\+get} () const 
\begin{DoxyCompactList}\small\item\em Retrieves the current render engine info struct from the given evas. \end{DoxyCompactList}\item 
bool \hyperlink{group__Evas__Output__Method_ga0563522f0a125863986355ec16b5e911}{evas\+::canvas\+::engine\+\_\+info\+\_\+set} (\hyperlink{Evas__Common_8h_a86d67b69014ab10fffe20b883685fa46}{Evas\+\_\+\+Engine\+\_\+\+Info} $\ast$info\+\_\+) const 
\begin{DoxyCompactList}\small\item\em Applies the engine settings for the given evas from the given {\ttfamily Evas\+\_\+\+Engine\+\_\+\+Info} structure. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Output__Method_ga17f2ac9f3bef135cd825774c33762ef2}{evas\+\_\+output\+\_\+method\+\_\+set} (Evas\+\_\+\+Canvas $\ast$obj, int render\+\_\+method)
\begin{DoxyCompactList}\small\item\em Sets the output engine for the given evas. \end{DoxyCompactList}\item 
int \hyperlink{group__Evas__Output__Method_gafe620e01c833593cd02fe27ddc9c3cea}{evas\+\_\+output\+\_\+method\+\_\+get} (const Evas\+\_\+\+Canvas $\ast$obj)
\begin{DoxyCompactList}\small\item\em Retrieves the number of the output engine used for the given evas. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Evas__Output__Method_ga7244385cf5bad0591ab82e4437c4694b}{evas\+\_\+engine\+\_\+info\+\_\+set} (Evas\+\_\+\+Canvas $\ast$obj, \hyperlink{Evas__Common_8h_a86d67b69014ab10fffe20b883685fa46}{Evas\+\_\+\+Engine\+\_\+\+Info} $\ast$info)
\begin{DoxyCompactList}\small\item\em Applies the engine settings for the given evas from the given {\ttfamily Evas\+\_\+\+Engine\+\_\+\+Info} structure. \end{DoxyCompactList}\item 
\hyperlink{Evas__Common_8h_a86d67b69014ab10fffe20b883685fa46}{Evas\+\_\+\+Engine\+\_\+\+Info} $\ast$ \hyperlink{group__Evas__Output__Method_ga33a6cd095bc7499dbfcb39ad253607b1}{evas\+\_\+engine\+\_\+info\+\_\+get} (const Evas\+\_\+\+Canvas $\ast$obj)
\begin{DoxyCompactList}\small\item\em Retrieves the current render engine info struct from the given evas. \end{DoxyCompactList}\item 
int \hyperlink{group__Evas__Output__Method_ga9f9871fdcc40ce1062d6565308020eb8}{evas\+\_\+render\+\_\+method\+\_\+lookup} (const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Look up a numeric I\+D from a string name of a rendering engine. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__List__Group_ga3295e1210efea1fb0fd6acbf3cbc1f29}{Eina\+\_\+\+List} $\ast$ \hyperlink{group__Evas__Output__Method_gad7deab8facaa4be521fbdec6dd19e122}{evas\+\_\+render\+\_\+method\+\_\+list} (void)
\begin{DoxyCompactList}\small\item\em List all the rendering engines compiled into the copy of the Evas library. \end{DoxyCompactList}\item 
void \hyperlink{group__Evas__Output__Method_ga5bcc5a2165647f855c389bd58e77f608}{evas\+\_\+render\+\_\+method\+\_\+list\+\_\+free} (\hyperlink{group__Eina__List__Group_ga3295e1210efea1fb0fd6acbf3cbc1f29}{Eina\+\_\+\+List} $\ast$list)
\begin{DoxyCompactList}\small\item\em This function should be called to free a list of engine names. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Functions that are used to set the render engine for a given function, and then get that engine working. 

The following code snippet shows how they can be used to initialise an evas that uses the X11 software engine\+: 
\begin{DoxyCode}
\hyperlink{group__Evas__Canvas_ga5ff87cc4ce6bc43e3b640a6d37f73043}{Evas} *evas;
Evas\_Engine\_Info\_Software\_X11 *einfo;
\textcolor{keyword}{extern} Display *display;
\textcolor{keyword}{extern} Window win;

\hyperlink{group__Evas__Main__Group_ga65b3f060b6dd9e488afd0b8cbe101869}{evas\_init}();

evas = \hyperlink{group__Evas__Canvas_ga67e8eb17d2a676bfdfb8794fc5f72bc0}{evas\_new}();
\hyperlink{group__Evas__Output__Method_ga17f2ac9f3bef135cd825774c33762ef2}{evas\_output\_method\_set}(evas, \hyperlink{group__Evas__Output__Method_ga9f9871fdcc40ce1062d6565308020eb8}{evas\_render\_method\_lookup}(\textcolor{stringliteral}{"
      software\_x11"}));
\hyperlink{group__Evas__Output__Size_ga681f2af7d325735af201e18f56f6ef61}{evas\_output\_size\_set}(evas, 640, 480);
\hyperlink{group__Evas__Output__Size_ga0a14db31aa30b701688caf67a4649239}{evas\_output\_viewport\_set}(evas, 0, 0, 640, 480);
einfo = (Evas\_Engine\_Info\_Software\_X11 *)\hyperlink{group__Evas__Output__Method_ga33a6cd095bc7499dbfcb39ad253607b1}{evas\_engine\_info\_get}(evas);
einfo->info.display = display;
einfo->info.visual = DefaultVisual(display, DefaultScreen(display));
einfo->info.colormap = DefaultColormap(display, DefaultScreen(display));
einfo->info.drawable = win;
einfo->info.depth = DefaultDepth(display, DefaultScreen(display));
\hyperlink{group__Evas__Output__Method_ga7244385cf5bad0591ab82e4437c4694b}{evas\_engine\_info\_set}(evas, (\hyperlink{struct__Evas__Engine__Info}{Evas\_Engine\_Info} *)einfo);
\end{DoxyCode}
 

\subsection{Function Documentation}
\hypertarget{group__Evas__Output__Method_gafa03e732ee5046c9580ddb2a4e7a2ad3}{}\index{Render Engine Functions@{Render Engine Functions}!evas\+\_\+canvas\+\_\+output\+\_\+method\+\_\+set@{evas\+\_\+canvas\+\_\+output\+\_\+method\+\_\+set}}
\index{evas\+\_\+canvas\+\_\+output\+\_\+method\+\_\+set@{evas\+\_\+canvas\+\_\+output\+\_\+method\+\_\+set}!Render Engine Functions@{Render Engine Functions}}
\subsubsection[{evas\+\_\+canvas\+\_\+output\+\_\+method\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}E\+O\+A\+P\+I void evas\+\_\+canvas\+\_\+output\+\_\+method\+\_\+set (
\begin{DoxyParamCaption}
\item[{int}]{render\+\_\+method}
\end{DoxyParamCaption}
)}\label{group__Evas__Output__Method_gafa03e732ee5046c9580ddb2a4e7a2ad3}


Sets the output engine for the given evas. 

Once the output engine for an evas is set, any attempt to change it will be ignored. The value for {\ttfamily render\+\_\+method} can be found using \hyperlink{group__Evas__Output__Method_ga9f9871fdcc40ce1062d6565308020eb8}{evas\+\_\+render\+\_\+method\+\_\+lookup} .

\begin{DoxyAttention}{Attention}
it is mandatory that one calls \hyperlink{group__Evas__Main__Group_ga65b3f060b6dd9e488afd0b8cbe101869}{evas\+\_\+init()} before setting the output method.
\end{DoxyAttention}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em render\+\_\+method} & The numeric engine value to use. \\
\hline
\end{DoxyParams}


Referenced by evas\+\_\+output\+\_\+method\+\_\+set().

\hypertarget{group__Evas__Output__Method_ga156a57144e6bfbb833d3baee675666bf}{}\index{Render Engine Functions@{Render Engine Functions}!evas\+\_\+canvas\+\_\+output\+\_\+method\+\_\+get@{evas\+\_\+canvas\+\_\+output\+\_\+method\+\_\+get}}
\index{evas\+\_\+canvas\+\_\+output\+\_\+method\+\_\+get@{evas\+\_\+canvas\+\_\+output\+\_\+method\+\_\+get}!Render Engine Functions@{Render Engine Functions}}
\subsubsection[{evas\+\_\+canvas\+\_\+output\+\_\+method\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}E\+O\+A\+P\+I int evas\+\_\+canvas\+\_\+output\+\_\+method\+\_\+get (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{group__Evas__Output__Method_ga156a57144e6bfbb833d3baee675666bf}


Retrieves the number of the output engine used for the given evas. 

\begin{DoxyReturn}{Returns}
The I\+D number of the output engine being used. {\ttfamily 0} is returned if there is an error. 
\end{DoxyReturn}


Referenced by evas\+\_\+output\+\_\+method\+\_\+get().

\hypertarget{group__Evas__Output__Method_gaad29567f138b14ff0a8ca8ffd29e1934}{}\index{Render Engine Functions@{Render Engine Functions}!evas\+\_\+canvas\+\_\+engine\+\_\+info\+\_\+set@{evas\+\_\+canvas\+\_\+engine\+\_\+info\+\_\+set}}
\index{evas\+\_\+canvas\+\_\+engine\+\_\+info\+\_\+set@{evas\+\_\+canvas\+\_\+engine\+\_\+info\+\_\+set}!Render Engine Functions@{Render Engine Functions}}
\subsubsection[{evas\+\_\+canvas\+\_\+engine\+\_\+info\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}E\+O\+A\+P\+I {\bf Eina\+\_\+\+Bool} evas\+\_\+canvas\+\_\+engine\+\_\+info\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Evas\+\_\+\+Engine\+\_\+\+Info} $\ast$}]{info}
\end{DoxyParamCaption}
)}\label{group__Evas__Output__Method_gaad29567f138b14ff0a8ca8ffd29e1934}


Applies the engine settings for the given evas from the given {\ttfamily Evas\+\_\+\+Engine\+\_\+\+Info} structure. 

To get the Evas\+\_\+\+Engine\+\_\+\+Info structure to use, call \hyperlink{group__Evas__Output__Method_ga33a6cd095bc7499dbfcb39ad253607b1}{evas\+\_\+engine\+\_\+info\+\_\+get} . Do not try to obtain a pointer to an {\ttfamily Evas\+\_\+\+Engine\+\_\+\+Info} structure in any other way.

You will need to call this function at least once before you can create objects on an evas or render that evas. Some engines allow their settings to be changed more than once.

Once called, the {\ttfamily info} pointer should be considered invalid.

\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if no error occurred, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em info} & The pointer to the Engine Info to use \\
\hline
\end{DoxyParams}


Referenced by evas\+\_\+engine\+\_\+info\+\_\+set().

\hypertarget{group__Evas__Output__Method_gac1e5e5dc6dc567593830a9e5f4202384}{}\index{Render Engine Functions@{Render Engine Functions}!evas\+\_\+canvas\+\_\+engine\+\_\+info\+\_\+get@{evas\+\_\+canvas\+\_\+engine\+\_\+info\+\_\+get}}
\index{evas\+\_\+canvas\+\_\+engine\+\_\+info\+\_\+get@{evas\+\_\+canvas\+\_\+engine\+\_\+info\+\_\+get}!Render Engine Functions@{Render Engine Functions}}
\subsubsection[{evas\+\_\+canvas\+\_\+engine\+\_\+info\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}E\+O\+A\+P\+I {\bf Evas\+\_\+\+Engine\+\_\+\+Info}$\ast$ evas\+\_\+canvas\+\_\+engine\+\_\+info\+\_\+get (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{group__Evas__Output__Method_gac1e5e5dc6dc567593830a9e5f4202384}


Retrieves the current render engine info struct from the given evas. 

The returned structure is publicly modifiable. The contents are valid until either \hyperlink{group__Evas__Output__Method_ga7244385cf5bad0591ab82e4437c4694b}{evas\+\_\+engine\+\_\+info\+\_\+set} or \hyperlink{group__Evas__Canvas_ga8d339d4eb0acfd55b2af686c67783db1}{evas\+\_\+render} are called.

This structure does not need to be freed by the caller.

\begin{DoxyReturn}{Returns}
A pointer to the Engine Info structure. {\ttfamily N\+U\+L\+L} is returned if an engine has not yet been assigned. 
\end{DoxyReturn}


Referenced by evas\+\_\+engine\+\_\+info\+\_\+get().

\hypertarget{group__Evas__Output__Method_ga4a470a911d7731f1fe16787ed4c0ed8a}{}\index{Render Engine Functions@{Render Engine Functions}!output\+\_\+method\+\_\+get@{output\+\_\+method\+\_\+get}}
\index{output\+\_\+method\+\_\+get@{output\+\_\+method\+\_\+get}!Render Engine Functions@{Render Engine Functions}}
\subsubsection[{output\+\_\+method\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}int evas\+::canvas\+::output\+\_\+method\+\_\+get (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}\label{group__Evas__Output__Method_ga4a470a911d7731f1fe16787ed4c0ed8a}


Retrieves the number of the output engine used for the given evas. 

\begin{DoxyReturn}{Returns}
The I\+D number of the output engine being used. {\ttfamily 0} is returned if there is an error.
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em render\+\_\+method} & The numeric engine value to use. \\
\hline
\end{DoxyParams}
\hypertarget{group__Evas__Output__Method_ga1bdecc0772e049d4dc62f454cb1a6684}{}\index{Render Engine Functions@{Render Engine Functions}!output\+\_\+method\+\_\+set@{output\+\_\+method\+\_\+set}}
\index{output\+\_\+method\+\_\+set@{output\+\_\+method\+\_\+set}!Render Engine Functions@{Render Engine Functions}}
\subsubsection[{output\+\_\+method\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+::canvas\+::output\+\_\+method\+\_\+set (
\begin{DoxyParamCaption}
\item[{int}]{render\+\_\+method\+\_\+}
\end{DoxyParamCaption}
) const}\label{group__Evas__Output__Method_ga1bdecc0772e049d4dc62f454cb1a6684}


Sets the output engine for the given evas. 

Once the output engine for an evas is set, any attempt to change it will be ignored. The value for {\ttfamily render\+\_\+method} can be found using \hyperlink{group__Evas__Output__Method_ga9f9871fdcc40ce1062d6565308020eb8}{evas\+\_\+render\+\_\+method\+\_\+lookup} .

\begin{DoxyAttention}{Attention}
it is mandatory that one calls \hyperlink{group__Evas__Main__Group_ga65b3f060b6dd9e488afd0b8cbe101869}{evas\+\_\+init()} before setting the output method.
\end{DoxyAttention}

\begin{DoxyParams}{Parameters}
{\em render\+\_\+method} & The numeric engine value to use. \\
\hline
\end{DoxyParams}
\hypertarget{group__Evas__Output__Method_gab85f1fd25a2f49c574d28cbe7f65afbe}{}\index{Render Engine Functions@{Render Engine Functions}!engine\+\_\+info\+\_\+get@{engine\+\_\+info\+\_\+get}}
\index{engine\+\_\+info\+\_\+get@{engine\+\_\+info\+\_\+get}!Render Engine Functions@{Render Engine Functions}}
\subsubsection[{engine\+\_\+info\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Evas\+\_\+\+Engine\+\_\+\+Info}$\ast$ evas\+::canvas\+::engine\+\_\+info\+\_\+get (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}\label{group__Evas__Output__Method_gab85f1fd25a2f49c574d28cbe7f65afbe}


Retrieves the current render engine info struct from the given evas. 

The returned structure is publicly modifiable. The contents are valid until either \hyperlink{group__Evas__Output__Method_ga7244385cf5bad0591ab82e4437c4694b}{evas\+\_\+engine\+\_\+info\+\_\+set} or \hyperlink{group__Evas__Canvas_ga8d339d4eb0acfd55b2af686c67783db1}{evas\+\_\+render} are called.

This structure does not need to be freed by the caller.

\begin{DoxyReturn}{Returns}
A pointer to the Engine Info structure. {\ttfamily N\+U\+L\+L} is returned if an engine has not yet been assigned.
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em info} & The pointer to the Engine Info to use \\
\hline
\end{DoxyParams}
\hypertarget{group__Evas__Output__Method_ga0563522f0a125863986355ec16b5e911}{}\index{Render Engine Functions@{Render Engine Functions}!engine\+\_\+info\+\_\+set@{engine\+\_\+info\+\_\+set}}
\index{engine\+\_\+info\+\_\+set@{engine\+\_\+info\+\_\+set}!Render Engine Functions@{Render Engine Functions}}
\subsubsection[{engine\+\_\+info\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}bool evas\+::canvas\+::engine\+\_\+info\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Evas\+\_\+\+Engine\+\_\+\+Info} $\ast$}]{info\+\_\+}
\end{DoxyParamCaption}
) const}\label{group__Evas__Output__Method_ga0563522f0a125863986355ec16b5e911}


Applies the engine settings for the given evas from the given {\ttfamily Evas\+\_\+\+Engine\+\_\+\+Info} structure. 

To get the Evas\+\_\+\+Engine\+\_\+\+Info structure to use, call \hyperlink{group__Evas__Output__Method_ga33a6cd095bc7499dbfcb39ad253607b1}{evas\+\_\+engine\+\_\+info\+\_\+get} . Do not try to obtain a pointer to an {\ttfamily Evas\+\_\+\+Engine\+\_\+\+Info} structure in any other way.

You will need to call this function at least once before you can create objects on an evas or render that evas. Some engines allow their settings to be changed more than once.

Once called, the {\ttfamily info} pointer should be considered invalid.

\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if no error occurred, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}

\begin{DoxyParams}{Parameters}
{\em info} & The pointer to the Engine Info to use \\
\hline
\end{DoxyParams}
\hypertarget{group__Evas__Output__Method_ga17f2ac9f3bef135cd825774c33762ef2}{}\index{Render Engine Functions@{Render Engine Functions}!evas\+\_\+output\+\_\+method\+\_\+set@{evas\+\_\+output\+\_\+method\+\_\+set}}
\index{evas\+\_\+output\+\_\+method\+\_\+set@{evas\+\_\+output\+\_\+method\+\_\+set}!Render Engine Functions@{Render Engine Functions}}
\subsubsection[{evas\+\_\+output\+\_\+method\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+output\+\_\+method\+\_\+set (
\begin{DoxyParamCaption}
\item[{Evas\+\_\+\+Canvas $\ast$}]{obj, }
\item[{int}]{render\+\_\+method}
\end{DoxyParamCaption}
)}\label{group__Evas__Output__Method_ga17f2ac9f3bef135cd825774c33762ef2}


Sets the output engine for the given evas. 

Once the output engine for an evas is set, any attempt to change it will be ignored. The value for {\ttfamily render\+\_\+method} can be found using \hyperlink{group__Evas__Output__Method_ga9f9871fdcc40ce1062d6565308020eb8}{evas\+\_\+render\+\_\+method\+\_\+lookup} .

\begin{DoxyAttention}{Attention}
it is mandatory that one calls \hyperlink{group__Evas__Main__Group_ga65b3f060b6dd9e488afd0b8cbe101869}{evas\+\_\+init()} before setting the output method.
\end{DoxyAttention}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em render\+\_\+method} & The numeric engine value to use. \\
\hline
\end{DoxyParams}


References evas\+\_\+canvas\+\_\+output\+\_\+method\+\_\+set().



Referenced by ecore\+\_\+evas\+\_\+buffer\+\_\+allocfunc\+\_\+new(), ecore\+\_\+evas\+\_\+ews\+\_\+new(), and ecore\+\_\+evas\+\_\+object\+\_\+image\+\_\+new().

\hypertarget{group__Evas__Output__Method_gafe620e01c833593cd02fe27ddc9c3cea}{}\index{Render Engine Functions@{Render Engine Functions}!evas\+\_\+output\+\_\+method\+\_\+get@{evas\+\_\+output\+\_\+method\+\_\+get}}
\index{evas\+\_\+output\+\_\+method\+\_\+get@{evas\+\_\+output\+\_\+method\+\_\+get}!Render Engine Functions@{Render Engine Functions}}
\subsubsection[{evas\+\_\+output\+\_\+method\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}int evas\+\_\+output\+\_\+method\+\_\+get (
\begin{DoxyParamCaption}
\item[{const Evas\+\_\+\+Canvas $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Evas__Output__Method_gafe620e01c833593cd02fe27ddc9c3cea}


Retrieves the number of the output engine used for the given evas. 

\begin{DoxyReturn}{Returns}
The I\+D number of the output engine being used. {\ttfamily 0} is returned if there is an error. 
\end{DoxyReturn}


References evas\+\_\+canvas\+\_\+output\+\_\+method\+\_\+get().

\hypertarget{group__Evas__Output__Method_ga7244385cf5bad0591ab82e4437c4694b}{}\index{Render Engine Functions@{Render Engine Functions}!evas\+\_\+engine\+\_\+info\+\_\+set@{evas\+\_\+engine\+\_\+info\+\_\+set}}
\index{evas\+\_\+engine\+\_\+info\+\_\+set@{evas\+\_\+engine\+\_\+info\+\_\+set}!Render Engine Functions@{Render Engine Functions}}
\subsubsection[{evas\+\_\+engine\+\_\+info\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} evas\+\_\+engine\+\_\+info\+\_\+set (
\begin{DoxyParamCaption}
\item[{Evas\+\_\+\+Canvas $\ast$}]{obj, }
\item[{{\bf Evas\+\_\+\+Engine\+\_\+\+Info} $\ast$}]{info}
\end{DoxyParamCaption}
)}\label{group__Evas__Output__Method_ga7244385cf5bad0591ab82e4437c4694b}


Applies the engine settings for the given evas from the given {\ttfamily Evas\+\_\+\+Engine\+\_\+\+Info} structure. 

To get the Evas\+\_\+\+Engine\+\_\+\+Info structure to use, call \hyperlink{group__Evas__Output__Method_ga33a6cd095bc7499dbfcb39ad253607b1}{evas\+\_\+engine\+\_\+info\+\_\+get} . Do not try to obtain a pointer to an {\ttfamily Evas\+\_\+\+Engine\+\_\+\+Info} structure in any other way.

You will need to call this function at least once before you can create objects on an evas or render that evas. Some engines allow their settings to be changed more than once.

Once called, the {\ttfamily info} pointer should be considered invalid.

\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+U\+E} if no error occurred, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise.
\end{DoxyReturn}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em info} & The pointer to the Engine Info to use \\
\hline
\end{DoxyParams}


References evas\+\_\+canvas\+\_\+engine\+\_\+info\+\_\+set().



Referenced by ecore\+\_\+evas\+\_\+buffer\+\_\+allocfunc\+\_\+new(), ecore\+\_\+evas\+\_\+ews\+\_\+new(), and ecore\+\_\+evas\+\_\+object\+\_\+image\+\_\+new().

\hypertarget{group__Evas__Output__Method_ga33a6cd095bc7499dbfcb39ad253607b1}{}\index{Render Engine Functions@{Render Engine Functions}!evas\+\_\+engine\+\_\+info\+\_\+get@{evas\+\_\+engine\+\_\+info\+\_\+get}}
\index{evas\+\_\+engine\+\_\+info\+\_\+get@{evas\+\_\+engine\+\_\+info\+\_\+get}!Render Engine Functions@{Render Engine Functions}}
\subsubsection[{evas\+\_\+engine\+\_\+info\+\_\+get}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Evas\+\_\+\+Engine\+\_\+\+Info}$\ast$ evas\+\_\+engine\+\_\+info\+\_\+get (
\begin{DoxyParamCaption}
\item[{const Evas\+\_\+\+Canvas $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Evas__Output__Method_ga33a6cd095bc7499dbfcb39ad253607b1}


Retrieves the current render engine info struct from the given evas. 

The returned structure is publicly modifiable. The contents are valid until either \hyperlink{group__Evas__Output__Method_ga7244385cf5bad0591ab82e4437c4694b}{evas\+\_\+engine\+\_\+info\+\_\+set} or \hyperlink{group__Evas__Canvas_ga8d339d4eb0acfd55b2af686c67783db1}{evas\+\_\+render} are called.

This structure does not need to be freed by the caller.

\begin{DoxyReturn}{Returns}
A pointer to the Engine Info structure. {\ttfamily N\+U\+L\+L} is returned if an engine has not yet been assigned. 
\end{DoxyReturn}


References evas\+\_\+canvas\+\_\+engine\+\_\+info\+\_\+get().



Referenced by ecore\+\_\+evas\+\_\+buffer\+\_\+allocfunc\+\_\+new(), ecore\+\_\+evas\+\_\+ews\+\_\+new(), and ecore\+\_\+evas\+\_\+object\+\_\+image\+\_\+new().

\hypertarget{group__Evas__Output__Method_ga9f9871fdcc40ce1062d6565308020eb8}{}\index{Render Engine Functions@{Render Engine Functions}!evas\+\_\+render\+\_\+method\+\_\+lookup@{evas\+\_\+render\+\_\+method\+\_\+lookup}}
\index{evas\+\_\+render\+\_\+method\+\_\+lookup@{evas\+\_\+render\+\_\+method\+\_\+lookup}!Render Engine Functions@{Render Engine Functions}}
\subsubsection[{evas\+\_\+render\+\_\+method\+\_\+lookup}]{\setlength{\rightskip}{0pt plus 5cm}int evas\+\_\+render\+\_\+method\+\_\+lookup (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{name}
\end{DoxyParamCaption}
)}\label{group__Evas__Output__Method_ga9f9871fdcc40ce1062d6565308020eb8}


Look up a numeric I\+D from a string name of a rendering engine. 


\begin{DoxyParams}{Parameters}
{\em name} & the name string of an engine \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A numeric (opaque) I\+D for the rendering engine
\end{DoxyReturn}
This function looks up a numeric return value for the named engine in the string {\ttfamily name}. This is a normal C string, N\+U\+L byte terminated. The name is case sensitive. If the rendering engine is available, a numeric I\+D for that engine is returned that is not 0. If the engine is not available, 0 is returned, indicating an invalid engine.

The programmer should N\+E\+V\+E\+R rely on the numeric I\+D of an engine unless it is returned by this function. Programs should N\+O\+T be written accessing render method I\+D\textquotesingle{}s directly, without first obtaining it from this function.

\begin{DoxyAttention}{Attention}
it is mandatory that one calls \hyperlink{group__Evas__Main__Group_ga65b3f060b6dd9e488afd0b8cbe101869}{evas\+\_\+init()} before looking up the render method.
\end{DoxyAttention}
Example\+: 
\begin{DoxyCode}
1 int engine\_id;
2 Evas *evas;
3 
4 evas\_init();
5 
6 evas = evas\_new();
7 if (!evas)
8   \{
9     fprintf(stderr, "ERROR: Canvas creation failed. Fatal error.\(\backslash\)n");
10     exit(-1);
11   \}
12 engine\_id = evas\_render\_method\_lookup("software\_x11");
13 if (!engine\_id)
14   \{
15     fprintf(stderr, "ERROR: Requested rendering engine is absent.\(\backslash\)n");
16     exit(-1);
17   \}
18 evas\_output\_method\_set(evas, engine\_id);
\end{DoxyCode}
 

Referenced by ecore\+\_\+evas\+\_\+buffer\+\_\+allocfunc\+\_\+new(), ecore\+\_\+evas\+\_\+ews\+\_\+new(), and ecore\+\_\+evas\+\_\+object\+\_\+image\+\_\+new().

\hypertarget{group__Evas__Output__Method_gad7deab8facaa4be521fbdec6dd19e122}{}\index{Render Engine Functions@{Render Engine Functions}!evas\+\_\+render\+\_\+method\+\_\+list@{evas\+\_\+render\+\_\+method\+\_\+list}}
\index{evas\+\_\+render\+\_\+method\+\_\+list@{evas\+\_\+render\+\_\+method\+\_\+list}!Render Engine Functions@{Render Engine Functions}}
\subsubsection[{evas\+\_\+render\+\_\+method\+\_\+list}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+List}$\ast$ evas\+\_\+render\+\_\+method\+\_\+list (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{group__Evas__Output__Method_gad7deab8facaa4be521fbdec6dd19e122}


List all the rendering engines compiled into the copy of the Evas library. 

\begin{DoxyReturn}{Returns}
A linked list whose data members are C strings of engine names
\end{DoxyReturn}
Calling this will return a handle (pointer) to an Evas linked list. Each node in the linked list will have the data pointer be a (char $\ast$) pointer to the name string of the rendering engine available. The strings should never be modified, neither should the list be modified. This list should be cleaned up as soon as the program no longer needs it using \hyperlink{group__Evas__Output__Method_ga5bcc5a2165647f855c389bd58e77f608}{evas\+\_\+render\+\_\+method\+\_\+list\+\_\+free()}. If no engines are available from Evas, {\ttfamily N\+U\+L\+L} will be returned.

Example\+: 
\begin{DoxyCode}
1 Eina\_List *engine\_list, *l;
2 char *engine\_name;
3 
4 engine\_list = evas\_render\_method\_list();
5 if (!engine\_list)
6   \{
7     fprintf(stderr, "ERROR: Evas supports no engines! Exit.\(\backslash\)n");
8     exit(-1);
9   \}
10 printf("Available Evas Engines:\(\backslash\)n");
11 EINA\_LIST\_FOREACH(engine\_list, l, engine\_name)
12   printf("%s\(\backslash\)n", engine\_name);
13 evas\_render\_method\_list\_free(engine\_list);
\end{DoxyCode}
 \hypertarget{group__Evas__Output__Method_ga5bcc5a2165647f855c389bd58e77f608}{}\index{Render Engine Functions@{Render Engine Functions}!evas\+\_\+render\+\_\+method\+\_\+list\+\_\+free@{evas\+\_\+render\+\_\+method\+\_\+list\+\_\+free}}
\index{evas\+\_\+render\+\_\+method\+\_\+list\+\_\+free@{evas\+\_\+render\+\_\+method\+\_\+list\+\_\+free}!Render Engine Functions@{Render Engine Functions}}
\subsubsection[{evas\+\_\+render\+\_\+method\+\_\+list\+\_\+free}]{\setlength{\rightskip}{0pt plus 5cm}void evas\+\_\+render\+\_\+method\+\_\+list\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf Eina\+\_\+\+List} $\ast$}]{list}
\end{DoxyParamCaption}
)}\label{group__Evas__Output__Method_ga5bcc5a2165647f855c389bd58e77f608}


This function should be called to free a list of engine names. 


\begin{DoxyParams}{Parameters}
{\em list} & The Eina\+\_\+\+List base pointer for the engine list to be freed\\
\hline
\end{DoxyParams}
When this function is called it will free the engine list passed in as {\ttfamily list}. The list should only be a list of engines generated by calling \hyperlink{group__Evas__Output__Method_gad7deab8facaa4be521fbdec6dd19e122}{evas\+\_\+render\+\_\+method\+\_\+list()}. If {\ttfamily list} is N\+U\+L\+L, nothing will happen.

Example\+: 
\begin{DoxyCode}
1 Eina\_List *engine\_list, *l;
2 char *engine\_name;
3 
4 engine\_list = evas\_render\_method\_list();
5 if (!engine\_list)
6   \{
7     fprintf(stderr, "ERROR: Evas supports no engines! Exit.\(\backslash\)n");
8     exit(-1);
9   \}
10 printf("Available Evas Engines:\(\backslash\)n");
11 EINA\_LIST\_FOREACH(engine\_list, l, engine\_name)
12   printf("%s\(\backslash\)n", engine\_name);
13 evas\_render\_method\_list\_free(engine\_list);
\end{DoxyCode}
 

References E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+R\+E\+E, and eina\+\_\+stringshare\+\_\+del().

