Render display into image file
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. manpage:: 7 display-file

Synopsis
--------

::

  display-file: [-flushcmd=<command>] [-flushframe=<n>]
		[-flushtime=<t>] <filename>


Description
-----------

Renders an image into a file.  The file can be a framebuffer device
(e.g. `/dev/fb0`), in which case a reasonable representation of the
image will be drawn on the console *so long as* the program's mode
matches the framebuffer's mode.


.. note::
    This target generates no input.  The `display-multi` target can be
    used in order to see (and control) what the program does (using a
    normal target) and then generate a snapshot when the program
    exits.


Options
-------

:p:`filename` is the file to render the images to.  If the filename is
a PPM file (has the extension `.ppm`), then the image will be
generated at `ggiClose` time.  Otherwise the file is a custom
*GGIFILE* format and is generated continuously.


The `display-file` target can be used to generate movies from running
LibGGI applications. To do this, set ``-flushcmd`` to a shell command
to execute at the times given by one of the two other parameters. This
looks typically like::
    
  ppmtogif foo.ppm > foo.%04d.gif

The command is passed through a :man:`printf(3)` which has the current
count of saved frames as an argument (or rather as 10 arguments to
allow a few more complex commands).

This shell command is either executed at every :p:`n`\ -th invocation
of ggiFlush or every :p:`t` seconds, where :p:`t` can have fractional
components (specified as decimal).

Note, that the invocation of the shell command will slow down the
program, so make sure you use a reasonable value, if you use the
``-flushtime`` argument.

The primary file is updated before every invocation of the shell
command.


Features
--------

- DirectBuffer always available.
- Unaccelerated.
