aboutsummaryrefslogtreecommitdiffstats
path: root/doc/api-ref/html/de/da4/simple-egl_8cpp_source.html
blob: f87e5380552a449d6c5a6dd4c5dcd51f56345ded (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>HomeScreenBinding: libhomescreen/simple-egl.cpp Source File</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">HomeScreenBinding
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="../../index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="../../annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="../../files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="../../search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="../../search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="../../files.html"><span>File&#160;List</span></a></li>
      <li><a href="../../globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="../../dir_65f76d62445e9e84c0450b12bf77c3bc.html">libhomescreen</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">simple-egl.cpp</div>  </div>
</div><!--header-->
<div class="contents">
<a href="../../de/da4/simple-egl_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2017 TOYOTA MOTOR CORPORATION</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright © 2011 Benjamin Franzke</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * Permission is hereby granted, free of charge, to any person obtaining a</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * copy of this software and associated documentation files (the &quot;Software&quot;),</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * to deal in the Software without restriction, including without limitation</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * the rights to use, copy, modify, merge, publish, distribute, sublicense,</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * and/or sell copies of the Software, and to permit persons to whom the</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * Software is furnished to do so, subject to the following conditions:</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * The above copyright notice and this permission notice (including the next</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * paragraph) shall be included in all copies or substantial portions of the</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * Software.</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * DEALINGS IN THE SOFTWARE.</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;mutex&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;chrono&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;sys/types.h&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &lt;thread&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &lt;exception&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &lt;sstream&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &lt;assert.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &lt;signal.h&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &lt;wayland-client.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &lt;wayland-egl.h&gt;</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &lt;GLES2/gl2.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#include &lt;EGL/egl.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#include &lt;EGL/eglext.h&gt;</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">#include &lt;time.h&gt;</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#include &lt;libwindowmanager.h&gt;</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="../../df/d43/libhomescreen_8hpp.html">libhomescreen.hpp</a>&gt;</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#include &lt;ilm/ivi-application-client-protocol.h&gt;</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#include &quot;hmi-debug.h&quot;</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="keyword">using namespace </span><a class="code" href="../../d8/dcc/namespacestd.html">std</a>;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a894f18168fa25101d792262f59846938">   58</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="../../de/da4/simple-egl_8cpp.html#a894f18168fa25101d792262f59846938">log_prefix</a> = <span class="stringliteral">&quot;simple-egl&quot;</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a28f56c9f01ed9f108201950645317cc9">   59</a></span>&#160;uint32_t <a class="code" href="../../de/da4/simple-egl_8cpp.html#a28f56c9f01ed9f108201950645317cc9">g_id_ivisurf</a> = 9009;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a300b6806fe6818927fe4df08f2398124">   60</a></span>&#160;<span class="keywordtype">long</span> <a class="code" href="../../de/da4/simple-egl_8cpp.html#a300b6806fe6818927fe4df08f2398124">port</a> = 1700;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a623ef6987ef3bd185c07b28b13e46d34">   61</a></span>&#160;<span class="keywordtype">string</span> <a class="code" href="../../de/da4/simple-egl_8cpp.html#a623ef6987ef3bd185c07b28b13e46d34">token</a> = string(<span class="stringliteral">&quot;wm&quot;</span>);</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a0da928eccfc57d1dfadfd29d4ac4854c">   63</a></span>&#160;<span class="keywordtype">string</span> <a class="code" href="../../de/da4/simple-egl_8cpp.html#a0da928eccfc57d1dfadfd29d4ac4854c">app_name</a> = string(<span class="stringliteral">&quot;Navigation&quot;</span>);</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a332251aa739a56836cd4fbf3ecbb8bb2">   64</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="../../de/da4/simple-egl_8cpp.html#a332251aa739a56836cd4fbf3ecbb8bb2">main_role</a> = <span class="stringliteral">&quot;navigation&quot;</span>;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a529acbd1fed9d98a587edfa62309fa8d">   66</a></span>&#160;<a class="code" href="../../de/dd0/class_lib_home_screen.html">LibHomeScreen</a>* <a class="code" href="../../de/da4/simple-egl_8cpp.html#a529acbd1fed9d98a587edfa62309fa8d">hs</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#ad1513698e07197206c290f94d7669d85">   67</a></span>&#160;LibWindowmanager *<a class="code" href="../../de/da4/simple-egl_8cpp.html#ad1513698e07197206c290f94d7669d85">wm</a>;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#aea3203db9e218d3e5d60bdb4ebe2fa1f">   69</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">struct </span>wl_interface *<a class="code" href="../../de/da4/simple-egl_8cpp.html#aea3203db9e218d3e5d60bdb4ebe2fa1f">types</a>[] = {</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        NULL,</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;        NULL,</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        NULL,</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        &amp;wl_surface_interface,</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        &amp;<a class="code" href="../../de/da4/simple-egl_8cpp.html#adf384de8d12d2edd7265ab85fd16b11c">ivi_surface_interface</a>,</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;};</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#ada80120c5590d2821da9babef808b98d">   77</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">struct </span>wl_message <a class="code" href="../../de/da4/simple-egl_8cpp.html#ada80120c5590d2821da9babef808b98d">ivi_surface_requests</a>[] = {</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        { <span class="stringliteral">&quot;destroy&quot;</span>, <span class="stringliteral">&quot;&quot;</span>, <a class="code" href="../../de/da4/simple-egl_8cpp.html#aea3203db9e218d3e5d60bdb4ebe2fa1f">types</a> + 0 },</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;};</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#ac848f4fbf712a9ba414272fa85577791">   81</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">struct </span>wl_message <a class="code" href="../../de/da4/simple-egl_8cpp.html#ac848f4fbf712a9ba414272fa85577791">ivi_surface_events</a>[] = {</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        { <span class="stringliteral">&quot;configure&quot;</span>, <span class="stringliteral">&quot;ii&quot;</span>, <a class="code" href="../../de/da4/simple-egl_8cpp.html#aea3203db9e218d3e5d60bdb4ebe2fa1f">types</a> + 0 },</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;};</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#adf384de8d12d2edd7265ab85fd16b11c">   85</a></span>&#160;<span class="keyword">const</span> <span class="keyword">struct </span>wl_interface <a class="code" href="../../de/da4/simple-egl_8cpp.html#adf384de8d12d2edd7265ab85fd16b11c">ivi_surface_interface</a> = {</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        <span class="stringliteral">&quot;ivi_surface&quot;</span>, 1,</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        1, <a class="code" href="../../de/da4/simple-egl_8cpp.html#ada80120c5590d2821da9babef808b98d">ivi_surface_requests</a>,</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        1, <a class="code" href="../../de/da4/simple-egl_8cpp.html#ac848f4fbf712a9ba414272fa85577791">ivi_surface_events</a>,</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;};</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a21a39b7c6cf5f6d10a62a70b3ebc9bad">   91</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">struct </span>wl_message <a class="code" href="../../de/da4/simple-egl_8cpp.html#a21a39b7c6cf5f6d10a62a70b3ebc9bad">ivi_application_requests</a>[] = {</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        { <span class="stringliteral">&quot;surface_create&quot;</span>, <span class="stringliteral">&quot;uon&quot;</span>, <a class="code" href="../../de/da4/simple-egl_8cpp.html#aea3203db9e218d3e5d60bdb4ebe2fa1f">types</a> + 2 },</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;};</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a769b65b7b0e834f732f1f45e835890d5">   95</a></span>&#160;<span class="keyword">const</span> <span class="keyword">struct </span>wl_interface <a class="code" href="../../de/da4/simple-egl_8cpp.html#a769b65b7b0e834f732f1f45e835890d5">ivi_application_interface</a> = {</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    <span class="stringliteral">&quot;ivi_application&quot;</span>, 1,</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    1, <a class="code" href="../../de/da4/simple-egl_8cpp.html#a21a39b7c6cf5f6d10a62a70b3ebc9bad">ivi_application_requests</a>,</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    0, NULL,</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;};</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="preprocessor">#include &quot;platform.h&quot;</span></div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="preprocessor">#ifndef EGL_EXT_swap_buffers_with_damage</span></div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a083d37f289b99270e0391419178d458f">  104</a></span>&#160;<span class="preprocessor">#define EGL_EXT_swap_buffers_with_damage 1</span></div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a0720952aa1caded45b5bcdce589663a9">  105</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="../../de/da4/simple-egl_8cpp.html#ab4ad070d3bf82abe5e70330578f67893">EGLBoolean</a> (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC)(EGLDisplay dpy, EGLSurface <a class="code" href="../../de/da4/simple-egl_8cpp.html#a0720952aa1caded45b5bcdce589663a9">surface</a>, EGLint *<a class="code" href="../../de/da4/simple-egl_8cpp.html#a56616f7ca3fc53c0da41d05de9330b11">rects</a>, EGLint <a class="code" href="../../de/da4/simple-egl_8cpp.html#aa6a11810244355f89e6c4961b9dd3b53">n_rects</a>);</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="preprocessor">#ifndef EGL_EXT_buffer_age</span></div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a0792e3d8b2bc978f95917a234b0c81df">  109</a></span>&#160;<span class="preprocessor">#define EGL_EXT_buffer_age 1</span></div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a7045d8a6b4857f268a62fab2de2021fd">  110</a></span>&#160;<span class="preprocessor">#define EGL_BUFFER_AGE_EXT          0x313D</span></div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="keyword">struct </span><a class="code" href="../../d6/de3/structwindow.html">window</a>;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="keyword">struct </span>seat;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="../../d6/df5/structdisplay.html">  116</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../d6/df5/structdisplay.html">display</a> {</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="../../d6/df5/structdisplay.html#aa8faf09631925e9221fd8a0c086ce75a">  117</a></span>&#160;    <span class="keyword">struct </span>wl_display *<a class="code" href="../../d6/df5/structdisplay.html#aa8faf09631925e9221fd8a0c086ce75a">display</a>;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="../../d6/df5/structdisplay.html#a925781323f5c8eb84ef2225ed129de4b">  118</a></span>&#160;    <span class="keyword">struct </span>wl_registry *<a class="code" href="../../d6/df5/structdisplay.html#a925781323f5c8eb84ef2225ed129de4b">registry</a>;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="../../d6/df5/structdisplay.html#a41ba32dfde812165dda5b62885000c78">  119</a></span>&#160;    <span class="keyword">struct </span>wl_compositor *<a class="code" href="../../d6/df5/structdisplay.html#a41ba32dfde812165dda5b62885000c78">compositor</a>;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="../../d6/df5/structdisplay.html#a9dd8fd9967beb6b3767bd93011373bb8">  120</a></span>&#160;    <span class="keyword">struct </span>wl_seat *<a class="code" href="../../d6/df5/structdisplay.html#a9dd8fd9967beb6b3767bd93011373bb8">seat</a>;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="keyword">struct </span>{</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">  122</a></span>&#160;        EGLDisplay <a class="code" href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">dpy</a>;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="../../d6/df5/structdisplay.html#a3420940a29a710e0e5ebd41ba462cc00">  123</a></span>&#160;        EGLContext <a class="code" href="../../d6/df5/structdisplay.html#a3420940a29a710e0e5ebd41ba462cc00">ctx</a>;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="../../d6/df5/structdisplay.html#a880aef9408b499f5b749541dc6e396c3">  124</a></span>&#160;        EGLConfig <a class="code" href="../../d6/df5/structdisplay.html#a880aef9408b499f5b749541dc6e396c3">conf</a>;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    } egl;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="../../d6/df5/structdisplay.html#a9974d560bec291487ae2440f897ffc58">  126</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="../../d6/de3/structwindow.html">window</a> *<a class="code" href="../../d6/df5/structdisplay.html#a9974d560bec291487ae2440f897ffc58">window</a>;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="../../d6/df5/structdisplay.html#a24c073faff3bb4799c2d46291f27ab89">  127</a></span>&#160;    <span class="keyword">struct </span>ivi_application *<a class="code" href="../../d6/df5/structdisplay.html#a24c073faff3bb4799c2d46291f27ab89">ivi_application</a>;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="../../d6/df5/structdisplay.html#a48c46c118e4765ef06596f6341c8f23f">  129</a></span>&#160;    PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC <a class="code" href="../../d6/df5/structdisplay.html#a48c46c118e4765ef06596f6341c8f23f">swap_buffers_with_damage</a>;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;};</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="../../dd/ddc/structgeometry.html">  132</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../dd/ddc/structgeometry.html">geometry</a> {</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="../../dd/ddc/structgeometry.html#a854a87ce277335591f06958a2363c3e1">  133</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="../../dd/ddc/structgeometry.html#a854a87ce277335591f06958a2363c3e1">width</a>, height;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;};</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="../../d6/de3/structwindow.html">  136</a></span>&#160;<span class="keyword">struct </span><a class="code" href="../../d6/de3/structwindow.html">window</a> {</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="../../d6/de3/structwindow.html#a129486f2bd23791194f389ca1405cfd4">  137</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="../../d6/df5/structdisplay.html">display</a> *<a class="code" href="../../d6/de3/structwindow.html#a129486f2bd23791194f389ca1405cfd4">display</a>;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="../../d6/de3/structwindow.html#ad2b6c8ed8044b41fd1189a0ce26d539a">  138</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="../../dd/ddc/structgeometry.html">geometry</a> <a class="code" href="../../dd/ddc/structgeometry.html">geometry</a>, window_size;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="keyword">struct </span>{</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="../../d6/de3/structwindow.html#a5202f3b60e262a6fa4fcee68dd47cb67">  140</a></span>&#160;        GLuint <a class="code" href="../../d6/de3/structwindow.html#a5202f3b60e262a6fa4fcee68dd47cb67">rotation_uniform</a>;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="../../d6/de3/structwindow.html#aaf965f90f9fc938db2315ff62028c362">  141</a></span>&#160;        GLuint <a class="code" href="../../d6/de3/structwindow.html#aaf965f90f9fc938db2315ff62028c362">pos</a>;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="../../d6/de3/structwindow.html#aef10fe94766ccd4831ee611c5ad0e55c">  142</a></span>&#160;        GLuint <a class="code" href="../../d6/de3/structwindow.html#aef10fe94766ccd4831ee611c5ad0e55c">col</a>;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    } gl;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="../../d6/de3/structwindow.html#a633864bb495ec265bee220a5c70cc98f">  145</a></span>&#160;    uint32_t benchmark_time, <a class="code" href="../../d6/de3/structwindow.html#a633864bb495ec265bee220a5c70cc98f">frames</a>;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="../../d6/de3/structwindow.html#ae41be0955d0e73530e1bc13dfeb9d731">  146</a></span>&#160;    <span class="keyword">struct </span>wl_egl_window *<a class="code" href="../../d6/de3/structwindow.html#ae41be0955d0e73530e1bc13dfeb9d731">native</a>;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="../../d6/de3/structwindow.html#a7d0790cfc7c30621611fa26ab5c1ae97">  147</a></span>&#160;    <span class="keyword">struct </span>wl_surface *<a class="code" href="../../d6/de3/structwindow.html#a7d0790cfc7c30621611fa26ab5c1ae97">surface</a>;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="../../d6/de3/structwindow.html#a40e2c6fb4178953c820fc1b9f41d4b31">  148</a></span>&#160;    <span class="keyword">struct </span>ivi_surface *<a class="code" href="../../d6/de3/structwindow.html#a40e2c6fb4178953c820fc1b9f41d4b31">ivi_surface</a>;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="../../d6/de3/structwindow.html#a8de0059f3f1cb0dec33fba1143b7dee1">  149</a></span>&#160;    EGLSurface <a class="code" href="../../d6/de3/structwindow.html#a8de0059f3f1cb0dec33fba1143b7dee1">egl_surface</a>;</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="../../d6/de3/structwindow.html#a35ba639556fa19d9273dad0953a6807e">  150</a></span>&#160;    <span class="keyword">struct </span>wl_callback *<a class="code" href="../../d6/de3/structwindow.html#a35ba639556fa19d9273dad0953a6807e">callback</a>;</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="../../d6/de3/structwindow.html#a026a50808d8323a5a73d585c19916fa8">  151</a></span>&#160;    <span class="keywordtype">int</span> fullscreen, <a class="code" href="../../d6/de3/structwindow.html#a026a50808d8323a5a73d585c19916fa8">opaque</a>, buffer_size, frame_sync;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;};</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a717575939a37d84dcd4cf0447a630834">  154</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="../../de/da4/simple-egl_8cpp.html#a717575939a37d84dcd4cf0447a630834">vert_shader_text</a> =</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <span class="stringliteral">&quot;uniform mat4 rotation;\n&quot;</span></div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <span class="stringliteral">&quot;attribute vec4 pos;\n&quot;</span></div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <span class="stringliteral">&quot;attribute vec4 color;\n&quot;</span></div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <span class="stringliteral">&quot;varying vec4 v_color;\n&quot;</span></div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="stringliteral">&quot;void main() {\n&quot;</span></div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <span class="stringliteral">&quot;  gl_Position = rotation * pos;\n&quot;</span></div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    <span class="stringliteral">&quot;  v_color = color;\n&quot;</span></div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    <span class="stringliteral">&quot;}\n&quot;</span>;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#ab5a6a2a26ac23f79b1687daa4b0d8980">  164</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="../../de/da4/simple-egl_8cpp.html#ab5a6a2a26ac23f79b1687daa4b0d8980">frag_shader_text</a> =</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    <span class="stringliteral">&quot;precision mediump float;\n&quot;</span></div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="stringliteral">&quot;varying vec4 v_color;\n&quot;</span></div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="stringliteral">&quot;void main() {\n&quot;</span></div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    <span class="stringliteral">&quot;  gl_FragColor = v_color;\n&quot;</span></div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    <span class="stringliteral">&quot;}\n&quot;</span>;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a2f45113638a0b749a8a205d2cd7fb42b">  171</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="../../de/da4/simple-egl_8cpp.html#a2f45113638a0b749a8a205d2cd7fb42b">running</a> = 1;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a1073d4aca1838d3877fe577d813700fc">  174</a></span>&#160;<a class="code" href="../../de/da4/simple-egl_8cpp.html#a1073d4aca1838d3877fe577d813700fc">init_egl</a>(<span class="keyword">struct</span> <a class="code" href="../../d6/df5/structdisplay.html">display</a> *<a class="code" href="../../d6/df5/structdisplay.html">display</a>, <span class="keyword">struct</span> <a class="code" href="../../d6/de3/structwindow.html">window</a> *<a class="code" href="../../d6/de3/structwindow.html">window</a>)</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;{</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> EGLint context_attribs[] = {</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;        EGL_CONTEXT_CLIENT_VERSION, 2,</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        EGL_NONE</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    };</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *extensions;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    EGLint config_attribs[] = {</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        EGL_SURFACE_TYPE, EGL_WINDOW_BIT,</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        EGL_RED_SIZE, 1,</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        EGL_GREEN_SIZE, 1,</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        EGL_BLUE_SIZE, 1,</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        EGL_ALPHA_SIZE, 1,</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        EGL_NONE</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    };</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    EGLint major, minor, n, count, i, size;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    EGLConfig *configs;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    <a class="code" href="../../de/da4/simple-egl_8cpp.html#ab4ad070d3bf82abe5e70330578f67893">EGLBoolean</a> ret;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <span class="keywordflow">if</span> (window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a026a50808d8323a5a73d585c19916fa8">opaque</a> || window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a0e634038f669aff472012f25ea250b40">buffer_size</a> == 16)</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        config_attribs[9] = 0;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">dpy</a> = weston_platform_get_egl_display(EGL_PLATFORM_WAYLAND_KHR, display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#aa8faf09631925e9221fd8a0c086ce75a">display</a>, NULL);</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    assert(display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">dpy</a>);</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    ret = eglInitialize(display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">dpy</a>, &amp;major, &amp;minor);</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    assert(ret == EGL_TRUE);</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    ret = eglBindAPI(EGL_OPENGL_ES_API);</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    assert(ret == EGL_TRUE);</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <span class="keywordflow">if</span> (!eglGetConfigs(display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">dpy</a>, NULL, 0, &amp;count) || count &lt; 1)</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        assert(0);</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    configs = calloc(count, <span class="keyword">sizeof</span> *configs);</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    assert(configs);</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    ret = eglChooseConfig(display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">dpy</a>, config_attribs,</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;                  configs, count, &amp;n);</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    assert(ret &amp;&amp; n &gt;= 1);</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    <span class="keywordflow">for</span> (i = 0; i &lt; n; i++) {</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;        eglGetConfigAttrib(display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">dpy</a>,</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;                   configs[i], EGL_BUFFER_SIZE, &amp;size);</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        <span class="keywordflow">if</span> (window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a0e634038f669aff472012f25ea250b40">buffer_size</a> == size) {</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;            display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a880aef9408b499f5b749541dc6e396c3">conf</a> = configs[i];</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        }</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    }</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    free(configs);</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    <span class="keywordflow">if</span> (display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a880aef9408b499f5b749541dc6e396c3">conf</a> == NULL) {</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;        <a class="code" href="../../d2/d66/include_2hmi-debug_8h.html#a65bb6c7cfe38f8a724beab5059d36fb2">HMI_ERROR</a>(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a894f18168fa25101d792262f59846938">log_prefix</a>,<span class="stringliteral">&quot;did not find config with buffer size %d&quot;</span>,</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;            window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a0e634038f669aff472012f25ea250b40">buffer_size</a>);</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        exit(EXIT_FAILURE);</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    }</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a3420940a29a710e0e5ebd41ba462cc00">ctx</a> = eglCreateContext(display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">dpy</a>,</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;                        display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a880aef9408b499f5b749541dc6e396c3">conf</a>,</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;                        EGL_NO_CONTEXT, context_attribs);</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    assert(display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a3420940a29a710e0e5ebd41ba462cc00">ctx</a>);</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a48c46c118e4765ef06596f6341c8f23f">swap_buffers_with_damage</a> = NULL;</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    extensions = eglQueryString(display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">dpy</a>, EGL_EXTENSIONS);</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    <span class="keywordflow">if</span> (extensions &amp;&amp;</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        strstr(extensions, <span class="stringliteral">&quot;EGL_EXT_swap_buffers_with_damage&quot;</span>) &amp;&amp;</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;        strstr(extensions, <span class="stringliteral">&quot;EGL_EXT_buffer_age&quot;</span>))</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;        display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a48c46c118e4765ef06596f6341c8f23f">swap_buffers_with_damage</a> =</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;            (PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC)</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;            eglGetProcAddress(<span class="stringliteral">&quot;eglSwapBuffersWithDamageEXT&quot;</span>);</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    <span class="keywordflow">if</span> (display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a48c46c118e4765ef06596f6341c8f23f">swap_buffers_with_damage</a>)</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;        <a class="code" href="../../d2/d66/include_2hmi-debug_8h.html#a0d26d8b8201011dade787236519711c0">HMI_DEBUG</a>(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a894f18168fa25101d792262f59846938">log_prefix</a>,<span class="stringliteral">&quot;has EGL_EXT_buffer_age and EGL_EXT_swap_buffers_with_damage&quot;</span>);</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;}</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a4f71f46ede5b73bd7c770c973826f771">  252</a></span>&#160;<a class="code" href="../../de/da4/simple-egl_8cpp.html#a4f71f46ede5b73bd7c770c973826f771">fini_egl</a>(<span class="keyword">struct</span> <a class="code" href="../../d6/df5/structdisplay.html">display</a> *<a class="code" href="../../d6/df5/structdisplay.html">display</a>)</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;{</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    eglTerminate(display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">dpy</a>);</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    eglReleaseThread();</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;}</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;<span class="keyword">static</span> GLuint</div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#ab72c580e4d6d47c2fb49c72cc76b85bb">  259</a></span>&#160;<a class="code" href="../../de/da4/simple-egl_8cpp.html#ab72c580e4d6d47c2fb49c72cc76b85bb">create_shader</a>(<span class="keyword">struct</span> <a class="code" href="../../d6/de3/structwindow.html">window</a> *<a class="code" href="../../d6/de3/structwindow.html">window</a>, <span class="keyword">const</span> <span class="keywordtype">char</span> *source, GLenum shader_type)</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;{</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    GLuint shader;</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    GLint status;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    shader = glCreateShader(shader_type);</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    assert(shader != 0);</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    glShaderSource(shader, 1, (<span class="keyword">const</span> <span class="keywordtype">char</span> **) &amp;source, NULL);</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    glCompileShader(shader);</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;    glGetShaderiv(shader, GL_COMPILE_STATUS, &amp;status);</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    <span class="keywordflow">if</span> (!status) {</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        <span class="keywordtype">char</span> log[1000];</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;        GLsizei len;</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        glGetShaderInfoLog(shader, 1000, &amp;len, log);</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        <a class="code" href="../../d2/d66/include_2hmi-debug_8h.html#a65bb6c7cfe38f8a724beab5059d36fb2">HMI_ERROR</a>(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a894f18168fa25101d792262f59846938">log_prefix</a>,<span class="stringliteral">&quot;Error: compiling %s: %*s&quot;</span>,</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;            shader_type == GL_VERTEX_SHADER ? <span class="stringliteral">&quot;vertex&quot;</span> : <span class="stringliteral">&quot;fragment&quot;</span>,</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;            len, log);</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;        exit(1);</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    }</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;    <span class="keywordflow">return</span> shader;</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;}</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#ab3ee863fa45f4026f78f592d6f6e34ff">  285</a></span>&#160;<a class="code" href="../../de/da4/simple-egl_8cpp.html#ab3ee863fa45f4026f78f592d6f6e34ff">init_gl</a>(<span class="keyword">struct</span> <a class="code" href="../../d6/de3/structwindow.html">window</a> *<a class="code" href="../../d6/de3/structwindow.html">window</a>)</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;{</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    GLuint frag, vert;</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    GLuint program;</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    GLint status;</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    frag = <a class="code" href="../../de/da4/simple-egl_8cpp.html#ab72c580e4d6d47c2fb49c72cc76b85bb">create_shader</a>(window, <a class="code" href="../../de/da4/simple-egl_8cpp.html#ab5a6a2a26ac23f79b1687daa4b0d8980">frag_shader_text</a>, GL_FRAGMENT_SHADER);</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    vert = <a class="code" href="../../de/da4/simple-egl_8cpp.html#ab72c580e4d6d47c2fb49c72cc76b85bb">create_shader</a>(window, <a class="code" href="../../de/da4/simple-egl_8cpp.html#a717575939a37d84dcd4cf0447a630834">vert_shader_text</a>, GL_VERTEX_SHADER);</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    program = glCreateProgram();</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;    glAttachShader(program, frag);</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    glAttachShader(program, vert);</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    glLinkProgram(program);</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;    glGetProgramiv(program, GL_LINK_STATUS, &amp;status);</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;    <span class="keywordflow">if</span> (!status) {</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        <span class="keywordtype">char</span> log[1000];</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        GLsizei len;</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        glGetProgramInfoLog(program, 1000, &amp;len, log);</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;        <a class="code" href="../../d2/d66/include_2hmi-debug_8h.html#a65bb6c7cfe38f8a724beab5059d36fb2">HMI_ERROR</a>(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a894f18168fa25101d792262f59846938">log_prefix</a>,<span class="stringliteral">&quot;Error: linking:%*s&quot;</span>, len, log);</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;        exit(1);</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    }</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    glUseProgram(program);</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;    window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a6975a930e9a3c166f8201fc4ef5e7728">gl</a>.<a class="code" href="../../d6/de3/structwindow.html#aaf965f90f9fc938db2315ff62028c362">pos</a> = 0;</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;    window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a6975a930e9a3c166f8201fc4ef5e7728">gl</a>.<a class="code" href="../../d6/de3/structwindow.html#aef10fe94766ccd4831ee611c5ad0e55c">col</a> = 1;</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;    glBindAttribLocation(program, window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a6975a930e9a3c166f8201fc4ef5e7728">gl</a>.<a class="code" href="../../d6/de3/structwindow.html#aaf965f90f9fc938db2315ff62028c362">pos</a>, <span class="stringliteral">&quot;pos&quot;</span>);</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;    glBindAttribLocation(program, window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a6975a930e9a3c166f8201fc4ef5e7728">gl</a>.<a class="code" href="../../d6/de3/structwindow.html#aef10fe94766ccd4831ee611c5ad0e55c">col</a>, <span class="stringliteral">&quot;color&quot;</span>);</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;    glLinkProgram(program);</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a6975a930e9a3c166f8201fc4ef5e7728">gl</a>.<a class="code" href="../../d6/de3/structwindow.html#a5202f3b60e262a6fa4fcee68dd47cb67">rotation_uniform</a> =</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;        glGetUniformLocation(program, <span class="stringliteral">&quot;rotation&quot;</span>);</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;}</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a0122201fe28a7f35b0fbd362fff7094e">  322</a></span>&#160;<a class="code" href="../../de/da4/simple-egl_8cpp.html#a0122201fe28a7f35b0fbd362fff7094e">create_ivi_surface</a>(<span class="keyword">struct</span> <a class="code" href="../../d6/de3/structwindow.html">window</a> *<a class="code" href="../../d6/de3/structwindow.html">window</a>, <span class="keyword">struct</span> <a class="code" href="../../d6/df5/structdisplay.html">display</a> *<a class="code" href="../../d6/df5/structdisplay.html">display</a>)</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;{</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    uint32_t id_ivisurf = <a class="code" href="../../de/da4/simple-egl_8cpp.html#a28f56c9f01ed9f108201950645317cc9">g_id_ivisurf</a>;</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a40e2c6fb4178953c820fc1b9f41d4b31">ivi_surface</a> =</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;        ivi_application_surface_create(display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a24c073faff3bb4799c2d46291f27ab89">ivi_application</a>,</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;                           id_ivisurf, window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a7d0790cfc7c30621611fa26ab5c1ae97">surface</a>);</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;    <span class="keywordflow">if</span> (window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a40e2c6fb4178953c820fc1b9f41d4b31">ivi_surface</a> == NULL) {</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;        <a class="code" href="../../d2/d66/include_2hmi-debug_8h.html#a65bb6c7cfe38f8a724beab5059d36fb2">HMI_ERROR</a>(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a894f18168fa25101d792262f59846938">log_prefix</a>,<span class="stringliteral">&quot;Failed to create ivi_client_surface&quot;</span>);</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;        abort();</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    }</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;}</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a83c7f2e34bbc715d97f0642def708293">  337</a></span>&#160;<a class="code" href="../../de/da4/simple-egl_8cpp.html#a83c7f2e34bbc715d97f0642def708293">create_surface</a>(<span class="keyword">struct</span> <a class="code" href="../../d6/de3/structwindow.html">window</a> *<a class="code" href="../../d6/de3/structwindow.html">window</a>)</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;{</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;    <span class="keyword">struct </span><a class="code" href="../../d6/df5/structdisplay.html">display</a> *<a class="code" href="../../d6/df5/structdisplay.html">display</a> = window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a129486f2bd23791194f389ca1405cfd4">display</a>;</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;    <a class="code" href="../../de/da4/simple-egl_8cpp.html#ab4ad070d3bf82abe5e70330578f67893">EGLBoolean</a> ret;</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;    window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a7d0790cfc7c30621611fa26ab5c1ae97">surface</a> = wl_compositor_create_surface(display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a41ba32dfde812165dda5b62885000c78">compositor</a>);</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;    window-&gt;<a class="code" href="../../d6/de3/structwindow.html#ae41be0955d0e73530e1bc13dfeb9d731">native</a> =</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;        wl_egl_window_create(window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a7d0790cfc7c30621611fa26ab5c1ae97">surface</a>,</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;                     window-&gt;geometry.width,</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;                     window-&gt;geometry.height);</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a8de0059f3f1cb0dec33fba1143b7dee1">egl_surface</a> =</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;        weston_platform_create_egl_surface(display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">dpy</a>,</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;                           display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a880aef9408b499f5b749541dc6e396c3">conf</a>,</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;                           window-&gt;<a class="code" href="../../d6/de3/structwindow.html#ae41be0955d0e73530e1bc13dfeb9d731">native</a>, NULL);</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;    <span class="keywordflow">if</span> (display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a24c073faff3bb4799c2d46291f27ab89">ivi_application</a> ) {</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;        <a class="code" href="../../de/da4/simple-egl_8cpp.html#a0122201fe28a7f35b0fbd362fff7094e">create_ivi_surface</a>(window, display);</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        assert(0);</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;    }</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;    ret = eglMakeCurrent(window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a129486f2bd23791194f389ca1405cfd4">display</a>-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">dpy</a>, window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a8de0059f3f1cb0dec33fba1143b7dee1">egl_surface</a>,</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;                 window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a8de0059f3f1cb0dec33fba1143b7dee1">egl_surface</a>, window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a129486f2bd23791194f389ca1405cfd4">display</a>-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a3420940a29a710e0e5ebd41ba462cc00">ctx</a>);</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;    assert(ret == EGL_TRUE);</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;    <span class="keywordflow">if</span> (!window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a851bcb65083f5ab5ff768b09522bed70">frame_sync</a>)</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;        eglSwapInterval(display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">dpy</a>, 0);</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;}</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00370"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#aba2ea9aa51701e52d4f36b4f34cecf7a">  370</a></span>&#160;<a class="code" href="../../de/da4/simple-egl_8cpp.html#aba2ea9aa51701e52d4f36b4f34cecf7a">destroy_surface</a>(<span class="keyword">struct</span> <a class="code" href="../../d6/de3/structwindow.html">window</a> *<a class="code" href="../../d6/de3/structwindow.html">window</a>)</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;{</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;    <span class="comment">/* Required, otherwise segfault in egl_dri2.c: dri2_make_current()</span></div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;<span class="comment">     * on eglReleaseThread(). */</span></div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;    eglMakeCurrent(window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a129486f2bd23791194f389ca1405cfd4">display</a>-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">dpy</a>, EGL_NO_SURFACE, EGL_NO_SURFACE,</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;               EGL_NO_CONTEXT);</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;    eglDestroySurface(window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a129486f2bd23791194f389ca1405cfd4">display</a>-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">dpy</a>, window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a8de0059f3f1cb0dec33fba1143b7dee1">egl_surface</a>);</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    wl_egl_window_destroy(window-&gt;<a class="code" href="../../d6/de3/structwindow.html#ae41be0955d0e73530e1bc13dfeb9d731">native</a>);</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    <span class="keywordflow">if</span> (window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a129486f2bd23791194f389ca1405cfd4">display</a>-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a24c073faff3bb4799c2d46291f27ab89">ivi_application</a>)</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        ivi_surface_destroy(window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a40e2c6fb4178953c820fc1b9f41d4b31">ivi_surface</a>);</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    wl_surface_destroy(window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a7d0790cfc7c30621611fa26ab5c1ae97">surface</a>);</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;    <span class="keywordflow">if</span> (window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a35ba639556fa19d9273dad0953a6807e">callback</a>)</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;        wl_callback_destroy(window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a35ba639556fa19d9273dad0953a6807e">callback</a>);</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;}</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a927502f6103ec35422eead39e62ab7ba">  389</a></span>&#160;<a class="code" href="../../de/da4/simple-egl_8cpp.html#a927502f6103ec35422eead39e62ab7ba">redraw</a>(<span class="keywordtype">void</span> *data, <span class="keyword">struct</span> wl_callback *callback, uint32_t time)</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;{</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    <span class="keyword">struct </span><a class="code" href="../../d6/de3/structwindow.html">window</a> *<a class="code" href="../../d6/de3/structwindow.html">window</a> = data;</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    <span class="keyword">struct </span><a class="code" href="../../d6/df5/structdisplay.html">display</a> *<a class="code" href="../../d6/df5/structdisplay.html">display</a> = window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a129486f2bd23791194f389ca1405cfd4">display</a>;</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> GLfloat verts[3][2] = {</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;        { -0.5, -0.5 },</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;        {  0.5, -0.5 },</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;        {  0,    0.5 }</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;    };</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> GLfloat colors[3][3] = {</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;        { 1, 0, 0 },</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;        { 0, 1, 0 },</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;        { 0, 0, 1 }</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;    };</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;    GLfloat angle;</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;    GLfloat rotation[4][4] = {</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;        { 1, 0, 0, 0 },</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;        { 0, 1, 0, 0 },</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;        { 0, 0, 1, 0 },</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;        { 0, 0, 0, 1 }</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    };</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> uint32_t speed_div = 5, benchmark_interval = 5;</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;    <span class="keyword">struct </span>wl_region *region;</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;    EGLint rect[4];</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    EGLint buffer_age = 0;</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;    <span class="keyword">struct </span>timeval tv;</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;    assert(window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a35ba639556fa19d9273dad0953a6807e">callback</a> == callback);</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a35ba639556fa19d9273dad0953a6807e">callback</a> = NULL;</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    <span class="keywordflow">if</span> (callback)</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;        wl_callback_destroy(callback);</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    gettimeofday(&amp;tv, NULL);</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    time = tv.tv_sec * 1000 + tv.tv_usec / 1000;</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;    <span class="keywordflow">if</span> (window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a633864bb495ec265bee220a5c70cc98f">frames</a> == 0)</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;        window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a72629bf021a361ad900504732a74cb68">benchmark_time</a> = time;</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;    <span class="keywordflow">if</span> (time - window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a72629bf021a361ad900504732a74cb68">benchmark_time</a> &gt; (benchmark_interval * 1000)) {</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;        <a class="code" href="../../d2/d66/include_2hmi-debug_8h.html#a0d26d8b8201011dade787236519711c0">HMI_DEBUG</a>(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a894f18168fa25101d792262f59846938">log_prefix</a>,<span class="stringliteral">&quot;%d frames in %d seconds: %f fps&quot;</span>,</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;               window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a633864bb495ec265bee220a5c70cc98f">frames</a>,</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;               benchmark_interval,</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;               (<span class="keywordtype">float</span>) window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a633864bb495ec265bee220a5c70cc98f">frames</a> / benchmark_interval);</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;        window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a72629bf021a361ad900504732a74cb68">benchmark_time</a> = time;</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;        window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a633864bb495ec265bee220a5c70cc98f">frames</a> = 0;</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;    }</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    angle = (time / speed_div) % 360 * M_PI / 180.0;</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    rotation[0][0] =  cos(angle);</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;    rotation[0][2] =  sin(angle);</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    rotation[2][0] = -sin(angle);</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;    rotation[2][2] =  cos(angle);</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;    <span class="keywordflow">if</span> (display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a48c46c118e4765ef06596f6341c8f23f">swap_buffers_with_damage</a>)</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;        eglQuerySurface(display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">dpy</a>, window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a8de0059f3f1cb0dec33fba1143b7dee1">egl_surface</a>,</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;                <a class="code" href="../../de/da4/simple-egl_8cpp.html#a7045d8a6b4857f268a62fab2de2021fd">EGL_BUFFER_AGE_EXT</a>, &amp;buffer_age);</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;    glViewport(0, 0, window-&gt;geometry.width, window-&gt;geometry.height);</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;    glUniformMatrix4fv(window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a6975a930e9a3c166f8201fc4ef5e7728">gl</a>.<a class="code" href="../../d6/de3/structwindow.html#a5202f3b60e262a6fa4fcee68dd47cb67">rotation_uniform</a>, 1, GL_FALSE,</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;               (GLfloat *) rotation);</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;    glClearColor(0.0, 0.0, 0.0, 0.5);</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;    glClear(GL_COLOR_BUFFER_BIT);</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;    glVertexAttribPointer(window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a6975a930e9a3c166f8201fc4ef5e7728">gl</a>.<a class="code" href="../../d6/de3/structwindow.html#aaf965f90f9fc938db2315ff62028c362">pos</a>, 2, GL_FLOAT, GL_FALSE, 0, verts);</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;    glVertexAttribPointer(window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a6975a930e9a3c166f8201fc4ef5e7728">gl</a>.<a class="code" href="../../d6/de3/structwindow.html#aef10fe94766ccd4831ee611c5ad0e55c">col</a>, 3, GL_FLOAT, GL_FALSE, 0, colors);</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;    glEnableVertexAttribArray(window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a6975a930e9a3c166f8201fc4ef5e7728">gl</a>.<a class="code" href="../../d6/de3/structwindow.html#aaf965f90f9fc938db2315ff62028c362">pos</a>);</div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;    glEnableVertexAttribArray(window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a6975a930e9a3c166f8201fc4ef5e7728">gl</a>.<a class="code" href="../../d6/de3/structwindow.html#aef10fe94766ccd4831ee611c5ad0e55c">col</a>);</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;    glDrawArrays(GL_TRIANGLES, 0, 3);</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;    glDisableVertexAttribArray(window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a6975a930e9a3c166f8201fc4ef5e7728">gl</a>.<a class="code" href="../../d6/de3/structwindow.html#aaf965f90f9fc938db2315ff62028c362">pos</a>);</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;    glDisableVertexAttribArray(window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a6975a930e9a3c166f8201fc4ef5e7728">gl</a>.<a class="code" href="../../d6/de3/structwindow.html#aef10fe94766ccd4831ee611c5ad0e55c">col</a>);</div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;    <span class="keywordflow">if</span> (window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a026a50808d8323a5a73d585c19916fa8">opaque</a> || window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a8da44798a9e1feb7ed3fbd18ec3a28b6">fullscreen</a>) {</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;        region = wl_compositor_create_region(window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a129486f2bd23791194f389ca1405cfd4">display</a>-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a41ba32dfde812165dda5b62885000c78">compositor</a>);</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;        wl_region_add(region, 0, 0,</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;                  window-&gt;geometry.width,</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;                  window-&gt;geometry.height);</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;        wl_surface_set_opaque_region(window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a7d0790cfc7c30621611fa26ab5c1ae97">surface</a>, region);</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;        wl_region_destroy(region);</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;        wl_surface_set_opaque_region(window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a7d0790cfc7c30621611fa26ab5c1ae97">surface</a>, NULL);</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;    }</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;    <span class="keywordflow">if</span> (display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a48c46c118e4765ef06596f6341c8f23f">swap_buffers_with_damage</a> &amp;&amp; buffer_age &gt; 0) {</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;        rect[0] = window-&gt;geometry.width / 4 - 1;</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;        rect[1] = window-&gt;geometry.height / 4 - 1;</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;        rect[2] = window-&gt;geometry.width / 2 + 2;</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;        rect[3] = window-&gt;geometry.height / 2 + 2;</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;        display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a48c46c118e4765ef06596f6341c8f23f">swap_buffers_with_damage</a>(display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">dpy</a>,</div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;                          window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a8de0059f3f1cb0dec33fba1143b7dee1">egl_surface</a>,</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;                          rect, 1);</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;        eglSwapBuffers(display-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">dpy</a>, window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a8de0059f3f1cb0dec33fba1143b7dee1">egl_surface</a>);</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;    }</div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;    window-&gt;<a class="code" href="../../d6/de3/structwindow.html#a633864bb495ec265bee220a5c70cc98f">frames</a>++;</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;}</div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#af288e02a94c196a68b327fc55c049932">  493</a></span>&#160;<a class="code" href="../../de/da4/simple-egl_8cpp.html#af288e02a94c196a68b327fc55c049932">registry_handle_global</a>(<span class="keywordtype">void</span> *data, <span class="keyword">struct</span> wl_registry *registry,</div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;               uint32_t name, <span class="keyword">const</span> <span class="keywordtype">char</span> *interface, uint32_t version)</div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;{</div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;    <span class="keyword">struct </span><a class="code" href="../../d6/df5/structdisplay.html">display</a> *d = data;</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;</div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;    <span class="keywordflow">if</span> (strcmp(interface, <span class="stringliteral">&quot;wl_compositor&quot;</span>) == 0) {</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;        d-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a41ba32dfde812165dda5b62885000c78">compositor</a> =</div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;            wl_registry_bind(registry, name,</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;                     &amp;wl_compositor_interface, 1);</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (strcmp(interface, <span class="stringliteral">&quot;ivi_application&quot;</span>) == 0) {</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;        d-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a24c073faff3bb4799c2d46291f27ab89">ivi_application</a> =</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;            wl_registry_bind(registry, name,</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;                     &amp;<a class="code" href="../../de/da4/simple-egl_8cpp.html#a769b65b7b0e834f732f1f45e835890d5">ivi_application_interface</a>, 1);</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;    }</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;}</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a59a731b9efa9d6a2015cdc8ccae1db80">  510</a></span>&#160;<a class="code" href="../../de/da4/simple-egl_8cpp.html#a59a731b9efa9d6a2015cdc8ccae1db80">registry_handle_global_remove</a>(<span class="keywordtype">void</span> *data, <span class="keyword">struct</span> wl_registry *<a class="code" href="../../d6/df5/structdisplay.html#a925781323f5c8eb84ef2225ed129de4b">registry</a>,</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;                  uint32_t name)</div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;{</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;}</div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;</div><div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a8998c87c94cd7d185e8f0cdafab4b1c4">  515</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">struct </span>wl_registry_listener <a class="code" href="../../de/da4/simple-egl_8cpp.html#a8998c87c94cd7d185e8f0cdafab4b1c4">registry_listener</a> = {</div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;    <a class="code" href="../../de/da4/simple-egl_8cpp.html#af288e02a94c196a68b327fc55c049932">registry_handle_global</a>,</div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;    <a class="code" href="../../de/da4/simple-egl_8cpp.html#a59a731b9efa9d6a2015cdc8ccae1db80">registry_handle_global_remove</a></div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;};</div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;</div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a2cfc8c2d3fc1273ba8f811d2e639aec8">  521</a></span>&#160;<a class="code" href="../../de/da4/simple-egl_8cpp.html#a2cfc8c2d3fc1273ba8f811d2e639aec8">signal_int</a>(<span class="keywordtype">int</span> signum)</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;{</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;    <a class="code" href="../../de/da4/simple-egl_8cpp.html#a2f45113638a0b749a8a205d2cd7fb42b">running</a> = 0;</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;}</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;<span class="keywordtype">int</span></div><div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a644e25276ecdea04f2aa3412c1973927">  527</a></span>&#160;<a class="code" href="../../de/da4/simple-egl_8cpp.html#a644e25276ecdea04f2aa3412c1973927">init_wm</a>(LibWindowmanager *<a class="code" href="../../de/da4/simple-egl_8cpp.html#ad1513698e07197206c290f94d7669d85">wm</a>, <span class="keyword">struct</span> <a class="code" href="../../d6/de3/structwindow.html">window</a> *<a class="code" href="../../d6/de3/structwindow.html">window</a>)</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;{</div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;    <a class="code" href="../../d2/d66/include_2hmi-debug_8h.html#a0d26d8b8201011dade787236519711c0">HMI_DEBUG</a>(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a894f18168fa25101d792262f59846938">log_prefix</a>,<span class="stringliteral">&quot;called&quot;</span>);</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;</div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;    <span class="keywordflow">if</span> (wm-&gt;init(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a300b6806fe6818927fe4df08f2398124">port</a>, <a class="code" href="../../de/da4/simple-egl_8cpp.html#a623ef6987ef3bd185c07b28b13e46d34">token</a>) != 0) {</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;        <a class="code" href="../../d2/d66/include_2hmi-debug_8h.html#a65bb6c7cfe38f8a724beab5059d36fb2">HMI_ERROR</a>(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a894f18168fa25101d792262f59846938">log_prefix</a>,<span class="stringliteral">&quot;wm init failed. &quot;</span>);</div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;        <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;    }</div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;    <a class="code" href="../../de/da4/simple-egl_8cpp.html#a28f56c9f01ed9f108201950645317cc9">g_id_ivisurf</a> = wm-&gt;requestSurface(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a332251aa739a56836cd4fbf3ecbb8bb2">main_role</a>);</div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="../../de/da4/simple-egl_8cpp.html#a28f56c9f01ed9f108201950645317cc9">g_id_ivisurf</a> &lt; 0) {</div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;        <a class="code" href="../../d2/d66/include_2hmi-debug_8h.html#a65bb6c7cfe38f8a724beab5059d36fb2">HMI_ERROR</a>(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a894f18168fa25101d792262f59846938">log_prefix</a>,<span class="stringliteral">&quot;wm request surface failed &quot;</span>);</div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;        <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;    }</div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;    <a class="code" href="../../d2/d66/include_2hmi-debug_8h.html#a0d26d8b8201011dade787236519711c0">HMI_DEBUG</a>(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a894f18168fa25101d792262f59846938">log_prefix</a>,<span class="stringliteral">&quot;IVI_SURFACE_ID: %d &quot;</span>, <a class="code" href="../../de/da4/simple-egl_8cpp.html#a28f56c9f01ed9f108201950645317cc9">g_id_ivisurf</a>);</div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;</div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;    WMHandler wmh;</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;    wmh.on_visible = [](<span class="keyword">const</span> <span class="keywordtype">char</span>* role, <span class="keywordtype">bool</span> visible){</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;        <span class="comment">// Sample code if user uses visible event</span></div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;        <a class="code" href="../../d2/d66/include_2hmi-debug_8h.html#a0d26d8b8201011dade787236519711c0">HMI_DEBUG</a>(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a894f18168fa25101d792262f59846938">log_prefix</a>, <span class="stringliteral">&quot;role: %s, visible: %s&quot;</span>, role, visible ? <span class="stringliteral">&quot;true&quot;</span> : <span class="stringliteral">&quot;false&quot;</span>);</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;    };</div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;    wmh.on_sync_draw = [<a class="code" href="../../de/da4/simple-egl_8cpp.html#ad1513698e07197206c290f94d7669d85">wm</a>, window](<span class="keyword">const</span> <span class="keywordtype">char</span>* role, <span class="keyword">const</span> <span class="keywordtype">char</span>* area, Rect rect) {</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;        <a class="code" href="../../d2/d66/include_2hmi-debug_8h.html#a0d26d8b8201011dade787236519711c0">HMI_DEBUG</a>(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a894f18168fa25101d792262f59846938">log_prefix</a>,<span class="stringliteral">&quot;Surface %s got syncDraw! Area: %s. w:%d, h:%d&quot;</span>, role, area, rect.width(), rect.height());</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;        wl_egl_window_resize(window-&gt;<a class="code" href="../../d6/de3/structwindow.html#ae41be0955d0e73530e1bc13dfeb9d731">native</a>, rect.width(), rect.height(), 0, 0);</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;        window-&gt;geometry.width  = rect.width();</div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;        window-&gt;geometry.height = rect.height();</div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;</div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;        wm-&gt;endDraw(role);</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;    };</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;</div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;    wm-&gt;setEventHandler(wmh);</div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;</div><div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;    <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;}</div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;</div><div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;<span class="keywordtype">int</span></div><div class="line"><a name="l00565"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a79aafeb99915566dd3970246f465f306">  565</a></span>&#160;<a class="code" href="../../de/da4/simple-egl_8cpp.html#a79aafeb99915566dd3970246f465f306">init_hs</a>(<a class="code" href="../../de/dd0/class_lib_home_screen.html">LibHomeScreen</a>* hs){</div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;    <span class="keywordflow">if</span>(hs-&gt;<a class="code" href="../../de/dd0/class_lib_home_screen.html#a6a57b573cc767725762ba9beab032220">init</a>(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a300b6806fe6818927fe4df08f2398124">port</a>, <a class="code" href="../../de/da4/simple-egl_8cpp.html#a623ef6987ef3bd185c07b28b13e46d34">token</a>)!=0)</div><div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;    {</div><div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;        <a class="code" href="../../d2/d66/include_2hmi-debug_8h.html#a65bb6c7cfe38f8a724beab5059d36fb2">HMI_ERROR</a>(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a894f18168fa25101d792262f59846938">log_prefix</a>,<span class="stringliteral">&quot;homescreen init failed. &quot;</span>);</div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;        <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;    }</div><div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;    hs-&gt;<a class="code" href="../../de/dd0/class_lib_home_screen.html#ab1b0e08bf35415de9064afed899e9f85">set_event_handler</a>(<a class="code" href="../../de/dd0/class_lib_home_screen.html#a82616c91ac211d2ad08e709b524bf154a3fb3563c64786f1a2ae404df6edffd5c">LibHomeScreen::Event_ShowWindow</a>, [hs](json_object *<span class="keywordtype">object</span>){</div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;        <a class="code" href="../../d2/d66/include_2hmi-debug_8h.html#a0d26d8b8201011dade787236519711c0">HMI_DEBUG</a>(<span class="stringliteral">&quot;simple-egl&quot;</span>,<span class="stringliteral">&quot;try to activeWindow %s &quot;</span>, <a class="code" href="../../de/da4/simple-egl_8cpp.html#a0da928eccfc57d1dfadfd29d4ac4854c">app_name</a>.c_str());</div><div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;</div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;        <span class="keyword">struct </span>json_object *param_obj = json_object_object_get(<span class="keywordtype">object</span>, hs-&gt;<a class="code" href="../../de/dd0/class_lib_home_screen.html#a927592eff8e34efbbceaf12522f8897f">_keyParameter</a>);</div><div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span> *area = json_object_get_string(</div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;            json_object_object_get(param_obj, hs-&gt;<a class="code" href="../../de/dd0/class_lib_home_screen.html#a8becda1b035ae45f5a11c7e7963091bf">_keyArea</a>));</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;        <span class="comment">// Application should call LibWindowmanager::activateWindow() in showWindow handler</span></div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;        <span class="keywordflow">if</span>(area == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;            <a class="code" href="../../de/da4/simple-egl_8cpp.html#ad1513698e07197206c290f94d7669d85">wm</a>-&gt;activateWindow(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a332251aa739a56836cd4fbf3ecbb8bb2">main_role</a>, hs-&gt;<a class="code" href="../../de/dd0/class_lib_home_screen.html#aac718b60b83c74e2b061f6f7f7ec3bf5">_areaNormal</a>);</div><div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;            <a class="code" href="../../de/da4/simple-egl_8cpp.html#ad1513698e07197206c290f94d7669d85">wm</a>-&gt;activateWindow(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a332251aa739a56836cd4fbf3ecbb8bb2">main_role</a>, area);</div><div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;    });</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;</div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;    <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;}</div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;</div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;<span class="keywordtype">int</span></div><div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="../../de/da4/simple-egl_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">  589</a></span>&#160;<a class="code" href="../../de/da4/simple-egl_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;{</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;    <span class="keyword">struct </span>sigaction sigint;</div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;    <span class="keyword">struct </span><a class="code" href="../../d6/de3/structwindow.html">window</a>  window  = { 0 };</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;    <span class="keyword">struct </span><a class="code" href="../../d6/df5/structdisplay.html">display</a> display = { 0 };</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;    window.<a class="code" href="../../d6/de3/structwindow.html#a129486f2bd23791194f389ca1405cfd4">display</a> = &amp;<a class="code" href="../../d6/df5/structdisplay.html#aa8faf09631925e9221fd8a0c086ce75a">display</a>;</div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;    display.<a class="code" href="../../d6/df5/structdisplay.html#a9974d560bec291487ae2440f897ffc58">window</a> = &amp;<a class="code" href="../../d6/df5/structdisplay.html#a9974d560bec291487ae2440f897ffc58">window</a>;</div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;    window.geometry.width  = 1080;</div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;    window.geometry.height = 1488;</div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;    window.<a class="code" href="../../d6/de3/structwindow.html#ad2b6c8ed8044b41fd1189a0ce26d539a">window_size</a> = window.geometry;</div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;    window.<a class="code" href="../../d6/de3/structwindow.html#a0e634038f669aff472012f25ea250b40">buffer_size</a> = 32;</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;    window.<a class="code" href="../../d6/de3/structwindow.html#a851bcb65083f5ab5ff768b09522bed70">frame_sync</a> = 1;</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;</div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;    <span class="keywordflow">if</span>(argc &gt; 2){</div><div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;        <a class="code" href="../../de/da4/simple-egl_8cpp.html#a300b6806fe6818927fe4df08f2398124">port</a> = strtol(argv[1], NULL, 10);</div><div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;        <a class="code" href="../../de/da4/simple-egl_8cpp.html#a623ef6987ef3bd185c07b28b13e46d34">token</a> = argv[2];</div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;    }</div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;    <a class="code" href="../../d2/d66/include_2hmi-debug_8h.html#a0d26d8b8201011dade787236519711c0">HMI_DEBUG</a>(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a894f18168fa25101d792262f59846938">log_prefix</a>,<span class="stringliteral">&quot;main_role: %s, port: %d, token: %s. &quot;</span>, <a class="code" href="../../de/da4/simple-egl_8cpp.html#a332251aa739a56836cd4fbf3ecbb8bb2">main_role</a>, <a class="code" href="../../de/da4/simple-egl_8cpp.html#a300b6806fe6818927fe4df08f2398124">port</a>, <a class="code" href="../../de/da4/simple-egl_8cpp.html#a623ef6987ef3bd185c07b28b13e46d34">token</a>.c_str());</div><div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;    display.<a class="code" href="../../d6/df5/structdisplay.html#aa8faf09631925e9221fd8a0c086ce75a">display</a> = wl_display_connect(NULL);</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;    assert(display.<a class="code" href="../../d6/df5/structdisplay.html#aa8faf09631925e9221fd8a0c086ce75a">display</a>);</div><div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;    display.<a class="code" href="../../d6/df5/structdisplay.html#a925781323f5c8eb84ef2225ed129de4b">registry</a> = wl_display_get_registry(display.<a class="code" href="../../d6/df5/structdisplay.html#aa8faf09631925e9221fd8a0c086ce75a">display</a>);</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;    wl_registry_add_listener(display.<a class="code" href="../../d6/df5/structdisplay.html#a925781323f5c8eb84ef2225ed129de4b">registry</a>,</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;                 &amp;<a class="code" href="../../de/da4/simple-egl_8cpp.html#a8998c87c94cd7d185e8f0cdafab4b1c4">registry_listener</a>, &amp;display);</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;</div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;    wl_display_roundtrip(display.<a class="code" href="../../d6/df5/structdisplay.html#aa8faf09631925e9221fd8a0c086ce75a">display</a>);</div><div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;</div><div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;    <a class="code" href="../../de/da4/simple-egl_8cpp.html#a1073d4aca1838d3877fe577d813700fc">init_egl</a>(&amp;display, &amp;window);</div><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;</div><div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;    <a class="code" href="../../de/da4/simple-egl_8cpp.html#ad1513698e07197206c290f94d7669d85">wm</a> = <span class="keyword">new</span> LibWindowmanager();</div><div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a644e25276ecdea04f2aa3412c1973927">init_wm</a>(<a class="code" href="../../de/da4/simple-egl_8cpp.html#ad1513698e07197206c290f94d7669d85">wm</a>, &amp;window)!=0){</div><div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;        <a class="code" href="../../de/da4/simple-egl_8cpp.html#a4f71f46ede5b73bd7c770c973826f771">fini_egl</a>(&amp;display);</div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;        <span class="keywordflow">if</span> (display.<a class="code" href="../../d6/df5/structdisplay.html#a24c073faff3bb4799c2d46291f27ab89">ivi_application</a>)</div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;            ivi_application_destroy(display.<a class="code" href="../../d6/df5/structdisplay.html#a24c073faff3bb4799c2d46291f27ab89">ivi_application</a>);</div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;        <span class="keywordflow">if</span> (display.<a class="code" href="../../d6/df5/structdisplay.html#a41ba32dfde812165dda5b62885000c78">compositor</a>)</div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;            wl_compositor_destroy(display.<a class="code" href="../../d6/df5/structdisplay.html#a41ba32dfde812165dda5b62885000c78">compositor</a>);</div><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;        wl_registry_destroy(display.<a class="code" href="../../d6/df5/structdisplay.html#a925781323f5c8eb84ef2225ed129de4b">registry</a>);</div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;        wl_display_flush(display.<a class="code" href="../../d6/df5/structdisplay.html#aa8faf09631925e9221fd8a0c086ce75a">display</a>);</div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;        <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;    }</div><div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;</div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;    hs = <span class="keyword">new</span> <a class="code" href="../../de/dd0/class_lib_home_screen.html">LibHomeScreen</a>();</div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a79aafeb99915566dd3970246f465f306">init_hs</a>(hs)!=0){</div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;        <a class="code" href="../../de/da4/simple-egl_8cpp.html#a4f71f46ede5b73bd7c770c973826f771">fini_egl</a>(&amp;display);</div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;        <span class="keywordflow">if</span> (display.<a class="code" href="../../d6/df5/structdisplay.html#a24c073faff3bb4799c2d46291f27ab89">ivi_application</a>)</div><div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;            ivi_application_destroy(display.<a class="code" href="../../d6/df5/structdisplay.html#a24c073faff3bb4799c2d46291f27ab89">ivi_application</a>);</div><div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;        <span class="keywordflow">if</span> (display.<a class="code" href="../../d6/df5/structdisplay.html#a41ba32dfde812165dda5b62885000c78">compositor</a>)</div><div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;            wl_compositor_destroy(display.<a class="code" href="../../d6/df5/structdisplay.html#a41ba32dfde812165dda5b62885000c78">compositor</a>);</div><div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;        wl_registry_destroy(display.<a class="code" href="../../d6/df5/structdisplay.html#a925781323f5c8eb84ef2225ed129de4b">registry</a>);</div><div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;        wl_display_flush(display.<a class="code" href="../../d6/df5/structdisplay.html#aa8faf09631925e9221fd8a0c086ce75a">display</a>);</div><div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;        <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;    }</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;</div><div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;    <a class="code" href="../../de/da4/simple-egl_8cpp.html#a83c7f2e34bbc715d97f0642def708293">create_surface</a>(&amp;window);</div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;    <a class="code" href="../../de/da4/simple-egl_8cpp.html#ab3ee863fa45f4026f78f592d6f6e34ff">init_gl</a>(&amp;window);</div><div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;</div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;    <span class="comment">//Ctrl+C</span></div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;    sigint.sa_handler = <a class="code" href="../../de/da4/simple-egl_8cpp.html#a2cfc8c2d3fc1273ba8f811d2e639aec8">signal_int</a>;</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;    sigemptyset(&amp;sigint.sa_mask);</div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;    sigint.sa_flags = SA_RESETHAND;</div><div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;    sigaction(SIGINT, &amp;sigint, NULL);</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;    eglSwapBuffers(window.<a class="code" href="../../d6/de3/structwindow.html#a129486f2bd23791194f389ca1405cfd4">display</a>-&gt;<a class="code" href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">egl</a>.<a class="code" href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">dpy</a>, window.<a class="code" href="../../d6/de3/structwindow.html#a8de0059f3f1cb0dec33fba1143b7dee1">egl_surface</a>);</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;</div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;    <a class="code" href="../../de/da4/simple-egl_8cpp.html#ad1513698e07197206c290f94d7669d85">wm</a>-&gt;activateWindow(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a332251aa739a56836cd4fbf3ecbb8bb2">main_role</a>);</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;</div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;    <span class="comment">/* The mainloop here is a little subtle.  Redrawing will cause</span></div><div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;<span class="comment">     * EGL to read events so we can just call</span></div><div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;<span class="comment">     * wl_display_dispatch_pending() to handle any events that got</span></div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;<span class="comment">     * queued up as a side effect. */</span></div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;    <span class="keywordflow">while</span> (<a class="code" href="../../de/da4/simple-egl_8cpp.html#a2f45113638a0b749a8a205d2cd7fb42b">running</a>) {</div><div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;        wl_display_dispatch_pending(display.<a class="code" href="../../d6/df5/structdisplay.html#aa8faf09631925e9221fd8a0c086ce75a">display</a>);</div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;        <a class="code" href="../../de/da4/simple-egl_8cpp.html#a927502f6103ec35422eead39e62ab7ba">redraw</a>(&amp;window, NULL, 0);</div><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;    }</div><div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;</div><div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;    <a class="code" href="../../d2/d66/include_2hmi-debug_8h.html#a0d26d8b8201011dade787236519711c0">HMI_DEBUG</a>(<a class="code" href="../../de/da4/simple-egl_8cpp.html#a894f18168fa25101d792262f59846938">log_prefix</a>,<span class="stringliteral">&quot;simple-egl exiting! &quot;</span>);</div><div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;</div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;    <a class="code" href="../../de/da4/simple-egl_8cpp.html#aba2ea9aa51701e52d4f36b4f34cecf7a">destroy_surface</a>(&amp;window);</div><div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;    <a class="code" href="../../de/da4/simple-egl_8cpp.html#a4f71f46ede5b73bd7c770c973826f771">fini_egl</a>(&amp;display);</div><div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;</div><div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;    <span class="keywordflow">if</span> (display.<a class="code" href="../../d6/df5/structdisplay.html#a24c073faff3bb4799c2d46291f27ab89">ivi_application</a>)</div><div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;        ivi_application_destroy(display.<a class="code" href="../../d6/df5/structdisplay.html#a24c073faff3bb4799c2d46291f27ab89">ivi_application</a>);</div><div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;</div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;    <span class="keywordflow">if</span> (display.<a class="code" href="../../d6/df5/structdisplay.html#a41ba32dfde812165dda5b62885000c78">compositor</a>)</div><div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;        wl_compositor_destroy(display.<a class="code" href="../../d6/df5/structdisplay.html#a41ba32dfde812165dda5b62885000c78">compositor</a>);</div><div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;</div><div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;    wl_registry_destroy(display.<a class="code" href="../../d6/df5/structdisplay.html#a925781323f5c8eb84ef2225ed129de4b">registry</a>);</div><div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;    wl_display_flush(display.<a class="code" href="../../d6/df5/structdisplay.html#aa8faf09631925e9221fd8a0c086ce75a">display</a>);</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;    wl_display_disconnect(display.<a class="code" href="../../d6/df5/structdisplay.html#aa8faf09631925e9221fd8a0c086ce75a">display</a>);</div><div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;</div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;    <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;}</div><div class="ttc" id="simple-egl_8cpp_html_ac848f4fbf712a9ba414272fa85577791"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#ac848f4fbf712a9ba414272fa85577791">ivi_surface_events</a></div><div class="ttdeci">static const struct wl_message ivi_surface_events[]</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00081">simple-egl.cpp:81</a></div></div>
<div class="ttc" id="structdisplay_html_a9974d560bec291487ae2440f897ffc58"><div class="ttname"><a href="../../d6/df5/structdisplay.html#a9974d560bec291487ae2440f897ffc58">display::window</a></div><div class="ttdeci">struct window * window</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00126">simple-egl.cpp:126</a></div></div>
<div class="ttc" id="structdisplay_html"><div class="ttname"><a href="../../d6/df5/structdisplay.html">display</a></div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00116">simple-egl.cpp:116</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_af288e02a94c196a68b327fc55c049932"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#af288e02a94c196a68b327fc55c049932">registry_handle_global</a></div><div class="ttdeci">static void registry_handle_global(void *data, struct wl_registry *registry, uint32_t name, const char *interface, uint32_t version)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00493">simple-egl.cpp:493</a></div></div>
<div class="ttc" id="structwindow_html_a5202f3b60e262a6fa4fcee68dd47cb67"><div class="ttname"><a href="../../d6/de3/structwindow.html#a5202f3b60e262a6fa4fcee68dd47cb67">window::rotation_uniform</a></div><div class="ttdeci">GLuint rotation_uniform</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00140">simple-egl.cpp:140</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_ad1513698e07197206c290f94d7669d85"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#ad1513698e07197206c290f94d7669d85">wm</a></div><div class="ttdeci">LibWindowmanager * wm</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00067">simple-egl.cpp:67</a></div></div>
<div class="ttc" id="structdisplay_html_a9dd8fd9967beb6b3767bd93011373bb8"><div class="ttname"><a href="../../d6/df5/structdisplay.html#a9dd8fd9967beb6b3767bd93011373bb8">display::seat</a></div><div class="ttdeci">struct wl_seat * seat</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00120">simple-egl.cpp:120</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_ab3ee863fa45f4026f78f592d6f6e34ff"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#ab3ee863fa45f4026f78f592d6f6e34ff">init_gl</a></div><div class="ttdeci">static void init_gl(struct window *window)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00285">simple-egl.cpp:285</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a28f56c9f01ed9f108201950645317cc9"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a28f56c9f01ed9f108201950645317cc9">g_id_ivisurf</a></div><div class="ttdeci">uint32_t g_id_ivisurf</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00059">simple-egl.cpp:59</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a644e25276ecdea04f2aa3412c1973927"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a644e25276ecdea04f2aa3412c1973927">init_wm</a></div><div class="ttdeci">int init_wm(LibWindowmanager *wm, struct window *window)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00527">simple-egl.cpp:527</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a0720952aa1caded45b5bcdce589663a9"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a0720952aa1caded45b5bcdce589663a9">surface</a></div><div class="ttdeci">EGLSurface surface</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00105">simple-egl.cpp:105</a></div></div>
<div class="ttc" id="structwindow_html_a6975a930e9a3c166f8201fc4ef5e7728"><div class="ttname"><a href="../../d6/de3/structwindow.html#a6975a930e9a3c166f8201fc4ef5e7728">window::gl</a></div><div class="ttdeci">struct window::@1 gl</div></div>
<div class="ttc" id="simple-egl_8cpp_html_adf384de8d12d2edd7265ab85fd16b11c"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#adf384de8d12d2edd7265ab85fd16b11c">ivi_surface_interface</a></div><div class="ttdeci">const struct wl_interface ivi_surface_interface</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00085">simple-egl.cpp:85</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a332251aa739a56836cd4fbf3ecbb8bb2"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a332251aa739a56836cd4fbf3ecbb8bb2">main_role</a></div><div class="ttdeci">const char * main_role</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00064">simple-egl.cpp:64</a></div></div>
<div class="ttc" id="structwindow_html_a72629bf021a361ad900504732a74cb68"><div class="ttname"><a href="../../d6/de3/structwindow.html#a72629bf021a361ad900504732a74cb68">window::benchmark_time</a></div><div class="ttdeci">uint32_t benchmark_time</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00145">simple-egl.cpp:145</a></div></div>
<div class="ttc" id="namespacestd_html"><div class="ttname"><a href="../../d8/dcc/namespacestd.html">std</a></div></div>
<div class="ttc" id="structwindow_html_a026a50808d8323a5a73d585c19916fa8"><div class="ttname"><a href="../../d6/de3/structwindow.html#a026a50808d8323a5a73d585c19916fa8">window::opaque</a></div><div class="ttdeci">int opaque</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00151">simple-egl.cpp:151</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_ab4ad070d3bf82abe5e70330578f67893"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#ab4ad070d3bf82abe5e70330578f67893">EGLBoolean</a></div><div class="ttdeci">typedef EGLBoolean(EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC)(EGLDisplay dpy</div></div>
<div class="ttc" id="simple-egl_8cpp_html_a56616f7ca3fc53c0da41d05de9330b11"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a56616f7ca3fc53c0da41d05de9330b11">rects</a></div><div class="ttdeci">EGLSurface EGLint * rects</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00105">simple-egl.cpp:105</a></div></div>
<div class="ttc" id="libhomescreen_8hpp_html"><div class="ttname"><a href="../../df/d43/libhomescreen_8hpp.html">libhomescreen.hpp</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_aea3203db9e218d3e5d60bdb4ebe2fa1f"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#aea3203db9e218d3e5d60bdb4ebe2fa1f">types</a></div><div class="ttdeci">static const struct wl_interface * types[]</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00069">simple-egl.cpp:69</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a21a39b7c6cf5f6d10a62a70b3ebc9bad"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a21a39b7c6cf5f6d10a62a70b3ebc9bad">ivi_application_requests</a></div><div class="ttdeci">static const struct wl_message ivi_application_requests[]</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00091">simple-egl.cpp:91</a></div></div>
<div class="ttc" id="class_lib_home_screen_html_a927592eff8e34efbbceaf12522f8897f"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html#a927592eff8e34efbbceaf12522f8897f">LibHomeScreen::_keyParameter</a></div><div class="ttdeci">const char * _keyParameter</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d43/libhomescreen_8hpp_source.html#l00054">libhomescreen.hpp:54</a></div></div>
<div class="ttc" id="structdisplay_html_a8a1cbda15a286e41e89a85f158ce9311"><div class="ttname"><a href="../../d6/df5/structdisplay.html#a8a1cbda15a286e41e89a85f158ce9311">display::dpy</a></div><div class="ttdeci">EGLDisplay dpy</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00122">simple-egl.cpp:122</a></div></div>
<div class="ttc" id="structwindow_html_a8de0059f3f1cb0dec33fba1143b7dee1"><div class="ttname"><a href="../../d6/de3/structwindow.html#a8de0059f3f1cb0dec33fba1143b7dee1">window::egl_surface</a></div><div class="ttdeci">EGLSurface egl_surface</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00149">simple-egl.cpp:149</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a0da928eccfc57d1dfadfd29d4ac4854c"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a0da928eccfc57d1dfadfd29d4ac4854c">app_name</a></div><div class="ttdeci">string app_name</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00063">simple-egl.cpp:63</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_ab72c580e4d6d47c2fb49c72cc76b85bb"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#ab72c580e4d6d47c2fb49c72cc76b85bb">create_shader</a></div><div class="ttdeci">static GLuint create_shader(struct window *window, const char *source, GLenum shader_type)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00259">simple-egl.cpp:259</a></div></div>
<div class="ttc" id="structwindow_html_aaf965f90f9fc938db2315ff62028c362"><div class="ttname"><a href="../../d6/de3/structwindow.html#aaf965f90f9fc938db2315ff62028c362">window::pos</a></div><div class="ttdeci">GLuint pos</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00141">simple-egl.cpp:141</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a7045d8a6b4857f268a62fab2de2021fd"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a7045d8a6b4857f268a62fab2de2021fd">EGL_BUFFER_AGE_EXT</a></div><div class="ttdeci">#define EGL_BUFFER_AGE_EXT</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00110">simple-egl.cpp:110</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a2cfc8c2d3fc1273ba8f811d2e639aec8"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a2cfc8c2d3fc1273ba8f811d2e639aec8">signal_int</a></div><div class="ttdeci">static void signal_int(int signum)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00521">simple-egl.cpp:521</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_ab5a6a2a26ac23f79b1687daa4b0d8980"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#ab5a6a2a26ac23f79b1687daa4b0d8980">frag_shader_text</a></div><div class="ttdeci">static const char * frag_shader_text</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00164">simple-egl.cpp:164</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a83c7f2e34bbc715d97f0642def708293"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a83c7f2e34bbc715d97f0642def708293">create_surface</a></div><div class="ttdeci">static void create_surface(struct window *window)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00337">simple-egl.cpp:337</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a927502f6103ec35422eead39e62ab7ba"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a927502f6103ec35422eead39e62ab7ba">redraw</a></div><div class="ttdeci">static void redraw(void *data, struct wl_callback *callback, uint32_t time)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00389">simple-egl.cpp:389</a></div></div>
<div class="ttc" id="structdisplay_html_a880aef9408b499f5b749541dc6e396c3"><div class="ttname"><a href="../../d6/df5/structdisplay.html#a880aef9408b499f5b749541dc6e396c3">display::conf</a></div><div class="ttdeci">EGLConfig conf</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00124">simple-egl.cpp:124</a></div></div>
<div class="ttc" id="class_lib_home_screen_html_a82616c91ac211d2ad08e709b524bf154a3fb3563c64786f1a2ae404df6edffd5c"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html#a82616c91ac211d2ad08e709b524bf154a3fb3563c64786f1a2ae404df6edffd5c">LibHomeScreen::Event_ShowWindow</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/d43/libhomescreen_8hpp_source.html#l00043">libhomescreen.hpp:43</a></div></div>
<div class="ttc" id="structwindow_html_ae41be0955d0e73530e1bc13dfeb9d731"><div class="ttname"><a href="../../d6/de3/structwindow.html#ae41be0955d0e73530e1bc13dfeb9d731">window::native</a></div><div class="ttdeci">struct wl_egl_window * native</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00146">simple-egl.cpp:146</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_aa6a11810244355f89e6c4961b9dd3b53"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#aa6a11810244355f89e6c4961b9dd3b53">n_rects</a></div><div class="ttdeci">EGLSurface EGLint EGLint n_rects</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00105">simple-egl.cpp:105</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a623ef6987ef3bd185c07b28b13e46d34"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a623ef6987ef3bd185c07b28b13e46d34">token</a></div><div class="ttdeci">string token</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00061">simple-egl.cpp:61</a></div></div>
<div class="ttc" id="structwindow_html_a7d0790cfc7c30621611fa26ab5c1ae97"><div class="ttname"><a href="../../d6/de3/structwindow.html#a7d0790cfc7c30621611fa26ab5c1ae97">window::surface</a></div><div class="ttdeci">struct wl_surface * surface</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00147">simple-egl.cpp:147</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a717575939a37d84dcd4cf0447a630834"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a717575939a37d84dcd4cf0447a630834">vert_shader_text</a></div><div class="ttdeci">static const char * vert_shader_text</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00154">simple-egl.cpp:154</a></div></div>
<div class="ttc" id="structdisplay_html_a24c073faff3bb4799c2d46291f27ab89"><div class="ttname"><a href="../../d6/df5/structdisplay.html#a24c073faff3bb4799c2d46291f27ab89">display::ivi_application</a></div><div class="ttdeci">struct ivi_application * ivi_application</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00127">simple-egl.cpp:127</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a529acbd1fed9d98a587edfa62309fa8d"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a529acbd1fed9d98a587edfa62309fa8d">hs</a></div><div class="ttdeci">LibHomeScreen * hs</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00066">simple-egl.cpp:66</a></div></div>
<div class="ttc" id="structdisplay_html_a8b8bc104c19ff228d476a377e572d9c7"><div class="ttname"><a href="../../d6/df5/structdisplay.html#a8b8bc104c19ff228d476a377e572d9c7">display::egl</a></div><div class="ttdeci">struct display::@0 egl</div></div>
<div class="ttc" id="structwindow_html_aef10fe94766ccd4831ee611c5ad0e55c"><div class="ttname"><a href="../../d6/de3/structwindow.html#aef10fe94766ccd4831ee611c5ad0e55c">window::col</a></div><div class="ttdeci">GLuint col</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00142">simple-egl.cpp:142</a></div></div>
<div class="ttc" id="structwindow_html_a35ba639556fa19d9273dad0953a6807e"><div class="ttname"><a href="../../d6/de3/structwindow.html#a35ba639556fa19d9273dad0953a6807e">window::callback</a></div><div class="ttdeci">struct wl_callback * callback</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00150">simple-egl.cpp:150</a></div></div>
<div class="ttc" id="structdisplay_html_a48c46c118e4765ef06596f6341c8f23f"><div class="ttname"><a href="../../d6/df5/structdisplay.html#a48c46c118e4765ef06596f6341c8f23f">display::swap_buffers_with_damage</a></div><div class="ttdeci">PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC swap_buffers_with_damage</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00129">simple-egl.cpp:129</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a769b65b7b0e834f732f1f45e835890d5"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a769b65b7b0e834f732f1f45e835890d5">ivi_application_interface</a></div><div class="ttdeci">const struct wl_interface ivi_application_interface</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00095">simple-egl.cpp:95</a></div></div>
<div class="ttc" id="structdisplay_html_a925781323f5c8eb84ef2225ed129de4b"><div class="ttname"><a href="../../d6/df5/structdisplay.html#a925781323f5c8eb84ef2225ed129de4b">display::registry</a></div><div class="ttdeci">struct wl_registry * registry</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00118">simple-egl.cpp:118</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a2f45113638a0b749a8a205d2cd7fb42b"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a2f45113638a0b749a8a205d2cd7fb42b">running</a></div><div class="ttdeci">static int running</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00171">simple-egl.cpp:171</a></div></div>
<div class="ttc" id="structwindow_html_a129486f2bd23791194f389ca1405cfd4"><div class="ttname"><a href="../../d6/de3/structwindow.html#a129486f2bd23791194f389ca1405cfd4">window::display</a></div><div class="ttdeci">struct display * display</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00137">simple-egl.cpp:137</a></div></div>
<div class="ttc" id="class_lib_home_screen_html_a8becda1b035ae45f5a11c7e7963091bf"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html#a8becda1b035ae45f5a11c7e7963091bf">LibHomeScreen::_keyArea</a></div><div class="ttdeci">const char * _keyArea</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d43/libhomescreen_8hpp_source.html#l00055">libhomescreen.hpp:55</a></div></div>
<div class="ttc" id="structwindow_html"><div class="ttname"><a href="../../d6/de3/structwindow.html">window</a></div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00136">simple-egl.cpp:136</a></div></div>
<div class="ttc" id="structdisplay_html_a3420940a29a710e0e5ebd41ba462cc00"><div class="ttname"><a href="../../d6/df5/structdisplay.html#a3420940a29a710e0e5ebd41ba462cc00">display::ctx</a></div><div class="ttdeci">EGLContext ctx</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00123">simple-egl.cpp:123</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a300b6806fe6818927fe4df08f2398124"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a300b6806fe6818927fe4df08f2398124">port</a></div><div class="ttdeci">long port</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00060">simple-egl.cpp:60</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a8998c87c94cd7d185e8f0cdafab4b1c4"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a8998c87c94cd7d185e8f0cdafab4b1c4">registry_listener</a></div><div class="ttdeci">static const struct wl_registry_listener registry_listener</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00515">simple-egl.cpp:515</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a0122201fe28a7f35b0fbd362fff7094e"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a0122201fe28a7f35b0fbd362fff7094e">create_ivi_surface</a></div><div class="ttdeci">static void create_ivi_surface(struct window *window, struct display *display)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00322">simple-egl.cpp:322</a></div></div>
<div class="ttc" id="structwindow_html_a40e2c6fb4178953c820fc1b9f41d4b31"><div class="ttname"><a href="../../d6/de3/structwindow.html#a40e2c6fb4178953c820fc1b9f41d4b31">window::ivi_surface</a></div><div class="ttdeci">struct ivi_surface * ivi_surface</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00148">simple-egl.cpp:148</a></div></div>
<div class="ttc" id="structwindow_html_ad2b6c8ed8044b41fd1189a0ce26d539a"><div class="ttname"><a href="../../d6/de3/structwindow.html#ad2b6c8ed8044b41fd1189a0ce26d539a">window::window_size</a></div><div class="ttdeci">struct geometry geometry window_size</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00138">simple-egl.cpp:138</a></div></div>
<div class="ttc" id="structgeometry_html_a854a87ce277335591f06958a2363c3e1"><div class="ttname"><a href="../../dd/ddc/structgeometry.html#a854a87ce277335591f06958a2363c3e1">geometry::width</a></div><div class="ttdeci">int width</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00133">simple-egl.cpp:133</a></div></div>
<div class="ttc" id="class_lib_home_screen_html_a6a57b573cc767725762ba9beab032220"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html#a6a57b573cc767725762ba9beab032220">LibHomeScreen::init</a></div><div class="ttdeci">int init(const int port, const std::string &amp;token)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d8a/libhomescreen_8cpp_source.html#l00126">libhomescreen.cpp:126</a></div></div>
<div class="ttc" id="structgeometry_html"><div class="ttname"><a href="../../dd/ddc/structgeometry.html">geometry</a></div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00132">simple-egl.cpp:132</a></div></div>
<div class="ttc" id="structwindow_html_a851bcb65083f5ab5ff768b09522bed70"><div class="ttname"><a href="../../d6/de3/structwindow.html#a851bcb65083f5ab5ff768b09522bed70">window::frame_sync</a></div><div class="ttdeci">int frame_sync</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00151">simple-egl.cpp:151</a></div></div>
<div class="ttc" id="structdisplay_html_aa8faf09631925e9221fd8a0c086ce75a"><div class="ttname"><a href="../../d6/df5/structdisplay.html#aa8faf09631925e9221fd8a0c086ce75a">display::display</a></div><div class="ttdeci">struct wl_display * display</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00117">simple-egl.cpp:117</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a4f71f46ede5b73bd7c770c973826f771"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a4f71f46ede5b73bd7c770c973826f771">fini_egl</a></div><div class="ttdeci">static void fini_egl(struct display *display)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00252">simple-egl.cpp:252</a></div></div>
<div class="ttc" id="include_2hmi-debug_8h_html_a65bb6c7cfe38f8a724beab5059d36fb2"><div class="ttname"><a href="../../d2/d66/include_2hmi-debug_8h.html#a65bb6c7cfe38f8a724beab5059d36fb2">HMI_ERROR</a></div><div class="ttdeci">#define HMI_ERROR(prefix, args,...)</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d66/include_2hmi-debug_8h_source.html#l00038">hmi-debug.h:38</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a1073d4aca1838d3877fe577d813700fc"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a1073d4aca1838d3877fe577d813700fc">init_egl</a></div><div class="ttdeci">static void init_egl(struct display *display, struct window *window)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00174">simple-egl.cpp:174</a></div></div>
<div class="ttc" id="include_2hmi-debug_8h_html_a0d26d8b8201011dade787236519711c0"><div class="ttname"><a href="../../d2/d66/include_2hmi-debug_8h.html#a0d26d8b8201011dade787236519711c0">HMI_DEBUG</a></div><div class="ttdeci">#define HMI_DEBUG(prefix, args,...)</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d66/include_2hmi-debug_8h_source.html#l00042">hmi-debug.h:42</a></div></div>
<div class="ttc" id="class_lib_home_screen_html_aac718b60b83c74e2b061f6f7f7ec3bf5"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html#aac718b60b83c74e2b061f6f7f7ec3bf5">LibHomeScreen::_areaNormal</a></div><div class="ttdeci">const char * _areaNormal</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d43/libhomescreen_8hpp_source.html#l00058">libhomescreen.hpp:58</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a59a731b9efa9d6a2015cdc8ccae1db80"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a59a731b9efa9d6a2015cdc8ccae1db80">registry_handle_global_remove</a></div><div class="ttdeci">static void registry_handle_global_remove(void *data, struct wl_registry *registry, uint32_t name)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00510">simple-egl.cpp:510</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00589">simple-egl.cpp:589</a></div></div>
<div class="ttc" id="structdisplay_html_a41ba32dfde812165dda5b62885000c78"><div class="ttname"><a href="../../d6/df5/structdisplay.html#a41ba32dfde812165dda5b62885000c78">display::compositor</a></div><div class="ttdeci">struct wl_compositor * compositor</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00119">simple-egl.cpp:119</a></div></div>
<div class="ttc" id="structwindow_html_a0e634038f669aff472012f25ea250b40"><div class="ttname"><a href="../../d6/de3/structwindow.html#a0e634038f669aff472012f25ea250b40">window::buffer_size</a></div><div class="ttdeci">int buffer_size</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00151">simple-egl.cpp:151</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a894f18168fa25101d792262f59846938"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a894f18168fa25101d792262f59846938">log_prefix</a></div><div class="ttdeci">const char * log_prefix</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00058">simple-egl.cpp:58</a></div></div>
<div class="ttc" id="class_lib_home_screen_html"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html">LibHomeScreen</a></div><div class="ttdef"><b>Definition:</b> <a href="../../df/d43/libhomescreen_8hpp_source.html#l00031">libhomescreen.hpp:31</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_aba2ea9aa51701e52d4f36b4f34cecf7a"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#aba2ea9aa51701e52d4f36b4f34cecf7a">destroy_surface</a></div><div class="ttdeci">static void destroy_surface(struct window *window)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00370">simple-egl.cpp:370</a></div></div>
<div class="ttc" id="structwindow_html_a8da44798a9e1feb7ed3fbd18ec3a28b6"><div class="ttname"><a href="../../d6/de3/structwindow.html#a8da44798a9e1feb7ed3fbd18ec3a28b6">window::fullscreen</a></div><div class="ttdeci">int fullscreen</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00151">simple-egl.cpp:151</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_a79aafeb99915566dd3970246f465f306"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#a79aafeb99915566dd3970246f465f306">init_hs</a></div><div class="ttdeci">int init_hs(LibHomeScreen *hs)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00565">simple-egl.cpp:565</a></div></div>
<div class="ttc" id="simple-egl_8cpp_html_ada80120c5590d2821da9babef808b98d"><div class="ttname"><a href="../../de/da4/simple-egl_8cpp.html#ada80120c5590d2821da9babef808b98d">ivi_surface_requests</a></div><div class="ttdeci">static const struct wl_message ivi_surface_requests[]</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00077">simple-egl.cpp:77</a></div></div>
<div class="ttc" id="structwindow_html_a633864bb495ec265bee220a5c70cc98f"><div class="ttname"><a href="../../d6/de3/structwindow.html#a633864bb495ec265bee220a5c70cc98f">window::frames</a></div><div class="ttdeci">uint32_t frames</div><div class="ttdef"><b>Definition:</b> <a href="../../de/da4/simple-egl_8cpp_source.html#l00145">simple-egl.cpp:145</a></div></div>
<div class="ttc" id="class_lib_home_screen_html_ab1b0e08bf35415de9064afed899e9f85"><div class="ttname"><a href="../../de/dd0/class_lib_home_screen.html#ab1b0e08bf35415de9064afed899e9f85">LibHomeScreen::set_event_handler</a></div><div class="ttdeci">void set_event_handler(enum EventType et, handler_func f)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d8a/libhomescreen_8cpp_source.html#l00295">libhomescreen.cpp:295</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>