summaryrefslogtreecommitdiff
path: root/doc/reference/running-clutter.xml
blob: ca50218b200e9edbf3081d307a46c21b22398c3f (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
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
<part id="running-clutter">
  <partinfo>
    <author>
      <firstname>Emmanuele</firstname>
      <surname>Bassi</surname>
      <affiliation>
        <address>
          <email>ebassi@linux.intel.com</email>
        </address>
      </affiliation>
    </author>
  </partinfo>

  <title>Running Clutter</title>

  <partintro>

    <section id="environment-variables">
      <title>Environment Variables</title>

      <para>
        Clutter automatically checks environment variables during
        its initialization. These environment variables are meant
        as debug tools, overrides for default behaviours or to
        address known hardware issues:
      </para>

      <variablelist>
        <varlistentry>
          <term>CLUTTER_BACKEND</term>
          <listitem>
            <para>Changes the windowing system backend used by Clutter.
            The allowed values for this environment variable depend on
            the configuration options used when compiling Clutter. The
            available values are:</para>
            <itemizedlist>
              <listitem><simpara>x11, for the X11 backend</simpara></listitem>
              <listitem><simpara>wayland, for the Wayland backend</simpara></listitem>
              <listitem><simpara>win32, for the Windows backend</simpara></listitem>
              <listitem><simpara>osx, for the MacOS X backend</simpara></listitem>
              <listitem><simpara>gdk, for the GDK backend</simpara></listitem>
              <listitem><simpara>eglnative, for the EGL/KMS backend</simpara></listitem>
              <listitem><simpara>cex100, for the CEx100 backend</simpara></listitem>
            </itemizedlist>
            <para>All of the above options except for the <varname>eglnative</varname>
            and <varname>cex100</varname> backends also have an input backend.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>CLUTTER_INPUT_BACKEND</term>
          <listitem>
            <para>Changes the input backend used by Clutter.
            The allowed values for this environment variable depend on
            the configuration options used when compiling Clutter. The
            available values are:</para>
            <itemizedlist>
              <listitem><simpara>tslib</simpara></listitem>
              <listitem><simpara>evdev</simpara></listitem>
              <listitem><simpara>null</simpara></listitem>
            </itemizedlist>
            <para>This environment variable is only useful for setting the input
            backend when using a windowing system backend that does not have an
            input API, like the <varname>eglnative</varname> or the <varname>cex100</varname>
            windowing system backends.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>CLUTTER_DRIVER</term>
          <listitem>
            <para>Changes the GL driver used when initializing Clutter.
            The allowed values for this environment variable are:</para>
            <itemizedlist>
              <listitem><simpara>gl3, for the GL driver using a 3.2+ core profile</simpara></listitem>
              <listitem><simpara>gl, for the GL driver using a legacy profile</simpara></listitem>
              <listitem><simpara>gles2, for the GLES 2.0 driver</simpara></listitem>
              <listitem><simpara>any, for the default chosen by Cogl</simpara></listitem>
            </itemizedlist>
            <para>The special '*' value can be used to ask Clutter to use the
            default list of drivers, e.g. 'CLUTTER_DRIVER=gles2,*' will ask Clutter
            to try the GLES 2.0 driver first, and then fall back to the default list
            of Cogl drivers.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>CLUTTER_SCALE</term>
          <listitem>
            <para>Forces the window scaling factor to that value
            inside Clutter instead of relying on what backends detect.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>CLUTTER_TEXT_DIRECTION</term>
          <listitem>
            <para>Forces the text direction of every Pango layout
            inside Clutter. Valid values are: ltr or rtl</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>CLUTTER_SHOW_FPS</term>
          <listitem>
            <para>Prints out the frames per second achieved by Clutter.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>CLUTTER_DEFAULT_FPS</term>
          <listitem>
            <para>Sets the default framerate.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>CLUTTER_DISABLE_MIPMAPPED_TEXT</term>
          <listitem>
            <para>Disables mipmapping when rendering text.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>CLUTTER_FUZZY_PICK</term>
          <listitem>
            <para>Enables "fuzzy picking".</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>CLUTTER_DEBUG</term>
          <listitem>
            <para>Enables debugging modes for Clutter; debugging modes are
            used to print debugging messages on the console. Clutter must be
            compiled with the --enable-debug configuration switch for these
            messages to be printed out. Multiple debugging modes can be
            enabled by separating them using a colon (":") or a comma
            (",").</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>CLUTTER_PAINT</term>
          <listitem>
            <para>Enables paint debugging modes for Clutter; the modes change
            the way Clutter paints a scene and are useful for debugging the
            behaviour of the paint cycle.</para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>CLUTTER_ENABLE_DIAGNOSTIC</term>
          <listitem>
            <para>When set to 1, enables diagnostic messages for run-time
            deprecations, similarly to <varname>G_ENABLE_DIAGNOSTIC</varname> in
            GLib.</para>
          </listitem>
        </varlistentry>
      </variablelist>

      <para>On the GLX backend there is also:</para>

      <variablelist>
        <varlistentry>
          <term>CLUTTER_VBLANK</term>
          <listitem>
            <para>Selects the sync-to-vblank mode to be used.
            Valid values are: none, dri or glx</para>
          </listitem>
        </varlistentry>
      </variablelist>

    </section>

    <section id="command-line">
      <title>Command Line Arguments</title>

      <para>Similarly to the environment variables, Clutter also installs
      command line switches that are parsed during initialization:</para>

      <variablelist>
        <varlistentry>
          <term>--clutter-show-fps</term>
          <listitem><para>Equivalent of CLUTTER_SHOW_FPS. Prints the
          current rendering speed in frames per second.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>--clutter-default-fps=FPS</term>
          <listitem><para>Equivalent of CLUTTER_DEFAULT_FPS. Sets the
          default framerate.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>--clutter-text-direction=DIRECTION</term>
          <listitem><para>Equivalent of CLUTTER_TEXT_DIRECTION. Sets the
          direction for the text.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>--clutter-disable-mipmapped-text</term>
          <listitem><para>Equivalent of CLUTTER_DISABLE_MIPMAPPED_TEXT.
          Disables mipmapping when rendering text.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>--clutter-use-fuzzy-picking</term>
          <listitem><para>Equivalent of CLUTTER_FUZZY_PICK. Enables
          "fuzzy" picking.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>--clutter-debug=FLAGS</term>
          <listitem><para>Equivalent of CLUTTER_DEBUG. Sets FLAGS as the
          Clutter debugging flags.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>--clutter-no-debug=FLAGS</term>
          <listitem><para>Unsets FLAGS from the Clutter debugging
          flags.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>--cogl-debug=FLAGS</term>
          <listitem><para>Equivalent of COGL_DEBUG. Sets FLAGS as the
          Cogl debugging flags.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>--cogl-no-debug=FLAGS</term>
          <listitem><para>Unsets FLAGS from the Cogl debugging
          flags.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>--clutter-enable-accessibility</term>
          <listitem><para>Enables accessibility support.</para></listitem>
        </varlistentry>
      </variablelist>

      <para>The X11 backends also have the following command line
      options:</para>

      <variablelist>
        <varlistentry>
          <term>--display=DISPLAY</term>
          <listitem><para>Sets the X11 display to use.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>--screen=SCREEN</term>
          <listitem><para>Sets the X11 screen number to use.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>--synch</term>
          <listitem><para>Make X11 calls synchronous.</para></listitem>
        </varlistentry>
      </variablelist>
    </section>

    <para>The GLX backend also has the following command line option:</para>

    <variablelist>
      <varlistentry>
        <term>--vblank=METHOD</term>
        <listitem><para>Equivalent of CLUTTER_VBLANK. Sets the sync-to-vblank
        method to be used.</para></listitem>
      </varlistentry>
    </variablelist>

    <section id="clutter-Debug-Flags">
      <title>Debug flags for Clutter</title>

      <para>The debugging flags can be used for the CLUTTER_DEBUG environment
      variable and the --clutter-debug command line switch. Multiple flags can
      be separated by a colon (:) or a comma (,).</para>

      <!--
      keep in sync with the list of Clutter debug keys inside clutter-main.c
      -->
      <variablelist>
        <varlistentry>
          <term>actor</term>
          <listitem><para>Generic actor-related notes</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>animation</term>
          <listitem><para>#ClutterAnimation notes</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>backend</term>
          <listitem><para>Backend-related notes, including initialization of
          the backend features and GL context creation</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>event</term>
          <listitem><para>Event handling notes</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>layout</term>
          <listitem><para>#ClutterLayoutManager notes</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>misc</term>
          <listitem><para>Miscellaneous notes</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>scheduler</term>
          <listitem><para>Notes related to timelines and the master
          clock</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>script</term>
          <listitem><para>Notes related to #ClutterScript</para></listitem>
        </varlistentry>
      </variablelist>

      <para>It is possible to get all the debugging notes using the
      special "all" flag.</para>

    </section>

    <section id="configuration-file">
      <title>Configuration File</title>

      <para>Clutter will look for files named <filename>settings.ini</filename>
      located in the <filename>/etc/clutter-1.0</filename> and
      <filename>$XDG_CONFIG_HOME/clutter-1.0</filename> directories. These files
      must be valid key files (see #GKeyFile in the GLib documentation) and may
      have three sections:</para>

      <variablelist>
        <varlistentry>
          <term>Environment</term>
          <listitem><para>The keys in this section map the environment variables
          honoured by Clutter.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>Debug</term>
          <listitem><para>The keys in this section related to the debugging notes
          that Clutter exposes when compiled with debugging support; similarly to
          the environment variables and command line arguments related to the
          debugging notes, Clutter must be compiled with support for these notes
          in order to use them.</para></listitem>
        </varlistentry>
        <varlistentry>
          <term>Settings</term>
          <listitem><para>The keys in this section strictly map to the #GObject
          properties exposed by the #ClutterSettings type; if Clutter is running
          on an X11 platform, the XSettings manager will take precedence over the
          values specified in the <filename>settings.ini</filename>
          file.</para></listitem>
        </varlistentry>
      </variablelist>

      <section id="configuration-keys-environment">
        <title>Keys available for the Environment group</title>

        <variablelist>
          <varlistentry>
            <term>ShowFps</term>
            <listitem><para>A boolean value, equivalent to setting
            <code>CLUTTER_SHOW_FPS</code>.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>DisableMipmappedText</term>
            <listitem><para>A boolean value, equivalent to setting
            <code>CLUTTER_DISABLE_MIPMAPPED_TEXT</code>.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>UseFuzzyPicking</term>
            <listitem><para>A boolean value, equivalent to setting
            <code>CLUTTER_FUZZY_PICK</code>.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>EnableAccessibility</term>
            <listitem><para>A boolean value, equivalent to setting
            <code>CLUTTER_ENABLE_ACCESSIBILITY</code>.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>DefaultFps</term>
            <listitem><para>An integer value, equivalent to setting
            <code>CLUTTER_DEFAULT_FPS</code>.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>TextDirection</term>
            <listitem><para>A string value, equivalent to setting
            <code>CLUTTER_TEXT_DIRECTION</code>.</para></listitem>
          </varlistentry>
        </variablelist>
      </section>

      <section id="configuration-keys-debug">
        <title>Keys available for the Debug group</title>

        <variablelist>
          <varlistentry>
            <term>Debug</term>
            <listitem><para>A string containing the debugging flags, in the same
            format that should be used with the <code>CLUTTER_DEBUG</code>
            environment variable.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>PaintDebug</term>
            <listitem><para>A string containing the paint debugging flags, in the same
            format that should be used with the <code>CLUTTER_PAINT</code>
            environment variable.</para></listitem>
          </varlistentry>
          <varlistentry>
            <term>PickDebug</term>
            <listitem><para>A string containing the pick debugging flags, in the same
            format that should be used with the <code>CLUTTER_PICK</code>
            environment variable.</para></listitem>
          </varlistentry>
        </variablelist>
      </section>

    </section>

  </partintro>
</part>