\hypertarget{group__Eina__Tiler__Group}{\section{Tiler}
\label{group__Eina__Tiler__Group}\index{Tiler@{Tiler}}
}
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structEina__Tile__Grid__Info}{Eina\-\_\-\-Tile\-\_\-\-Grid\-\_\-\-Info}
\begin{DoxyCompactList}\small\item\em Grid type of a tiler. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__Eina__Tiler__Group_gabcc29c8a2b66db646e0d6e4b1828954c}{typedef struct \-\_\-\-Eina\-\_\-\-Tiler \hyperlink{group__Eina__Tiler__Group_gabcc29c8a2b66db646e0d6e4b1828954c}{Eina\-\_\-\-Tiler}}\label{group__Eina__Tiler__Group_gabcc29c8a2b66db646e0d6e4b1828954c}

\begin{DoxyCompactList}\small\item\em Tiler type. \end{DoxyCompactList}\item 
\hypertarget{group__Eina__Tiler__Group_gaaf0c299ae1db4b474e68dc34d88907ed}{typedef struct \hyperlink{structEina__Tile__Grid__Info}{Eina\-\_\-\-Tile\-\_\-\-Grid\-\_\-\-Info} \hyperlink{group__Eina__Tiler__Group_gaaf0c299ae1db4b474e68dc34d88907ed}{Eina\-\_\-\-Tile\-\_\-\-Grid\-\_\-\-Info}}\label{group__Eina__Tiler__Group_gaaf0c299ae1db4b474e68dc34d88907ed}

\begin{DoxyCompactList}\small\item\em Grid type of a tiler. \end{DoxyCompactList}\item 
\hypertarget{group__Eina__Tiler__Group_ga9d3f3d4ebe33c2533df1b9199b66a44b}{typedef struct \\*
\-\_\-\-Eina\-\_\-\-Tile\-\_\-\-Grid\-\_\-\-Slicer {\bfseries Eina\-\_\-\-Tile\-\_\-\-Grid\-\_\-\-Slicer}}\label{group__Eina__Tiler__Group_ga9d3f3d4ebe33c2533df1b9199b66a44b}

\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Eina__Tiler__Group_gabcc29c8a2b66db646e0d6e4b1828954c}{Eina\-\_\-\-Tiler} $\ast$ \hyperlink{group__Eina__Tiler__Group_gaec465d28aa8f533db01e41cbf27aa3c9}{eina\-\_\-tiler\-\_\-new} (int w, int h)
\begin{DoxyCompactList}\small\item\em Creates a new tiler with {\ttfamily w} width and {\ttfamily h} height. \end{DoxyCompactList}\item 
void \hyperlink{group__Eina__Tiler__Group_ga73fe7b688f448084d2aa2afb37c76217}{eina\-\_\-tiler\-\_\-free} (\hyperlink{group__Eina__Tiler__Group_gabcc29c8a2b66db646e0d6e4b1828954c}{Eina\-\_\-\-Tiler} $\ast$t)
\begin{DoxyCompactList}\small\item\em Frees a tiler. \end{DoxyCompactList}\item 
void \hyperlink{group__Eina__Tiler__Group_gaa4ed541f82a95995c624f3a5c5e9b16a}{eina\-\_\-tiler\-\_\-tile\-\_\-size\-\_\-set} (\hyperlink{group__Eina__Tiler__Group_gabcc29c8a2b66db646e0d6e4b1828954c}{Eina\-\_\-\-Tiler} $\ast$t, int w, int h)
\begin{DoxyCompactList}\small\item\em Sets the size of tiles for a tiler. \end{DoxyCompactList}\item 
void \hyperlink{group__Eina__Tiler__Group_ga867fa1890551d923118e193b55870859}{eina\-\_\-tiler\-\_\-area\-\_\-size\-\_\-set} (\hyperlink{group__Eina__Tiler__Group_gabcc29c8a2b66db646e0d6e4b1828954c}{Eina\-\_\-\-Tiler} $\ast$t, int w, int h)
\begin{DoxyCompactList}\small\item\em Change the size of the area covered by the tiler. \end{DoxyCompactList}\item 
void \hyperlink{group__Eina__Tiler__Group_ga9cf57047f5ff75d2d9f4b6fc534d5e4a}{eina\-\_\-tiler\-\_\-area\-\_\-size\-\_\-get} (const \hyperlink{group__Eina__Tiler__Group_gabcc29c8a2b66db646e0d6e4b1828954c}{Eina\-\_\-\-Tiler} $\ast$t, int $\ast$w, int $\ast$h)
\begin{DoxyCompactList}\small\item\em Get the size of the area covered by the tiler. \end{DoxyCompactList}\item 
void \hyperlink{group__Eina__Tiler__Group_gaef9965fa6d59055a5cc4c34361897e6c}{eina\-\_\-tiler\-\_\-strict\-\_\-set} (\hyperlink{group__Eina__Tiler__Group_gabcc29c8a2b66db646e0d6e4b1828954c}{Eina\-\_\-\-Tiler} $\ast$t, \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\-\_\-\-Bool} strict)
\begin{DoxyCompactList}\small\item\em Define if we need to follow a strict grid of tile or a loosy one. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\-\_\-\-Bool} \hyperlink{group__Eina__Tiler__Group_gaf11155785a3ef930a8e579175bb124a7}{eina\-\_\-tiler\-\_\-empty} (\hyperlink{group__Eina__Tiler__Group_gabcc29c8a2b66db646e0d6e4b1828954c}{Eina\-\_\-\-Tiler} $\ast$t)
\begin{DoxyCompactList}\small\item\em Tell if a tiler is empty or not. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\-\_\-\-Bool} \hyperlink{group__Eina__Tiler__Group_ga5a7eaf8984afbd801794bb17b8a1b4c4}{eina\-\_\-tiler\-\_\-rect\-\_\-add} (\hyperlink{group__Eina__Tiler__Group_gabcc29c8a2b66db646e0d6e4b1828954c}{Eina\-\_\-\-Tiler} $\ast$t, const \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\-\_\-\-Rectangle} $\ast$r)
\begin{DoxyCompactList}\small\item\em Adds a rectangle to a tiler. \end{DoxyCompactList}\item 
void \hyperlink{group__Eina__Tiler__Group_ga55bc1d346c063efbec00b2cb9ffbbce8}{eina\-\_\-tiler\-\_\-rect\-\_\-del} (\hyperlink{group__Eina__Tiler__Group_gabcc29c8a2b66db646e0d6e4b1828954c}{Eina\-\_\-\-Tiler} $\ast$t, const \hyperlink{group__Eina__Rectangle__Group_gad1f49db9be2cd747f458ebf4718b6228}{Eina\-\_\-\-Rectangle} $\ast$r)
\begin{DoxyCompactList}\small\item\em Removes a rectangle from a tiler. \end{DoxyCompactList}\item 
void \hyperlink{group__Eina__Tiler__Group_ga8881af2a82687553a01b0e28cfceb56c}{eina\-\_\-tiler\-\_\-clear} (\hyperlink{group__Eina__Tiler__Group_gabcc29c8a2b66db646e0d6e4b1828954c}{Eina\-\_\-\-Tiler} $\ast$t)
\begin{DoxyCompactList}\small\item\em Removes all rectangles from tiles. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Iterator__Group_ga15b975bb881d955249ce13d4ebc96948}{Eina\-\_\-\-Iterator} $\ast$ \hyperlink{group__Eina__Tiler__Group_ga4cf2a6df653219c8e9cb7fbcf0c40954}{eina\-\_\-tiler\-\_\-iterator\-\_\-new} (const \hyperlink{group__Eina__Tiler__Group_gabcc29c8a2b66db646e0d6e4b1828954c}{Eina\-\_\-\-Tiler} $\ast$t)
\begin{DoxyCompactList}\small\item\em Create a iterator to access the tilers calculated rectangles. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Iterator__Group_ga15b975bb881d955249ce13d4ebc96948}{Eina\-\_\-\-Iterator} $\ast$ \hyperlink{group__Eina__Tiler__Group_gaa432ea1234ed5afbe126f107ea6584d4}{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-iterator\-\_\-new} (int x, int y, int w, int h, int tile\-\_\-w, int tile\-\_\-h)
\begin{DoxyCompactList}\small\item\em Creates a new Eina\-\_\-\-Iterator that iterates over a list of tiles. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\-\_\-\-Bool} \hyperlink{group__Eina__Tiler__Group_gacdf4ee56dde73ae84f293601ea44763a}{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-next} (Eina\-\_\-\-Tile\-\_\-\-Grid\-\_\-\-Slicer $\ast$slc, const \hyperlink{structEina__Tile__Grid__Info}{Eina\-\_\-\-Tile\-\_\-\-Grid\-\_\-\-Info} $\ast$$\ast$rect)
\begin{DoxyCompactList}\small\item\em Iterates over the tiles set by \hyperlink{group__Eina__Tiler__Group_gaa8fe2ae9aac1fd5b0971877300696c8c}{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-setup()}. \end{DoxyCompactList}\item 
static \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\-\_\-\-Bool} \hyperlink{group__Eina__Tiler__Group_gaa8fe2ae9aac1fd5b0971877300696c8c}{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-setup} (Eina\-\_\-\-Tile\-\_\-\-Grid\-\_\-\-Slicer $\ast$slc, int x, int y, int w, int h, int tile\-\_\-w, int tile\-\_\-h)
\begin{DoxyCompactList}\small\item\em Setup an Eina\-\_\-\-Tile\-\_\-\-Grid\-\_\-\-Slicer struct. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\begin{DoxyWarning}{Warning}
This is a very low level tool, in most situations(for example if you're using evas) you won't need this.
\end{DoxyWarning}
\hypertarget{group__Eina__Tiler__Group_basic}{}\subsection{Basic usage}\label{group__Eina__Tiler__Group_basic}
Eina\-\_\-\-Tiler is a tool to facilitate calculations of which areas are damaged and thus need to be re-\/rendered. The basic usage of Eina\-\_\-\-Tiler is to give it the size of your canvas and a set of rectangular areas that need re-\/rendering, from that and using heuristics it'll tell you an efficient way to re-\/render in the form of a set of non-\/overlapping rectangles that covers the whole area that needs re-\/rendering.

The following is pseudo-\/code showing some simple use of Eina\-\_\-\-Tiler\-: 
\begin{DoxyCode}
tiler = \hyperlink{group__Eina__Tiler__Group_gaec465d28aa8f533db01e41cbf27aa3c9}{eina\_tiler\_new}(MY\_CANVAS\_WIDTH, MY\_CANVAS\_HEIGHT);
\hyperlink{group__Eina__List__Group_gad02f746a08ee0b12b7ed66d4bc0d71d8}{EINA\_LIST\_FOREACH}(list\_of\_areas\_that\_need\_re\_rendering, l, rect)
  eina\_tiler\_add(tiler, rect);
itr = \hyperlink{group__Eina__Tiler__Group_ga4cf2a6df653219c8e9cb7fbcf0c40954}{eina\_tiler\_iterator\_new}(tiler);
\hyperlink{group__Eina__Iterator__Group_gad2f796ac4df0e500d25235c29821faa3}{EINA\_ITERATOR\_FOREACH}(itr, rect)
  my\_function\_that\_repaints\_areas\_of\_the\_canvas(rect);
\end{DoxyCode}


\begin{DoxySeeAlso}{See Also}
\hyperlink{group__Eina__Tiler__Group_gaec465d28aa8f533db01e41cbf27aa3c9}{eina\-\_\-tiler\-\_\-new()} 

\hyperlink{group__Eina__Tiler__Group_ga5a7eaf8984afbd801794bb17b8a1b4c4}{eina\-\_\-tiler\-\_\-rect\-\_\-add()} 

\hyperlink{group__Eina__Tiler__Group_ga4cf2a6df653219c8e9cb7fbcf0c40954}{eina\-\_\-tiler\-\_\-iterator\-\_\-new()}
\end{DoxySeeAlso}
\begin{DoxyWarning}{Warning}
There are no guarantees that this will be the most efficient way to re-\/render for any particular case.
\end{DoxyWarning}
\hypertarget{group__Eina__Tiler__Group_grid_slicer}{}\subsection{Grid Slicer}\label{group__Eina__Tiler__Group_grid_slicer}
Grid slicer and Eina\-\_\-\-Tiler are usually used together, that is however {\bfseries not} necessary, they can be used independently. Grid slicer provides an easy A\-P\-I to divide an area in tiles which is useful in certain applications to divide the area that will be rendered into tiles. It's customary to, then create one Eina\-\_\-\-Tiler for each tile.

The following is pseudo-\/code showing a very simplified use of grid slicer together with Eina\-\_\-\-Tiler\-: 
\begin{DoxyCode}
itr = \hyperlink{group__Eina__Tiler__Group_gaa432ea1234ed5afbe126f107ea6584d4}{eina\_tile\_grid\_slicer\_iterator\_new}(0, 0, MY\_CANVAS\_WIDTH, 
      MY\_CANVAS\_HEIGHT, TILE\_WIDTH, TILE\_HEIGHT);
\hyperlink{group__Eina__Iterator__Group_gad2f796ac4df0e500d25235c29821faa3}{EINA\_ITERATOR\_FOREACH}(itr, grid\_info)
  \{
     tiler = \hyperlink{group__Eina__Tiler__Group_gaec465d28aa8f533db01e41cbf27aa3c9}{eina\_tiler\_new}(grid\_info->rect.w, grid\_info->rect.w);
     \hyperlink{group__Eina__List__Group_gad02f746a08ee0b12b7ed66d4bc0d71d8}{EINA\_LIST\_FOREACH}(list\_of\_areas\_that\_need\_re\_rendering\_in\_this\_tile, l, rect)
       eina\_tiler\_add(tiler, rect);
     itr = \hyperlink{group__Eina__Tiler__Group_ga4cf2a6df653219c8e9cb7fbcf0c40954}{eina\_tiler\_iterator\_new}(tiler);
     \hyperlink{group__Eina__Iterator__Group_gad2f796ac4df0e500d25235c29821faa3}{EINA\_ITERATOR\_FOREACH}(itr, rect)
     my\_function\_that\_repaints\_areas\_of\_the\_canvas(rect);
  \}
\end{DoxyCode}


\begin{DoxySeeAlso}{See Also}
\hyperlink{group__Eina__Tiler__Group_gaec465d28aa8f533db01e41cbf27aa3c9}{eina\-\_\-tiler\-\_\-new()} 

\hyperlink{group__Eina__Tiler__Group_ga5a7eaf8984afbd801794bb17b8a1b4c4}{eina\-\_\-tiler\-\_\-rect\-\_\-add()} 

\hyperlink{group__Eina__Tiler__Group_gaa8fe2ae9aac1fd5b0971877300696c8c}{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-setup()} 

\hyperlink{group__Eina__Tiler__Group_gacdf4ee56dde73ae84f293601ea44763a}{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-next()} 

\hyperlink{group__Eina__Tiler__Group_gaa432ea1234ed5afbe126f107ea6584d4}{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-iterator\-\_\-new()} 
\end{DoxySeeAlso}


\subsection{Function Documentation}
\hypertarget{group__Eina__Tiler__Group_gaec465d28aa8f533db01e41cbf27aa3c9}{\index{Tiler@{Tiler}!eina\-\_\-tiler\-\_\-new@{eina\-\_\-tiler\-\_\-new}}
\index{eina\-\_\-tiler\-\_\-new@{eina\-\_\-tiler\-\_\-new}!Tiler@{Tiler}}
\subsubsection[{eina\-\_\-tiler\-\_\-new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\-\_\-\-Tiler}$\ast$ eina\-\_\-tiler\-\_\-new (
\begin{DoxyParamCaption}
\item[{int}]{w, }
\item[{int}]{h}
\end{DoxyParamCaption}
)}}\label{group__Eina__Tiler__Group_gaec465d28aa8f533db01e41cbf27aa3c9}


Creates a new tiler with {\ttfamily w} width and {\ttfamily h} height. 


\begin{DoxyParams}{Parameters}
{\em w} & Width of the tiler \\
\hline
{\em h} & Height of the tiler \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The newly created tiler
\end{DoxyReturn}
\begin{DoxySeeAlso}{See Also}
\hyperlink{group__Eina__Tiler__Group_ga73fe7b688f448084d2aa2afb37c76217}{eina\-\_\-tiler\-\_\-free()} 
\end{DoxySeeAlso}


References E\-I\-N\-A\-\_\-\-M\-A\-G\-I\-C\-\_\-\-S\-E\-T, and E\-I\-N\-A\-\_\-\-T\-R\-U\-E.

\hypertarget{group__Eina__Tiler__Group_ga73fe7b688f448084d2aa2afb37c76217}{\index{Tiler@{Tiler}!eina\-\_\-tiler\-\_\-free@{eina\-\_\-tiler\-\_\-free}}
\index{eina\-\_\-tiler\-\_\-free@{eina\-\_\-tiler\-\_\-free}!Tiler@{Tiler}}
\subsubsection[{eina\-\_\-tiler\-\_\-free}]{\setlength{\rightskip}{0pt plus 5cm}void eina\-\_\-tiler\-\_\-free (
\begin{DoxyParamCaption}
\item[{{\bf Eina\-\_\-\-Tiler} $\ast$}]{t}
\end{DoxyParamCaption}
)}}\label{group__Eina__Tiler__Group_ga73fe7b688f448084d2aa2afb37c76217}


Frees a tiler. 


\begin{DoxyParams}{Parameters}
{\em t} & The tiler to free.\\
\hline
\end{DoxyParams}
This function frees {\ttfamily t}. It does not free the memory allocated for the elements of {\ttfamily t}. \hypertarget{group__Eina__Tiler__Group_gaa4ed541f82a95995c624f3a5c5e9b16a}{\index{Tiler@{Tiler}!eina\-\_\-tiler\-\_\-tile\-\_\-size\-\_\-set@{eina\-\_\-tiler\-\_\-tile\-\_\-size\-\_\-set}}
\index{eina\-\_\-tiler\-\_\-tile\-\_\-size\-\_\-set@{eina\-\_\-tiler\-\_\-tile\-\_\-size\-\_\-set}!Tiler@{Tiler}}
\subsubsection[{eina\-\_\-tiler\-\_\-tile\-\_\-size\-\_\-set}]{\setlength{\rightskip}{0pt plus 5cm}void eina\-\_\-tiler\-\_\-tile\-\_\-size\-\_\-set (
\begin{DoxyParamCaption}
\item[{{\bf Eina\-\_\-\-Tiler} $\ast$}]{t, }
\item[{int}]{w, }
\item[{int}]{h}
\end{DoxyParamCaption}
)}}\label{group__Eina__Tiler__Group_gaa4ed541f82a95995c624f3a5c5e9b16a}


Sets the size of tiles for a tiler. 


\begin{DoxyParams}{Parameters}
{\em t} & The tiler whose tile size will be set. \\
\hline
{\em w} & Width of the tiles. \\
\hline
{\em h} & Height of the tiles.\\
\hline
\end{DoxyParams}
\begin{DoxyWarning}{Warning}
{\ttfamily w} and {\ttfamily h} {\bfseries must} be greater than zero, otherwise tile size won't be changed. 

Tile size is not used! 
\end{DoxyWarning}


References E\-I\-N\-A\-\_\-\-F\-A\-L\-S\-E.

\hypertarget{group__Eina__Tiler__Group_ga867fa1890551d923118e193b55870859}{\index{Tiler@{Tiler}!eina\-\_\-tiler\-\_\-area\-\_\-size\-\_\-set@{eina\-\_\-tiler\-\_\-area\-\_\-size\-\_\-set}}
\index{eina\-\_\-tiler\-\_\-area\-\_\-size\-\_\-set@{eina\-\_\-tiler\-\_\-area\-\_\-size\-\_\-set}!Tiler@{Tiler}}
\subsubsection[{eina\-\_\-tiler\-\_\-area\-\_\-size\-\_\-set}]{\setlength{\rightskip}{0pt plus 5cm}void eina\-\_\-tiler\-\_\-area\-\_\-size\-\_\-set (
\begin{DoxyParamCaption}
\item[{{\bf Eina\-\_\-\-Tiler} $\ast$}]{t, }
\item[{int}]{w, }
\item[{int}]{h}
\end{DoxyParamCaption}
)}}\label{group__Eina__Tiler__Group_ga867fa1890551d923118e193b55870859}


Change the size of the area covered by the tiler. 


\begin{DoxyParams}{Parameters}
{\em t} & The tiler whose area size will be set. \\
\hline
{\em w} & Width of the area. \\
\hline
{\em h} & Height of the area.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\-8
\end{DoxySince}
\begin{DoxyWarning}{Warning}
Must clear the tiler before changing its size. 
\end{DoxyWarning}
\hypertarget{group__Eina__Tiler__Group_ga9cf57047f5ff75d2d9f4b6fc534d5e4a}{\index{Tiler@{Tiler}!eina\-\_\-tiler\-\_\-area\-\_\-size\-\_\-get@{eina\-\_\-tiler\-\_\-area\-\_\-size\-\_\-get}}
\index{eina\-\_\-tiler\-\_\-area\-\_\-size\-\_\-get@{eina\-\_\-tiler\-\_\-area\-\_\-size\-\_\-get}!Tiler@{Tiler}}
\subsubsection[{eina\-\_\-tiler\-\_\-area\-\_\-size\-\_\-get}]{\setlength{\rightskip}{0pt plus 5cm}void eina\-\_\-tiler\-\_\-area\-\_\-size\-\_\-get (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\-\_\-\-Tiler} $\ast$}]{t, }
\item[{int $\ast$}]{w, }
\item[{int $\ast$}]{h}
\end{DoxyParamCaption}
)}}\label{group__Eina__Tiler__Group_ga9cf57047f5ff75d2d9f4b6fc534d5e4a}


Get the size of the area covered by the tiler. 


\begin{DoxyParams}{Parameters}
{\em t} & The tiler whose area size will be fetched. \\
\hline
{\em w} & Width of the area. \\
\hline
{\em h} & Height of the area.\\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\-8 
\end{DoxySince}
\hypertarget{group__Eina__Tiler__Group_gaef9965fa6d59055a5cc4c34361897e6c}{\index{Tiler@{Tiler}!eina\-\_\-tiler\-\_\-strict\-\_\-set@{eina\-\_\-tiler\-\_\-strict\-\_\-set}}
\index{eina\-\_\-tiler\-\_\-strict\-\_\-set@{eina\-\_\-tiler\-\_\-strict\-\_\-set}!Tiler@{Tiler}}
\subsubsection[{eina\-\_\-tiler\-\_\-strict\-\_\-set}]{\setlength{\rightskip}{0pt plus 5cm}void eina\-\_\-tiler\-\_\-strict\-\_\-set (
\begin{DoxyParamCaption}
\item[{{\bf Eina\-\_\-\-Tiler} $\ast$}]{t, }
\item[{{\bf Eina\-\_\-\-Bool}}]{strict}
\end{DoxyParamCaption}
)}}\label{group__Eina__Tiler__Group_gaef9965fa6d59055a5cc4c34361897e6c}


Define if we need to follow a strict grid of tile or a loosy one. 


\begin{DoxyParams}{Parameters}
{\em t} & The tiler to apply the strict rules to. \\
\hline
{\em strict} & Define if it will be strict or loosy\\
\hline
\end{DoxyParams}
By default it will be loosy.

\begin{DoxySince}{Since}
1.\-8 
\end{DoxySince}
\hypertarget{group__Eina__Tiler__Group_gaf11155785a3ef930a8e579175bb124a7}{\index{Tiler@{Tiler}!eina\-\_\-tiler\-\_\-empty@{eina\-\_\-tiler\-\_\-empty}}
\index{eina\-\_\-tiler\-\_\-empty@{eina\-\_\-tiler\-\_\-empty}!Tiler@{Tiler}}
\subsubsection[{eina\-\_\-tiler\-\_\-empty}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\-\_\-\-Bool} eina\-\_\-tiler\-\_\-empty (
\begin{DoxyParamCaption}
\item[{{\bf Eina\-\_\-\-Tiler} $\ast$}]{t}
\end{DoxyParamCaption}
)}}\label{group__Eina__Tiler__Group_gaf11155785a3ef930a8e579175bb124a7}


Tell if a tiler is empty or not. 


\begin{DoxyParams}{Parameters}
{\em t} & The tiler to apply the strict rules to. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\-I\-N\-A\-\_\-\-T\-R\-U\-E when empty, E\-I\-N\-A\-\_\-\-F\-A\-L\-S\-E when not.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\-8 
\end{DoxySince}


References E\-I\-N\-A\-\_\-\-T\-R\-U\-E.

\hypertarget{group__Eina__Tiler__Group_ga5a7eaf8984afbd801794bb17b8a1b4c4}{\index{Tiler@{Tiler}!eina\-\_\-tiler\-\_\-rect\-\_\-add@{eina\-\_\-tiler\-\_\-rect\-\_\-add}}
\index{eina\-\_\-tiler\-\_\-rect\-\_\-add@{eina\-\_\-tiler\-\_\-rect\-\_\-add}!Tiler@{Tiler}}
\subsubsection[{eina\-\_\-tiler\-\_\-rect\-\_\-add}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\-\_\-\-Bool} eina\-\_\-tiler\-\_\-rect\-\_\-add (
\begin{DoxyParamCaption}
\item[{{\bf Eina\-\_\-\-Tiler} $\ast$}]{t, }
\item[{const {\bf Eina\-\_\-\-Rectangle} $\ast$}]{r}
\end{DoxyParamCaption}
)}}\label{group__Eina__Tiler__Group_ga5a7eaf8984afbd801794bb17b8a1b4c4}


Adds a rectangle to a tiler. 


\begin{DoxyParams}{Parameters}
{\em t} & The tiler in which to add a container. \\
\hline
{\em r} & The rectangle to be added. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\-I\-N\-A\-\_\-\-T\-R\-U\-E} on success, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\-I\-N\-A\-\_\-\-F\-A\-L\-S\-E} on failure.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See Also}
\hyperlink{group__Eina__Tiler__Group_ga55bc1d346c063efbec00b2cb9ffbbce8}{eina\-\_\-tiler\-\_\-rect\-\_\-del()} 
\end{DoxySeeAlso}


References E\-I\-N\-A\-\_\-\-F\-A\-L\-S\-E, eina\-\_\-rectangle\-\_\-intersection(), \-\_\-\-Eina\-\_\-\-Rectangle\-::h, and \-\_\-\-Eina\-\_\-\-Rectangle\-::w.

\hypertarget{group__Eina__Tiler__Group_ga55bc1d346c063efbec00b2cb9ffbbce8}{\index{Tiler@{Tiler}!eina\-\_\-tiler\-\_\-rect\-\_\-del@{eina\-\_\-tiler\-\_\-rect\-\_\-del}}
\index{eina\-\_\-tiler\-\_\-rect\-\_\-del@{eina\-\_\-tiler\-\_\-rect\-\_\-del}!Tiler@{Tiler}}
\subsubsection[{eina\-\_\-tiler\-\_\-rect\-\_\-del}]{\setlength{\rightskip}{0pt plus 5cm}void eina\-\_\-tiler\-\_\-rect\-\_\-del (
\begin{DoxyParamCaption}
\item[{{\bf Eina\-\_\-\-Tiler} $\ast$}]{t, }
\item[{const {\bf Eina\-\_\-\-Rectangle} $\ast$}]{r}
\end{DoxyParamCaption}
)}}\label{group__Eina__Tiler__Group_ga55bc1d346c063efbec00b2cb9ffbbce8}


Removes a rectangle from a tiler. 


\begin{DoxyParams}{Parameters}
{\em t} & The tiler in which to add a container. \\
\hline
{\em r} & The rectangle to be removed.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See Also}
\hyperlink{group__Eina__Tiler__Group_ga5a7eaf8984afbd801794bb17b8a1b4c4}{eina\-\_\-tiler\-\_\-rect\-\_\-add()} 

\hyperlink{group__Eina__Tiler__Group_ga8881af2a82687553a01b0e28cfceb56c}{eina\-\_\-tiler\-\_\-clear()} 
\end{DoxySeeAlso}


References E\-I\-N\-A\-\_\-\-F\-A\-L\-S\-E, eina\-\_\-rectangle\-\_\-intersection(), \-\_\-\-Eina\-\_\-\-Rectangle\-::h, and \-\_\-\-Eina\-\_\-\-Rectangle\-::w.

\hypertarget{group__Eina__Tiler__Group_ga8881af2a82687553a01b0e28cfceb56c}{\index{Tiler@{Tiler}!eina\-\_\-tiler\-\_\-clear@{eina\-\_\-tiler\-\_\-clear}}
\index{eina\-\_\-tiler\-\_\-clear@{eina\-\_\-tiler\-\_\-clear}!Tiler@{Tiler}}
\subsubsection[{eina\-\_\-tiler\-\_\-clear}]{\setlength{\rightskip}{0pt plus 5cm}void eina\-\_\-tiler\-\_\-clear (
\begin{DoxyParamCaption}
\item[{{\bf Eina\-\_\-\-Tiler} $\ast$}]{t}
\end{DoxyParamCaption}
)}}\label{group__Eina__Tiler__Group_ga8881af2a82687553a01b0e28cfceb56c}


Removes all rectangles from tiles. 


\begin{DoxyParams}{Parameters}
{\em t} & The tiler to clear.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See Also}
\hyperlink{group__Eina__Tiler__Group_ga55bc1d346c063efbec00b2cb9ffbbce8}{eina\-\_\-tiler\-\_\-rect\-\_\-del()} 
\end{DoxySeeAlso}
\hypertarget{group__Eina__Tiler__Group_ga4cf2a6df653219c8e9cb7fbcf0c40954}{\index{Tiler@{Tiler}!eina\-\_\-tiler\-\_\-iterator\-\_\-new@{eina\-\_\-tiler\-\_\-iterator\-\_\-new}}
\index{eina\-\_\-tiler\-\_\-iterator\-\_\-new@{eina\-\_\-tiler\-\_\-iterator\-\_\-new}!Tiler@{Tiler}}
\subsubsection[{eina\-\_\-tiler\-\_\-iterator\-\_\-new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\-\_\-\-Iterator}$\ast$ eina\-\_\-tiler\-\_\-iterator\-\_\-new (
\begin{DoxyParamCaption}
\item[{const {\bf Eina\-\_\-\-Tiler} $\ast$}]{t}
\end{DoxyParamCaption}
)}}\label{group__Eina__Tiler__Group_ga4cf2a6df653219c8e9cb7fbcf0c40954}


Create a iterator to access the tilers calculated rectangles. 


\begin{DoxyParams}{Parameters}
{\em t} & The tiler to iterate over. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A iterator containing Eina\-\_\-\-Rectangle. 
\end{DoxyReturn}


References E\-I\-N\-A\-\_\-\-M\-A\-G\-I\-C\-\_\-\-S\-E\-T, E\-I\-N\-A\-\_\-\-T\-R\-U\-E, F\-U\-N\-C\-\_\-\-I\-T\-E\-R\-A\-T\-O\-R\-\_\-\-F\-R\-E\-E, F\-U\-N\-C\-\_\-\-I\-T\-E\-R\-A\-T\-O\-R\-\_\-\-G\-E\-T\-\_\-\-C\-O\-N\-T\-A\-I\-N\-E\-R, and F\-U\-N\-C\-\_\-\-I\-T\-E\-R\-A\-T\-O\-R\-\_\-\-N\-E\-X\-T.

\hypertarget{group__Eina__Tiler__Group_gaa432ea1234ed5afbe126f107ea6584d4}{\index{Tiler@{Tiler}!eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-iterator\-\_\-new@{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-iterator\-\_\-new}}
\index{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-iterator\-\_\-new@{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-iterator\-\_\-new}!Tiler@{Tiler}}
\subsubsection[{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-iterator\-\_\-new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\-\_\-\-Iterator}$\ast$ eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-iterator\-\_\-new (
\begin{DoxyParamCaption}
\item[{int}]{x, }
\item[{int}]{y, }
\item[{int}]{w, }
\item[{int}]{h, }
\item[{int}]{tile\-\_\-w, }
\item[{int}]{tile\-\_\-h}
\end{DoxyParamCaption}
)}}\label{group__Eina__Tiler__Group_gaa432ea1234ed5afbe126f107ea6584d4}


Creates a new Eina\-\_\-\-Iterator that iterates over a list of tiles. 


\begin{DoxyParams}{Parameters}
{\em x} & X axis coordinate. \\
\hline
{\em y} & Y axis coordinate. \\
\hline
{\em w} & width. \\
\hline
{\em h} & height. \\
\hline
{\em tile\-\_\-w} & tile width. \\
\hline
{\em tile\-\_\-h} & tile height. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A pointer to the Eina\-\_\-\-Iterator. {\ttfamily N\-U\-L\-L} on failure.
\end{DoxyReturn}
The region defined by {\itshape x}, {\itshape y}, {\itshape w}, {\itshape h} will be divided in to a grid of tiles of width {\itshape tile\-\_\-w} and height {\ttfamily tile\-\_\-h}, the returned iterator will iterate over every tile in the grid having as its data a \hyperlink{structEina__Tile__Grid__Info}{Eina\-\_\-\-Tile\-\_\-\-Grid\-\_\-\-Info}.

\begin{DoxyNote}{Note}
This is a convenience function, iterating over the returned iterator is equivalent to calling \hyperlink{group__Eina__Tiler__Group_gaa8fe2ae9aac1fd5b0971877300696c8c}{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-setup()} and calling \hyperlink{group__Eina__Tiler__Group_gacdf4ee56dde73ae84f293601ea44763a}{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-next()} untill it returns \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\-I\-N\-A\-\_\-\-F\-A\-L\-S\-E}. 
\end{DoxyNote}


References E\-I\-N\-A\-\_\-\-M\-A\-G\-I\-C\-\_\-\-S\-E\-T, eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-setup(), F\-U\-N\-C\-\_\-\-I\-T\-E\-R\-A\-T\-O\-R\-\_\-\-F\-R\-E\-E, and F\-U\-N\-C\-\_\-\-I\-T\-E\-R\-A\-T\-O\-R\-\_\-\-N\-E\-X\-T.

\hypertarget{group__Eina__Tiler__Group_gacdf4ee56dde73ae84f293601ea44763a}{\index{Tiler@{Tiler}!eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-next@{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-next}}
\index{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-next@{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-next}!Tiler@{Tiler}}
\subsubsection[{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-next}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\-\_\-\-Bool} eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-next (
\begin{DoxyParamCaption}
\item[{Eina\-\_\-\-Tile\-\_\-\-Grid\-\_\-\-Slicer $\ast$}]{slc, }
\item[{const {\bf Eina\-\_\-\-Tile\-\_\-\-Grid\-\_\-\-Info} $\ast$$\ast$}]{rect}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Tiler__Group_gacdf4ee56dde73ae84f293601ea44763a}


Iterates over the tiles set by \hyperlink{group__Eina__Tiler__Group_gaa8fe2ae9aac1fd5b0971877300696c8c}{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-setup()}. 


\begin{DoxyParams}{Parameters}
{\em slc} & Pointer to an Eina\-\_\-\-Tile\-\_\-\-Grid\-\_\-\-Slicer struct. \\
\hline
{\em rect} & Pointer to a struct \hyperlink{structEina__Tile__Grid__Info}{Eina\-\_\-\-Tile\-\_\-\-Grid\-\_\-\-Info} $\ast$. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\-I\-N\-A\-\_\-\-T\-R\-U\-E} if the current rect is valid. \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\-I\-N\-A\-\_\-\-F\-A\-L\-S\-E} if there is no more rects to iterate over (and thus the current one isn't valid).
\end{DoxyReturn}
This functions iterates over each \hyperlink{structEina__Tile__Grid__Info}{Eina\-\_\-\-Tile\-\_\-\-Grid\-\_\-\-Info} $\ast$rect of the grid. \hyperlink{group__Eina__Tiler__Group_gaa8fe2ae9aac1fd5b0971877300696c8c}{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-setup()} must be called first, and $\ast$rect is only valid if this function returns \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\-I\-N\-A\-\_\-\-T\-R\-U\-E}. Its content shouldn't be modified.

\begin{DoxyNote}{Note}
Consider using \hyperlink{group__Eina__Tiler__Group_gaa432ea1234ed5afbe126f107ea6584d4}{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-iterator\-\_\-new()} instead. 
\end{DoxyNote}
\hypertarget{group__Eina__Tiler__Group_gaa8fe2ae9aac1fd5b0971877300696c8c}{\index{Tiler@{Tiler}!eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-setup@{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-setup}}
\index{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-setup@{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-setup}!Tiler@{Tiler}}
\subsubsection[{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-setup}]{\setlength{\rightskip}{0pt plus 5cm}static {\bf Eina\-\_\-\-Bool} eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-setup (
\begin{DoxyParamCaption}
\item[{Eina\-\_\-\-Tile\-\_\-\-Grid\-\_\-\-Slicer $\ast$}]{slc, }
\item[{int}]{x, }
\item[{int}]{y, }
\item[{int}]{w, }
\item[{int}]{h, }
\item[{int}]{tile\-\_\-w, }
\item[{int}]{tile\-\_\-h}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}}\label{group__Eina__Tiler__Group_gaa8fe2ae9aac1fd5b0971877300696c8c}


Setup an Eina\-\_\-\-Tile\-\_\-\-Grid\-\_\-\-Slicer struct. 


\begin{DoxyParams}{Parameters}
{\em slc} & Pointer to an Eina\-\_\-\-Tile\-\_\-\-Grid\-\_\-\-Slicer struct. \\
\hline
{\em x} & X axis coordinate. \\
\hline
{\em y} & Y axis coordinate. \\
\hline
{\em w} & width. \\
\hline
{\em h} & height. \\
\hline
{\em tile\-\_\-w} & tile width. \\
\hline
{\em tile\-\_\-h} & tile height. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A pointer to the Eina\-\_\-\-Iterator. {\ttfamily N\-U\-L\-L} on failure.
\end{DoxyReturn}
The region defined by {\itshape x}, {\itshape y}, {\itshape w}, {\itshape h} will be divided in to a grid of tiles of width {\itshape tile\-\_\-w} and height {\ttfamily tile\-\_\-h}, {\ttfamily slc} can then be used with \hyperlink{group__Eina__Tiler__Group_gacdf4ee56dde73ae84f293601ea44763a}{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-next()} to access each tile.

\begin{DoxyNote}{Note}
Consider using \hyperlink{group__Eina__Tiler__Group_gaa432ea1234ed5afbe126f107ea6584d4}{eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-iterator\-\_\-new()} instead. 
\end{DoxyNote}


Referenced by eina\-\_\-tile\-\_\-grid\-\_\-slicer\-\_\-iterator\-\_\-new().

