This file is indexed.

/usr/share/gtk-doc/html/cogl-2.0-experimental/cogl-2.0-experimental-Versioning-utility-macros.html is in libcogl-doc 1.22.2-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Versioning utility macros: Cogl 2.0 Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="Cogl 2.0 Reference Manual">
<link rel="up" href="cogl-utilities.html" title="Utilities">
<link rel="prev" href="cogl-2.0-experimental-GPU-synchronisation-fences.html" title="GPU synchronisation fences">
<link rel="next" href="cogl-integration.html" title="Binding and Integrating">
<meta name="generator" content="GTK-Doc V1.25 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#cogl-2.0-experimental-Versioning-utility-macros.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="cogl-utilities.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="cogl-2.0-experimental-GPU-synchronisation-fences.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="cogl-integration.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="cogl-2.0-experimental-Versioning-utility-macros"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="cogl-2.0-experimental-Versioning-utility-macros.top_of_page"></a>Versioning utility macros</span></h2>
<p>Versioning utility macros — Macros for determining the version of Cogl being used</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="cogl-2.0-experimental-Versioning-utility-macros.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="cogl-2.0-experimental-Versioning-utility-macros.html#COGL-VERSION-ENCODE:CAPS" title="COGL_VERSION_ENCODE()">COGL_VERSION_ENCODE</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="cogl-2.0-experimental-Versioning-utility-macros.html#COGL-VERSION-CHECK:CAPS" title="COGL_VERSION_CHECK()">COGL_VERSION_CHECK</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="cogl-2.0-experimental-Versioning-utility-macros.html#COGL-VERSION-GET-MAJOR:CAPS" title="COGL_VERSION_GET_MAJOR()">COGL_VERSION_GET_MAJOR</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="cogl-2.0-experimental-Versioning-utility-macros.html#COGL-VERSION-GET-MINOR:CAPS" title="COGL_VERSION_GET_MINOR()">COGL_VERSION_GET_MINOR</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="cogl-2.0-experimental-Versioning-utility-macros.html#COGL-VERSION-GET-MICRO:CAPS" title="COGL_VERSION_GET_MICRO()">COGL_VERSION_GET_MICRO</a><span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="cogl-2.0-experimental-Versioning-utility-macros.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="cogl-2.0-experimental-Versioning-utility-macros.html#COGL-VERSION-MAJOR:CAPS" title="COGL_VERSION_MAJOR">COGL_VERSION_MAJOR</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="cogl-2.0-experimental-Versioning-utility-macros.html#COGL-VERSION-MINOR:CAPS" title="COGL_VERSION_MINOR">COGL_VERSION_MINOR</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="cogl-2.0-experimental-Versioning-utility-macros.html#COGL-VERSION-MICRO:CAPS" title="COGL_VERSION_MICRO">COGL_VERSION_MICRO</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="cogl-2.0-experimental-Versioning-utility-macros.html#COGL-VERSION-STRING:CAPS" title="COGL_VERSION_STRING">COGL_VERSION_STRING</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="cogl-2.0-experimental-Versioning-utility-macros.html#COGL-VERSION:CAPS" title="COGL_VERSION">COGL_VERSION</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="cogl-2.0-experimental-Versioning-utility-macros.description"></a><h2>Description</h2>
<p>Cogl offers a set of macros for checking the version of the library
at compile time.</p>
<p>Cogl adds version information to both API deprecations and additions;
by definining the macros <code class="literal">COGL_VERSION_MIN_REQUIRED</code> and
<code class="literal">COGL_VERSION_MAX_ALLOWED</code>, you can specify the range of Cogl versions
whose API you want to use. Functions that were deprecated before, or
introduced after, this range will trigger compiler warnings. For instance,
if we define the following symbols:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2</pre></td>
        <td class="listing_code"><pre class="programlisting">COGL_VERSION_MIN_REQUIRED <span class="gtkdoc opt">=</span> COGL_VERSION_1_6
COGL_VERSION_MAX_ALLOWED  <span class="gtkdoc opt">=</span> COGL_VERSION_1_8</pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<p>and we have the following functions annotated in the Cogl headers:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4</pre></td>
        <td class="listing_code"><pre class="programlisting">COGL_DEPRECATED_IN_1_4 <span class="gtkdoc kwb">void</span> <span class="function">cogl_function_A</span> <span class="gtkdoc opt">(</span><span class="gtkdoc kwb">void</span><span class="gtkdoc opt">);</span>
COGL_DEPRECATED_IN_1_6 <span class="gtkdoc kwb">void</span> <span class="function">cogl_function_B</span> <span class="gtkdoc opt">(</span><span class="gtkdoc kwb">void</span><span class="gtkdoc opt">);</span>
COGL_AVAILABLE_IN_1_8 <span class="gtkdoc kwb">void</span> <span class="function">cogl_function_C</span> <span class="gtkdoc opt">(</span><span class="gtkdoc kwb">void</span><span class="gtkdoc opt">);</span>
COGL_AVAILABLE_IN_1_10 <span class="gtkdoc kwb">void</span> <span class="function">cogl_function_D</span> <span class="gtkdoc opt">(</span><span class="gtkdoc kwb">void</span><span class="gtkdoc opt">);</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<p>then any application code using the functions above will get the output:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4</pre></td>
        <td class="listing_code"><pre class="programlisting">cogl_function_A<span class="gtkdoc opt">:</span> deprecation warning
cogl_function_B<span class="gtkdoc opt">:</span> no warning
cogl_function_C<span class="gtkdoc opt">:</span> no warning
cogl_function_D<span class="gtkdoc opt">:</span> symbol <span class="keyword">not</span> available warning</pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<p>It is possible to disable the compiler warnings by defining the macro
<code class="literal">COGL_DISABLE_DEPRECATION_WARNINGS</code> before including the cogl.h
header.</p>
</div>
<div class="refsect1">
<a name="cogl-2.0-experimental-Versioning-utility-macros.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="COGL-VERSION-ENCODE:CAPS"></a><h3>COGL_VERSION_ENCODE()</h3>
<pre class="programlisting">#define             COGL_VERSION_ENCODE(major, minor, micro)</pre>
<p>Encodes a 3 part version number into a single integer. This can be
used to compare the Cogl version. For example if there is a known
bug in Cogl versions between 1.3.2 and 1.3.4 you could use the
following code to provide a workaround:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#if COGL_VERSION &gt;= COGL_VERSION_ENCODE (1, 3, 2) &amp;&amp; \</span>
<span class="gtkdoc ppc">    COGL_VERSION &lt;= COGL_VERSION_ENCODE (1, 3, 4)</span>
  <span class="gtkdoc opt">/&lt;!-- --&gt;*</span> Do the workaround <span class="gtkdoc opt">*&lt;!-- --&gt;/</span>
<span class="gtkdoc ppc">#endif</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<div class="refsect3">
<a name="COGL-VERSION-ENCODE.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>major</p></td>
<td class="parameter_description"><p>The major part of a version number</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>minor</p></td>
<td class="parameter_description"><p>The minor part of a version number</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>micro</p></td>
<td class="parameter_description"><p>The micro part of a version number</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 1.12.0</p>
</div>
<hr>
<div class="refsect2">
<a name="COGL-VERSION-CHECK:CAPS"></a><h3>COGL_VERSION_CHECK()</h3>
<pre class="programlisting">#define             COGL_VERSION_CHECK(major, minor, micro)</pre>
<p>A convenient macro to check whether the Cogl version being compiled
against is at least the given version number. For example if the
function cogl_pipeline_frobnicate was added in version 2.0.1 and
you want to conditionally use that function when it is available,
you could write the following:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#if COGL_VERSION_CHECK (2, 0, 1)</span>
<span class="function">cogl_pipeline_frobnicate</span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">);</span>
<span class="gtkdoc ppc">#else</span>
<span class="gtkdoc opt">/&lt;!-- --&gt;*</span> Frobnication is <span class="keyword">not</span> supported<span class="gtkdoc opt">.</span> Use a red color instead <span class="gtkdoc opt">*&lt;!-- --&gt;/</span>
<span class="function">cogl_pipeline_set_color_4f</span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">,</span> <span class="number">1.0</span>f<span class="gtkdoc opt">,</span> <span class="number">0.0</span>f<span class="gtkdoc opt">,</span> <span class="number">0.0</span>f<span class="gtkdoc opt">,</span> <span class="number">1.0</span>f<span class="gtkdoc opt">);</span>
<span class="gtkdoc ppc">#endif</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<div class="refsect3">
<a name="COGL-VERSION-CHECK.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>major</p></td>
<td class="parameter_description"><p>The major part of a version number</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>minor</p></td>
<td class="parameter_description"><p>The minor part of a version number</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>micro</p></td>
<td class="parameter_description"><p>The micro part of a version number</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="COGL-VERSION-CHECK.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the Cogl version being compiled against is
greater than or equal to the given three part version number.</p>
</div>
<p class="since">Since: 1.12.0</p>
</div>
<hr>
<div class="refsect2">
<a name="COGL-VERSION-GET-MAJOR:CAPS"></a><h3>COGL_VERSION_GET_MAJOR()</h3>
<pre class="programlisting">#define             COGL_VERSION_GET_MAJOR(version)</pre>
<p>Extracts the major part of an encoded version number.</p>
<div class="refsect3">
<a name="COGL-VERSION-GET-MAJOR.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>version</p></td>
<td class="parameter_description"><p>An encoded version number</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: 1.12.0</p>
</div>
<hr>
<div class="refsect2">
<a name="COGL-VERSION-GET-MINOR:CAPS"></a><h3>COGL_VERSION_GET_MINOR()</h3>
<pre class="programlisting">#define             COGL_VERSION_GET_MINOR(version)</pre>
<p>Extracts the minor part of an encoded version number.</p>
<div class="refsect3">
<a name="COGL-VERSION-GET-MINOR.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>version</p></td>
<td class="parameter_description"><p>An encoded version number</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: 1.12.0</p>
</div>
<hr>
<div class="refsect2">
<a name="COGL-VERSION-GET-MICRO:CAPS"></a><h3>COGL_VERSION_GET_MICRO()</h3>
<pre class="programlisting">#define             COGL_VERSION_GET_MICRO(version)</pre>
<p>Extracts the micro part of an encoded version number.</p>
<div class="refsect3">
<a name="COGL-VERSION-GET-MICRO.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>version</p></td>
<td class="parameter_description"><p>An encoded version number</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: 1.12.0</p>
</div>
</div>
<div class="refsect1">
<a name="cogl-2.0-experimental-Versioning-utility-macros.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="COGL-VERSION-MAJOR:CAPS"></a><h3>COGL_VERSION_MAJOR</h3>
<pre class="programlisting">#define COGL_VERSION_MAJOR COGL_VERSION_MAJOR_INTERNAL
</pre>
<p>The major version of the Cogl library (1, if <a class="link" href="cogl-2.0-experimental-Versioning-utility-macros.html#COGL-VERSION:CAPS" title="COGL_VERSION"><code class="literal">COGL_VERSION</code></a> is 1.2.3)</p>
<p class="since">Since: 1.12.0</p>
</div>
<hr>
<div class="refsect2">
<a name="COGL-VERSION-MINOR:CAPS"></a><h3>COGL_VERSION_MINOR</h3>
<pre class="programlisting">#define COGL_VERSION_MINOR COGL_VERSION_MINOR_INTERNAL
</pre>
<p>The minor version of the Cogl library (2, if <a class="link" href="cogl-2.0-experimental-Versioning-utility-macros.html#COGL-VERSION:CAPS" title="COGL_VERSION"><code class="literal">COGL_VERSION</code></a> is 1.2.3)</p>
<p class="since">Since: 1.12.0</p>
</div>
<hr>
<div class="refsect2">
<a name="COGL-VERSION-MICRO:CAPS"></a><h3>COGL_VERSION_MICRO</h3>
<pre class="programlisting">#define COGL_VERSION_MICRO COGL_VERSION_MICRO_INTERNAL
</pre>
<p>The micro version of the Cogl library (3, if <a class="link" href="cogl-2.0-experimental-Versioning-utility-macros.html#COGL-VERSION:CAPS" title="COGL_VERSION"><code class="literal">COGL_VERSION</code></a> is 1.2.3)</p>
<p class="since">Since: 1.12.0</p>
</div>
<hr>
<div class="refsect2">
<a name="COGL-VERSION-STRING:CAPS"></a><h3>COGL_VERSION_STRING</h3>
<pre class="programlisting">#define COGL_VERSION_STRING COGL_VERSION_STRING_INTERNAL
</pre>
<p>The full version of the Cogl library, in string form (suited for
string concatenation)</p>
<p class="since">Since: 1.12.0</p>
</div>
<hr>
<div class="refsect2">
<a name="COGL-VERSION:CAPS"></a><h3>COGL_VERSION</h3>
<pre class="programlisting">#define             COGL_VERSION</pre>
<p>The Cogl version encoded into a single integer using the
<a class="link" href="cogl-2.0-experimental-Versioning-utility-macros.html#COGL-VERSION-ENCODE:CAPS" title="COGL_VERSION_ENCODE()"><code class="function">COGL_VERSION_ENCODE()</code></a> macro. This can be used for quick comparisons
with particular versions.</p>
<p class="since">Since: 1.12.0</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.25</div>
</body>
</html>