Full Code of directfb2/DirectFB2 for AI

master 7d4682d0cc09 cached
395 files
5.1 MB
1.4M tokens
3857 symbols
1 requests
Download .txt
Showing preview only (5,443K chars total). Download the full file or copy to clipboard to get everything.
Repository: directfb2/DirectFB2
Branch: master
Commit: 7d4682d0cc09
Files: 395
Total size: 5.1 MB

Directory structure:
gitextract_fkdzfd_8/

├── .gitignore
├── AUTHORS
├── COPYING
├── ChangeLog
├── INSTALL
├── Kconfig
├── Make.defs
├── Makefile
├── NEWS
├── README
├── README.md
├── dfb-update-pkgconfig.in
├── include/
│   ├── dfiff.h
│   ├── dfvff.h
│   ├── dgiff.h
│   ├── directfb.h
│   ├── directfb_keyboard.h
│   ├── directfb_util.h
│   ├── directfb_windows.h
│   ├── directfbgl.h
│   ├── gen_directfb_keynames.sh
│   ├── gen_directfb_strings.sh
│   └── meson.build
├── inputdrivers/
│   ├── linux_input/
│   │   ├── linux_input.c
│   │   └── meson.build
│   └── nuttx_input/
│       └── nuttx_input.c
├── interfaces/
│   ├── ICoreResourceManager/
│   │   ├── icoreresourcemanager_default.c
│   │   └── meson.build
│   ├── IDirectFBFont/
│   │   ├── idirectfbfont_dgiff.c
│   │   └── meson.build
│   ├── IDirectFBImageProvider/
│   │   ├── idirectfbimageprovider_dfiff.c
│   │   └── meson.build
│   ├── IDirectFBVideoProvider/
│   │   ├── idirectfbvideoprovider_dfvff.c
│   │   └── meson.build
│   └── IDirectFBWindows/
│       ├── idirectfbwindows_default.c
│       └── meson.build
├── lib/
│   ├── direct/
│   │   ├── atomic.h
│   │   ├── clock.c
│   │   ├── clock.h
│   │   ├── compiler.h
│   │   ├── conf.c
│   │   ├── conf.h
│   │   ├── debug.c
│   │   ├── debug.h
│   │   ├── direct.c
│   │   ├── direct.h
│   │   ├── direct_result.c
│   │   ├── direct_result.h
│   │   ├── filesystem.h
│   │   ├── hash.c
│   │   ├── hash.h
│   │   ├── init.c
│   │   ├── interface.c
│   │   ├── interface.h
│   │   ├── interface_implementation.h
│   │   ├── list.h
│   │   ├── log.c
│   │   ├── log.h
│   │   ├── log_domain.c
│   │   ├── log_domain.h
│   │   ├── map.c
│   │   ├── map.h
│   │   ├── mem.c
│   │   ├── mem.h
│   │   ├── memcpy.c
│   │   ├── memcpy.h
│   │   ├── meson.build
│   │   ├── messages.c
│   │   ├── messages.h
│   │   ├── modules.c
│   │   ├── modules.h
│   │   ├── mutex.h
│   │   ├── os/
│   │   │   ├── clock.h
│   │   │   ├── filesystem.h
│   │   │   ├── linux/
│   │   │   │   ├── clock.c
│   │   │   │   ├── filesystem.c
│   │   │   │   ├── filesystem.h
│   │   │   │   ├── log.c
│   │   │   │   ├── mem.c
│   │   │   │   ├── mutex.c
│   │   │   │   ├── mutex.h
│   │   │   │   ├── signals.c
│   │   │   │   ├── system.c
│   │   │   │   ├── thread.c
│   │   │   │   ├── thread.h
│   │   │   │   ├── types.h
│   │   │   │   └── waitqueue.h
│   │   │   ├── log.h
│   │   │   ├── mem.h
│   │   │   ├── mutex.h
│   │   │   ├── nuttx/
│   │   │   │   ├── clock.c
│   │   │   │   ├── configs/
│   │   │   │   │   ├── sim/
│   │   │   │   │   │   └── defconfig
│   │   │   │   │   └── stm32f429i-disco/
│   │   │   │   │       └── defconfig
│   │   │   │   ├── filesystem.c
│   │   │   │   ├── filesystem.h
│   │   │   │   ├── log.c
│   │   │   │   ├── mem.c
│   │   │   │   ├── mutex.c
│   │   │   │   ├── mutex.h
│   │   │   │   ├── signals.c
│   │   │   │   ├── system.c
│   │   │   │   ├── thread.c
│   │   │   │   ├── thread.h
│   │   │   │   ├── types.h
│   │   │   │   └── waitqueue.h
│   │   │   ├── signals.h
│   │   │   ├── system.h
│   │   │   ├── thread.h
│   │   │   ├── types.h
│   │   │   └── waitqueue.h
│   │   ├── result.c
│   │   ├── result.h
│   │   ├── serial.h
│   │   ├── signals.h
│   │   ├── stream.c
│   │   ├── stream.h
│   │   ├── system.c
│   │   ├── system.h
│   │   ├── thread.c
│   │   ├── thread.h
│   │   ├── trace.c
│   │   ├── trace.h
│   │   ├── types.h
│   │   ├── utf8.h
│   │   ├── util.c
│   │   ├── util.h
│   │   └── waitqueue.h
│   └── fusion/
│       ├── arena.c
│       ├── arena.h
│       ├── call.c
│       ├── call.h
│       ├── conf.c
│       ├── conf.h
│       ├── fusion.c
│       ├── fusion.h
│       ├── fusion_internal.h
│       ├── hash.c
│       ├── hash.h
│       ├── init.c
│       ├── lock.c
│       ├── lock.h
│       ├── meson.build
│       ├── object.c
│       ├── object.h
│       ├── protocol.h
│       ├── reactor.c
│       ├── reactor.h
│       ├── ref.c
│       ├── ref.h
│       ├── shm/
│       │   ├── fake.c
│       │   ├── heap.c
│       │   ├── pool.c
│       │   ├── pool.h
│       │   ├── shm.c
│       │   ├── shm.h
│       │   └── shm_internal.h
│       ├── shmalloc.c
│       ├── shmalloc.h
│       ├── types.h
│       ├── vector.c
│       └── vector.h
├── meson.build
├── meson_options.txt
├── src/
│   ├── core/
│   │   ├── CoreDFB.flux
│   │   ├── CoreDFB_CallMode.h
│   │   ├── CoreDFB_includes.h
│   │   ├── CoreDFB_real.c
│   │   ├── CoreGraphicsState.flux
│   │   ├── CoreGraphicsStateClient.c
│   │   ├── CoreGraphicsStateClient.h
│   │   ├── CoreGraphicsState_includes.h
│   │   ├── CoreGraphicsState_real.c
│   │   ├── CoreInputDevice.flux
│   │   ├── CoreInputDevice_includes.h
│   │   ├── CoreInputDevice_real.c
│   │   ├── CoreLayer.flux
│   │   ├── CoreLayerContext.flux
│   │   ├── CoreLayerContext_includes.h
│   │   ├── CoreLayerContext_real.c
│   │   ├── CoreLayerRegion.flux
│   │   ├── CoreLayerRegion_includes.h
│   │   ├── CoreLayerRegion_real.c
│   │   ├── CoreLayer_includes.h
│   │   ├── CoreLayer_real.c
│   │   ├── CorePalette.flux
│   │   ├── CorePalette_includes.h
│   │   ├── CorePalette_real.c
│   │   ├── CoreScreen.flux
│   │   ├── CoreScreen_includes.h
│   │   ├── CoreScreen_real.c
│   │   ├── CoreSlave.flux
│   │   ├── CoreSlave_includes.h
│   │   ├── CoreSlave_real.c
│   │   ├── CoreSurface.flux
│   │   ├── CoreSurfaceAllocation.flux
│   │   ├── CoreSurfaceAllocation_includes.h
│   │   ├── CoreSurfaceAllocation_real.c
│   │   ├── CoreSurfaceClient.flux
│   │   ├── CoreSurfaceClient_includes.h
│   │   ├── CoreSurfaceClient_real.c
│   │   ├── CoreSurface_includes.h
│   │   ├── CoreSurface_real.c
│   │   ├── CoreWindow.flux
│   │   ├── CoreWindowStack.flux
│   │   ├── CoreWindowStack_includes.h
│   │   ├── CoreWindowStack_real.c
│   │   ├── CoreWindow_includes.h
│   │   ├── CoreWindow_real.c
│   │   ├── clipboard.c
│   │   ├── clipboard.h
│   │   ├── colorhash.c
│   │   ├── colorhash.h
│   │   ├── core.c
│   │   ├── core.h
│   │   ├── core_parts.c
│   │   ├── core_parts.h
│   │   ├── core_resourcemanager.h
│   │   ├── core_system.h
│   │   ├── coredefs.h
│   │   ├── coretypes.h
│   │   ├── cursor.h
│   │   ├── fluxcomp.py
│   │   ├── fonts.c
│   │   ├── fonts.h
│   │   ├── gfxcard.c
│   │   ├── gfxcard.h
│   │   ├── graphics_driver.h
│   │   ├── graphics_state.c
│   │   ├── graphics_state.h
│   │   ├── input.c
│   │   ├── input.h
│   │   ├── input_driver.h
│   │   ├── layer_context.c
│   │   ├── layer_context.h
│   │   ├── layer_control.c
│   │   ├── layer_control.h
│   │   ├── layer_region.c
│   │   ├── layer_region.h
│   │   ├── layers.c
│   │   ├── layers.h
│   │   ├── local_surface_pool.c
│   │   ├── meson.build
│   │   ├── palette.c
│   │   ├── palette.h
│   │   ├── prealloc_surface_pool.c
│   │   ├── prealloc_surface_pool_bridge.c
│   │   ├── screen.c
│   │   ├── screen.h
│   │   ├── screens.c
│   │   ├── screens.h
│   │   ├── shared_secure_surface_pool.c
│   │   ├── shared_surface_pool.c
│   │   ├── state.c
│   │   ├── state.h
│   │   ├── surface.c
│   │   ├── surface.h
│   │   ├── surface_allocation.c
│   │   ├── surface_allocation.h
│   │   ├── surface_buffer.c
│   │   ├── surface_buffer.h
│   │   ├── surface_client.c
│   │   ├── surface_client.h
│   │   ├── surface_core.c
│   │   ├── surface_core.h
│   │   ├── surface_pool.c
│   │   ├── surface_pool.h
│   │   ├── surface_pool_bridge.c
│   │   ├── surface_pool_bridge.h
│   │   ├── system.c
│   │   ├── system.h
│   │   ├── video_mode.h
│   │   ├── windows.c
│   │   ├── windows.h
│   │   ├── windowstack.c
│   │   ├── windowstack.h
│   │   ├── wm.c
│   │   ├── wm.h
│   │   └── wm_module.h
│   ├── directfb.c
│   ├── directfb_result.c
│   ├── directfb_result.h
│   ├── display/
│   │   ├── idirectfbdisplaylayer.c
│   │   ├── idirectfbdisplaylayer.h
│   │   ├── idirectfbpalette.c
│   │   ├── idirectfbpalette.h
│   │   ├── idirectfbscreen.c
│   │   ├── idirectfbscreen.h
│   │   ├── idirectfbsurface.c
│   │   ├── idirectfbsurface.h
│   │   ├── idirectfbsurface_layer.c
│   │   ├── idirectfbsurface_layer.h
│   │   ├── idirectfbsurface_window.c
│   │   ├── idirectfbsurface_window.h
│   │   ├── idirectfbsurfaceallocation.c
│   │   └── idirectfbsurfaceallocation.h
│   ├── gfx/
│   │   ├── clip.c
│   │   ├── clip.h
│   │   ├── convert.c
│   │   ├── convert.h
│   │   ├── generic/
│   │   │   ├── duffs_device.h
│   │   │   ├── generic.c
│   │   │   ├── generic.h
│   │   │   ├── generic_64.h
│   │   │   ├── generic_blit.c
│   │   │   ├── generic_blit.h
│   │   │   ├── generic_draw_line.c
│   │   │   ├── generic_draw_line.h
│   │   │   ├── generic_fill_rectangle.c
│   │   │   ├── generic_fill_rectangle.h
│   │   │   ├── generic_mmx.h
│   │   │   ├── generic_neon.h
│   │   │   ├── generic_stretch_blit.c
│   │   │   ├── generic_stretch_blit.h
│   │   │   ├── generic_texture_triangles.c
│   │   │   ├── generic_texture_triangles.h
│   │   │   ├── generic_util.c
│   │   │   ├── generic_util.h
│   │   │   ├── stretch_hvx_16.h
│   │   │   ├── stretch_hvx_32.h
│   │   │   ├── stretch_hvx_8.h
│   │   │   ├── stretch_hvx_88.h
│   │   │   ├── stretch_hvx_N.h
│   │   │   ├── stretch_up_down_16.h
│   │   │   ├── stretch_up_down_32.h
│   │   │   ├── stretch_up_down_8.h
│   │   │   ├── stretch_up_down_88.h
│   │   │   ├── stretch_up_down_table.h
│   │   │   ├── template_acc_16.h
│   │   │   ├── template_acc_24.h
│   │   │   ├── template_acc_32.h
│   │   │   ├── template_colorkey_16.h
│   │   │   ├── template_colorkey_24.h
│   │   │   └── template_colorkey_32.h
│   │   ├── util.c
│   │   └── util.h
│   ├── idirectfb.c
│   ├── idirectfb.h
│   ├── init.c
│   ├── input/
│   │   ├── idirectfbeventbuffer.c
│   │   ├── idirectfbeventbuffer.h
│   │   ├── idirectfbinputdevice.c
│   │   └── idirectfbinputdevice.h
│   ├── media/
│   │   ├── idirectfbdatabuffer.c
│   │   ├── idirectfbdatabuffer.h
│   │   ├── idirectfbdatabuffer_file.c
│   │   ├── idirectfbdatabuffer_file.h
│   │   ├── idirectfbdatabuffer_memory.c
│   │   ├── idirectfbdatabuffer_memory.h
│   │   ├── idirectfbdatabuffer_streamed.c
│   │   ├── idirectfbdatabuffer_streamed.h
│   │   ├── idirectfbfont.c
│   │   ├── idirectfbfont.h
│   │   ├── idirectfbimageprovider.c
│   │   ├── idirectfbimageprovider.h
│   │   ├── idirectfbvideoprovider.c
│   │   └── idirectfbvideoprovider.h
│   ├── meson.build
│   ├── misc/
│   │   ├── conf.c
│   │   ├── conf.h
│   │   ├── gfx_util.c
│   │   ├── gfx_util.h
│   │   └── util.c
│   └── windows/
│       ├── idirectfbwindow.c
│       └── idirectfbwindow.h
├── systems/
│   ├── drmkms/
│   │   ├── drmkms_layer.c
│   │   ├── drmkms_mode.c
│   │   ├── drmkms_mode.h
│   │   ├── drmkms_screen.c
│   │   ├── drmkms_surface_pool.c
│   │   ├── drmkms_system.c
│   │   ├── drmkms_system.h
│   │   ├── drmkms_vt.c
│   │   ├── drmkms_vt.h
│   │   └── meson.build
│   ├── dummy/
│   │   ├── dummy.c
│   │   └── meson.build
│   ├── fbdev/
│   │   ├── fbdev_layer.c
│   │   ├── fbdev_mode.c
│   │   ├── fbdev_mode.h
│   │   ├── fbdev_screen.c
│   │   ├── fbdev_surface_pool.c
│   │   ├── fbdev_surfacemanager.c
│   │   ├── fbdev_surfacemanager.h
│   │   ├── fbdev_system.c
│   │   ├── fbdev_system.h
│   │   ├── fbdev_vt.c
│   │   ├── fbdev_vt.h
│   │   └── meson.build
│   └── nuttxfb/
│       ├── nuttxfb_layer.c
│       ├── nuttxfb_screen.c
│       ├── nuttxfb_surface_pool.c
│       ├── nuttxfb_system.c
│       └── nuttxfb_system.h
└── wm/
    └── default/
        ├── default.c
        └── meson.build

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
/build


================================================
FILE: AUTHORS
================================================
(c) Copyright 2017-2025  DirectFB2 Open Source Project (fork of DirectFB)
(c) Copyright 2012-2016  DirectFB integrated media GmbH
(c) Copyright 2001-2013  The world wide DirectFB Open Source Community (directfb.org)
(c) Copyright 2000-2004  Convergence (integrated media) GmbH

DirectFB was originally written by Denis Oliver Kropp,
                                   Andreas Shimokawa,
                                   Marek Pikarski,
                                   Sven Neumann,
                                   Ville Syrjala and
                                   Claudio Ciccani.

DirectFB2 is the work of Nicolas Caramelli whose goal is to preserve and maintain DirectFB.

Contributors are listed, but if you think you're missing out on this list, feel free to request to be added.

Denis Oliver Kropp
Andreas Shimokawa
Marek Pikarski
Sven Neumann
Ville Syrjala
Claudio Ciccani
Michael Natterer
Holger Waechtler
Johannes Stezenbach
Jiri Svoboda
Hallvar Helleseth
Sebastian Klemke
Andreas Kotes
Antonino Daplas
Andreas Oberritter
Martin Mueller
Sebastian Ley
Maurizio Monge
Andreas Robinson
Michael Hunold
Tom Bridgwater
Stefan Lucke
Mike Emmel
Ivan Daniluk
Mark Salter
Marcel Siegert
Marko Makela
Mark Adams
Damian Kowalewski
Jakub Bogusz
Andy Stewart
Nikita Egorov
Jeff Bailey
Ben Combee
Daniel Laird
Guillem Jover
Attilio Fiandrotti
Vaclav Slavik
Phil Endecott
Kamijo Takashi
Mike Crowe
Kieran Bingham
Niels Roest
Mandy Wu
Keith Mok
Guillaume Gardet
Young Hoon
Timothy Strelchun
Andre Draszik
Sorin Otescu
Jacques Luder
Stanislav Bezzubtsev
Mike Frysinger
Ilyes Gouta
Tim Ross
Russell Dawson
Haithem Rahmani
Holger Freyther
Rob McConnell
Daniel Schaal
Bryce Poole
Mike Nelis
Tarik Sekmen
Kazunori Kobayashi
Chris Tomlinson
Takanari Hayama
Kui Zheng
Daniel Palmer
Shengwen Cheng
Stephen Bird
Nicolas Caramelli


================================================
FILE: COPYING
================================================
                  GNU LESSER GENERAL PUBLIC LICENSE
                       Version 2.1, February 1999

 Copyright (C) 1991, 1999 Free Software Foundation, Inc.
 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

[This is the first released version of the Lesser GPL.  It also counts
 as the successor of the GNU Library Public License, version 2, hence
 the version number 2.1.]

                            Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.

  This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it.  You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.

  When we speak of free software, we are referring to freedom of use,
not price.  Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.

  To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights.  These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.

  For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you.  You must make sure that they, too, receive or can get the source
code.  If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it.  And you must show them these terms so they know their rights.

  We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.

  To protect each distributor, we want to make it very clear that
there is no warranty for the free library.  Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.

  Finally, software patents pose a constant threat to the existence of
any free program.  We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder.  Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.

  Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License.  This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License.  We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.

  When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library.  The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom.  The Lesser General
Public License permits more lax criteria for linking other code with
the library.

  We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License.  It also provides other free software developers Less
of an advantage over competing non-free programs.  These disadvantages
are the reason we use the ordinary General Public License for many
libraries.  However, the Lesser license provides advantages in certain
special circumstances.

  For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard.  To achieve this, non-free programs must be
allowed to use the library.  A more frequent case is that a free
library does the same job as widely used non-free libraries.  In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.

  In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software.  For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.

  Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.

  The precise terms and conditions for copying, distribution and
modification follow.  Pay close attention to the difference between a
"work based on the library" and a "work that uses the library".  The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.

                  GNU LESSER GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".

  A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.

  The "Library", below, refers to any such software library or work
which has been distributed under these terms.  A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language.  (Hereinafter, translation is
included without limitation in the term "modification".)

  "Source code" for a work means the preferred form of the work for
making modifications to it.  For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.

  Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it).  Whether that is true depends on what the Library does
and what the program that uses the Library does.

  1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.

  You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.

  2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) The modified work must itself be a software library.

    b) You must cause the files modified to carry prominent notices
    stating that you changed the files and the date of any change.

    c) You must cause the whole of the work to be licensed at no
    charge to all third parties under the terms of this License.

    d) If a facility in the modified Library refers to a function or a
    table of data to be supplied by an application program that uses
    the facility, other than as an argument passed when the facility
    is invoked, then you must make a good faith effort to ensure that,
    in the event an application does not supply such function or
    table, the facility still operates, and performs whatever part of
    its purpose remains meaningful.

    (For example, a function in a library to compute square roots has
    a purpose that is entirely well-defined independent of the
    application.  Therefore, Subsection 2d requires that any
    application-supplied function or table used by this function must
    be optional: if the application does not supply it, the square
    root function must still compute square roots.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.

In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library.  To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License.  (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.)  Do not make any other change in
these notices.

  Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.

  This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.

  4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.

  If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.

  5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library".  Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.

  However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library".  The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.

  When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library.  The
threshold for this to be true is not precisely defined by law.

  If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work.  (Executables containing this object code plus portions of the
Library will still fall under Section 6.)

  Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.

  6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.

  You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License.  You must supply a copy of this License.  If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License.  Also, you must do one
of these things:

    a) Accompany the work with the complete corresponding
    machine-readable source code for the Library including whatever
    changes were used in the work (which must be distributed under
    Sections 1 and 2 above); and, if the work is an executable linked
    with the Library, with the complete machine-readable "work that
    uses the Library", as object code and/or source code, so that the
    user can modify the Library and then relink to produce a modified
    executable containing the modified Library.  (It is understood
    that the user who changes the contents of definitions files in the
    Library will not necessarily be able to recompile the application
    to use the modified definitions.)

    b) Use a suitable shared library mechanism for linking with the
    Library.  A suitable mechanism is one that (1) uses at run time a
    copy of the library already present on the user's computer system,
    rather than copying library functions into the executable, and (2)
    will operate properly with a modified version of the library, if
    the user installs one, as long as the modified version is
    interface-compatible with the version that the work was made with.

    c) Accompany the work with a written offer, valid for at
    least three years, to give the same user the materials
    specified in Subsection 6a, above, for a charge no more
    than the cost of performing this distribution.

    d) If distribution of the work is made by offering access to copy
    from a designated place, offer equivalent access to copy the above
    specified materials from the same place.

    e) Verify that the user has already received a copy of these
    materials or that you have already sent this user a copy.

  For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it.  However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.

  It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system.  Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.

  7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:

    a) Accompany the combined library with a copy of the same work
    based on the Library, uncombined with any other library
    facilities.  This must be distributed under the terms of the
    Sections above.

    b) Give prominent notice with the combined library of the fact
    that part of it is a work based on the Library, and explaining
    where to find the accompanying uncombined form of the same work.

  8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License.  Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License.  However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.

  9. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Library or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.

  10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.

  11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all.  For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.

If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded.  In such case, this License incorporates the limitation as if
written in the body of this License.

  13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number.  If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation.  If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.

  14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission.  For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this.  Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.

                            NO WARRANTY

  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.

                     END OF TERMS AND CONDITIONS

           How to Apply These Terms to Your New Libraries

  If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change.  You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).

  To apply these terms, attach the following notices to the library.  It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.

    <one line to give the library's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

Also add information on how to contact you by electronic and paper mail.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the
  library `Frob' (a library for tweaking knobs) written by James Random Hacker.

  <signature of Ty Coon>, 1 April 1990
  Ty Coon, President of Vice

That's all there is to it!


================================================
FILE: ChangeLog
================================================
commit 3b6508281d8c23270dde6002f1142a3906fb2da0
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sun Jun 22 19:43:02 2025 +0200

    Use unsigned int for accelerator ID selecting graphics driver

commit f321b9a48c657acea37b7f23fb2eb040cca49602
Merge: 77c71dc 5c81466
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sat Mar 15 12:12:51 2025 +0100

    Merge pull request #156 from caramelli/master
    
    Don't generate .pc files for static modules when building for shared type libraries

commit 5c81466de693cb180712a71b36e7ccbcc8ad43ef
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat Mar 15 12:05:34 2025 +0100

    Update ChangeLog

commit d83df032ec719b8d22d893e227e7d39f74e7b6f4
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat Mar 15 12:04:19 2025 +0100

    Don't generate .pc files for static modules when building for shared type libraries

commit 77c71dcf072a5c7d1944073793c3030c14af049e
Merge: 4d6b7dd db0c8b9
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sat Mar 8 23:35:58 2025 +0100

    Merge pull request #155 from stefan11111/master
    
    increase maximum number of input evdev devices

commit db0c8b938902b6a69772782c347b847c150a0ebc
Author: stefan11111 <stefan11111@shitposting.expert>
Date:   Sat Mar 8 20:30:54 2025 +0200

    increase maximum number of input evdev devices

commit 4d6b7ddd8477b4b52aa78ec82a3add28ade0c965
Merge: 51af532 7a9e58a
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Wed Oct 9 22:05:07 2024 +0200

    Merge pull request #154 from shengwen-tw/master
    
    Check DRM plane type before attaching it as main plane

commit 7a9e58ac9d2c1f610c8cafe7d3c0c6a63b33c130
Author: Shengwen Cheng <shengwen1997.tw@gmail.com>
Date:   Wed Oct 9 00:18:36 2024 +0800

    Check DRM plane type before attaching it as main plane
    
    Linux DRM allows using multiplane overlay (MPO) model for power-saving. The
    plane types consist of PRIMARY, CURSOR, and OVERLAY, with only the PRIMARY
    plane supporting operations like modesetting, flipping, etc.
    
    This commit introduces type checking for plane attachment, ensuring that
    DirectFB2 does not misuse other plane types as the main plane.
    
    Reference:
    [1] https://dri.freedesktop.org/docs/drm/gpu/amdgpu/display/mpo-overview.html

commit 51af532e5c1d6c0c742092d3bc3f93770475e626
Merge: 2952d1d 97d74c9
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Sep 23 22:55:51 2024 +0200

    Merge pull request #152 from kootrit/patch-1
    
    Change SA_NOMASK to SA_NODEFER in lib/fusion/lock.c

commit 97d74c98b9e133027a273fbea84bc5e64167bcd0
Author: kootrit <humble.tyler@disroot.org>
Date:   Sun Sep 22 13:15:04 2024 +0000

    Change SA_NOMASK to SA_NODEFER in lib/fusion/lock.c
    
    This fixes compiling on musl.
    SA_NOMASK is deprecated.

commit 2952d1d16b546be09e1cbb5da5e0c718d8f5ee32
Merge: 9ea1879 699ec04
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Thu Jun 27 16:57:48 2024 +0200

    Merge pull request #150 from shengwen-tw/master
    
    Alias __NR_futex with __NR_futex_time64 for RV32 platform

commit 699ec0471dec73639e1d18eb4426590440c28642
Author: Shengwen Cheng <shengwen1997.tw@gmail.com>
Date:   Thu Jun 27 21:20:10 2024 +0800

    Alias __NR_futex with __NR_futex_time64 for RV32 platform
    
    Since version 5.1, Linux has dropped several RISC-V 32-bit syscalls by
    removing __ARCH_WANT_TIME32_SYSCALLS macro, causing the compilation of
    DirectFB2 to fail on RV32 platform with error of no definition of
    __NR_futex is declared.
    
    To resolve the issue, this commit aliases __NR_futex with __NR_futex_time64
    as a fallback solution.
    
    Reference:
    [1] https://sourceware.org/legacy-ml/libc-alpha/2019-06/msg00557.html
    [2] https://git.openembedded.org/openembedded-core/tree/meta/recipes-support/boost/boost/0001-fiber-libs-Define-SYS_futex-if-it-does-not-exist.patch?h=honister

commit 9ea1879446e1ccdb9a25e91e3b03d1980a0ec53e
Merge: 38ad79a ed0ade2
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Tue Apr 2 22:58:16 2024 +0200

    Merge pull request #146 from caramelli/master
    
    Disable shadow warnings

commit ed0ade2ef88686b4b50c46310de2aa2233ebeaeb
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Tue Apr 2 22:51:52 2024 +0200

    Disable shadow warnings

commit 38ad79a4d63955fa7c3a8d307fc9d0c63de36a9b
Merge: d1ed180 cf13a79
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Thu Mar 14 16:10:52 2024 +0100

    Merge pull request #145 from caramelli/master
    
    Input/NuttX: Fix build on sim board

commit cf13a798e5258190109a4808bdaf93483ff2599e
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Mar 14 16:07:20 2024 +0100

    Input/NuttX: Fix build on sim board

commit d1ed1801f0b8485f4ebc246fac2f280e47e11b44
Merge: 65c2707 ef1f5d5
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Dec 18 22:24:36 2023 +0100

    Merge pull request #140 from caramelli/master
    
    meson: Add fluxcomp option

commit ef1f5d505491c650b9d59b73f7e967a80c49e6b5
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Dec 18 16:16:34 2023 +0100

    Update ChangeLog

commit d2af10462639dfb0fb9293e358a7cc03b3b8bda9
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Dec 18 16:15:17 2023 +0100

    meson: Add fluxcomp option

commit 65c27072986793a646cb75cc2b0f5562227e1717
Merge: 16b05d0 ed8084e
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Dec 11 22:45:02 2023 +0100

    Merge pull request #139 from caramelli/master
    
    Python implementation of fluxcomp

commit ed8084e7fdd6054be7065e760f2607811ea7d3de
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Dec 11 22:41:44 2023 +0100

    Python implementation of fluxcomp

commit 16b05d03e95032acca6aef3c527650ca94e048a5
Merge: a7a176b 26daf3f
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Fri Oct 6 19:19:51 2023 +0200

    Merge pull request #138 from caramelli/master
    
    IDirectFBGL: Add SwapBuffers()

commit 26daf3fc9ef84e0bbf88c09df2c075e2ac57b504
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Fri Oct 6 18:48:55 2023 +0200

    Update ChangeLog

commit 5c5202a50e2f2ddb7d56738b290cfce5f70c42d9
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Fri Oct 6 18:48:50 2023 +0200

    IDirectFBGL: Add SwapBuffers()

commit a7a176bb501c0730cd24bf06420ce35f53e85a15
Merge: abf3795 d1b396f
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Wed Aug 16 08:06:57 2023 +0200

    Merge pull request #137 from fifteenhex/fixdrmkms-on-mstar-20230816
    
    drmkms: Enumerate all planes when looking for the primary format

commit d1b396f67827e236d734f902874ff9568ca0256b
Author: Daniel Palmer <daniel@0x0f.com>
Date:   Tue Aug 15 20:18:17 2023 +0900

    drmkms: Enumerate all planes when looking for the primary format

commit abf379572bdc2271ddedea42c78a442218963d3c
Merge: e4921b7 30e4afd
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sat Aug 12 09:25:49 2023 +0200

    Merge pull request #135 from miyoo-oss/feature/screen_rot_fixes
    
    Fix screen rotation to read the proper props values

commit 30e4afdd8be64cde0c73a6c9de69f64a3286e392
Author: Stephen Bird <sebirdman@gmail.com>
Date:   Fri Aug 11 15:35:14 2023 -0700

    Fix screen rotation to read the proper props values
    
    This inner loop breaks screen rotation for devices that require it and is
    unneccessary.

commit e4921b7349329e6c1e4720adf5dec5979a31f48f
Merge: c85b06b a8a327e
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sun Aug 6 10:44:23 2023 +0200

    Merge pull request #133 from caramelli/master
    
    STM32F429I-DISCO NuttX defconfig: Use PL_MPEG video provider

commit a8a327eb44cffa0f3111a05ba77e5b5f33aad534
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sun Aug 6 10:34:59 2023 +0200

    STM32F429I-DISCO NuttX defconfig: Use PL_MPEG video provider

commit c85b06b8fe6abc3853cf3b1be3cfa815fa09b542
Merge: 27dbab6 6077fca
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Jul 17 12:53:57 2023 +0200

    Merge pull request #131 from caramelli/master
    
    Add support for DirectFBGL module initialization when constructor attribute is not used (MCU targets)

commit 6077fcae36d306b82f9060bd538a55b0ba38677a
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Jul 17 12:42:56 2023 +0200

    Update ChangeLog

commit 22d42e25bc73daf61a612a88ff4e9c6d969aad00
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Jul 17 12:42:40 2023 +0200

    Add support for DirectFBGL module initialization when constructor attribute is not used (MCU targets)

commit 27dbab6d58662cbe7dfbb54315dcfc0b459af98f
Merge: b99f492 42d7daf
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Jul 3 10:55:24 2023 +0200

    Merge pull request #130 from caramelli/master
    
    NuttX Input Driver: Translate raw X/Y touchscreen data into pixel coordinates

commit 42d7daf26d56704326abbe73c838f44f102046fb
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Jul 3 10:51:16 2023 +0200

    NuttX Input Driver: Translate raw X/Y touchscreen data into pixel coordinates

commit b99f49243bab1c8ffccd6c2401d7085c2d66caab
Merge: b60149a 69f0558
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Thu Jun 22 15:09:53 2023 +0200

    Merge pull request #129 from caramelli/master
    
    NuttX defconfig: CONFIG_PTHREAD_CLEANUP => CONFIG_PTHREAD_CLEANUP_STACKSIZE

commit 69f05580ecde6eae418608623229bf8645d1ea38
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Jun 22 15:05:57 2023 +0200

    NuttX defconfig: CONFIG_PTHREAD_CLEANUP => CONFIG_PTHREAD_CLEANUP_STACKSIZE

commit b60149ab11185167f03876448edb863247c8bc19
Merge: 2276c80 26fdee5
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Thu Jun 22 08:25:07 2023 +0200

    Merge pull request #128 from caramelli/master
    
    NuttX Input Driver: Add support for buttons and keyboard

commit 26fdee5e4811fd2592145ae75b51c35cae998ba4
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Jun 22 08:20:15 2023 +0200

    NuttX Input Driver: Add support for buttons and keyboard

commit 2276c8096dd5effa235c0f672b212f50a5256f91
Merge: 1c65e0c 6a64478
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sun Jun 18 11:34:06 2023 +0200

    Merge pull request #127 from caramelli/master
    
    NuttX: Add defconfig for STM32F429I-DISCO board

commit 6a64478037c017cabadc64a4c7c7c719f37ce328
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sun Jun 18 11:28:29 2023 +0200

    NuttX: Add defconfig for STM32F429I-DISCO board

commit 1c65e0c2c668b5d59705b0d0005b8976bddde8d2
Merge: ab61370 ffe97c4
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Tue Jun 13 05:53:49 2023 +0200

    Merge pull request #126 from caramelli/master
    
    drmkms: Fix plane layers registration with multi application core

commit ffe97c43f621af0946b32a40b30f4a8ae4258178
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Tue Jun 13 05:41:33 2023 +0200

    drmkms: Fix plane layers registration with multi application core

commit ab613703de874a59be5847b5068d8791d69881d7
Merge: 62fb8e2 c1e5099
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Fri Jun 2 08:17:17 2023 +0200

    Merge pull request #125 from caramelli/master
    
    drmkms: Implement system_get_modes() / system_get_current_mode()

commit c1e5099fb3d40b55118f8cb32a0313d3f8634d57
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Fri Jun 2 08:03:57 2023 +0200

    Update ChangeLog

commit d96c8c43ae375d28d58ccc71b40e3670830f4f9a
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Fri Jun 2 08:03:32 2023 +0200

    drmkms: Implement system_get_modes() / system_get_current_mode()

commit 62fb8e283b2acff8afbb41cd365ee2c4ed3104e8
Merge: 69975b9 fc38845
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sat May 27 08:27:54 2023 +0200

    Merge pull request #124 from caramelli/master
    
    Add NuttX input driver module

commit fc38845b7878773fa7c12e4073cbf253f2ef183d
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat May 27 08:22:26 2023 +0200

    Add NuttX input driver module

commit 69975b9a9e96f3f1253f5818e89b1c9e7c3e03e5
Merge: 6a1e50d 5435e13
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Fri May 26 14:58:14 2023 +0200

    Merge pull request #123 from caramelli/master
    
    Direct/Stream: Restore RTSP support

commit 5435e137d1a95674acaa656b6a7f064459b9ec09
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Fri May 26 14:42:52 2023 +0200

    Direct/Stream: Restore RTSP support

commit 6a1e50d741ef552b36fcf73d30be2dd35cf93bc5
Merge: 223ad60 648adcd
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Wed May 24 19:01:26 2023 +0200

    Merge pull request #122 from caramelli/master
    
    Direct/Stream: Add D_STREAM_BYPASS environment variable

commit 648adcdab2a342a051608b48845ec6c267c38c0b
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed May 24 18:50:48 2023 +0200

    Direct/Stream: Add D_STREAM_BYPASS environment variable

commit 223ad60872f6b95c1d01bacf6e3e85e2ab360b4e
Merge: 0beca0f 5b6504f
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon May 22 15:50:48 2023 +0200

    Merge pull request #121 from caramelli/master
    
    NuttX: Add NuttXFB System Module

commit 5b6504f4ca36b1fc303de4588ec094b308d16d11
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon May 22 15:23:36 2023 +0200

    NuttX: Add NuttXFB System Module

commit 0beca0f2c47a57885fcd5d910188a5961ab87d12
Merge: e3919ee 70c600a
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Thu May 18 08:18:00 2023 +0200

    Merge pull request #120 from caramelli/master
    
    dfb_scale_linear_32(): Fix premultiplication when loading a scaled image

commit 70c600a530324d7cc36c82a35f22eff1dbe8fb8a
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu May 18 08:13:46 2023 +0200

    dfb_scale_linear_32(): Fix premultiplication when loading a scaled image

commit e3919eee1bfca09d88b2280ca06ca7fa127a6d76
Merge: 68666a6 42f6d22
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sun May 14 16:26:08 2023 +0200

    Merge pull request #119 from caramelli/master
    
    Direct/Stream: Add RTSP URL stub

commit 42f6d220e2f33a875ec2d62605303764a2730e80
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sun May 14 16:09:08 2023 +0200

    Direct/Stream: Add RTSP URL stub

commit 68666a61e47f6c386f08889fa781a6b1f14e61a1
Merge: cb33e33 72698b2
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sat May 13 21:40:13 2023 +0200

    Merge pull request #118 from caramelli/master
    
    Update to NuttX 12.1.0

commit 72698b25fef7de684374b50761c675eaaf1d5355
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat May 13 21:33:18 2023 +0200

    Update to NuttX 12.1.0

commit cb33e33cd5ccfb0d084ed13153f71501110f7784
Merge: 2692779 5879443
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Wed May 10 17:04:49 2023 +0200

    Merge pull request #116 from caramelli/master
    
    IDirectFBFont: Fix loading from streamed data buffer

commit 58794434bc29f6e5706eece867d5a614cec9aa5f
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed May 10 16:54:39 2023 +0200

    Update ChangeLog

commit 0f9d5265270031d4a8d03a892beef4481b6a97a4
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed May 10 16:53:42 2023 +0200

    IDirectFBFont: Fix loading from streamed data buffer

commit 26927796d587aafccedceb9faf531670347448a1
Merge: 84a3131 1c4cf69
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sat May 6 11:32:07 2023 +0200

    Merge pull request #115 from caramelli/master
    
    Add build option for piped stream support

commit 1c4cf69ab193fc8e0b59062415f1c1022aa5c406
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat May 6 11:24:15 2023 +0200

    Update ChangeLog

commit 8cb3a8a67eb51b3b5b6b5eed44082bd51f522568
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat May 6 11:24:07 2023 +0200

    Add build option for piped stream support

commit 84a31310821fb4af12df7651376b3bd3debd3f65
Merge: 6269d4a 646c725
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sat Apr 29 14:22:05 2023 +0200

    Merge pull request #114 from caramelli/master
    
    DGIFF/DFIFF/DFVFF: Add support for input data located in memory or streamed

commit 646c7259d6f17f71fc5de4d60e3e5a9e429b99c8
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat Apr 29 14:11:56 2023 +0200

    DGIFF/DFIFF/DFVFF: Add support for input data located in memory or streamed

commit 6269d4a55d013737704997dadccdf32e07890dd4
Merge: 632cba0 d06f9b3
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sun Apr 16 13:04:34 2023 +0200

    Merge pull request #113 from caramelli/master
    
    drmkms: Only register planes with possible_crtcs compatible with primary CRTC

commit d06f9b3dc2ccfb08a1420c0c3ef30d6299325c5a
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sun Apr 16 12:57:31 2023 +0200

    drmkms: Only register planes with possible_crtcs compatible with primary CRTC

commit 632cba05c265346cc2cd27c99b311f99526f1ce1
Merge: f0d703b fb01984
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sat Apr 15 14:28:02 2023 +0200

    Merge pull request #112 from caramelli/master
    
    Add definition for the SCHED_SPORADIC scheduling policy

commit fb0198449e57efd89d7e1b51416e5efa92088c08
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat Apr 15 14:11:15 2023 +0200

    Update ChangeLog

commit 820a2146f7eb83348ad22356fb915ad1bf04d8f0
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat Apr 15 14:10:47 2023 +0200

    Add definition for the SCHED_SPORADIC scheduling policy

commit f0d703b7a3aaf38b94815449cbf86e3420e20a2f
Merge: 452b899 95d9fb3
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Thu Apr 13 18:41:10 2023 +0200

    Merge pull request #111 from caramelli/master
    
    Input/Linux: Initialize device_info before calling get_device_info()

commit 95d9fb31694c6a5aeaedb9b6b27911b97fb92dba
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Apr 13 18:36:44 2023 +0200

    Input/Linux: Initialize device_info before calling get_device_info()

commit 452b899a28fbc13710af16d6798a587bbfd51ae1
Merge: d01c4df 9bddf65
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Apr 10 12:21:58 2023 +0200

    Merge pull request #109 from caramelli/master
    
    If the AR24 format is not supported, look at all formats to find a fallback format (not just the first one)

commit 9bddf65c1f29b37fabf92eedd7836df96fd65391
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Apr 10 01:00:35 2023 +0200

    If the AR24 format is not supported, look at all formats to find a fallback format (not just the first one)

commit d01c4dff74bb9be5f9b66bed410befd572e401de
Merge: 2f872de d11102d
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Fri Apr 7 09:56:14 2023 +0200

    Merge pull request #107 from caramelli/master
    
    Add NuttX support for running DirectFB apps on MCU devices

commit d11102daba0af1f75339d9a27b3b5c9eba242884
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Fri Apr 7 09:50:46 2023 +0200

    Add NuttX support for running DirectFB apps on MCU devices

commit 2f872de307cc9db0749122fa33286268d4e1be49
Merge: f0904fd 3d9375c
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Wed Apr 5 22:19:09 2023 +0200

    Merge pull request #106 from caramelli/master
    
    Fix -Wshadow and -Woverflow warnings when using bare metal toolchain

commit 3d9375c67041849fcf37f674218b008cd08c04ce
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Apr 5 22:13:01 2023 +0200

    Update ChangeLog

commit ff14133b16a0bffcc9e597cd33e8cb551f964703
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Apr 5 22:10:23 2023 +0200

    Fix -Wshadow and -Woverflow warnings when using bare metal toolchain

commit f0904fdd06c972384bd526f440823a8e95393c19
Merge: f904c12 b039561
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Wed Apr 5 12:37:43 2023 +0200

    Merge pull request #105 from caramelli/master
    
    meson: Update INSTALL instructions

commit b0395614ea9213b86fde03b842132778233bf068
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Apr 5 13:35:05 2023 +0200

    meson: Update INSTALL instructions

commit f904c1206e7b729024e91d9a20bc558a85bb9e30
Merge: b4b351b 440784a
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Tue Apr 4 02:52:28 2023 +0200

    Merge pull request #104 from caramelli/master
    
    Add os/signals.h

commit 440784ab747a2547cab4b72f0b134ad7f30e3a5e
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Tue Apr 4 03:53:30 2023 +0200

    Add os/signals.h

commit b4b351b98f0933c509b7223afe27a9dcaa8650cd
Merge: ac474a2 9af0ca5
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Apr 3 15:00:32 2023 +0200

    Merge pull request #103 from caramelli/master
    
    Move signals.c to the os directory

commit 9af0ca58cbefee17e0200e9f2aca582e6641f88a
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Apr 3 16:00:19 2023 +0200

    Move signals.c to the os directory

commit ac474a2e9d85a5bc5ec5639f04755963c82082eb
Merge: 1d310d2 c71f508
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Apr 3 11:14:49 2023 +0200

    Merge pull request #102 from caramelli/master
    
    Fix warning: function declaration isn't a prototype [-Wstrict-prototypes]

commit c71f508b3b58c101560a6726b94d9235cb17db98
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Apr 3 12:12:06 2023 +0200

    Fix warning: function declaration isn't a prototype [-Wstrict-prototypes]

commit 1d310d2f9a08df42c17225289029a54f144b21f4
Merge: 4a02a2b 7555132
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sun Apr 2 20:43:43 2023 +0200

    Merge pull request #101 from caramelli/master
    
    Restore build option for network support

commit 75551320d921327a536d6f22d405d8752d26de1e
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sun Apr 2 20:32:14 2023 +0200

    Restore build option for network support

commit 4a02a2b3c418daa84a3050ba0c71cfe71ca22918
Merge: 1ac8ead 0daf53e
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sat Apr 1 09:59:32 2023 +0200

    Merge pull request #100 from caramelli/master
    
    Add build option for constructor attribute

commit 0daf53ebc8c80d67b32540d1053730d60580b01c
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat Apr 1 09:51:11 2023 +0200

    Add build option for constructor attribute

commit 1ac8ead8f18870f3a42cd5aa159fe0e1741d9bdd
Merge: db494a2 2d69fe6
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Fri Mar 31 22:27:39 2023 +0200

    Merge pull request #99 from caramelli/master
    
    drmkms: alpha range is [0 - 65535]

commit 2d69fe606ae125b476508322683124567781c190
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Fri Mar 31 22:25:38 2023 +0200

    drmkms: alpha range is [0 - 65535]

commit db494a279fdff50f4b1480783f766e058e611767
Merge: 27037bc a83ef2c
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Tue Mar 28 17:41:07 2023 +0200

    Merge pull request #97 from caramelli/master
    
    Fix type cast when calling direct_file_seek() in file_peek()

commit a83ef2c5640b93deb4a4cd0624877250933c3c27
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Tue Mar 28 17:41:43 2023 +0200

    Fix type cast when calling direct_file_seek() in file_peek()

commit 27037bcf84dbb8f280637ba149c5f793f7231c15
Merge: 1b87ca6 85cc655
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sun Mar 12 10:46:51 2023 +0100

    Merge pull request #96 from caramelli/master
    
    VideoProvider/DFVFF: Add support for speed multiplier below and over 1.0

commit 85cc65592a45ce9bee035130f3559360b543ed92
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sun Mar 12 10:40:41 2023 +0100

    Update ChangeLog

commit 318c33fbf2244b876b8067b2e3ac4f4aa62e5bfd
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sun Mar 12 10:40:29 2023 +0100

    VideoProvider/DFVFF: Add support for speed multiplier below and over 1.0

commit 1b87ca61d16b46a06960c1fd29428316bc87a547
Merge: ac4f10c bf501d7
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Fri Mar 10 16:31:56 2023 +0100

    Merge pull request #18 from fifteenhex/gfx_neon_20220217
    
    Genefx: Add NEON assembly support

commit bf501d779dad8ecf038e6f8ffb7377e489bca318
Merge: 2cea303 ac4f10c
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Fri Mar 10 16:31:14 2023 +0100

    Merge branch 'master' into gfx_neon_20220217

commit 2cea3031d8078fc64ee6ea7b34c9fdc36488a8a2
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Fri Mar 10 16:10:53 2023 +0100

    Merge ARM NEON optimization

commit ac4f10ca5dcb9fb8c848fcde26a19d88cc8afd25
Merge: d1182ae f87bad2
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Wed Mar 1 03:55:09 2023 +0100

    Merge pull request #92 from caramelli/master
    
    Restore global variables for DirectFB version

commit f87bad231f8c6239a9ce7eb8a9b9ea6897553c1c
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Mar 1 03:55:03 2023 +0100

    Update ChangeLog

commit 185a5fce4aeb8b581c0b42fc040c83c5a1b6943a
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Mar 1 03:54:58 2023 +0100

    Restore global variables for DirectFB version

commit d1182aeace2fbc3877266f52cf1b640235442390
Merge: 8bea71e 70045be
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Feb 27 11:15:50 2023 +0100

    Merge pull request #91 from caramelli/master
    
    dfb-update-pkgconfig: Add DESTDIR

commit 70045be30a4414c45c806dbf0c88a894023210cd
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Feb 27 10:58:34 2023 +0100

    Update ChangeLog

commit 5731e6d121ec20c67aecbd2d4ededc93a2565404
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Feb 27 10:58:28 2023 +0100

    dfb-update-pkgconfig: Add DESTDIR

commit 8bea71e1e5e0fe185a264b66a40bc83291fe5f06
Merge: d33e3d4 e1a7adf
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Wed Feb 22 08:44:07 2023 +0100

    Merge pull request #88 from caramelli/master
    
    Add pkg-config files per module (for static build)

commit e1a7adf6e1b0107f930cfa3a5e98647a556b8715
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Feb 22 08:37:07 2023 +0100

    Update ChangeLog

commit 3e2638eb08d581d7f8bac4d34303a4859506990e
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Feb 22 08:36:47 2023 +0100

    Add pkg-config files per module (for static build)

commit d33e3d40c20d3f50cb6e48882f670477068e3288
Merge: be72f1f d244ae0
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sun Feb 19 07:07:13 2023 +0100

    Merge pull request #86 from caramelli/master
    
    drmkms: Set default pixel format using drmModePlane formats array

commit d244ae07fd84d511a82066bf0b37a648534311e5
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sun Feb 19 07:06:13 2023 +0100

    drmkms: Ask the kernel to expose all planes to userspace, thanks to Daniel Palmer!

commit c6db97e3ee85b81e7fd3ca778664b989d42db679
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat Feb 18 09:59:05 2023 +0100

    drmkms: Set default pixel format using drmModePlane formats array if AR24 is not supported

commit be72f1f0ca0fc5a6f0b42a0bb0164dad654d875e
Merge: e510f61 3770869
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Thu Feb 2 20:33:51 2023 +0100

    Merge pull request #84 from caramelli/master
    
    Use Libs.private in pkg-config files corresponding to modules

commit 3770869d315e1db1a4a85001f17e767863f78969
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Feb 2 20:29:45 2023 +0100

    Use Libs.private in pkg-config files corresponding to modules

commit e510f613a422a88fd3b556dc2346a0f51c18e17f
Merge: b859a6a d26374d
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Thu Feb 2 06:37:44 2023 +0100

    Merge pull request #83 from caramelli/master
    
    DRMKMS/Screen: Get panel orientation on screen initialization

commit d26374df50878001ea591bdf72e3bfa7765e2d15
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Feb 2 06:31:18 2023 +0100

    Update ChangeLog

commit 5e7d9f13ef93d974947391250b8edd747777f368
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Feb 2 06:30:58 2023 +0100

    DRMKMS/Screen: Get panel orientation on screen initialization

commit b859a6a2f57c72432e57df198e57b3853c11891e
Merge: c17a0d9 8396440
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Jan 30 11:03:13 2023 +0100

    Merge pull request #82 from caramelli/master
    
    Merge dfb_types.h into directfb.h

commit 8396440cc5c77e06023d5d21f197e02a0c13d052
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Jan 30 11:03:26 2023 +0100

    Update ChangeLog

commit 5670235d139e4395b5dba725a4cec75843c66b1e
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Jan 30 11:03:11 2023 +0100

    Merge dfb_types.h into directfb.h

commit c17a0d9a67272420afe7677d8f03e15672839546
Merge: ef867c1 3ebe7ea
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Fri Jan 27 18:47:57 2023 +0100

    Merge pull request #81 from caramelli/master
    
    Add support for BGR24 format

commit 3ebe7ea437f3d38adad9d4d1ee3fd9b706da08dc
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Fri Jan 27 18:47:19 2023 +0100

    Update ChangeLog

commit 0da4139930f6d644e4001c62ad7a25aa1b4f8378
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Fri Jan 27 18:47:05 2023 +0100

    Add support for BGR24 format

commit ef867c10dc63f8f734d9aa8c7f17396e9dc1838a
Merge: b80fbc8 d14c65f
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Jan 16 14:28:25 2023 +0100

    Merge pull request #80 from caramelli/master
    
    Meson: Fix debug buildtype

commit d14c65fa1b4d7e79e1576dde682049730f316a4e
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Jan 16 14:21:04 2023 +0100

    Meson: Fix debug buildtype

commit b80fbc8cdb98839108676ae9cc24fabdec3b34b5
Merge: 68367a4 acae2dc
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sat Jan 14 03:16:33 2023 +0100

    Merge pull request #79 from caramelli/master
    
    Add check for state->source in dfb_gfxcard_state_check_acquire()

commit acae2dc598e5f41397e0e69844758870ace7bd53
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat Jan 14 03:15:44 2023 +0100

    Core/GfxState: Add check for state->source in dfb_gfxcard_state_check_acquire()

commit 68367a48c745630e3180437405ec3e2975036c78
Merge: cd4172c 5be9975
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sat Jan 7 08:18:47 2023 +0100

    Merge pull request #78 from caramelli/master
    
    Core/Screen: Add screen_data argument for GetScreenRotation() function

commit 5be99757310e92e2922f10162f74ed2e51b9c789
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat Jan 7 08:17:31 2023 +0100

    Update ChangeLog

commit c3742ae6cae0efa30e4ecd53c70d1c3b52c0b676
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat Jan 7 08:17:23 2023 +0100

    Core/Screen: Add screen_data argument for GetScreenRotation() function

commit cd4172c5c38ccfd11caaa53cbc33acb7724b55b4
Merge: bf85d08 47b5604
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Jan 2 10:47:38 2023 +0100

    Merge pull request #76 from caramelli/master
    
    Meson: Use install_symlink() function instead of meson_symlink.sh script

commit 47b5604a830d1bab9abf2c881717aee6b0c8f552
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Jan 2 10:34:16 2023 +0100

    Update ChangeLog

commit 9bdd8911aed12a5b6a293aded3d3c54c27ccc7cb
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Jan 2 10:33:47 2023 +0100

    Meson: Use install_symlink() function instead of meson_symlink.sh script

commit bf85d083d07ffca28361235c6c10caf73961776e
Merge: d942ae0 487211f
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Thu Dec 29 16:42:08 2022 +0100

    Merge pull request #75 from caramelli/master
    
    Fix loop initial declarations (due to removal of -std=gnu99 option)

commit 487211ffd4b4a13bc59a1b5f658908835619da28
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Dec 29 16:42:29 2022 +0100

    Fix loop initial declarations (due to removal of -std=gnu99 option)

commit d942ae051557c7aae03b65f4b1e14dd7ddde0223
Merge: 1278837 36f78a5
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Wed Dec 28 19:55:37 2022 +0100

    Merge pull request #73 from fifteenhex/drmkmsrotsupport-20221227
    
    WorkInProgress: Allow DRM/KMS orientation to configure the rotation

commit 36f78a5dca1ac9d48a341cf4b5a201a7e40a9a30
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Dec 28 19:55:51 2022 +0100

    Allow DRM/KMS orientation to configure the rotation

commit 76ae5f3c50fd06b94c5ca56565769b4ca71b8eb7
Author: Daniel Palmer <daniel@0x0f.com>
Date:   Fri Nov 11 21:47:05 2022 +0900

    system: drmkms: Probe for panel rotation
    
    On some embedded systems the LCD panel is mounted in the chassis
    upside down. To render the image correctly it needs to be rotated
    in userspace.
    
    The kernel part of DRM/KMS exposes the panel orientation via a
    connector property. So grab the orientation for the panel from the
    kernel and present that as the screen rotation so that the image
    is flipped when blitted.

commit 16cc14cf28dc5cfc75cb29456f4e443495e7f2a3
Author: Daniel Palmer <daniel@0x0f.com>
Date:   Sun Feb 20 11:39:10 2022 +0900

    core: layer: Get the physical rotation from the system
    
    For drmkms the physical orientation of the display can be
    probed so it is possible to automatically correct for a
    rotated display.
    
    If the user hasn't set the rotation in their config ask
    the system what the rotation should be.

commit 5525df479e8ced0287e7c3b325bc3c4dc7b69c13
Author: Daniel Palmer <daniel@0x0f.com>
Date:   Sat Feb 19 11:02:57 2022 +0900

    conf: Add flag for whether the rotation was configured or not.
    
    If the user specified a rotation the value could be 0,90,180 or 270.
    If they didn't specify anything it will be 0. Currently it's not
    possible to tell if they asked for 0 or it's just the default.
    
    If the value is 0 but the user didn't set it we should ask the
    system what it thinks the rotation is (i.e. the panel orientation
    from DRM/KMS). So a flag is needed to tell if the 0 came from the
    user.
    
    Add a flag for whether the rotation was user set.

commit 1278837fafc6d85d3a4dd316d848b5bb7dd19ec6
Merge: 0fdf5df 7da29a8
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Tue Dec 20 13:22:23 2022 +0100

    Merge pull request #71 from caramelli/master
    
    fusion: Install shm/pool.h header file

commit 7da29a843e2a765f53c87874c7ffdc37a2312f51
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Tue Dec 20 13:19:21 2022 +0100

    fusion: Install shm/pool.h header file

commit 0fdf5df3995bbcb4d2e06fd5d2b979651bc60f0c
Merge: 7fd8c8e 5bd77be
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Dec 12 17:27:35 2022 +0100

    Merge pull request #69 from caramelli/master
    
    Move shutdown-info parameter definition to fusion config

commit 5bd77be2daf48c36a22d6fccf1f8e6970705e1d1
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Dec 12 17:27:09 2022 +0100

    Update ChangeLog

commit 1e4c97c588121b3c814b108a26a356d977a946a6
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Dec 12 17:26:49 2022 +0100

    Move shutdown-info parameter definition to fusion config

commit 7fd8c8ef0492711667e668a73c2cc336636a97b4
Merge: 96a680d 4388a63
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sat Dec 3 08:07:36 2022 +0100

    Merge pull request #68 from caramelli/master
    
    Move tools to DirectFB2-tools repository (for static library support)

commit 4388a633a043f34f3b12fdb6aa329d4ea800c45a
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat Dec 3 07:25:42 2022 +0100

    Update ChangeLog

commit 5ff1a698b3d5607c089b50910fa73138f98e4ec9
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat Dec 3 07:25:11 2022 +0100

    Move tools to DirectFB2-tools repository (for static library support)

commit 96a680da988cf3466f5106b943bc9739b2199fa9
Merge: 2519295 4db5565
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Wed Nov 30 17:59:49 2022 +0100

    Merge pull request #67 from caramelli/master
    
    Add DIRECT_DEALLOCATE_INTERFACE() calls on error

commit 4db5565d6ec9e5c5c06fe528bf111209bf11a112
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Nov 30 17:52:13 2022 +0100

    Add DIRECT_DEALLOCATE_INTERFACE() calls on error

commit 2519295bc91765c1fc036d6ee206f163f7509c37
Merge: ab42607 896141d
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sat Nov 19 10:33:09 2022 +0100

    Merge pull request #65 from caramelli/master
    
    IDirectFBSurface: Set flip_func to control the triggering of the actual Flip

commit 896141dcd2ccb610c6aedad904dc1602ba9289f4
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat Nov 19 10:33:03 2022 +0100

    Update ChangeLog

commit 64471d3ce80ff3f948e02d809c51247a50e058ca
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat Nov 19 10:32:50 2022 +0100

    IDirectFBSurface: Set flip_func to control the triggering of the actual Flip

commit ab426077fe6c9dbfa8b0dfe95b7789d15172a159
Merge: 1989def ee6ffd6
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Nov 14 12:20:31 2022 +0100

    Merge pull request #64 from caramelli/master
    
    drmkms: Unused PoolData

commit ee6ffd6e8ff0d09cd886e7abbcc2dc26a0c06873
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Nov 14 12:00:12 2022 +0100

    drmkms: Unused PoolData

commit 1989def37e4768782f98f57ba60be5f4b9d53f69
Merge: e2814bb 3310069
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Thu Nov 10 12:11:25 2022 +0100

    Merge pull request #63 from caramelli/master
    
    tools: Add dfiffinfo

commit 331006993b9d711fe88e74a82013e1debbddcb90
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Nov 10 11:41:08 2022 +0100

    Update ChangeLog

commit 27d02177ae28cec5f8ea1e9afff402298c83d9f7
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Nov 10 11:40:56 2022 +0100

    tools: Add dfiffinfo

commit e2814bb5c8b21072896026c3d8c318e4697ac4db
Merge: 634b1a2 b781bc9
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Nov 7 21:17:53 2022 +0100

    Merge pull request #62 from caramelli/master
    
    IDirectFB: Add GetFontSurfaceFormat()

commit b781bc98cbf1587a1a14110416750c6cc39d99c9
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Nov 7 19:57:32 2022 +0100

    Update ChangeLog

commit 76fa4a7639c60fbddaf295fdef0aa97079128fe7
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Nov 7 19:57:00 2022 +0100

    IDirectFB: Add GetFontSurfaceFormat()

commit 634b1a25488bc8a64b7026416712ebf99f66b91f
Merge: ae9393d 54efecd
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Thu Oct 27 03:46:51 2022 +0200

    Merge pull request #60 from caramelli/master
    
    Core/Main: Call fusion_hash_set_autofree()

commit 54efecd8acae0e6828f75c7ea8b1e2f128e2919d
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Oct 27 03:38:15 2022 +0200

    Update ChangeLog

commit fb7411f36a7bbc0af99089a9dc179fffe30b0c29
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Oct 27 03:38:00 2022 +0200

    Core/Main: Call fusion_hash_set_autofree()

commit ae9393d2d756a7a6907da5ec481e2b3e4e91efb0
Merge: 85ee588 0659ed2
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Wed Oct 26 10:33:49 2022 +0200

    Merge pull request #59 from caramelli/master
    
    Fusion: Fix memory leak and destroy event_dispatcher_thread on exit

commit 0659ed23c1d3bd86e06b70cdc1680d1c1e8de88e
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Oct 26 09:51:13 2022 +0200

    Fusion: Fix memory leak and destroy event_dispatcher_thread on exit

commit 85ee588f636d4836bdf7c1d0db47b74d4ec3827d
Merge: 3e0a706 d2a158a
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Oct 24 18:50:13 2022 +0200

    Merge pull request #58 from caramelli/master
    
    Add musl libc compatibility

commit d2a158a3a89910e99f50e6ff8f073a457dcfcea0
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Oct 24 18:46:49 2022 +0200

    Add musl libc compatibility

commit 3e0a706978538a2e2050a2745edb6ad0c30ad39c
Merge: 651ac43 cb3fb64
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sat Oct 22 15:59:59 2022 +0200

    Merge pull request #56 from caramelli/master
    
    Input/Linux: Uninitialised value was created by a stack allocation

commit cb3fb6487b6b8e5b66a9c1cb7a08673d50d49cc4
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat Oct 22 15:59:16 2022 +0200

    Input/Linux: Uninitialised value was created by a stack allocation

commit 651ac43bbb8daf812b410a66736a0ce457b00498
Merge: 3392959 857032f
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Oct 17 17:57:33 2022 +0200

    Merge pull request #55 from caramelli/master
    
    Meson: Add the boolean check kwarg to the run_command() call

commit 857032f9a16800f352cead58a1958965231c5ff7
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Oct 17 17:47:12 2022 +0200

    Meson: Add the boolean check kwarg to the run_command() call

commit 339295980e9a0eeda55641dd35691942512bc70b
Merge: 9a2d1bf 00c3612
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sat Oct 8 02:45:31 2022 +0200

    Merge pull request #54 from caramelli/master
    
    Add support for static libraries (MCU targets)

commit 00c361275f506b798f06ff0979b6fa0ec89e1a80
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat Oct 8 02:45:07 2022 +0200

    Update ChangeLog

commit 821cffd5f7102eaa5bf75da1190e0670293e50a9
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat Oct 8 02:44:17 2022 +0200

    Add support for static libraries (MCU targets)

commit 9a2d1bf1beb2c8d8c8bf1ca5154a19acffe2f4f8
Merge: 1989eb1 c61ab74
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Thu Sep 29 17:49:11 2022 +0200

    Merge pull request #53 from caramelli/master
    
    Add support for BT.2020 conversion

commit c61ab74f402dab12de791a69d40fe8cae2a399bc
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Sep 29 17:49:33 2022 +0200

    Update ChangeLog

commit 9328df9ddd34e097606b47776a94b73c947fb417
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Sep 29 17:49:25 2022 +0200

    Add support for BT.2020 conversion

commit 1989eb1c12b329cb618c3c7669d6bfc29f9480d9
Merge: 4b49dda 0bd4a4f
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Wed Sep 28 21:38:41 2022 +0200

    Merge pull request #52 from caramelli/master
    
    Direct/Interface: Ignore character case for 'default-interface-implementation' option

commit 0bd4a4f14ba57a27cfbd2767eaa1329405aaa574
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Sep 28 21:08:59 2022 +0200

    Update ChangeLog

commit a31867801de215e6f92c0fbaf1f192d454784846
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Sep 28 21:08:37 2022 +0200

    Direct/Interface: Ignore character case for 'default-interface-implementation' option

commit 4b49dda3e337774f04ff77773afadcb409610f94
Merge: 4260493 e613839
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sat Sep 24 11:36:15 2022 +0200

    Merge pull request #51 from caramelli/master
    
    Add dfb_colorspace_parse()

commit e613839786d0e9e48828f50bd1a3e06e887f4ac1
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat Sep 24 11:24:38 2022 +0200

    Update ChangeLog

commit 58b530ab60abe2fe5b7ba32a7f9fa9fc80d5efdb
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat Sep 24 11:24:08 2022 +0200

    Add dfb_colorspace_parse()

commit 4260493757d59f0fe750fa6ade2397247bcf1dce
Merge: 002b6f3 9de9d06
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Fri Sep 16 08:57:22 2022 +0200

    Merge pull request #50 from caramelli/master
    
    Direct/Stream: Add file_wait()

commit 9de9d06d1a7f58ab5eb468373cb10a3dba566f93
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Fri Sep 16 08:24:15 2022 +0200

    Update ChangeLog

commit 1694795f34e698b7544f86d688fcec6613666ab4
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Fri Sep 16 08:24:03 2022 +0200

    Direct/Stream: Add file_wait()

commit 002b6f331a2b202359d601fc4c3425b7e9307449
Merge: ad438fc fc9ce01
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Thu Sep 15 10:11:30 2022 +0200

    Merge pull request #49 from caramelli/master
    
    Add support for BT.709 conversion

commit fc9ce013b85b514843a6962140ab668a55d4af70
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Sep 15 10:11:17 2022 +0200

    Update ChangeLog

commit 0d188b62f3519fcdd1ee100bc992414d60dfaff6
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Sep 15 10:11:04 2022 +0200

    Add support for BT.709 conversion

commit ad438fce3601e86658e72e4f795bec187014ef4f
Merge: 4bfa300 46ee720
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Wed Sep 7 12:55:18 2022 +0200

    Merge pull request #48 from caramelli/master
    
    Add support for NV24 and NV42 video format

commit 46ee7207cf3678fea84f2ea96dbc58842069b5fc
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Sep 7 12:45:53 2022 +0200

    Update ChangeLog

commit ccd58c3e9c96f964a01f9c4937381c6ce6cad54c
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Sep 7 12:45:35 2022 +0200

    Add support for NV24 and NV42 video format

commit 4bfa300a8f25334d29815cca44d594382b7b2c2e
Merge: 0c0a38c 16623ff
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Sep 5 11:21:07 2022 +0200

    Merge pull request #47 from caramelli/master
    
    Font/DGIFF: return DFB_INVARG if height not set in font description

commit 16623ff93089d404505d9279d3247c27a0611a0c
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Sep 5 11:16:18 2022 +0200

    Update ChangeLog

commit 80f94b0867308ce373a1c4ffd2dbc33d300adf34
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Sep 5 11:16:03 2022 +0200

    Font/DGIFF: return DFB_INVARG if height not set in font description

commit 0c0a38cd0dc67a8fb254b1ca7ff4913222d038b8
Merge: 0b9984b 396d28e
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Thu Sep 1 09:00:50 2022 +0200

    Merge pull request #46 from caramelli/master
    
    Add support for YVU 4:4:4 planar format

commit 396d28e145e0f205718861e4d4ee5376319d80dc
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Sep 1 08:58:36 2022 +0200

    Update ChangeLog

commit badf1d0b52ea7e6d39070dcd68c968dd0ed9f5fa
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Sep 1 08:58:29 2022 +0200

    Add support for YVU 4:4:4 planar format

commit 0b9984b5d680d48422badff6f36f3439c806d3f4
Merge: eb7ab25 dea029a
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Wed Aug 24 13:38:14 2022 +0200

    Merge pull request #45 from caramelli/master
    
    Add support for YUV 4:2:2 planar format

commit dea029adcb4daf103956aa73ebd32c57db400596
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Aug 24 13:08:55 2022 +0200

    Update ChangeLog

commit a7bcf7475493700e166f44ed5307105eabc0676e
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Aug 24 13:04:37 2022 +0200

    Add support for YUV 4:2:2 planar format

commit eb7ab25c193f90743553e6e09724756723348038
Merge: c750bb9 1d99b8a
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sun Aug 21 11:09:20 2022 +0200

    Merge pull request #44 from caramelli/master
    
    drmkms: Remove libkms dependency

commit 1d99b8a946dfbb4ed6011380448738a78fb49272
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sun Aug 21 10:56:22 2022 +0200

    Update ChangeLog

commit 958aab760292281eff4ca41d3de11a8581fa45ef
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sun Aug 21 10:08:11 2022 +0200

    drmkms: Remove libkms dependency

commit c750bb98c76191e8149e501db3d408175983d30a
Merge: 33c7613 2690e4b
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sun Aug 14 09:11:37 2022 +0200

    Merge pull request #43 from caramelli/master
    
    Core_Resource_AddIdentity(): if (call_owner != fusion_id), return DFB_FAILURE

commit 2690e4bfcca798b6f183a07cbe038b4b4f105c34
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sun Aug 14 09:10:10 2022 +0200

    Core_Resource_AddIdentity(): if (call_owner != fusion_id), return DFB_FAILURE

commit 33c7613704c0055019d6085dbddcd5b972fb1c9f
Merge: e629f8b 402acc7
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Thu Aug 11 07:16:42 2022 +0200

    Merge pull request #41 from caramelli/master
    
    Core/LayerContext: Add dfb_layer_context_set_cursor_shape() and dfb_layer_context_get_cursor_shape()

commit 402acc7c68497321ad732d4c8594df63bb7f30e2
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Aug 11 07:10:26 2022 +0200

    Update ChangeLog

commit 5c309b21c5094d540f3835d37ee17f3dff8cfe68
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Aug 11 07:10:17 2022 +0200

    Core/LayerContext: Add dfb_layer_context_set_cursor_shape() and dfb_layer_context_get_cursor_shape()

commit e629f8baefc649b0488846992ffea1f9b442676b
Merge: 61ceb79 462e44a
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Tue Aug 9 03:55:00 2022 +0200

    Merge pull request #40 from caramelli/master
    
    IDirectFBWindow: by default the cursor surface is not set => cursor_flags = DWCF_INVISIBLE

commit 462e44a28259d2ca2947142486cf5ce51cde2ed5
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Tue Aug 9 03:10:42 2022 +0200

    Update ChangeLog

commit db66ecd667499014531a3a553c1c5d93acc9b414
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Tue Aug 9 03:09:24 2022 +0200

    IDirectFBWindow: by default the cursor surface is not set => cursor_flags = DWCF_INVISIBLE

commit 61ceb79564a81905c5521018892c5816e9d9a4af
Merge: 4a08b68 5dab035
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Fri Aug 5 09:28:21 2022 +0200

    Merge pull request #39 from caramelli/master
    
    IDirectFBDisplayLayer: SetCursorShape() accept NULL for shape to restore default cursor

commit 5dab03540a293328363f6484a0170d37468cffcd
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Fri Aug 5 09:27:45 2022 +0200

    Update ChangeLog

commit b603d612311b99c55ef94d732b5048e74dc1dde8
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Fri Aug 5 09:27:37 2022 +0200

    IDirectFBDisplayLayer: SetCursorShape() accept NULL for shape to restore default cursor

commit 4a08b6867fb69a5850bda36f3362591dbe632f8a
Merge: 0377501 04f63f2
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Thu Aug 4 16:43:22 2022 +0200

    Merge pull request #38 from caramelli/master
    
    Core/WindowStack: unused CoreDFB object in dfb_windowstack_cursor_enable()

commit 04f63f29661b63385fff8f4b5dad010b7f74a674
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Aug 4 16:11:48 2022 +0200

    Update ChangeLog

commit 2c23979f3e978567fbc210af941d943fd91d3d6c
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Aug 4 16:10:24 2022 +0200

    Core/WindowStack: unused CoreDFB object in dfb_windowstack_cursor_enable()

commit 0377501c0eb71f6d96342b57a63bfe41b6d8e663
Merge: 39c7500 1d5a410
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sun Jul 17 11:45:10 2022 +0200

    Merge pull request #37 from caramelli/master
    
    IDirectFBInputDevice: unused buttonmask, locks, modifiers...

commit 1d5a4109ce66101ca6d3e55c1fde2b23ec69dde8
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sun Jul 17 11:43:12 2022 +0200

    IDirectFBInputDevice: unused buttonmask, locks, modifiers...

commit 39c75006b18de38e845ffbec66856ddc18c23136
Merge: 7c956f6 e2c1690
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sun Jun 26 07:49:54 2022 +0200

    Merge pull request #36 from caramelli/master
    
    WM/Default: Set the shape of the cursor bound to a window

commit e2c16907872af39a4ce53c4bce1318d563772caa
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sun Jun 26 07:42:30 2022 +0200

    WM/Default: Set the shape of the cursor bound to a window

commit 7c956f69fc624616e3f3a4b0e95dc82bf865cb79
Merge: 23cf9e4 508fc28
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Fri Jun 24 18:45:11 2022 +0200

    Merge pull request #35 from caramelli/master
    
    Restore dfb_clip_edges() as a public function

commit 508fc2822a14b43ae660beb4a209e9a24f6ecc64
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Fri Jun 24 18:43:14 2022 +0200

    Restore dfb_clip_edges() as a public function

commit 23cf9e4e0016c6ff0cb2c3edf0b8a77857a827d0
Merge: 45da19c fafb9ad
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Thu Jun 2 15:12:22 2022 +0200

    Merge pull request #33 from caramelli/master
    
    Add DSI to DFBScreenEncoderDescription

commit fafb9adbc80b5dae6ca0e92f29002d1ff46e643d
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Jun 2 15:08:30 2022 +0200

    Update ChangeLog

commit 9439817cec072630c900eaf4dfbebfea82634c10
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Jun 2 15:08:23 2022 +0200

    Add DSI to DFBScreenEncoderDescription

commit 45da19c04a67004f0228ad59b68b7975ca821dc9
Merge: e019fbd f91877e
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Wed Jun 1 12:41:38 2022 +0200

    Merge pull request #32 from caramelli/master
    
    Add support for multi-touch input device

commit f91877ed968907248c64e06aa9e9640bc0c3a4e2
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Jun 1 11:41:15 2022 +0200

    Update ChangeLog

commit 6d8293dc6d4684e77c9aef4bae2898354b85dd23
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Jun 1 11:40:36 2022 +0200

    Add support for multi-touch input device

commit e019fbd1be6683f608d861472e7f43caaede6a3b
Merge: 2537495 bbf1c7b
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sat May 14 12:28:55 2022 +0200

    Merge pull request #31 from caramelli/master
    
    Core/Layers: Increase the maximum number of layers

commit bbf1c7b4adb4b87f31675efbb6676e9bdd1ceb26
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat May 14 12:27:36 2022 +0200

    Update ChangeLog

commit 7b7443a96e050fcf62bf0f8c2ebedd0aba81c4b3
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat May 14 12:27:23 2022 +0200

    Core/Layers: Increase the maximum number of layers

commit 2537495e4fc014168b9249dd367e6d954327aea3
Merge: 00aeac6 b7e82e1
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Wed May 11 09:56:46 2022 +0200

    Merge pull request #30 from caramelli/master
    
    Fix issue with preallocated surfaces when application is slave

commit b7e82e1ae52992b7207b1ef6ac8326253ac42b75
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed May 11 09:55:25 2022 +0200

    Update ChangeLog

commit 6e0a7e205fafe9f8b409e57b28f8390d05ed2945
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed May 11 09:55:01 2022 +0200

    Fix issue with preallocated surfaces when application is slave

commit 00aeac631fca9a206270740ad166349b321feb90
Merge: 98d4278 c75e202
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Tue May 3 17:31:49 2022 +0200

    Merge pull request #29 from caramelli/master
    
    DFVFF: Add missing DIRECT_DEALLOCATE_INTERFACE( thiz )

commit c75e20207b9044f671c45829ce1ebd76b9fee790
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Tue May 3 17:30:29 2022 +0200

    Update ChangeLog

commit 92f23cc01a45183d7022c97fbc2c66baea0b748a
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Tue May 3 17:30:02 2022 +0200

    DFVFF: Add missing DIRECT_DEALLOCATE_INTERFACE( thiz )

commit 98d4278476ccaa7a787721cec30e503c23f84bf2
Merge: 35a7c6b 291ace5
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sun May 1 09:31:40 2022 +0200

    Merge pull request #28 from caramelli/master
    
    Fix uninitialised byte(s)

commit 291ace5a7fa6f0dc67ed37683513044331702be1
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sun May 1 09:30:52 2022 +0200

    Fix uninitialised byte(s)

commit 35a7c6ba5300582218d323eca562ffc7d5537335
Merge: 19049c5 5d32b0b
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sat Apr 30 14:25:32 2022 +0200

    Merge pull request #27 from caramelli/master
    
    drmkms: Management of connectors not bound to an encoder

commit 5d32b0b88a0bd0be7d29d851ebffb48db31dccb1
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Sat Apr 30 14:23:36 2022 +0200

    drmkms: Management of connectors not bound to an encoder

commit 19049c5d29210551d8626d30c307ce140573db30
Merge: 1f2a613 34b8225
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Fri Apr 29 18:41:00 2022 +0200

    Merge pull request #26 from caramelli/master
    
    Add -lrt for compatibility with old glibc

commit 34b8225b7c75074a87c50adef1ceb4a29a384fee
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Fri Apr 29 18:37:46 2022 +0200

    Add -lrt for compatibility with old glibc

commit 1f2a613206dc1ddd7ed301f79468d5b3397ea11f
Merge: d90c877 724b2f2
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Thu Apr 28 18:14:17 2022 +0200

    Merge pull request #25 from caramelli/master
    
    Fix palette index check in InitLayers()

commit 724b2f259d5871485ec12aee5a5977303317c560
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Apr 28 18:12:00 2022 +0200

    Fix palette index check in InitLayers()

commit d90c8770e1b844fcd4698592a2281b5a749ddce7
Merge: 6b74bc4 3a428e9
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Thu Apr 28 14:18:15 2022 +0200

    Merge pull request #24 from caramelli/master
    
    readdir_r() is deprecated

commit 3a428e985c2320b989921b1d5b0aaa846d8fe04f
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Thu Apr 28 14:18:22 2022 +0200

    readdir_r() is deprecated

commit 6b74bc443cdcc1c1127581bbc1b02ed1fec16bf7
Merge: 9d0781a 0505492
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Wed Mar 30 19:13:40 2022 +0200

    Merge pull request #22 from caramelli/master
    
    Fix SYSCONFDIR

commit 0505492baf1b3abb4b2e08c07118a3c1d5161ec5
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Mar 30 19:09:28 2022 +0200

    Update ChangeLog

commit 7ac237d1be6517acbc97b03dc85aa775e12dd484
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Mar 30 19:08:00 2022 +0200

    Fix SYSCONFDIR

commit 9d0781a02e700e09bc7e7ae5fa4ffa1050950e28
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Feb 28 20:00:45 2022 +0100

    build: Fix issues with build order and directfb_strings

commit 9406153d9dc1cdda12146afdd63e3fd0330b587b
Author: Daniel Palmer <daniel@0x0f.com>
Date:   Sun Feb 27 12:56:12 2022 +0900

    build: Fix issues with build order and directfb_strings
    
    The header generated by directfb_strings is used in other places.
    If the build is done in parallel and directfb_strings hasn't completed
    yet the build will fail.
    
    Add directfb_strings as an input to the places that need it so that
    it always happens before it's needed.

commit 4d1418f50f039cd18363fe58a6b75393eca93316
Author: Daniel Palmer <daniel@0x0f.com>
Date:   Thu Feb 17 22:25:42 2022 +0900

    gfx: generic: Add NEON assembly support
    
    At some point Linaro added NEON assembly for generic
    graphics. It looks like it never got upstreamed.
    
    This pulls in their assembly and wires it in the
    same way MMX assembly is.
    
    Link: https://blueprints.launchpad.net/linaro-multimedia-project/+spec/engr-multimedia-directfb-neon-optimization

commit 30e3ebe19e9b94a9fedba565fa2b55de30f98cbc
Merge: c3aa9c0 9f6b8f4
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Feb 14 11:13:38 2022 +0100

    Merge pull request #17 from fifteenhex/valgrindfixes_20220214
    
    core: core: Fix use after free when calling fusion_shm_pool_destroy()

commit 9f6b8f45d2ac4bb6dcd15c3d0d6db1fe356aea4d
Author: Daniel Palmer <daniel@0x0f.com>
Date:   Mon Feb 14 18:06:15 2022 +0900

    core: core: Fix use after free when calling fusion_shm_pool_destroy()
    
    fusion_shm_pool_destory() is called with shared->shmpool as it's
    second argument but shared has just been freed in the in previous
    line.
    
    Pull shared->shmpool out into a local variable and use that instead.

commit c3aa9c056209349dee935d69f2ca9b593687bcea
Merge: 1209d65 c51e925
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Sun Feb 13 22:50:06 2022 +0100

    Merge pull request #16 from fifteenhex/valgrind_fixes_20220213
    
    Valgrind fixes 20220213

commit c51e9255f05f599a2b5e8a0b2c62beeebdee8d56
Author: Daniel Palmer <daniel@0x0f.com>
Date:   Sat Feb 12 22:55:32 2022 +0900

    input: linux: Initialise input event in set_led()
    
    Not all the fields in the struct are initialised so the
    struct should be allocated with initialisation.

commit bf5d6d23050bb15d3d81a50d86b128d1de54e70f
Author: Daniel Palmer <daniel@0x0f.com>
Date:   Sat Feb 12 21:08:47 2022 +0900

    system: drmkms: vt: Initialise vt_mode struct.
    
    Not all of the fields in vt_mode struct are filled so we will
    be passing uninitilised data unless we ask for it to be zero initialised.

commit 1209d657c2534c6175477177cf3ef5fdb0c33634
Merge: b3e66e4 75d2237
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Fri Feb 11 14:14:32 2022 +0100

    Merge pull request #14 from fifteenhex/valgrind_fixes
    
    Valgrind splat fixes

commit 75d2237fccf638ece90919e3aba393a701f4ebc0
Author: Daniel Palmer <daniel@0x0f.com>
Date:   Fri Feb 11 11:28:09 2022 +0900

    libdirect: signals: Use mark/sweep to free signal handlers
    
    Valgrind is complaining a lot about handlers being accessed after
    they have been freed. To make this easier to debug refactor freeing
    the actually memory into a single location and change the remove
    function to just mark the handler as dead.

commit 270cd1b150e71d8d3d8f82c676db8915fdcc9cf5
Author: Daniel Palmer <daniel@0x0f.com>
Date:   Fri Feb 11 10:38:44 2022 +0900

    libdirect: os: linux: thread: Fix passing of null pointer to prctl
    
    prctl(PR_GET_NAME, arg2, ...) expects a pointer to a 16 byte buffer
    in arg2. Currently the code is checking if thread->name is null
    and then calling prctl(PR_GET_NAME, thread->name, ...) if it is.
    This results in a null pointer always being passed to prctl().
    
    Put a 16 byte buffer on the stack, pass that to prctl() if thread->name
    is null, then copy the result into thread->name.

commit b3e66e4b8b78d443d9920f12b385e5c580f56570
Merge: ef3583f ff02c1f
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Wed Feb 9 08:00:35 2022 +0100

    Merge pull request #12 from caramelli/master
    
    Add support for NV61

commit ff02c1f7058a84d99c612fafdff7b02e83474e3f
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Feb 9 07:57:36 2022 +0100

    Update ChangeLog

commit f6358663a118e8f3bf04c4a87442fd22e58efd5a
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Feb 9 07:57:14 2022 +0100

    Add support for NV61

commit ef3583fd6d9484019dece42dc18f528b053f6beb
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Tue Feb 8 14:58:04 2022 +0100

    Update ChangeLog

commit 521eebe4042d988c04930e0e148cf41ac3db085c
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Tue Feb 8 14:57:43 2022 +0100

    Replace SIGUNUSED with the standard SIGSYS signal

commit ad206f371b4ad5f14e25ac6ab3906f226061eefc
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Tue Feb 8 14:54:06 2022 +0100

    Update ChangeLog

commit 33de3256220022401644ffa264ccfdd6d7d50e00
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Tue Feb 8 14:51:50 2022 +0100

    Declare CorePart variables with extern

commit c1df2aa105be7f24b99b205c92f31147c7ea9681
Merge: 5ec744b 4f95de7
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Wed Feb 2 10:00:21 2022 +0100

    Merge pull request #8 from caramelli/master
    
    Add pixel format conversion functions

commit 4f95de7d778bbcd5c3910945f1903b92e748989c
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Feb 2 09:59:21 2022 +0100

    Update ChangeLog

commit d404af89d1f55a98c091417531be6f1e8f5d451e
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Feb 2 09:59:07 2022 +0100

    Add pixel format conversion functions

commit 5ec744bbfaad38838051d41bad95d8159ebee93e
Merge: dcfa6e8 47be2bd
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Wed Feb 2 09:37:26 2022 +0100

    Merge pull request #7 from caramelli/master
    
    Add BT.2020 color space definition

commit 47be2bd015301a57ad77d2f29a6e0af58442bfd6
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Feb 2 09:34:50 2022 +0100

    Update ChangeLog

commit d75e3b98b64622ffb6cab2d48c75900feac2a1e6
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Wed Feb 2 09:33:49 2022 +0100

    Add BT.2020 color space definition

commit dcfa6e8bdfce590bb4e2a95beb17fa30c9f23a22
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Tue Jan 18 21:56:00 2022 +0100

    DirectFB2 at FOSDEM 2022

commit cefad0b1bbda67ae2414e99c140c8234e96c366f
Merge: e8e8bfc 1de2c28
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Tue Jan 18 21:53:06 2022 +0100

    Merge pull request #4 from caramelli/master
    
    DFVFF: Restart from the beginning after stopping

commit 1de2c28a29b473832202d90b0d7f137bef7e4831
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Tue Jan 18 21:50:39 2022 +0100

    Update ChangeLog

commit ed3efb3ada2e6bb6ef7d00e72c08f29a64e47808
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Tue Jan 18 21:44:42 2022 +0100

    DFVFF: Restart from the beginning after stopping

commit e8e8bfcc7bdbffbbcc74e5ca55e50cf2fa8933b9
Merge: 33e96c5 84697e1
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Tue Jan 11 06:28:27 2022 +0100

    Merge pull request #3 from caramelli/master
    
    DFVFF: no interlaced support

commit 84697e114951385b0d262811b59b9055b5c796c4
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Tue Jan 11 06:24:40 2022 +0100

    Update ChangeLog

commit decbeb69a473d30244958f29b1d45e6131ad3beb
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Tue Jan 11 06:23:41 2022 +0100

    DFVFF: no interlaced support

commit 33e96c5c8030c1b37448bd43ea115f082cf056a8
Merge: ac69e79 5a49ce4
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Jan 10 09:51:26 2022 +0100

    Merge pull request #2 from caramelli/master
    
    Restore DirectFBGL interface version

commit 5a49ce419408b0c5e96b9c0c4a630f85e3155763
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Jan 10 09:43:33 2022 +0100

    Update ChangeLog

commit b6c80b871c6fc4a76824d86b2b58ab52d27fb451
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Jan 10 09:38:34 2022 +0100

    Restore DirectFBGL interface version

commit ac69e79742b633ef553da667a6d68308d7dedd89
Merge: 39e2044 99a4109
Author: DirectFB2 <80045286+directfb2@users.noreply.github.com>
Date:   Mon Dec 6 15:45:17 2021 +0100

    Merge pull request #1 from caramelli/master
    
    Revival of DirectFB

commit 99a41095baa5d84c39b035057b26ec1b51d080c5
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Dec 6 15:42:37 2021 +0100

    Add ChangeLog

commit 84f00f65d763389c0fba5a28d150c418c8ce9990
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Dec 6 15:42:23 2021 +0100

    Revival of DirectFB

commit 39e204404329144622d26586587657f6a4b6fb2c
Author: Nicolas Caramelli <caramelli.devel@gmail.com>
Date:   Mon Dec 6 15:37:21 2021 +0100

    Initial revision


================================================
FILE: INSTALL
================================================
Installation Instructions
=========================

DirectFB2 is built using Meson.

You will also need a C compiler and fluxcomp for converting .flux interface description files to .c files.

With the default build of DirectFB2, only one application can be running (single application core). However you have the
option to use the multi application core which allows multiple applications to run at the same time within a session.
The applications then communicate through a layer called Fusion implemented either completely in user space, or by
relying on the linux-fusion kernel module (which implements the critical parts of Fusion).

To build the single application core:

  $ meson setup build/

To build the multi application core with Fusion implemented completely in user space:

  $ meson setup -Dmulti=true build/

or with Fusion based on the linux-fusion kernel module:

  $ meson setup -Dmulti=true -Dmulti-kernel=true build/

Linux
=====

On Linux, start the build with:

  $ meson compile -C build/

And install DirectFB2 using:

  $ meson install -C build/

Next, install and run DirectFB applications, such as those available in DirectFB-examples.

NuttX
=====

On NuttX, copy the DirectFB2 directory to your NuttX apps/graphics/ directory.

A defconfig file for the NuttX simulator is available.
It must be placed in a directory nuttx/boards/sim/sim/sim/configs/directfb/

Add a DirectFB application, such as those available in DirectFB-examples.

Configure the simulator:

  ./tools/configure.sh sim:directfb

And start the build with:

  $ make

Run the simulator using:

  $ ./nuttx


================================================
FILE: Kconfig
================================================
#  This file is part of DirectFB.
#
#  This library is free software; you can redistribute it and/or
#  modify it under the terms of the GNU Lesser General Public
#  License as published by the Free Software Foundation; either
#  version 2.1 of the License, or (at your option) any later version.
#
#  This library is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
#  Lesser General Public License for more details.
#
#  You should have received a copy of the GNU Lesser General Public
#  License along with this library; if not, write to the Free Software
#  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA

menuconfig GRAPHICS_DIRECTFB2
	bool "DirectFB2"
	default n
	---help---
		Enable support for DirectFB2.


================================================
FILE: Make.defs
================================================
#  This file is part of DirectFB.
#
#  This library is free software; you can redistribute it and/or
#  modify it under the terms of the GNU Lesser General Public
#  License as published by the Free Software Foundation; either
#  version 2.1 of the License, or (at your option) any later version.
#
#  This library is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
#  Lesser General Public License for more details.
#
#  You should have received a copy of the GNU Lesser General Public
#  License along with this library; if not, write to the Free Software
#  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA

ifneq ($(CONFIG_GRAPHICS_DIRECTFB2),)
CONFIGURED_APPS += $(APPDIR)/graphics/DirectFB2

CFLAGS += ${INCDIR_PREFIX}$(APPDIR)/graphics/DirectFB2/include
CFLAGS += ${INCDIR_PREFIX}$(APPDIR)/graphics/DirectFB2/lib
endif


================================================
FILE: Makefile
================================================
#  This file is part of DirectFB.
#
#  This library is free software; you can redistribute it and/or
#  modify it under the terms of the GNU Lesser General Public
#  License as published by the Free Software Foundation; either
#  version 2.1 of the License, or (at your option) any later version.
#
#  This library is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
#  Lesser General Public License for more details.
#
#  You should have received a copy of the GNU Lesser General Public
#  License along with this library; if not, write to the Free Software
#  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA

include $(APPDIR)/Make.defs

CFLAGS += -I.
CFLAGS += -Isrc

CFLAGS += -DBUILDTIME=\"$(shell date -u "+%Y-%m-%d\ %H:%M")\"
CFLAGS += -DSYSCONFDIR=\"/etc\"

DIRECT_CSRCS  = lib/direct/clock.c
DIRECT_CSRCS += lib/direct/conf.c
DIRECT_CSRCS += lib/direct/debug.c
DIRECT_CSRCS += lib/direct/direct.c
DIRECT_CSRCS += lib/direct/direct_result.c
DIRECT_CSRCS += lib/direct/hash.c
DIRECT_CSRCS += lib/direct/init.c
DIRECT_CSRCS += lib/direct/interface.c
DIRECT_CSRCS += lib/direct/log.c
DIRECT_CSRCS += lib/direct/log_domain.c
DIRECT_CSRCS += lib/direct/map.c
DIRECT_CSRCS += lib/direct/mem.c
DIRECT_CSRCS += lib/direct/memcpy.c
DIRECT_CSRCS += lib/direct/messages.c
DIRECT_CSRCS += lib/direct/modules.c
DIRECT_CSRCS += lib/direct/result.c
DIRECT_CSRCS += lib/direct/stream.c
DIRECT_CSRCS += lib/direct/system.c
DIRECT_CSRCS += lib/direct/thread.c
DIRECT_CSRCS += lib/direct/trace.c
DIRECT_CSRCS += lib/direct/util.c
DIRECT_CSRCS += lib/direct/os/nuttx/clock.c
DIRECT_CSRCS += lib/direct/os/nuttx/filesystem.c
DIRECT_CSRCS += lib/direct/os/nuttx/log.c
DIRECT_CSRCS += lib/direct/os/nuttx/mem.c
DIRECT_CSRCS += lib/direct/os/nuttx/mutex.c
DIRECT_CSRCS += lib/direct/os/nuttx/signals.c
DIRECT_CSRCS += lib/direct/os/nuttx/system.c
DIRECT_CSRCS += lib/direct/os/nuttx/thread.c

FUSION_CSRCS  = lib/fusion/arena.c
FUSION_CSRCS += lib/fusion/call.c
FUSION_CSRCS += lib/fusion/conf.c
FUSION_CSRCS += lib/fusion/fusion.c
FUSION_CSRCS += lib/fusion/hash.c
FUSION_CSRCS += lib/fusion/init.c
FUSION_CSRCS += lib/fusion/lock.c
FUSION_CSRCS += lib/fusion/object.c
FUSION_CSRCS += lib/fusion/reactor.c
FUSION_CSRCS += lib/fusion/ref.c
FUSION_CSRCS += lib/fusion/shmalloc.c
FUSION_CSRCS += lib/fusion/vector.c
FUSION_CSRCS += lib/fusion/shm/fake.c

DIRECTFB_CSRCS  = src/directfb.c
DIRECTFB_CSRCS += src/directfb_result.c
DIRECTFB_CSRCS += src/idirectfb.c
DIRECTFB_CSRCS += src/init.c
DIRECTFB_CSRCS += src/core/CoreDFB_real.c
DIRECTFB_CSRCS += src/core/CoreGraphicsState_real.c
DIRECTFB_CSRCS += src/core/CoreGraphicsStateClient.c
DIRECTFB_CSRCS += src/core/CoreInputDevice_real.c
DIRECTFB_CSRCS += src/core/CoreLayer_real.c
DIRECTFB_CSRCS += src/core/CoreLayerContext_real.c
DIRECTFB_CSRCS += src/core/CoreLayerRegion_real.c
DIRECTFB_CSRCS += src/core/CorePalette_real.c
DIRECTFB_CSRCS += src/core/CoreScreen_real.c
DIRECTFB_CSRCS += src/core/CoreSlave_real.c
DIRECTFB_CSRCS += src/core/CoreSurface_real.c
DIRECTFB_CSRCS += src/core/CoreSurfaceAllocation_real.c
DIRECTFB_CSRCS += src/core/CoreSurfaceClient_real.c
DIRECTFB_CSRCS += src/core/CoreWindow_real.c
DIRECTFB_CSRCS += src/core/CoreWindowStack_real.c
DIRECTFB_CSRCS += src/core/clipboard.c
DIRECTFB_CSRCS += src/core/colorhash.c
DIRECTFB_CSRCS += src/core/core.c
DIRECTFB_CSRCS += src/core/core_parts.c
DIRECTFB_CSRCS += src/core/fonts.c
DIRECTFB_CSRCS += src/core/gfxcard.c
DIRECTFB_CSRCS += src/core/graphics_state.c
DIRECTFB_CSRCS += src/core/input.c
DIRECTFB_CSRCS += src/core/layer_context.c
DIRECTFB_CSRCS += src/core/layer_control.c
DIRECTFB_CSRCS += src/core/layer_region.c
DIRECTFB_CSRCS += src/core/layers.c
DIRECTFB_CSRCS += src/core/local_surface_pool.c
DIRECTFB_CSRCS += src/core/palette.c
DIRECTFB_CSRCS += src/core/prealloc_surface_pool_bridge.c
DIRECTFB_CSRCS += src/core/prealloc_surface_pool.c
DIRECTFB_CSRCS += src/core/screen.c
DIRECTFB_CSRCS += src/core/screens.c
DIRECTFB_CSRCS += src/core/state.c
DIRECTFB_CSRCS += src/core/surface.c
DIRECTFB_CSRCS += src/core/surface_allocation.c
DIRECTFB_CSRCS += src/core/surface_buffer.c
DIRECTFB_CSRCS += src/core/surface_client.c
DIRECTFB_CSRCS += src/core/surface_core.c
DIRECTFB_CSRCS += src/core/surface_pool.c
DIRECTFB_CSRCS += src/core/surface_pool_bridge.c
DIRECTFB_CSRCS += src/core/system.c
DIRECTFB_CSRCS += src/core/windows.c
DIRECTFB_CSRCS += src/core/windowstack.c
DIRECTFB_CSRCS += src/core/wm.c
DIRECTFB_CSRCS += src/display/idirectfbdisplaylayer.c
DIRECTFB_CSRCS += src/display/idirectfbpalette.c
DIRECTFB_CSRCS += src/display/idirectfbscreen.c
DIRECTFB_CSRCS += src/display/idirectfbsurface.c
DIRECTFB_CSRCS += src/display/idirectfbsurfaceallocation.c
DIRECTFB_CSRCS += src/display/idirectfbsurface_layer.c
DIRECTFB_CSRCS += src/display/idirectfbsurface_window.c
DIRECTFB_CSRCS += src/gfx/clip.c
DIRECTFB_CSRCS += src/gfx/convert.c
DIRECTFB_CSRCS += src/gfx/util.c
DIRECTFB_CSRCS += src/gfx/generic/generic.c
DIRECTFB_CSRCS += src/gfx/generic/generic_blit.c
DIRECTFB_CSRCS += src/gfx/generic/generic_draw_line.c
DIRECTFB_CSRCS += src/gfx/generic/generic_fill_rectangle.c
DIRECTFB_CSRCS += src/gfx/generic/generic_stretch_blit.c
DIRECTFB_CSRCS += src/gfx/generic/generic_texture_triangles.c
DIRECTFB_CSRCS += src/gfx/generic/generic_util.c
DIRECTFB_CSRCS += src/input/idirectfbeventbuffer.c
DIRECTFB_CSRCS += src/input/idirectfbinputdevice.c
DIRECTFB_CSRCS += src/media/idirectfbdatabuffer.c
DIRECTFB_CSRCS += src/media/idirectfbdatabuffer_file.c
DIRECTFB_CSRCS += src/media/idirectfbdatabuffer_memory.c
DIRECTFB_CSRCS += src/media/idirectfbdatabuffer_streamed.c
DIRECTFB_CSRCS += src/media/idirectfbfont.c
DIRECTFB_CSRCS += src/media/idirectfbimageprovider.c
DIRECTFB_CSRCS += src/media/idirectfbvideoprovider.c
DIRECTFB_CSRCS += src/misc/conf.c
DIRECTFB_CSRCS += src/misc/gfx_util.c
DIRECTFB_CSRCS += src/misc/util.c
DIRECTFB_CSRCS += src/windows/idirectfbwindow.c

FLUX_CSRCS  = src/core/CoreDFB.c
FLUX_CSRCS += src/core/CoreGraphicsState.c
FLUX_CSRCS += src/core/CoreInputDevice.c
FLUX_CSRCS += src/core/CoreLayer.c
FLUX_CSRCS += src/core/CoreLayerContext.c
FLUX_CSRCS += src/core/CoreLayerRegion.c
FLUX_CSRCS += src/core/CorePalette.c
FLUX_CSRCS += src/core/CoreSlave.c
FLUX_CSRCS += src/core/CoreScreen.c
FLUX_CSRCS += src/core/CoreSurface.c
FLUX_CSRCS += src/core/CoreSurfaceAllocation.c
FLUX_CSRCS += src/core/CoreSurfaceClient.c
FLUX_CSRCS += src/core/CoreWindow.c
FLUX_CSRCS += src/core/CoreWindowStack.c
FLUX_HDRS = $(patsubst %.c,%.h,$(FLUX_CSRCS))

CSRCS = $(DIRECT_CSRCS) $(FUSION_CSRCS) $(DIRECTFB_CSRCS) $(FLUX_CSRCS)

CORE_SYSTEM_CSRCS  = systems/nuttxfb/nuttxfb_layer.c
CORE_SYSTEM_CSRCS += systems/nuttxfb/nuttxfb_screen.c
CORE_SYSTEM_CSRCS += systems/nuttxfb/nuttxfb_surface_pool.c
CORE_SYSTEM_CSRCS += systems/nuttxfb/nuttxfb_system.c
CSRCS += $(CORE_SYSTEM_CSRCS)

INPUT_DRIVER_CSRCS = inputdrivers/nuttx_input/nuttx_input.c
CSRCS += $(INPUT_DRIVER_CSRCS)

FONT_PROVIDER_CSRCS = interfaces/IDirectFBFont/idirectfbfont_dgiff.c
CSRCS += $(FONT_PROVIDER_CSRCS)

IMAGE_PROVIDER_CSRCS = interfaces/IDirectFBImageProvider/idirectfbimageprovider_dfiff.c
CSRCS += $(IMAGE_PROVIDER_CSRCS)

VIDEO_PROVIDER_CSRCS = interfaces/IDirectFBVideoProvider/idirectfbvideoprovider_dfvff.c
CSRCS += $(VIDEO_PROVIDER_CSRCS)

WINDOW_MANAGER_CSRCS = wm/default/default.c
CSRCS += $(WINDOW_MANAGER_CSRCS)

config.h:
	$(Q) echo "#pragma once" > $@; \
		echo "#define SIZEOF_LONG 8" >> $@

include/directfb_build.h:
	$(Q) echo "#pragma once" > $@; \
		echo "#define FLUXED_ARGS_BYTES 1024" >> $@

include/directfb_keynames.h: include/directfb_keyboard.h
	$(Q) ./include/gen_directfb_keynames.sh $^ > $@

include/directfb_strings.h: include/directfb.h
	$(Q) ./include/gen_directfb_strings.sh $^ > $@

include/directfb_version.h:
	$(Q) echo "#pragma once" > $@; \
		echo "#define DIRECTFB_MAJOR_VERSION 2" >> $@; \
		echo "#define DIRECTFB_MICRO_VERSION 0" >> $@; \
		echo "#define DIRECTFB_MINOR_VERSION 0" >> $@

lib/direct/build.h:
	$(Q) echo "#pragma once" > $@; \
		echo "#define DIRECT_BUILD_CTORS 0" >> $@; \
		echo "#define DIRECT_BUILD_DEBUG 0" >> $@; \
		echo "#define DIRECT_BUILD_DEBUGS 0" >> $@; \
		echo "#define DIRECT_BUILD_DYNLOAD 0" >> $@; \
		echo "#define DIRECT_BUILD_MEMCPY_PROBING 0" >> $@; \
		echo "#define DIRECT_BUILD_NETWORK 0" >> $@; \
		echo "#define DIRECT_BUILD_OS_NUTTX 1" >> $@; \
		echo "#define DIRECT_BUILD_PIPED_STREAM 0" >> $@; \
		echo "#define DIRECT_BUILD_SENTINELS 0" >> $@; \
		echo "#define DIRECT_BUILD_TEXT 1" >> $@; \
		echo "#define DIRECT_BUILD_TRACE 0" >> $@

lib/fusion/build.h:
	$(Q) echo "#pragma once" > $@; \
		echo "#define FUSION_BUILD_MULTI 0" >> $@

src/build.h:
	$(Q) echo "#pragma once" > $@; \
		echo "#define DFB_SMOOTH_SCALING 1" >> $@; \
		echo "#define DIRECTFB_VERSION_VENDOR \"\"" >> $@

FLUXCOMP ?= fluxcomp
FLUX_ARGS = --call-mode --dispatch-error-abort --identity --include-prefix=core --object-ptrs --static-args-bytes=FLUXED_ARGS_BYTES

src/core/%.c: src/core/%.flux
	$(FLUXCOMP) $(FLUX_ARGS) -c $^ -o=src/core

context:: config.h include/directfb_build.h include/directfb_keynames.h include/directfb_strings.h include/directfb_version.h lib/direct/build.h lib/fusion/build.h src/build.h $(FLUX_CSRCS)

distclean::
	$(call DELFILE, config.h)
	$(call DELFILE, include/directfb_build.h)
	$(call DELFILE, include/directfb_keynames.h)
	$(call DELFILE, include/directfb_strings.h)
	$(call DELFILE, include/directfb_version.h)
	$(call DELFILE, lib/direct/build.h)
	$(call DELFILE, lib/fusion/build.h)
	$(call DELFILE, src/build.h)
	$(call DELFILE, $(FLUX_CSRCS))
	$(call DELFILE, $(FLUX_HDRS))

include $(APPDIR)/Application.mk


================================================
FILE: NEWS
================================================
2.0.0
-----

Meson build system

Pure C implementation

No external dependency (except fluxcomp for converting .flux interface description files to .c files)

Static library support for MCU targets

Modularization of the source code, which now only contains:
  - libdirect / libfusion / libdirectfb core libraries
  - a generic system module and a generic input driver for supported operating systems:
      - legacy Linux FBDev or modern DRM/KMS system module and Linux input driver
      - NuttX Framebuffer system module and NuttX input driver
  - the default WM module
  - the DGIFF (DirectFB Glyph Image File Format) font provider
  - the DFIFF (DirectFB Fast Image File Format) image provider
  - the DFVFF (DirectFB Fast Video File Format) video provider

Separate packages for:
  - additional system modules
  - additional input drivers
  - additional WM modules
  - additional font/image/video providers
  - GFX drivers (hardware acceleration)


================================================
FILE: README
================================================
DirectFB2
=========

DirectFB2 is a fork of DirectFB, a graphics library which was designed with embedded systems in mind.

Linux and NuttX operating systems are supported.

See the file INSTALL for installation instructions.

Enjoy!


================================================
FILE: README.md
================================================
The DirectFB2 open source project
---------------------------------

https://directfb2.github.io

________________________________________________________________

**2024-04-02** Various font/image/music/video providers available in [DirectFB2-media](https://github.com/directfb2/DirectFB2-media) (can be tested via [DirectFB-media-samples](https://github.com/directfb2/DirectFB-media-samples))

**2023-10-06** OpenGL ES and EGL for DirectFB platform with [SwiftShaderGL-DirectFB](https://github.com/directfb2/SwiftShaderGL-DirectFB) (DirectFBGL accessible via [DirectFBGL-EGL](https://github.com/directfb2/DirectFBGL-EGL))

**2023-07-17** OpenGL software rendering with [DirectFBGL-PortableGL](https://github.com/directfb2/DirectFBGL-PortableGL)

**2023-06-12** Play with [DirectFB-examples](https://github.com/directfb2/DirectFB-examples) and [LiTE-examples](https://github.com/directfb2/LiTE-examples) on MCU devices using available NuttX support

**2023-01-01** Restoring [FusionSound](https://github.com/directfb2/FusionSound2) to add sound in DirectFB apps

**2022-12-02** All platforms supporting generic buffer management can use the [DirectFB2-eglgbm](https://github.com/directfb2/DirectFB2-eglgbm) system module

**2022-11-09** Start Raspberry Pi boards again with [DirectFB2-eglrpi](https://github.com/directfb2/DirectFB2-eglrpi) system module and [DirectFB2-gles2](https://github.com/directfb2/DirectFB2-gles2) GFX driver (HW acceleration)

**2022-10-30** [DFBTerm](https://github.com/directfb2/DFBTerm) and [Projektor](https://github.com/directfb2/Projektor) are DirectFB applications based on LiTE

**2022-08-01** Create embedded UIs on top of DirectFB with [LiTE](https://github.com/directfb2/LiTE)

**2022-06-02** Support multi-touch screens with [DirectFB2-tslib](https://github.com/directfb2/DirectFB2-tslib) or remote controls with [DirectFB2-lirc](https://github.com/directfb2/DirectFB2-lirc)

**2022-02-05** DirectFB2 at [FOSDEM 2022](https://archive.fosdem.org/2022/schedule/event/directfb)

**2021-12-06** Revival of [DirectFB](https://github.com/directfb2/DirectFB2)


================================================
FILE: dfb-update-pkgconfig.in
================================================
#!/bin/sh
#
#  This file is part of DirectFB.
#
#  This library is free software; you can redistribute it and/or
#  modify it under the terms of the GNU Lesser General Public
#  License as published by the Free Software Foundation; either
#  version 2.1 of the License, or (at your option) any later version.
#
#  This library is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
#  Lesser General Public License for more details.
#
#  You should have received a copy of the GNU Lesser General Public
#  License along with this library; if not, write to the Free Software
#  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA

mkpc() {
if [ "`echo $DESTDIR@PKGCONFIGDIR@/directfb-$1-*`" != "$DESTDIR@PKGCONFIGDIR@/directfb-$1-*" ]; then
  REQUIRES_PRIVATE=$(basename -s .pc -a $DESTDIR@PKGCONFIGDIR@/directfb-$1-* | tr '\n' ' ' | sed 's/ $//')
fi

cat > $DESTDIR@PKGCONFIGDIR@/directfb-$1.pc << EOF
Name: DirectFB-$1
Description: DirectFB $1 modules
Version: @VERSION@
Requires.private: $REQUIRES_PRIVATE
EOF
}

mkpc gfxdriver
mkpc inputdriver
mkpc interface
mkpc system
mkpc wm


================================================
FILE: include/dfiff.h
================================================
/*
   This file is part of DirectFB.

   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   This library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with this library; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/

#ifndef __DFIFF_H__
#define __DFIFF_H__

#include <directfb.h>

typedef struct {
     u8                    magic[5]; /* "DFIFF" magic */

     u8                    major;    /* Major version number */
     u8                    minor;    /* Minor version number */

     u8                    flags;

     u32                   width;
     u32                   height;
     DFBSurfacePixelFormat format;
     u32                   pitch;
} DFIFFHeader;

#endif


================================================
FILE: include/dfvff.h
================================================
/*
   This file is part of DirectFB.

   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   This library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with this library; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/

#ifndef __DFVFF_H__
#define __DFVFF_H__

#include <directfb.h>

typedef struct {
     u8                    magic[5];      /* "DFVFF" magic */

     u8                    major;         /* Major version number */
     u8                    minor;         /* Minor version number */

     u8                    flags;

     u32                   width;
     u32                   height;
     DFBSurfacePixelFormat format;
     DFBSurfaceColorSpace  colorspace;
     u32                   framerate_num;
     u32                   framerate_den;
} DFVFFHeader;

#endif


================================================
FILE: include/dgiff.h
================================================
/*
   This file is part of DirectFB.

   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   This library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with this library; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/

#ifndef __DGIFF_H__
#define __DGIFF_H__

#include <directfb.h>

typedef struct {
     u8  magic[5];  /* "DGIFF" magic */

     u8  major;     /* Major version number */
     u8  minor;     /* Minor version number */

     u8  flags;

     u32 num_faces;

     u32 __pad;
} DGIFFHeader;

typedef struct {
     s32                     next_face;     /* byte offset from this to next face */

     s32                     size;

     s32                     ascender;
     s32                     descender;
     s32                     height;

     s32                     max_advance;

     u32                     pixelformat;

     u32                     num_glyphs;
     u32                     num_rows;

     DFBSurfaceBlittingFlags blittingflags;
} DGIFFFaceHeader;

typedef struct {
     u32 unicode;

     u32 row;

     s32 offset;
     s32 width;
     s32 height;

     s32 left;
     s32 top;
     s32 advance;
} DGIFFGlyphInfo;

typedef struct {
     s32 width;
     s32 height;
     s32 pitch;

     u32 __pad;

     /* Raw pixel data follows, 'height * pitch' bytes. */
} DGIFFGlyphRow;

#endif


================================================
FILE: include/directfb.h
================================================
/*
   This file is part of DirectFB.

   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   This library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with this library; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/

#ifndef __DIRECTFB_H__
#define __DIRECTFB_H__

#ifdef __cplusplus
extern "C" {
#endif

#include <direct/interface.h>
#include <directfb_build.h>
#include <directfb_keyboard.h>

/*
 * Main interface of DirectFB.
 */
D_DECLARE_INTERFACE( IDirectFB )

/*
 * Interface to different display outputs, encoders, connector settings, power management and synchronization.
 */
D_DECLARE_INTERFACE( IDirectFBScreen )

/*
 * Layer interface for configuration, window stack usage or direct surface access, with shared/exclusive context.
 */
D_DECLARE_INTERFACE( IDirectFBDisplayLayer )

/*
 * Interface to a surface object, being a graphics context for rendering and state control, buffer operations, palette
 * access and sub area translate'n'clip logic.
 */
D_DECLARE_INTERFACE( IDirectFBSurface )

/*
 * Interface to a surface allocation object, being an actual buffer being allocated for a surface.
 */
D_DECLARE_INTERFACE( IDirectFBSurfaceAllocation )

/*
 * Interface for read/write access to the colors of a palette object and for cloning it.
 */
D_DECLARE_INTERFACE( IDirectFBPalette )

/*
 * Input device interface for keymap access, event buffers and state queries.
 */
D_DECLARE_INTERFACE( IDirectFBInputDevice )

/*
 * Interface to a local event buffer to send/receive events, wait for events, abort waiting or reset buffer.
 */
D_DECLARE_INTERFACE( IDirectFBEventBuffer )

/*
 * Interface to a window object, controlling appearance and focus, positioning and stacking, event buffers and surface
 * access.
 */
D_DECLARE_INTERFACE( IDirectFBWindow )

/*
 * Interface to a font provider, getting metrics, measuring strings or single characters, query/choose encodings.
 */
D_DECLARE_INTERFACE( IDirectFBFont )

/*
 * Interface to an image provider, retrieving information about the image and rendering it to a surface.
 */
D_DECLARE_INTERFACE( IDirectFBImageProvider )

/*
 * Interface to a video provider for playback with advanced control and basic stream information.
 */
D_DECLARE_INTERFACE( IDirectFBVideoProvider )

/*
 * Data buffer interface, providing unified access to different kinds of data storage and live feed.
 */
D_DECLARE_INTERFACE( IDirectFBDataBuffer )

/*
 * OpenGL interface.
 */
D_DECLARE_INTERFACE( IDirectFBGL )

/**********************************************************************************************************************/

#define DIRECTFB_API

/*
 * A boolean.
 */
typedef enum {
     DFB_FALSE                             = 0,                  /* false */
     DFB_TRUE                              = !DFB_FALSE          /* true */
} DFBBoolean;

/*
 * Return code of all interface methods and most functions.
 *
 * Whenever a method has to return any information, it is done
 * via output parameters.
 */
typedef enum {
     /*
      * Aliases for backward compatibility and uniform look in
      * DirectFB code.
      */
     DFB_OK                                = DR_OK,              /* No error occurred. */
     DFB_FAILURE                           = DR_FAILURE,         /* A general or unknown error occurred. */
     DFB_INIT                              = DR_INIT,            /* A general initialization error occurred. */
     DFB_BUG                               = DR_BUG,             /* Internal bug or inconsistency has been detected. */
     DFB_DEAD                              = DR_DEAD,            /* Interface has a zero reference counter (available in
                                                                    debug mode). */
     DFB_UNSUPPORTED                       = DR_UNSUPPORTED,     /* The requested operation or an argument is
                                                                    (currently) not supported. */
     DFB_UNIMPLEMENTED                     = DR_UNIMPLEMENTED,   /* The requested operation is not implemented, yet. */
     DFB_ACCESSDENIED                      = DR_ACCESSDENIED,    /* Access to the resource is denied. */
     DFB_INVAREA                           = DR_INVAREA,         /* An invalid area has been specified or detected. */
     DFB_INVARG                            = DR_INVARG,          /* An invalid argument has been specified. */
     DFB_NOSYSTEMMEMORY                    = DR_NOLOCALMEMORY,   /* There's not enough system memory. */
     DFB_NOSHAREDMEMORY                    = DR_NOSHAREDMEMORY,  /* There's not enough shared memory. */
     DFB_LOCKED                            = DR_LOCKED,          /* The resource is (already) locked. */
     DFB_BUFFEREMPTY                       = DR_BUFFEREMPTY,     /* The buffer is empty. */
     DFB_FILENOTFOUND                      = DR_FILENOTFOUND,    /* The specified file has not been found. */
     DFB_IO                                = DR_IO,              /* A general I/O error occurred. */
     DFB_BUSY                              = DR_BUSY,            /* The resource or device is busy. */
     DFB_NOIMPL                            = DR_NOIMPL,          /* No implementation for this interface or content type
                                                                    has been found. */
     DFB_TIMEOUT                           = DR_TIMEOUT,         /* The operation timed out. */
     DFB_THIZNULL                          = DR_THIZNULL,        /* 'thiz' pointer is NULL. */
     DFB_IDNOTFOUND                        = DR_IDNOTFOUND,      /* No resource has been found by the specified id. */
     DFB_DESTROYED                         = DR_DESTROYED,       /* The requested object has been destroyed. */
     DFB_FUSION                            = DR_FUSION,          /* Internal fusion error detected, most likely related
                                                                    to IPC resources. */
     DFB_BUFFERTOOLARGE                    = DR_BUFFERTOOLARGE,  /* Buffer is too large. */
     DFB_INTERRUPTED                       = DR_INTERRUPTED,     /* The operation has been interrupted. */
     DFB_NOCONTEXT                         = DR_NOCONTEXT,       /* No context available. */
     DFB_TEMPUNAVAIL                       = DR_TEMPUNAVAIL,     /* Temporarily unavailable. */
     DFB_LIMITEXCEEDED                     = DR_LIMITEXCEEDED,   /* Attempted to exceed limit, i.e. any kind of maximum
                                                                    size, count etc. */
     DFB_NOSUCHMETHOD                      = DR_NOSUCHMETHOD,    /* Requested method is not known. */
     DFB_NOSUCHINSTANCE                    = DR_NOSUCHINSTANCE,  /* Requested instance is not known. */
     DFB_ITEMNOTFOUND                      = DR_ITEMNOTFOUND,    /* No such item found. */
     DFB_VERSIONMISMATCH                   = DR_VERSIONMISMATCH, /* Some versions didn't match. */
     DFB_EOF                               = DR_EOF,             /* Reached end of file. */
     DFB_SUSPENDED                         = DR_SUSPENDED,       /* The requested object is suspended. */
     DFB_INCOMPLETE                        = DR_INCOMPLETE,      /* The operation has been executed, but not
                                                                    completely. */
     DFB_NOCORE                            = DR_NOCORE,          /* Core part not available. */

     /*
      * DirectFB specific result codes starting at this offset.
      */
     DFB__RESULT_BASE                      = D_RESULT_TYPE_CODE_BASE( 'D','F','B','1' ),

     DFB_NOVIDEOMEMORY,                                          /* There's not enough video memory. */
     DFB_MISSINGFONT,                                            /* No font has been set. */
     DFB_MISSINGIMAGE,                                           /* No image has been set. */
     DFB_NOALLOCATION,                                           /* No allocation. */
     DFB_NOBUFFER,                                               /* No buffer. */

     DFB__RESULT_END
} DFBResult;

/*
 * Return value of callback function of enumerations.
 */
typedef enum {
     DFENUM_OK                             = 0,                  /* Proceed with enumeration. */
     DFENUM_CANCEL                         = 1                   /* Cancel enumeration. */
} DFBEnumerationResult;

/**********************************************************************************************************************/

/*
 * Dynamic version handling.
 */
extern const unsigned int directfb_major_version;
extern const unsigned int directfb_minor_version;
extern const unsigned int directfb_micro_version;

/*
 * Singleton.
 */
extern IDirectFB *idirectfb_singleton;

/*
 * Checks for a certain DirectFB version.
 * In case of an error a message is returned describing
 * the mismatch.
 */
const char DIRECTFB_API *DirectFBCheckVersion (
     unsigned int                            required_major,     /* major version */
     unsigned int                            required_minor,     /* minor version */
     unsigned int                            required_micro      /* micro version */
);

/*
 * Retrieves usage information about supported command-line flags.
 */
const char DIRECTFB_API *DirectFBUsageString ( void );

/*
 * Parses the command-line and initializes some variables.
 * You absolutely need to call this before doing anything else.
 * Removes all options used by DirectFB from argv.
 */
DFBResult  DIRECTFB_API  DirectFBInit (
     int                                    *argc,               /* pointer to main()'s argc */
     char                                  **argv[]              /* pointer to main()'s argv */
);

#if !DIRECT_BUILD_CTORS

#define StringizeDirectFBCoreSystemInit(name)             directfb_##name##_ctor()
#define DirectFBCoreSystemInit(name)                      StringizeDirectFBCoreSystemInit( name )
#define StringizeDirectFBCoreSystemInitProtoype(name)     void directfb_##name##_ctor( void )
#define DirectFBCoreSystemInitProtoype(name)              StringizeDirectFBCoreSystemInitProtoype( name )

#ifdef DFB_GRAPHICS_DRIVER
#define StringizeGraphicsDriverInit(name)                 directfb_##name##_ctor()
#define DirectFBGraphicsDriverInit(name)                  StringizeDirectFBGraphicsDriverInit( name )
#define StringizeDirectFBGraphicsDriverInitProtoype(name) void directfb_##name##_ctor( void )
#define DirectFBGraphicsDriverInitProtoype(name)          StringizeDirectFBGraphicsDriverInitProtoype( name )
#else
#define DirectFBGraphicsDriverInit(name)
#define DirectFBGraphicsDriverInitProtoype(name)
#endif

#ifdef DFB_INPUT_DRIVER
#define StringizeDirectFBInputDriverInit(name)            directfb_##name##_ctor()
#define DirectFBInputDriverInit(name)                     StringizeDirectFBInputDriverInit( name )
#define StringizeDirectFBInputDriverInitProtoype(name)    void directfb_##name##_ctor( void )
#define DirectFBInputDriverInitProtoype(name)             StringizeDirectFBInputDriverInitProtoype( name )
#else
#define DirectFBInputDriverInit(name)
#define DirectFBInputDriverInitProtoype(name)
#endif

#ifdef DFB_FONT_PROVIDER
#define StringizeDirectFBFontProviderInit(name)           IDirectFBFont_##name##_ctor()
#define DirectFBFontProviderInit(name)                    StringizeDirectFBFontProviderInit( name )
#define StringizeDirectFBFontProviderInitProtoype(name)   void IDirectFBFont_##name##_ctor( void )
#define DirectFBFontProviderInitProtoype(name)            StringizeDirectFBFontProviderInitProtoype( name )
#else
#define DirectFBFontProviderInit(name)
#define DirectFBFontProviderInitProtoype(name)
#endif

#ifdef DFB_IMAGE_PROVIDER
#define StringizeDirectFBImageProviderInit(name)          IDirectFBImageProvider_##name##_ctor()
#define DirectFBImageProviderInit(name)                   StringizeDirectFBImageProviderInit( name )
#define StringizeDirectFBImageProviderInitProtoype(name)  void IDirectFBImageProvider_##name##_ctor( void )
#define DirectFBImageProviderInitProtoype(name)           StringizeDirectFBImageProviderInitProtoype( name )
#else
#define DirectFBImageProviderInit(name)
#define DirectFBImageProviderInitProtoype(name)
#endif

#ifdef DFB_VIDEO_PROVIDER
#define StringizeDirectFBVideoProviderInit(name)          IDirectFBVideoProvider_##name##_ctor()
#define DirectFBVideoProviderInit(name)                   StringizeDirectFBVideoProviderInit( name )
#define StringizeDirectFBVideoProviderInitProtoype(name)  void IDirectFBVideoProvider_##name##_ctor( void )
#define DirectFBVideoProviderInitProtoype(name)           StringizeDirectFBVideoProviderInitProtoype( name )
#else
#define DirectFBVideoProviderInit(name)
#define DirectFBVideoProviderInitProtoype(name)
#endif

#ifdef DFB_OPENGL_IMPLEMENTATION
#define StringizeDirectFBGLInit(name)                     IDirectFBGL_##name##_ctor()
#define DirectFBGLInit(name)                              StringizeDirectFBGLInit( name )
#define StringizeDirectFBGLInitProtoype(name)             void IDirectFBGL_##name##_ctor( void )
#define DirectFBGLInitProtoype(name)                      StringizeDirectFBGLInitProtoype( name )
#else
#define DirectFBGLInit(name)
#define DirectFBGLInitProtoype(name)
#endif

#define StringizeDirectFBWindowManagerInit(name)          directfb_##name##_ctor()
#define DirectFBWindowManagerInit(name)                   StringizeDirectFBWindowManagerInit( name )
#define StringizeDirectFBWindowManagerInitProtoype(name)  void directfb_##name##_ctor( void )
#define DirectFBWindowManagerInitProtoype(name)           StringizeDirectFBWindowManagerInitProtoype( name )

#if defined(DFB_CORE_SYSTEM) && defined(DFB_WINDOW_MANAGER)
DirectFBCoreSystemInitProtoype    ( DFB_CORE_SYSTEM );
DirectFBGraphicsDriverInitProtoype( DFB_GRAPHICS_DRIVER );
DirectFBInputDriverInitProtoype   ( DFB_INPUT_DRIVER );
DirectFBFontProviderInitProtoype  ( DFB_FONT_PROVIDER );
DirectFBImageProviderInitProtoype ( DFB_IMAGE_PROVIDER );
DirectFBVideoProviderInitProtoype ( DFB_VIDEO_PROVIDER );
DirectFBGLInitProtoype            ( DFB_OPENGL_IMPLEMENTATION );
DirectFBWindowManagerInitProtoype ( DFB_WINDOW_MANAGER );

#define DirectFBInit( argc_ptr, argv_ptr )                    \
     DirectFBInit              ( argc_ptr, argv_ptr );        \
     DirectFBCoreSystemInit    ( DFB_CORE_SYSTEM );           \
     DirectFBGraphicsDriverInit( DFB_GRAPHICS_DRIVER );       \
     DirectFBInputDriverInit   ( DFB_INPUT_DRIVER );          \
     DirectFBFontProviderInit  ( DFB_FONT_PROVIDER );         \
     DirectFBImageProviderInit ( DFB_IMAGE_PROVIDER );        \
     DirectFBVideoProviderInit ( DFB_VIDEO_PROVIDER );        \
     DirectFBGLInit            ( DFB_OPENGL_IMPLEMENTATION ); \
     DirectFBWindowManagerInit ( DFB_WINDOW_MANAGER );
#endif

#endif

/*
 * Sets configuration parameters supported on command line and in
 * config file. Can only be called before DirectFBCreate but after
 * DirectFBInit.
 */
DFBResult  DIRECTFB_API  DirectFBSetOption (
     const char                             *name,               /* option name */
     const char                             *value               /* option value */
);

/*
 * Creates the main interface.
 */
DFBResult  DIRECTFB_API  DirectFBCreate (
     IDirectFB                             **ret_interface       /* pointer to the created interface */
);

/*
 * Prints a description of the result code along with an
 * optional message that is put in front with a colon.
 */
DFBResult  DIRECTFB_API  DirectFBError (
     const char                             *msg,                /* optional message */
     DFBResult                               result              /* result code to interpret */
);

/*
 * Returns a string describing result.
 */
const char DIRECTFB_API *DirectFBErrorString (
     DFBResult                               result              /* result code to describe */
);

/*
 * Behaves like DirectFBError, but shuts down the calling
 * application.
 */
DFBResult  DIRECTFB_API  DirectFBErrorFatal (
     const char                             *msg,                /* optional message */
     DFBResult                               result              /* result code to interpret */
);

/**********************************************************************************************************************/

/*
 * A rectangle specified by two points.
 *
 * The defined rectangle includes the top left but not the
 * bottom right endpoint.
 */
typedef struct {
     int                                     x1;                 /* X coordinate of top-left point (inclusive) */
     int                                     y1;                 /* Y coordinate of top-left point (inclusive) */
     int                                     x2;                 /* X coordinate of lower-right point (exclusive) */
     int                                     y2;                 /* Y coordinate of lower-right point (exclusive) */
} DFBBox;

/*
 * A color defined by channels with 8bit each.
 */
typedef struct {
     u8                                      a;                  /* alpha channel */
     u8                                      r;                  /* red channel */
     u8                                      g;                  /* green channel */
     u8                                      b;                  /* blue channel */
} DFBColor;

/*
 * Flags defining which fields of a DFBColorAdjustment are
 * valid.
 */
typedef enum {
     DCAF_NONE                             = 0x00000000,         /* None of these. */

     DCAF_BRIGHTNESS                       = 0x00000001,         /* Brightness field is valid. */
     DCAF_CONTRAST                         = 0x00000002,         /* Contrast field is valid. */
     DCAF_HUE                              = 0x00000004,         /* Hue field is valid. */
     DCAF_SATURATION                       = 0x00000008,         /* Saturation field is valid. */

     DCAF_ALL                              = 0x0000000F          /* All of these. */
} DFBColorAdjustmentFlags;

/*
 * Color Adjustment used to adjust video colors.
 *
 * All fields are in the range 0x0 to 0xffff with 0x8000 as the
 * default value (no adjustment).
 */
typedef struct {
     DFBColorAdjustmentFlags                 flags;              /* Validation of fields. */

     u16                                     brightness;         /* Color brightness. */
     u16                                     contrast;           /* Color contrast. */
     u16                                     hue;                /* Color hue. */
     u16                                     saturation;         /* Color saturation. */
} DFBColorAdjustment;

/*
 * A color key defined by R,G,B and eventually a color index.
 */
typedef struct {
     u8                                      index;              /* color index */
     u8                                      r;                  /* red channel */
     u8                                      g;                  /* green channel */
     u8                                      b;                  /* blue channel */
} DFBColorKey;

/*
 * Color key polarity.
 */
typedef enum {
     DCKP_DEFAULT                          = 0x00000000,         /* default */
     DCKP_OTHER                            = 0x00000001          /* other */
} DFBColorKeyPolarity;

/*
 * Extended color key definition.
 */
typedef struct {
     DFBColorKeyPolarity                     polarity;           /* color key polarity */
     DFBColor                                lower;              /* lower color key */
     DFBColor                                upper;              /* upper color key */
} DFBColorKeyExtended;

/*
 * A color defined by channels with 8bit each.
 */
typedef struct {
     u8                                      a;                  /* alpha channel */
     u8                                      y;                  /* luma channel */
     u8                                      u;                  /* chroma channel */
     u8                                      v;                  /* chroma channel */
} DFBColorYUV;

/*
 * Convolution filter.
 */
typedef struct {
     s32                                     kernel[9];          /* The kernel consists of 3x3 matrix. */
     s32                                     scale;              /* Scale. */
     s32                                     bias;               /* Bias. */
} DFBConvolutionFilter;

/*
 * A dimension specified by width and height.
 */
typedef struct {
     int                                     w;                  /* width of it */
     int                                     h;                  /* height of it */
} DFBDimension;

/*
 * Insets specify a distance from each edge of a rectangle.
 *
 * Positive values always mean outside.
 */
typedef struct {
     int                                     l;                  /* distance from left edge */
     int                                     t;                  /* distance from top edge */
     int                                     r;                  /* distance from right edge */
     int                                     b;                  /* distance from bottom edge */
} DFBInsets;

/*
 * A rectangle specified by normalized coordinates.
 *
 * E.g. using 0.0, 0.0, 1.0, 1.0 would specify the whole screen.
 */
typedef struct {
     float                                   x;                  /* normalized X coordinate */
     float                                   y;                  /* normalized Y coordinate */
     float                                   w;                  /* normalized width */
     float                                   h;                  /* normalized height */
} DFBLocation;

/*
 * A point specified by x/y coordinates.
 */
typedef struct {
     int                                     x;                  /* X coordinate of it */
     int                                     y;                  /* Y coordinate of it */
} DFBPoint;

/*
 * A rectangle specified by a point and a dimension.
 */
typedef struct {
     int                                     x;                  /* X coordinate of its top-left point */
     int                                     y;                  /* Y coordinate of its top-left point */
     int                                     w;                  /* width of it */
     int                                     h;                  /* height of it */
} DFBRectangle;

/*
 * A region specified by two points.
 *
 * The defined region includes both endpoints.
 */
typedef struct {
     int                                     x1;                 /* X coordinate of top-left point */
     int                                     y1;                 /* Y coordinate of top-left point */
     int                                     x2;                 /* X coordinate of lower-right point */
     int                                     y2;                 /* Y coordinate of lower-right point */
} DFBRegion;

/*
 * A horizontal line specified by x and width.
 */
typedef struct {
     int                                     x;                  /* X coordinate */
     int                                     w;                  /* width of span */
} DFBSpan;

/*
 * A trapezoid specified by two points with a width each.
 */
typedef struct {
     int                                     x1;                 /* X coordinate of first span */
     int                                     y1;                 /* Y coordinate of first span  */
     int                                     w1;                 /* width of first span */
     int                                     x2;                 /* X coordinate of second span */
     int                                     y2;                 /* Y coordinate of second span */
     int                                     w2;                 /* width of second span */
} DFBTrapezoid;

/*
 * A triangle specified by three points.
 */
typedef struct {
     int                                     x1;                 /* X coordinate of first edge */
     int                                     y1;                 /* Y coordinate of first edge */
     int                                     x2;                 /* X coordinate of second edge */
     int                                     y2;                 /* Y coordinate of second edge */
     int                                     x3;                 /* X coordinate of third edge */
     int                                     y3;                 /* Y coordinate of third edge */
} DFBTriangle;

/*
 * Way of building triangles from the list of vertices.
 */
typedef enum {
     DTTF_LIST                             = 0x00000000,         /* 0/1/2  3/4/5  6/7/8 ... */
     DTTF_STRIP                            = 0x00000001,         /* 0/1/2  1/2/3  2/3/4 ... */
     DTTF_FAN                              = 0x00000002          /* 0/1/2  0/2/3  0/3/4 ... */
} DFBTriangleFormation;

/*
 * Transformed vertex of a textured triangle.
 */
typedef struct {
     float                                   x;                  /* Destination X coordinate (in pixels) */
     float                                   y;                  /* Destination Y coordinate (in pixels) */
     float                                   z;                  /* Z coordinate */
     float                                   w;                  /* W coordinate */

     float                                   s;                  /* Texture S coordinate */
     float                                   t;                  /* Texture T coordinate */
} DFBVertex;

/**********************************************************************************************************************/

typedef unsigned int DFBColorID;
typedef unsigned int DFBDisplayLayerID;
typedef unsigned int DFBDisplayLayerIDs;
typedef unsigned int DFBDisplayLayerSourceID;
typedef unsigned int DFBInputDeviceID;
typedef unsigned int DFBScreenID;
typedef unsigned int DFBSurfaceID;
typedef unsigned int DFBTextEncodingID;
typedef unsigned int DFBWindowID;

/* Predefined color ids. */
#define DCID_PRIMARY                         0x00000000          /* primary color */
#define DCID_OUTLINE                         0x00000001          /* outline color */

/* Predefined display layer ids. */
#define DLID_PRIMARY                         0x00000000          /* primary layer */

/* Predefined display layer source ids */
#define DLSID_SURFACE                        0x00000000          /* surface layer source */

/* Predefined input device ids. */
#define DIDID_KEYBOARD                       0x00000000          /* primary keyboard */
#define DIDID_MOUSE                          0x00000001          /* primary mouse */
#define DIDID_JOYSTICK                       0x00000002          /* primary joystick */
#define DIDID_REMOTE                         0x00000003          /* primary remote control */
#define DIDID_BUTTONS                        0x00000004          /* primary buttons */
#define DIDID_ANY                            0x00000010          /* no primary device */

/* Predefined screen ids. */
#define DSCID_PRIMARY                        0x00000000          /* primary screen */

/* Predefined text encoding ids. */
#define DTEID_UTF8                           0x00000000          /* UTF-8 */
#define DTEID_OTHER                          0x00000001          /* Other */

/*************
 * IDirectFB *
 *************/

/*
 * The cooperative level controls the main interface's behaviour
 * in functions like SetVideoMode() or CreateSurface() for the
 * primary.
 */
typedef enum {
     DFSCL_NORMAL                          = 0x00000000,         /* Normal shared access, primary surface will be the
                                                                    buffer of an implicitly created window at the
                                                                    resolution given by SetVideoMode(). */
     DFSCL_FULLSCREEN                      = 0x00000001,         /* Application grabs the primary layer, SetVideoMode()
                                                                    automates layer control. Primary surface is the
                                                                    primary layer surface. */
     DFSCL_EXCLUSIVE                       = 0x00000002          /* All but the primary layer will be disabled, the
                                                                    application has full control over layers if desired,
                                                                    other applications have no input/output/control.
                                                                    Primary surface is the primary layer surface. */
} DFBCooperativeLevel;

/*
 * Mask of accelerated functions.
 */
typedef enum {
     DFXL_NONE                             = 0x00000000,         /* None of these. */

     DFXL_FILLRECTANGLE                    = 0x00000001,         /* FillRectangle() is accelerated. */
     DFXL_DRAWRECTANGLE                    = 0x00000002,         /* DrawRectangle() is accelerated. */
     DFXL_DRAWLINE                         = 0x00000004,         /* DrawLine() is accelerated. */
     DFXL_FILLTRIANGLE                     = 0x00000008,         /* FillTriangle() is accelerated. */
     DFXL_FILLTRAPEZOID                    = 0x00000010,         /* FillTrapezoids() is accelerated. */
     DFXL_FILLQUADRANGLE                   = 0x00000020,         /* FillQuadrangles() is accelerated. */

     DFXL_DRAWMONOGLYPH                    = 0x00001000,         /* DrawMonoGlyphs() is accelerated. */

     DFXL_BLIT                             = 0x00010000,         /* Blit() is accelerated. */
     DFXL_STRETCHBLIT                      = 0x00020000,         /* StretchBlit() is accelerated. */
     DFXL_TEXTRIANGLES                     = 0x00040000,         /* TextureTriangles() is accelerated. */
     DFXL_BLIT2                            = 0x00080000,         /* Blit2() is accelerated. */

     DFXL_DRAWSTRING                       = 0x01000000,         /* DrawString() is accelerated. */

     DFXL_ALL                              = 0x010F003F,         /* All drawing/blitting functions. */
     DFXL_ALL_DRAW                         = 0x0000103F,         /* All drawing functions. */
     DFXL_ALL_BLIT                         = 0x010F0000          /* All blitting functions. */
} DFBAccelerationMask;

#define DFB_DRAWING_FUNCTION(a)       ((a) & 0x0000FFFF)
#define DFB_BLITTING_FUNCTION(a)      ((a) & 0xFFFF0000)

/*
 * Flags controlling blitting commands.
 */
typedef enum {
     DSBLIT_NOFX                           = 0x00000000,         /* uses none of the effects */
     DSBLIT_BLEND_ALPHACHANNEL             = 0x00000001,         /* enables blending and uses
                                                                    alphachannel from source */
     DSBLIT_BLEND_COLORALPHA               = 0x00000002,         /* enables blending and uses
                                                                    alpha value from color */
     DSBLIT_COLORIZE                       = 0x00000004,         /* modulates source color with
                                                                    the color's r/g/b values */
     DSBLIT_SRC_COLORKEY                   = 0x00000008,         /* don't blit pixels matching the source color key */
     DSBLIT_DST_COLORKEY                   = 0x00000010,         /* write to destination only if the destination pixel
                                                                    matches the destination color key */
     DSBLIT_SRC_PREMULTIPLY                = 0x00000020,         /* modulates the source color with the (modulated)
                                                                    source alpha */
     DSBLIT_DST_PREMULTIPLY                = 0x00000040,         /* modulates the dest. color with the dest. alpha */
     DSBLIT_DEMULTIPLY                     = 0x00000080,         /* divides the color by the alpha before writing the
                                                                    data to the destination */
     DSBLIT_DEINTERLACE                    = 0x00000100,         /* deinterlaces the source during blitting by reading
                                                                    only one field (every second line of full
                                                                    image) scaling it vertically by factor two */
     DSBLIT_SRC_PREMULTCOLOR               = 0x00000200,         /* modulates the source color with the color alpha */
     DSBLIT_XOR                            = 0x00000400,         /* bitwise xor the destination pixels with the
                                                                    source pixels after premultiplication */
     DSBLIT_INDEX_TRANSLATION              = 0x00000800,         /* do fast indexed to indexed translation,
                                                                    this flag is mutual exclusive with all others */
     DSBLIT_ROTATE180                      = 0x00001000,         /* rotate the image by 180 degree */
     DSBLIT_ROTATE90                       = 0x00002000,         /* rotate the image by 90 degree */
     DSBLIT_ROTATE270                      = 0x00004000,         /* rotate the image by 270 degree */

     DSBLIT_COLORKEY_PROTECT               = 0x00010000,         /* make sure written pixels don't match color key */
     DSBLIT_SRC_COLORKEY_EXTENDED          = 0x00020000,         /* use extended source color key */
     DSBLIT_DST_COLORKEY_EXTENDED          = 0x00040000,         /* use extended destination color key */

     DSBLIT_SRC_MASK_ALPHA                 = 0x00100000,         /* modulate source alpha channel with alpha channel
                                                                    from source mask */
     DSBLIT_SRC_MASK_COLOR                 = 0x00200000,         /* modulate source color channels with color channels
                                                                    from source mask */

     DSBLIT_FLIP_HORIZONTAL                = 0x01000000,         /* flip the image horizontally */
     DSBLIT_FLIP_VERTICAL                  = 0x02000000,         /* flip the image vertically */

     DSBLIT_SRC_COLORMATRIX                = 0x08000000,         /* use source color matrix setting */
     DSBLIT_SRC_CONVOLUTION                = 0x10000000          /* use source convolution filter */
} DFBSurfaceBlittingFlags;

/*
 * Flags controlling drawing commands.
 */
typedef enum {
     DSDRAW_NOFX                           = 0x00000000,         /* uses none of the effects */
     DSDRAW_BLEND                          = 0x00000001,         /* uses alpha from color */
     DSDRAW_DST_COLORKEY                   = 0x00000002,         /* write to destination only if the destination pixel
                                                                    matches the destination color key */
     DSDRAW_SRC_PREMULTIPLY                = 0x00000004,         /* multiplies the color's rgb channels by the alpha
                                                                    channel before drawing */
     DSDRAW_DST_PREMULTIPLY                = 0x00000008,         /* modulates the dest. color with the dest. alpha */
     DSDRAW_DEMULTIPLY                     = 0x00000010,         /* divides the color by the alpha before writing the
                                                                    data to the destination */
     DSDRAW_XOR                            = 0x00000020          /* bitwise xor the destination pixels with the
                                                                    specified color after premultiplication */
} DFBSurfaceDrawingFlags;

#define DFB_GRAPHICS_DRIVER_INFO_NAME_LENGTH   40
#define DFB_GRAPHICS_DRIVER_INFO_VENDOR_LENGTH 60

/*
 * Driver information.
 */
typedef struct {
     int                                     major;              /* Major version */
     int                                     minor;              /* Minor version */

     char name[DFB_GRAPHICS_DRIVER_INFO_NAME_LENGTH];            /* Driver name */
     char vendor[DFB_GRAPHICS_DRIVER_INFO_VENDOR_LENGTH];        /* Driver vendor */
} DFBGraphicsDriverInfo;

#define DFB_GRAPHICS_DEVICE_DESC_NAME_LENGTH   48
#define DFB_GRAPHICS_DEVICE_DESC_VENDOR_LENGTH 64

/*
 * Description of the graphics device capabilities.
 */
typedef struct {
     DFBAccelerationMask                     acceleration_mask;  /* Accelerated functions */
     DFBSurfaceBlittingFlags                 blitting_flags;     /* Supported blitting flags */
     DFBSurfaceDrawingFlags                  drawing_flags;      /* Supported drawing flags */
     unsigned int                            video_memory;       /* Amount of video memory in bytes */

     char name[DFB_GRAPHICS_DEVICE_DESC_NAME_LENGTH];            /* Device/Chipset name */
     char vendor[DFB_GRAPHICS_DEVICE_DESC_VENDOR_LENGTH];        /* Device vendor */

     DFBGraphicsDriverInfo                   driver;             /* Device driver information */
} DFBGraphicsDeviceDescription;

/*
 * Flags defining which fields of a DFBSurfaceDescription are
 * valid.
 */
typedef enum {
     DSDESC_NONE                           = 0x00000000,         /* None of these. */

     DSDESC_CAPS                           = 0x00000001,         /* caps field is valid. */
     DSDESC_WIDTH                          = 0x00000002,         /* width field is valid. */
     DSDESC_HEIGHT                         = 0x00000004,         /* height field is valid. */
     DSDESC_PIXELFORMAT                    = 0x00000008,         /* pixelformat field is valid. */
     DSDESC_PREALLOCATED                   = 0x00000010,         /* Surface uses data that has been preallocated by the
                                                                    application. The field array preallocated has to be
                                                                    set using the first element for the front buffer and
                                                                    eventually the second one for the back buffer. */
     DSDESC_PALETTE                        = 0x00000020,         /* Initialize the surfaces palette with the entries
                                                                    specified in the description. */
     DSDESC_COLORSPACE                     = 0x00000040,         /* colorspace field is valid. */

     DSDESC_RESOURCE_ID                    = 0x00000100,         /* User defined resource id for general purpose
                                                                    surfaces is specified, or resource id of window,
                                                                    layer, user is returned. */
     DSDESC_HINTS                          = 0x00000200,         /* Flags for optimized allocation and pixel format
                                                                    selection are set. */

     DSDESC_ALL                            = 0x0000037F          /* All of these. */
} DFBSurfaceDescriptionFlags;

/*
 * The surface capabilities.
 */
typedef enum {
     DSCAPS_NONE                           = 0x00000000,         /* None of these. */

     DSCAPS_PRIMARY                        = 0x00000001,         /* It's the primary surface. */
     DSCAPS_SYSTEMONLY                     = 0x00000002,         /* Surface data is permanently stored in system memory.
                                                                    There's no video memory allocation/storage. */
     DSCAPS_VIDEOONLY                      = 0x00000004,         /* Surface data is permanently stored in video memory.
                                                                    There's no system memory allocation/storage. */
     DSCAPS_GL                             = 0x00000008,         /* Surface data is stored in memory that can be
                                                                    accessed by a GL accelerator. */
     DSCAPS_DOUBLE                         = 0x00000010,         /* Surface is double buffered. */
     DSCAPS_SUBSURFACE                     = 0x00000020,         /* Surface is just a sub area of another
                                                                    one sharing the surface data. */
     DSCAPS_INTERLACED                     = 0x00000040,         /* Each buffer contains interlaced video (or graphics)
                                                                    data consisting of two fields.
                                                                    Their lines are stored interleaved. One field's
                                                                    height is a half of the surface's height. */
     DSCAPS_SEPARATED                      = 0x00000080,         /* For usage with DSCAPS_INTERLACED.
                                                                    DSCAPS_SEPARATED specifies that the fields are not
                                                                    interleaved line by line in the buffer.
                                                                    The first field is followed by the second one. */
     DSCAPS_STATIC_ALLOC                   = 0x00000100,         /* The amount of video or system memory allocated for
                                                                    the surface is never less than its initial value.
                                                                    This way a surface can be resized (smaller and
                                                                    bigger up to the initial size) without reallocation
                                                                    of the buffers. It's useful for surfaces that need a
                                                                    guaranteed space in video memory after resizing. */
     DSCAPS_TRIPLE                         = 0x00000200,         /* Surface is triple buffered. */

     DSCAPS_PREMULTIPLIED                  = 0x00001000,         /* Surface stores data with premultiplied alpha. */

     DSCAPS_DEPTH                          = 0x00010000,         /* A depth buffer is allocated. */
     DSCAPS_STEREO                         = 0x00020000,         /* Both left & right buffers are allocated. Only valid
                                                                    with windows and layers with the DLOP_STEREO or
                                                                    DWCAPS_STEREO flags set. */

     DSCAPS_SHARED                         = 0x00100000,         /* The surface will be accessible among processes. */

     DSCAPS_ROTATED                        = 0x01000000,         /* The back buffers are allocated with swapped
                                                                    width/height. */

     DSCAPS_ALL                            = 0x011113FF,         /* All of these. */

     DSCAPS_FLIPPING                       = DSCAPS_DOUBLE |
                                             DSCAPS_TRIPLE       /* Surface needs Flip() calls to make
                                                                    updates/changes visible/usable. */
} DFBSurfaceCapabilities;

/*
 * Encodes pixel format constants in the following way (bit 31 - 0):
 *
 * lkjj:hhgg | gfff:eeed | cccc:bbbb | baaa:aaaa
 *
 * a) pixelformat index
 * b) effective color (or index) bits per pixel of format
 * c) effective alpha bits per pixel of format
 * d) alpha channel present
 * e) bytes per "pixel in a row" (1/8 fragment, i.e. bits)
 * f) bytes per "pixel in a row" (decimal part, i.e. bytes)
 * g) smallest number of pixels aligned to byte boundary
 * h) multiplier for planes minus one (1/4 fragment)
 * j) multiplier for planes minus one (decimal part)
 * k) color and/or alpha lookup table present
 * l) alpha channel is inverted
 */
#define DFB_SURFACE_PIXELFORMAT(index,color_bits,     \
                                alpha_bits,has_alpha, \
                                row_bits,row_bytes,   \
                                align,mul_f,mul_d,    \
                                has_lut,inv_alpha)    \
     ( (((index     ) & 0x7F)      ) |                \
       (((color_bits) & 0x1F) <<  7) |                \
       (((alpha_bits) & 0x0F) << 12) |                \
       (((has_alpha ) ? 1 :0) << 16) |                \
       (((row_bits  ) & 0x07) << 17) |                \
       (((row_bytes ) & 0x07) << 20) |                \
       (((align     ) & 0x07) << 23) |                \
       (((mul_f     ) & 0x03) << 26) |                \
       (((mul_d     ) & 0x03) << 28) |                \
       (((has_lut   ) ? 1 :0) << 30) |                \
       (((inv_alpha ) ? 1 :0) << 31) )

/*
 * Pixel format of a surface.
 */
typedef enum {
     /* unknown or unspecified format */
     DSPF_UNKNOWN    = 0x00000000,

     /* 16 bit  ARGB (2 byte, alpha 1@15, red 5@10, green 5@5, blue 5@0) */
     DSPF_ARGB1555   = DFB_SURFACE_PIXELFORMAT(  0, 15, 1, 1, 0, 2, 0, 0, 0, 0, 0 ),

     /* 16 bit   RGB (2 byte, red 5@11, green 6@5, blue 5@0) */
     DSPF_RGB16      = DFB_SURFACE_PIXELFORMAT(  1, 16, 0, 0, 0, 2, 0, 0, 0, 0, 0 ),

     /* 24 bit   RGB (3 byte, red 8@16, green 8@8, blue 8@0) */
     DSPF_RGB24      = DFB_SURFACE_PIXELFORMAT(  2, 24, 0, 0, 0, 3, 0, 0, 0, 0, 0 ),

     /* 24 bit   RGB (4 byte, nothing@24, red 8@16, green 8@8, blue 8@0) */
     DSPF_RGB32      = DFB_SURFACE_PIXELFORMAT(  3, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0 ),

     /* 32 bit  ARGB (4 byte, alpha 8@24, red 8@16, green 8@8, blue 8@0) */
     DSPF_ARGB       = DFB_SURFACE_PIXELFORMAT(  4, 24, 8, 1, 0, 4, 0, 0, 0, 0, 0 ),

     /*  8 bit alpha (1 byte, alpha 8@0), e.g. anti-aliased glyphs */
     DSPF_A8         = DFB_SURFACE_PIXELFORMAT(  5,  0, 8, 1, 0, 1, 0, 0, 0, 0, 0 ),

     /* 16 bit   YUV (4 byte/ 2 pixel, macropixel contains CbYCrY [31:0]) */
     DSPF_YUY2       = DFB_SURFACE_PIXELFORMAT(  6, 16, 0, 0, 0, 2, 0, 0, 0, 0, 0 ),

     /*  8 bit   RGB (1 byte, red 3@5, green 3@2, blue 2@0) */
     DSPF_RGB332     = DFB_SURFACE_PIXELFORMAT(  7,  8, 0, 0, 0, 1, 0, 0, 0, 0, 0 ),

     /* 16 bit   YUV (4 byte/ 2 pixel, macropixel contains YCbYCr [31:0]) */
     DSPF_UYVY       = DFB_SURFACE_PIXELFORMAT(  8, 16, 0, 0, 0, 2, 0, 0, 0, 0, 0 ),

     /* 12 bit   YUV (8 bit Y plane followed by quarter-size 8 bit U/V planes) */
     DSPF_I420       = DFB_SURFACE_PIXELFORMAT(  9, 12, 0, 0, 0, 1, 0, 2, 0, 0, 0 ),

     /* 12 bit   YUV (8 bit Y plane followed by quarter-size 8 bit V/U planes) */
     DSPF_YV12       = DFB_SURFACE_PIXELFORMAT( 10, 12, 0, 0, 0, 1, 0, 2, 0, 0, 0 ),

     /*  8 bit   LUT (8 bit color and alpha lookup from palette) */
     DSPF_LUT8       = DFB_SURFACE_PIXELFORMAT( 11,  8, 0, 1, 0, 1, 0, 0, 0, 1, 0 ),

     /*  8 bit  ALUT (1 byte, alpha 4@4, color lookup 4@0) */
     DSPF_ALUT44     = DFB_SURFACE_PIXELFORMAT( 12,  4, 4, 1, 0, 1, 0, 0, 0, 1, 0 ),

     /* 32 bit  ARGB (4 byte, inv. alpha 8@24, red 8@16, green 8@8, blue 8@0) */
     DSPF_AiRGB      = DFB_SURFACE_PIXELFORMAT( 13, 24, 8, 1, 0, 4, 0, 0, 0, 0, 1 ),

     /*  1 bit alpha (1 byte/ 8 pixel, most significant bit used first) */
     DSPF_A1         = DFB_SURFACE_PIXELFORMAT( 14,  0, 1, 1, 1, 0, 7, 0, 0, 0, 0 ),

     /* 12 bit   YUV (8 bit Y plane followed by quarter-size 16 bit Cb|Cr [7:0|7:0] plane) */
     DSPF_NV12       = DFB_SURFACE_PIXELFORMAT( 15, 12, 0, 0, 0, 1, 0, 2, 0, 0, 0 ),

     /* 16 bit   YUV (8 bit Y plane followed by half-size 16 bit Cb|Cr [7:0|7:0] plane) */
     DSPF_NV16       = DFB_SURFACE_PIXELFORMAT( 16, 16, 0, 0, 0, 1, 0, 0, 1, 0, 0 ),

     /* 16 bit  ARGB (2 byte, alpha 2@14, red 5@9, green 5@4, blue 4@0) */
     DSPF_ARGB2554   = DFB_SURFACE_PIXELFORMAT( 17, 14, 2, 1, 0, 2, 0, 0, 0, 0, 0 ),

     /* 16 bit  ARGB (2 byte, alpha 4@12, red 4@8, green 4@4, blue 4@0) */
     DSPF_ARGB4444   = DFB_SURFACE_PIXELFORMAT( 18, 12, 4, 1, 0, 2, 0, 0, 0, 0, 0 ),

     /* 16 bit  RGBA (2 byte, red 4@12, green 4@8, blue 4@4, alpha 4@0) */
     DSPF_RGBA4444   = DFB_SURFACE_PIXELFORMAT( 19, 12, 4, 1, 0, 2, 0, 0, 0, 0, 0 ),

     /* 12 bit   YUV (8 bit Y plane followed by quarter-size 16 bit Cr|Cb [7:0|7:0] plane) */
     DSPF_NV21       = DFB_SURFACE_PIXELFORMAT( 20, 12, 0, 0, 0, 1, 0, 2, 0, 0, 0 ),

     /* 32 bit  AYUV (4 byte, alpha 8@24, Y 8@16, Cb 8@8, Cr 8@0) */
     DSPF_AYUV       = DFB_SURFACE_PIXELFORMAT( 21, 24, 8, 1, 0, 4, 0, 0, 0, 0, 0 ),

     /*  4 bit alpha (1 byte/ 2 pixel, more significant nibble used first) */
     DSPF_A4         = DFB_SURFACE_PIXELFORMAT( 22,  0, 4, 1, 4, 0, 1, 0, 0, 0, 0 ),

     /*  1 bit alpha (3 byte, alpha 1@18, red 6@12, green 6@6, blue 6@0) */
     DSPF_ARGB1666   = DFB_SURFACE_PIXELFORMAT( 23, 18, 1, 1, 0, 3, 0, 0, 0, 0, 0 ),

     /*  6 bit alpha (3 byte, alpha 6@18, red 6@12, green 6@6, blue 6@0) */
     DSPF_ARGB6666   = DFB_SURFACE_PIXELFORMAT( 24, 18, 6, 1, 0, 3, 0, 0, 0, 0, 0 ),

     /* 24 bit   RGB (3 byte, nothing @18, red 6@12, green 6@6, blue 6@0) */
     DSPF_RGB18      = DFB_SURFACE_PIXELFORMAT( 25, 18, 0, 0, 0, 3, 0, 0, 0, 0, 0 ),

     /*  2 bit   LUT (1 byte/ 4 pixel, 2 bit color and alpha lookup from palette) */
     DSPF_LUT2       = DFB_SURFACE_PIXELFORMAT( 26,  2, 0, 1, 2, 0, 3, 0, 0, 1, 0 ),

     /* 16 bit   RGB (2 byte, nothing @12, red 4@8, green 4@4, blue 4@0) */
     DSPF_RGB444     = DFB_SURFACE_PIXELFORMAT( 27, 12, 0, 0, 0, 2, 0, 0, 0, 0, 0 ),

     /* 16 bit   RGB (2 byte, nothing @15, red 5@10, green 5@5, blue 5@0) */
     DSPF_RGB555     = DFB_SURFACE_PIXELFORMAT( 28, 15, 0, 0, 0, 2, 0, 0, 0, 0, 0 ),

     /* 16 bit   BGR (2 byte, nothing @15, blue 5@10, green 5@5, red 5@0) */
     DSPF_BGR555     = DFB_SURFACE_PIXELFORMAT( 29, 15, 0, 0, 0, 2, 0, 0, 0, 0, 0 ),

     /* 16 bit  RGBA (2 byte, red 5@11, green 5@6, blue 5@1, alpha 1@0) */
     DSPF_RGBA5551   = DFB_SURFACE_PIXELFORMAT( 30, 15, 1, 1, 0, 2, 0, 0, 0, 0, 0 ),

     /* 24 bit   YUV (8 bit Y plane followed by 8 bit U/V planes) */
     DSPF_Y444       = DFB_SURFACE_PIXELFORMAT( 31, 24, 0, 0, 0, 1, 0, 0, 2, 0, 0 ),

     /* 24 bit  ARGB (3 byte, alpha 8@16, red 5@11, green 6@5, blue 5@0) */
     DSPF_ARGB8565   = DFB_SURFACE_PIXELFORMAT( 32, 16, 8, 1, 0, 3, 0, 0, 0, 0, 0 ),

     /* 32 bit  AVYU (4 byte, alpha 8@24, Cr 8@16, Y 8@8, Cb 8@0) */
     DSPF_AVYU       = DFB_SURFACE_PIXELFORMAT( 33, 24, 8, 1, 0, 4, 0, 0, 0, 0, 0 ),

     /* 24 bit   VYU (3 byte, Cr 8@16, Y 8@8, Cb 8@0) */
     DSPF_VYU        = DFB_SURFACE_PIXELFORMAT( 34, 24, 0, 0, 0, 3, 0, 0, 0, 0, 0 ),

     /*  1 bit alpha (1 byte/ 8 pixel, least significant bit used first) */
     DSPF_A1_LSB     = DFB_SURFACE_PIXELFORMAT( 35,  0, 1, 1, 1, 0, 7, 0, 0, 0, 0 ),

     /* 16 bit   YUV (8 bit Y plane followed by half-size 8 bit V/U planes) */
     DSPF_YV16       = DFB_SURFACE_PIXELFORMAT( 36, 16, 0, 0, 0, 1, 0, 0, 1, 0, 0 ),

     /* 32 bit  ABGR (4 byte, alpha 8@24, blue 8@16, green 8@8, red 8@0) */
     DSPF_ABGR       = DFB_SURFACE_PIXELFORMAT( 37, 24, 8, 1, 0, 4, 0, 0, 0, 0, 0 ),

     /* 32 bit RGBAF (4 byte, red 8@24, green 8@16, blue 8@8, alpha 7@1, flash 1@0 */
     DSPF_RGBAF88871 = DFB_SURFACE_PIXELFORMAT( 38, 24, 7, 1, 0, 4, 0, 0, 0, 0, 0 ),

     /*  4 bit   LUT (1 byte/ 2 pixel, 4 bit color and alpha lookup from palette) */
     DSPF_LUT4       = DFB_SURFACE_PIXELFORMAT( 39,  4, 0, 1, 4, 0, 1, 0, 0, 1, 0 ),

     /* 16 bit   LUT (1 byte alpha and 8 bit color lookup from palette) */
     DSPF_ALUT8      = DFB_SURFACE_PIXELFORMAT( 40,  8, 8, 1, 0, 2, 0, 0, 0, 1, 0 ),

     /*  1 bit   LUT (1 byte/ 8 pixel, 1 bit color and alpha lookup from palette) */
     DSPF_LUT1       = DFB_SURFACE_PIXELFORMAT( 41,  1, 0, 1, 1, 0, 7, 0, 0, 1, 0 ),

     /* 16 bit   YUV (8 bit Y plane followed by half-size 16 bit Cr|Cb [7:0|7:0] plane) */
     DSPF_NV61       = DFB_SURFACE_PIXELFORMAT( 42, 16, 0, 0, 0, 1, 0, 0, 1, 0, 0 ),

     /* 16 bit   YUV (8 bit Y plane followed by half-size 8 bit U/V planes) */
     DSPF_Y42B       = DFB_SURFACE_PIXELFORMAT( 43, 16, 0, 0, 0, 1, 0, 0, 1, 0, 0 ),

     /* 24 bit   YUV (8 bit Y plane followed by 8 bit V/U planes) */
     DSPF_YV24       = DFB_SURFACE_PIXELFORMAT( 44, 24, 0, 0, 0, 1, 0, 0, 2, 0, 0 ),

     /* 24 bit   YUV (8 bit Y plane followed by 16 bit Cb|Cr [7:0|7:0] plane) */
     DSPF_NV24       = DFB_SURFACE_PIXELFORMAT( 45, 24, 0, 0, 0, 1, 0, 0, 2, 0, 0 ),

     /* 24 bit   YUV (8 bit Y plane followed by 16 bit Cr|Cb [7:0|7:0] plane) */
     DSPF_NV42       = DFB_SURFACE_PIXELFORMAT( 46, 24, 0, 0, 0, 1, 0, 0, 2, 0, 0 ),

     /* 24 bit   BGR (3 byte, blue 8@16, green 8@8, red 8@0) */
     DSPF_BGR24      = DFB_SURFACE_PIXELFORMAT( 47, 24, 0, 0, 0, 3, 0, 0, 0, 0, 0 )
} DFBSurfacePixelFormat;

#define DSPF_YUV420P                         DSPF_I420
#define DSPF_YUV422P                         DSPF_Y42B
#define DSPF_YUV444P                         DSPF_Y444

/* Number of pixelformats defined. */
#define DFB_NUM_PIXELFORMATS                 48

/* These macros extract information about the pixel format. */
#define DFB_PIXELFORMAT_INDEX(fmt)            ((fmt) & 0x0000007F)

#define DFB_COLOR_BITS_PER_PIXEL(fmt)        (((fmt) & 0x00000F80) >> 7)

#define DFB_ALPHA_BITS_PER_PIXEL(fmt)        (((fmt) & 0x0000F000) >> 12)

#define DFB_PIXELFORMAT_HAS_ALPHA(fmt)       (((fmt) & 0x00010000) != 0)

#define DFB_BITS_PER_PIXEL(fmt)              (((fmt) & 0x007E0000) >> 17)

#define DFB_BYTES_PER_PIXEL(fmt)             (((fmt) & 0x00700000) >> 20)

#define DFB_BYTES_PER_LINE(fmt,width)        (((((fmt) & 0x007E0000) >> 17) * (width) + 7) >> 3)

#define DFB_PIXELFORMAT_ALIGNMENT(fmt)       (((fmt) & 0x03800000) >> 23)

#define DFB_PLANE_MULTIPLY(fmt,height)       ((((((fmt) & 0x3C000000) >> 26) + 4) * (height)) >> 2)

#define DFB_PIXELFORMAT_IS_INDEXED(fmt)      (((fmt) & 0x40000000) != 0)

#define DFB_PLANAR_PIXELFORMAT(fmt)          (((fmt) & 0x3C000000) != 0)

#define DFB_PIXELFORMAT_INV_ALPHA(fmt)       (((fmt) & 0x80000000) != 0)

#define DFB_COLOR_IS_RGB(fmt)        \
     (((fmt) == DSPF_ARGB1555)    || \
      ((fmt) == DSPF_RGB16)       || \
      ((fmt) == DSPF_RGB24)       || \
      ((fmt) == DSPF_RGB32)       || \
      ((fmt) == DSPF_ARGB)        || \
      ((fmt) == DSPF_RGB332)      || \
      ((fmt) == DSPF_AiRGB)       || \
      ((fmt) == DSPF_ARGB2554)    || \
      ((fmt) == DSPF_ARGB4444)    || \
      ((fmt) == DSPF_RGBA4444)    || \
      ((fmt) == DSPF_ARGB1666)    || \
      ((fmt) == DSPF_ARGB6666)    || \
      ((fmt) == DSPF_RGB18)       || \
      ((fmt) == DSPF_RGB444)      || \
      ((fmt) == DSPF_RGB555)      || \
      ((fmt) == DSPF_BGR555)      || \
      ((fmt) == DSPF_ARGB8565)    || \
      ((fmt) == DSPF_ABGR)        || \
      ((fmt) == DSPF_RGBAF88871)  || \
      ((fmt) == DSPF_BGR24))

#define DFB_COLOR_IS_YUV(fmt)        \
     (((fmt) == DSPF_YUY2)        || \
      ((fmt) == DSPF_UYVY)        || \
      ((fmt) == DSPF_I420)        || \
      ((fmt) == DSPF_YV12)        || \
      ((fmt) == DSPF_NV12)        || \
      ((fmt) == DSPF_NV16)        || \
      ((fmt) == DSPF_NV21)        || \
      ((fmt) == DSPF_AYUV)        || \
      ((fmt) == DSPF_Y444)        || \
      ((fmt) == DSPF_AVYU)        || \
      ((fmt) == DSPF_VYU)         || \
      ((fmt) == DSPF_YV16)        || \
      ((fmt) == DSPF_NV61)        || \
      ((fmt) == DSPF_Y42B)        || \
      ((fmt) == DSPF_YV24)        || \
      ((fmt) == DSPF_NV24)        || \
      ((fmt) == DSPF_NV42))

/*
 * Hint flags for optimized allocation, format selection etc.
 */
typedef enum {
     DSHF_NONE                             = 0x00000000,         /* None of these. */

     DSHF_LAYER                            = 0x00000001,         /* Surface optimized for display layer usage. */
     DSHF_WINDOW                           = 0x00000002,         /* Surface optimized for being a window buffer. */
     DSHF_CURSOR                           = 0x00000004,         /* Surface optimized for usage as a cursor shape. */
     DSHF_FONT                             = 0x00000008,         /* Surface optimized for text rendering. */

     DSHF_ALL                              = 0x0000000F          /* All of these. */
} DFBSurfaceHintFlags;

/*
 * Color space used by the colors in the surface.
 */
typedef enum {
     DSCS_UNKNOWN                          = 0x00000000,         /* unknown color space */

     DSCS_RGB                              = 0x00000001,         /* standard RGB */
     DSCS_BT601                            = 0x00000002,         /* ITU BT.601 */

     DSCS_BT709                            = 0x00000004,         /* ITU BT.709 */
     DSCS_BT2020                           = 0x00000005          /* ITU BT.2020 */
} DFBSurfaceColorSpace;

#define DFB_COLORSPACE_IS_COMPATIBLE(cs,fmt)               \
     ((DFB_COLOR_IS_RGB((fmt)) &&  ((cs) == DSCS_RGB))  || \
      (DFB_COLOR_IS_YUV((fmt)) && (((cs) == DSCS_BT601) || \
                                   ((cs) == DSCS_BT709) || \
                                   ((cs) == DSCS_BT2020))))

#define DFB_COLORSPACE_DEFAULT(fmt) \
     (DFB_COLOR_IS_RGB((fmt)) ? DSCS_RGB : DFB_COLOR_IS_YUV((fmt)) ? DSCS_BT601 : DSCS_UNKNOWN)

/*
 * Description of the surface that is to be created.
 */
typedef struct {
     DFBSurfaceDescriptionFlags              flags;              /* field validation */

     DFBSurfaceCapabilities                  caps;               /* capabilities */
     int                                     width;              /* pixel width */
     int                                     height;             /* pixel height */
     DFBSurfacePixelFormat                   pixelformat;        /* pixel format */
     struct {
          void                              *data;               /* data pointer of existing buffer */
          int                                pitch;              /* pitch of buffer */
     } preallocated[3];                                          /* preallocated data */
     struct {
          const DFBColor                    *entries;            /* palette entries */
          unsigned int                       size;               /* number of entries */
     } palette;                                                  /* initial palette */
     unsigned long                           resource_id;        /* universal resource id, either user specified for
                                                                    general purpose surfaces or id of layer or window */
     DFBSurfaceHintFlags                     hints;              /* usage hints for optimized allocation,
                                                                    format selection, etc */
     DFBSurfaceColorSpace                    colorspace;         /* color space */
} DFBSurfaceDescription;

/*
 * Flags defining which fields of a DFBPaletteDescription are
 * valid.
 */
typedef enum {
     DPDESC_CAPS                           = 0x00000001,         /* Specify palette capabilities. */
     DPDESC_SIZE                           = 0x00000002,         /* Specify number of entries. */
     DPDESC_ENTRIES                        = 0x00000004,         /* Initialize the palette with the
                                                                    entries specified in the description. */
     DPDESC_COLORSPACE                     = 0x00000008          /* Specify palette color space. */
} DFBPaletteDescriptionFlags;

/*
 * The palette capabilities.
 */
typedef enum {
     DPCAPS_NONE                           = 0x00000000          /* None of these. */
} DFBPaletteCapabilities;

/*
 * Description of the palette that is to be created.
 */
typedef struct {
     DFBPaletteDescriptionFlags              flags;              /* Validation of fields. */

     DFBPaletteCapabilities                  caps;               /* Palette capabilities. */
     unsigned int                            size;               /* Number of entries. */
     const DFBColor                         *entries;            /* Preset palette entries. */
     DFBSurfaceColorSpace                    colorspace;         /* Palette color space. */
} DFBPaletteDescription;

/*
 * Capabilities of a screen.
 */
typedef enum {
     DSCCAPS_NONE                          = 0x00000000,         /* None of these. */

     DSCCAPS_VSYNC                         = 0x00000001,         /* Synchronization with the
                                                                    vertical retrace supported. */
     DSCCAPS_POWER_MANAGEMENT              = 0x00000002,         /* Power management supported. */

     DSCCAPS_MIXERS                        = 0x00000010,         /* Has mixers. */
     DSCCAPS_ENCODERS                      = 0x00000020,         /* Has encoders. */
     DSCCAPS_OUTPUTS                       = 0x00000040,         /* Has outputs. */

     DSCCAPS_ALL                           = 0x00000073          /* All of these. */
} DFBScreenCapabilities;

#define DFB_SCREEN_DESC_NAME_LENGTH          32

/*
 * Description of the display encoder capabilities.
 */
typedef struct {
     DFBScreenCapabilities                   caps;               /* Capability flags of the screen. */

     char name[DFB_SCREEN_DESC_NAME_LENGTH];                     /* Rough description. */

     int                                     mixers;             /* Number of mixers available. */
     int                                     encoders;           /* Number of display encoders available. */
     int                                     outputs;            /* Number of output connectors available. */
} DFBScreenDescription;

/*
 * Type of display layer for basic classification.
 */
typedef enum {
     DLTF_NONE                             = 0x00000000,         /* Unclassified, no specific type. */

     DLTF_GRAPHICS                         = 0x00000001,         /* Can be used for graphics output. */
     DLTF_VIDEO                            = 0x00000002,         /* Can be used for live video output.*/
     DLTF_STILL_PICTURE                    = 0x00000004,         /* Can be used for single frames. */
     DLTF_BACKGROUND                       = 0x00000008,         /* Can be used as a background layer.*/

     DLTF_ALL                              = 0x0000000F          /* All type flags set. */
} DFBDisplayLayerTypeFlags;

/*
 * Capabilities of a display layer.
 */
typedef enum {
     DLCAPS_NONE                           = 0x00000000,         /* None of these. */

     DLCAPS_SURFACE                        = 0x00000001,         /* The layer has a surface that can be drawn to. This
                                                                    may not be provided by layers that display realtime
                                                                    data, e.g. from an MPEG decoder chip. Playback
                                                                    control may be provided by an external API. */
     DLCAPS_OPACITY                        = 0x00000002,         /* The layer supports blending with layer(s) below
                                                                    based on a global alpha factor. */
     DLCAPS_ALPHACHANNEL                   = 0x00000004,         /* The layer supports blending with layer(s) below
                                                                    based on each pixel's alpha value. */
     DLCAPS_SCREEN_LOCATION                = 0x00000008,         /* The layer location on the screen can be changed,
                                                                    this includes position and size as normalized
                                                                    values.
                                                                    This implies DLCAPS_SCREEN_POSITION and _SIZE. */
     DLCAPS_FLICKER_FILTERING              = 0x00000010,         /* Flicker filtering can be enabled for smooth output
                                                                    on interlaced display devices. */
     DLCAPS_DEINTERLACING                  = 0x00000020,         /* The layer provides optional deinterlacing for
                                                                    displaying interlaced video data on progressive
                                                                    display devices. */
     DLCAPS_SRC_COLORKEY                   = 0x00000040,         /* A specific color can be declared as transparent. */
     DLCAPS_DST_COLORKEY                   = 0x00000080,         /* A specific color of layers below can be specified
                                                                    as the color of the only locations where the layer
                                                                    is visible. */
     DLCAPS_BRIGHTNESS                     = 0x00000100,         /* Adjustment of brightness is supported. */
     DLCAPS_CONTRAST                       = 0x00000200,         /* Adjustment of contrast is supported. */
     DLCAPS_HUE                            = 0x00000400,         /* Adjustment of hue is supported. */
     DLCAPS_SATURATION                     = 0x00000800,         /* Adjustment of saturation is supported. */
     DLCAPS_LEVELS                         = 0x00001000,         /* Adjustment of the layer's level
                                                                    (z position) is supported. */
     DLCAPS_FIELD_PARITY                   = 0x00002000,         /* Field parity can be selected */
     DLCAPS_WINDOWS                        = 0x00004000,         /* Hardware window support. */
     DLCAPS_SOURCES                        = 0x00008000,         /* Sources can be selected. */
     DLCAPS_ALPHA_RAMP                     = 0x00010000,         /* Alpha values for formats with one or two alpha bits
                                                                    can be chosen, i.e. using ARGB1555 or ARGB2554 the
                                                                    user can define the meaning of the two or four
                                                                    possibilities. In short, this feature provides a
                                                                    lookup table for the alpha bits of these formats. */
     DLCAPS_PREMULTIPLIED                  = 0x00020000,         /* Surfaces with premultiplied alpha are supported. */

     DLCAPS_SCREEN_POSITION                = 0x00100000,         /* The layer position on the screen can be changed. */
     DLCAPS_SCREEN_SIZE                    = 0x00200000,         /* The layer size (defined by its source rectangle)
                                                                    can be scaled to a different size on the screen
                                                                    (defined by its screen/destination rectangle or
                                                                    its normalized size) and does not have to be 1:1
                                                                    with it. */
     DLCAPS_CLIP_REGIONS                   = 0x00400000,         /* Supports SetClipRegions(). */

     DLCAPS_LR_MONO                        = 0x01000000,         /* Supports L/R mono stereoscopic display. */
     DLCAPS_STEREO                         = 0x02000000,         /* Supports independent L/R stereoscopic display. */

     DLCAPS_ALL                            = 0x0373FFFF          /* All of these. */
} DFBDisplayLayerCapabilities;

#define DFB_DISPLAY_LAYER_DESC_NAME_LENGTH   32

/*
 * Description of the display layer capabilities.
 */
typedef struct {
     DFBDisplayLayerTypeFlags                type;               /* Classification of the display layer. */
     DFBDisplayLayerCapabilities             caps;               /* Capability flags of the display layer. */

     char name[DFB_DISPLAY_LAYER_DESC_NAME_LENGTH];              /* Display layer name. */

     int                                     level;              /* Default level. */
     int                                     regions;            /* Number of concurrent regions supported:
                                                                      -1 = unlimited,
                                                                       0 = unknown/one,
                                                                      >0 = actual number */
     int                                     sources;            /* Number of selectable sources. */
     int                                     clip_regions;       /* Number of clipping regions. */
     DFBSurfaceCapabilities                  surface_caps;       /* Capabilities. */
     unsigned int                            surface_accessor;   /* Accessor. */
} DFBDisplayLayerDescription;

/*
 * Type of input device for basic classification.
 */
typedef enum {
     DIDTF_NONE                            = 0x00000000,         /* Unclassified, no specific type. */

     DIDTF_KEYBOARD                        = 0x00000001,         /* Is a keyboard. */
     DIDTF_MOUSE                           = 0x00000002,         /* Is a mouse. */
     DIDTF_JOYSTICK                        = 0x00000004,         /* Is a joystick. */
     DIDTF_REMOTE                          = 0x00000008,         /* Is a remote control. */
     DIDTF_VIRTUAL                         = 0x00000010,         /* Is a virtual input device. */
     DIDTF_BUTTONS                         = 0x00000020,         /* Is buttons. */

     DIDTF_ALL                             = 0x0000003F          /* All type flags set. */
} DFBInputDeviceTypeFlags;

/*
 * Basic input device features.
 */
typedef enum {
     DICAPS_KEYS                           = 0x00000001,         /* device supports key events */
     DICAPS_AXES                           = 0x00000002,         /* device supports axis events */
     DICAPS_BUTTONS                        = 0x00000004,         /* device supports button events */

     DICAPS_ALL                            = 0x00000007          /* all capabilities */
} DFBInputDeviceCapabilities;

/*
 * Axis identifier (index) for mouse or joystick.
 *
 * The X, Y and Z axis are predefined. To access other axes,
 * use DIAI_FIRST plus a zero based index, e.g. the 4th axis
 * would be (DIAI_FIRST + 3).
 */
typedef enum {
     DIAI_X                                = 0x00000000,         /* X axis */
     DIAI_Y                                = 0x00000001,         /* Y axis */
     DIAI_Z                                = 0x00000002,         /* Z axis */
     DIAI_FIRST                            = DIAI_X,             /* other axis:
                                                                    DIAI_FIRST + zero based index */
     DIAI_LAST                             = 0x0000001F          /* 32 axes maximum */
} DFBInputDeviceAxisIdentifier;

/*
 * Identifier (index) for e.g. mouse or joystick buttons.
 */
typedef enum {
     DIBI_LEFT                             = 0x00000000,         /* left mouse button */
     DIBI_RIGHT                            = 0x00000001,         /* right mouse button */
     DIBI_MIDDLE                           = 0x00000002,         /* middle mouse button */
     DIBI_FIRST                            = DIBI_LEFT,          /* other buttons:
                                                                    DIBI_FIRST + zero based index */
     DIBI_LAST                             = 0x0000001F          /* 32 buttons maximum */
} DFBInputDeviceButtonIdentifier;

#define DFB_INPUT_DEVICE_DESC_NAME_LENGTH    32
#define DFB_INPUT_DEVICE_DESC_VENDOR_LENGTH  40

/*
 * Description of the input device capabilities.
 */
typedef struct {
     DFBInputDeviceTypeFlags                 type;               /* classification of input device */
     DFBInputDeviceCapabilities              caps;               /* capabilities, validates the following fields */
     int                                     min_keycode;        /* minimum hardware keycode or -1 if no differentiation
                                                                    between hardware keys is made */
     int                                     max_keycode;        /* maximum hardware keycode or -1 if no differentiation
                                                                    between hardware keys is made */
     DFBInputDeviceAxisIdentifier            max_axis;           /* highest axis identifier */
     DFBInputDeviceButtonIdentifier          max_button;         /* highest button identifier */

     char name[DFB_INPUT_DEVICE_DESC_NAME_LENGTH];               /* device name */
     char vendor[DFB_INPUT_DEVICE_DESC_VENDOR_LENGTH];           /* device vendor */

     int                                     vendor_id;          /* vendor ID */
     int                                     product_id;         /* product ID */
} DFBInputDeviceDescription;

/*
 * Flags defining which fields of a DFBFontDescription are
 * valid.
 */
typedef enum {
     DFDESC_ATTRIBUTES                     = 0x00000001,         /* attributes field is valid */
     DFDESC_HEIGHT                         = 0x00000002,         /* height is specified */
     DFDESC_WIDTH                          = 0x00000004,         /* width is specified */
     DFDESC_INDEX                          = 0x00000008,         /* index is specified */
     DFDESC_FIXEDADVANCE                   = 0x00000010,         /* specify a fixed advance overriding any character
                                                                    advance of fixed or proportional fonts */
     DFDESC_FRACT_HEIGHT                   = 0x00000020,         /* fractional height is set */
     DFDESC_FRACT_WIDTH                    = 0x00000040,         /* fractional width is set */
     DFDESC_OUTLINE_WIDTH                  = 0x00000080,         /* outline width is set */
     DFDESC_OUTLINE_OPACITY                = 0x00000100,         /* outline opacity is set */
     DFDESC_ROTATION                       = 0x00000200          /* rotation is set */
} DFBFontDescriptionFlags;

/*
 * Flags describing how to load a font.
 *
 * These flags describe how a font is loaded and affect how the
 * glyphs are drawn. There is no way to change this after the
 * font has been loaded.
 * If you need to render a font with different attributes, you
 * have to create multiple FontProviders of the same font file.
 */
typedef enum {
     DFFA_NONE                             = 0x00000000,         /* none of these flags */

     DFFA_NOKERNING                        = 0x00000001,         /* don't use kerning */
     DFFA_NOHINTING                        = 0x00000002,         /* don't use hinting */
     DFFA_MONOCHROME                       = 0x00000004,         /* don't use anti-aliasing */
     DFFA_NOCHARMAP                        = 0x00000008,         /* no char map, glyph indices are specified directly */
     DFFA_FIXEDCLIP                        = 0x00000010,         /* width fixed advance, clip to it */
     DFFA_NOBITMAP                         = 0x00000020,         /* ignore bitmap strikes; for bitmap-only fonts this
                                                                    flag is ignored */
     DFFA_OUTLINED                         = 0x00000040,         /* outlined font */
     DFFA_AUTOHINTING                      = 0x00000080,         /* prefer auto-hinter over the font's native hinter */
     DFFA_SOFTHINTING                      = 0x00000100,         /* use a lighter hinting algorithm that produces glyphs
                                                                    that are more fuzzy but better resemble the original
                                                                    shape */
     DFFA_STYLE_ITALIC                     = 0x00000200,         /* load italic style */
     DFFA_VERTICAL_LAYOUT                  = 0x00000400,         /* load vertical layout */
     DFFA_STYLE_BOLD                       = 0x00000800          /* load bold style */
} DFBFontAttributes;

/*
 * Description of how to load glyphs from a font file.
 *
 * The attributes control how the glyphs are rendered. Width and
 * height ca
Download .txt
gitextract_fkdzfd_8/

├── .gitignore
├── AUTHORS
├── COPYING
├── ChangeLog
├── INSTALL
├── Kconfig
├── Make.defs
├── Makefile
├── NEWS
├── README
├── README.md
├── dfb-update-pkgconfig.in
├── include/
│   ├── dfiff.h
│   ├── dfvff.h
│   ├── dgiff.h
│   ├── directfb.h
│   ├── directfb_keyboard.h
│   ├── directfb_util.h
│   ├── directfb_windows.h
│   ├── directfbgl.h
│   ├── gen_directfb_keynames.sh
│   ├── gen_directfb_strings.sh
│   └── meson.build
├── inputdrivers/
│   ├── linux_input/
│   │   ├── linux_input.c
│   │   └── meson.build
│   └── nuttx_input/
│       └── nuttx_input.c
├── interfaces/
│   ├── ICoreResourceManager/
│   │   ├── icoreresourcemanager_default.c
│   │   └── meson.build
│   ├── IDirectFBFont/
│   │   ├── idirectfbfont_dgiff.c
│   │   └── meson.build
│   ├── IDirectFBImageProvider/
│   │   ├── idirectfbimageprovider_dfiff.c
│   │   └── meson.build
│   ├── IDirectFBVideoProvider/
│   │   ├── idirectfbvideoprovider_dfvff.c
│   │   └── meson.build
│   └── IDirectFBWindows/
│       ├── idirectfbwindows_default.c
│       └── meson.build
├── lib/
│   ├── direct/
│   │   ├── atomic.h
│   │   ├── clock.c
│   │   ├── clock.h
│   │   ├── compiler.h
│   │   ├── conf.c
│   │   ├── conf.h
│   │   ├── debug.c
│   │   ├── debug.h
│   │   ├── direct.c
│   │   ├── direct.h
│   │   ├── direct_result.c
│   │   ├── direct_result.h
│   │   ├── filesystem.h
│   │   ├── hash.c
│   │   ├── hash.h
│   │   ├── init.c
│   │   ├── interface.c
│   │   ├── interface.h
│   │   ├── interface_implementation.h
│   │   ├── list.h
│   │   ├── log.c
│   │   ├── log.h
│   │   ├── log_domain.c
│   │   ├── log_domain.h
│   │   ├── map.c
│   │   ├── map.h
│   │   ├── mem.c
│   │   ├── mem.h
│   │   ├── memcpy.c
│   │   ├── memcpy.h
│   │   ├── meson.build
│   │   ├── messages.c
│   │   ├── messages.h
│   │   ├── modules.c
│   │   ├── modules.h
│   │   ├── mutex.h
│   │   ├── os/
│   │   │   ├── clock.h
│   │   │   ├── filesystem.h
│   │   │   ├── linux/
│   │   │   │   ├── clock.c
│   │   │   │   ├── filesystem.c
│   │   │   │   ├── filesystem.h
│   │   │   │   ├── log.c
│   │   │   │   ├── mem.c
│   │   │   │   ├── mutex.c
│   │   │   │   ├── mutex.h
│   │   │   │   ├── signals.c
│   │   │   │   ├── system.c
│   │   │   │   ├── thread.c
│   │   │   │   ├── thread.h
│   │   │   │   ├── types.h
│   │   │   │   └── waitqueue.h
│   │   │   ├── log.h
│   │   │   ├── mem.h
│   │   │   ├── mutex.h
│   │   │   ├── nuttx/
│   │   │   │   ├── clock.c
│   │   │   │   ├── configs/
│   │   │   │   │   ├── sim/
│   │   │   │   │   │   └── defconfig
│   │   │   │   │   └── stm32f429i-disco/
│   │   │   │   │       └── defconfig
│   │   │   │   ├── filesystem.c
│   │   │   │   ├── filesystem.h
│   │   │   │   ├── log.c
│   │   │   │   ├── mem.c
│   │   │   │   ├── mutex.c
│   │   │   │   ├── mutex.h
│   │   │   │   ├── signals.c
│   │   │   │   ├── system.c
│   │   │   │   ├── thread.c
│   │   │   │   ├── thread.h
│   │   │   │   ├── types.h
│   │   │   │   └── waitqueue.h
│   │   │   ├── signals.h
│   │   │   ├── system.h
│   │   │   ├── thread.h
│   │   │   ├── types.h
│   │   │   └── waitqueue.h
│   │   ├── result.c
│   │   ├── result.h
│   │   ├── serial.h
│   │   ├── signals.h
│   │   ├── stream.c
│   │   ├── stream.h
│   │   ├── system.c
│   │   ├── system.h
│   │   ├── thread.c
│   │   ├── thread.h
│   │   ├── trace.c
│   │   ├── trace.h
│   │   ├── types.h
│   │   ├── utf8.h
│   │   ├── util.c
│   │   ├── util.h
│   │   └── waitqueue.h
│   └── fusion/
│       ├── arena.c
│       ├── arena.h
│       ├── call.c
│       ├── call.h
│       ├── conf.c
│       ├── conf.h
│       ├── fusion.c
│       ├── fusion.h
│       ├── fusion_internal.h
│       ├── hash.c
│       ├── hash.h
│       ├── init.c
│       ├── lock.c
│       ├── lock.h
│       ├── meson.build
│       ├── object.c
│       ├── object.h
│       ├── protocol.h
│       ├── reactor.c
│       ├── reactor.h
│       ├── ref.c
│       ├── ref.h
│       ├── shm/
│       │   ├── fake.c
│       │   ├── heap.c
│       │   ├── pool.c
│       │   ├── pool.h
│       │   ├── shm.c
│       │   ├── shm.h
│       │   └── shm_internal.h
│       ├── shmalloc.c
│       ├── shmalloc.h
│       ├── types.h
│       ├── vector.c
│       └── vector.h
├── meson.build
├── meson_options.txt
├── src/
│   ├── core/
│   │   ├── CoreDFB.flux
│   │   ├── CoreDFB_CallMode.h
│   │   ├── CoreDFB_includes.h
│   │   ├── CoreDFB_real.c
│   │   ├── CoreGraphicsState.flux
│   │   ├── CoreGraphicsStateClient.c
│   │   ├── CoreGraphicsStateClient.h
│   │   ├── CoreGraphicsState_includes.h
│   │   ├── CoreGraphicsState_real.c
│   │   ├── CoreInputDevice.flux
│   │   ├── CoreInputDevice_includes.h
│   │   ├── CoreInputDevice_real.c
│   │   ├── CoreLayer.flux
│   │   ├── CoreLayerContext.flux
│   │   ├── CoreLayerContext_includes.h
│   │   ├── CoreLayerContext_real.c
│   │   ├── CoreLayerRegion.flux
│   │   ├── CoreLayerRegion_includes.h
│   │   ├── CoreLayerRegion_real.c
│   │   ├── CoreLayer_includes.h
│   │   ├── CoreLayer_real.c
│   │   ├── CorePalette.flux
│   │   ├── CorePalette_includes.h
│   │   ├── CorePalette_real.c
│   │   ├── CoreScreen.flux
│   │   ├── CoreScreen_includes.h
│   │   ├── CoreScreen_real.c
│   │   ├── CoreSlave.flux
│   │   ├── CoreSlave_includes.h
│   │   ├── CoreSlave_real.c
│   │   ├── CoreSurface.flux
│   │   ├── CoreSurfaceAllocation.flux
│   │   ├── CoreSurfaceAllocation_includes.h
│   │   ├── CoreSurfaceAllocation_real.c
│   │   ├── CoreSurfaceClient.flux
│   │   ├── CoreSurfaceClient_includes.h
│   │   ├── CoreSurfaceClient_real.c
│   │   ├── CoreSurface_includes.h
│   │   ├── CoreSurface_real.c
│   │   ├── CoreWindow.flux
│   │   ├── CoreWindowStack.flux
│   │   ├── CoreWindowStack_includes.h
│   │   ├── CoreWindowStack_real.c
│   │   ├── CoreWindow_includes.h
│   │   ├── CoreWindow_real.c
│   │   ├── clipboard.c
│   │   ├── clipboard.h
│   │   ├── colorhash.c
│   │   ├── colorhash.h
│   │   ├── core.c
│   │   ├── core.h
│   │   ├── core_parts.c
│   │   ├── core_parts.h
│   │   ├── core_resourcemanager.h
│   │   ├── core_system.h
│   │   ├── coredefs.h
│   │   ├── coretypes.h
│   │   ├── cursor.h
│   │   ├── fluxcomp.py
│   │   ├── fonts.c
│   │   ├── fonts.h
│   │   ├── gfxcard.c
│   │   ├── gfxcard.h
│   │   ├── graphics_driver.h
│   │   ├── graphics_state.c
│   │   ├── graphics_state.h
│   │   ├── input.c
│   │   ├── input.h
│   │   ├── input_driver.h
│   │   ├── layer_context.c
│   │   ├── layer_context.h
│   │   ├── layer_control.c
│   │   ├── layer_control.h
│   │   ├── layer_region.c
│   │   ├── layer_region.h
│   │   ├── layers.c
│   │   ├── layers.h
│   │   ├── local_surface_pool.c
│   │   ├── meson.build
│   │   ├── palette.c
│   │   ├── palette.h
│   │   ├── prealloc_surface_pool.c
│   │   ├── prealloc_surface_pool_bridge.c
│   │   ├── screen.c
│   │   ├── screen.h
│   │   ├── screens.c
│   │   ├── screens.h
│   │   ├── shared_secure_surface_pool.c
│   │   ├── shared_surface_pool.c
│   │   ├── state.c
│   │   ├── state.h
│   │   ├── surface.c
│   │   ├── surface.h
│   │   ├── surface_allocation.c
│   │   ├── surface_allocation.h
│   │   ├── surface_buffer.c
│   │   ├── surface_buffer.h
│   │   ├── surface_client.c
│   │   ├── surface_client.h
│   │   ├── surface_core.c
│   │   ├── surface_core.h
│   │   ├── surface_pool.c
│   │   ├── surface_pool.h
│   │   ├── surface_pool_bridge.c
│   │   ├── surface_pool_bridge.h
│   │   ├── system.c
│   │   ├── system.h
│   │   ├── video_mode.h
│   │   ├── windows.c
│   │   ├── windows.h
│   │   ├── windowstack.c
│   │   ├── windowstack.h
│   │   ├── wm.c
│   │   ├── wm.h
│   │   └── wm_module.h
│   ├── directfb.c
│   ├── directfb_result.c
│   ├── directfb_result.h
│   ├── display/
│   │   ├── idirectfbdisplaylayer.c
│   │   ├── idirectfbdisplaylayer.h
│   │   ├── idirectfbpalette.c
│   │   ├── idirectfbpalette.h
│   │   ├── idirectfbscreen.c
│   │   ├── idirectfbscreen.h
│   │   ├── idirectfbsurface.c
│   │   ├── idirectfbsurface.h
│   │   ├── idirectfbsurface_layer.c
│   │   ├── idirectfbsurface_layer.h
│   │   ├── idirectfbsurface_window.c
│   │   ├── idirectfbsurface_window.h
│   │   ├── idirectfbsurfaceallocation.c
│   │   └── idirectfbsurfaceallocation.h
│   ├── gfx/
│   │   ├── clip.c
│   │   ├── clip.h
│   │   ├── convert.c
│   │   ├── convert.h
│   │   ├── generic/
│   │   │   ├── duffs_device.h
│   │   │   ├── generic.c
│   │   │   ├── generic.h
│   │   │   ├── generic_64.h
│   │   │   ├── generic_blit.c
│   │   │   ├── generic_blit.h
│   │   │   ├── generic_draw_line.c
│   │   │   ├── generic_draw_line.h
│   │   │   ├── generic_fill_rectangle.c
│   │   │   ├── generic_fill_rectangle.h
│   │   │   ├── generic_mmx.h
│   │   │   ├── generic_neon.h
│   │   │   ├── generic_stretch_blit.c
│   │   │   ├── generic_stretch_blit.h
│   │   │   ├── generic_texture_triangles.c
│   │   │   ├── generic_texture_triangles.h
│   │   │   ├── generic_util.c
│   │   │   ├── generic_util.h
│   │   │   ├── stretch_hvx_16.h
│   │   │   ├── stretch_hvx_32.h
│   │   │   ├── stretch_hvx_8.h
│   │   │   ├── stretch_hvx_88.h
│   │   │   ├── stretch_hvx_N.h
│   │   │   ├── stretch_up_down_16.h
│   │   │   ├── stretch_up_down_32.h
│   │   │   ├── stretch_up_down_8.h
│   │   │   ├── stretch_up_down_88.h
│   │   │   ├── stretch_up_down_table.h
│   │   │   ├── template_acc_16.h
│   │   │   ├── template_acc_24.h
│   │   │   ├── template_acc_32.h
│   │   │   ├── template_colorkey_16.h
│   │   │   ├── template_colorkey_24.h
│   │   │   └── template_colorkey_32.h
│   │   ├── util.c
│   │   └── util.h
│   ├── idirectfb.c
│   ├── idirectfb.h
│   ├── init.c
│   ├── input/
│   │   ├── idirectfbeventbuffer.c
│   │   ├── idirectfbeventbuffer.h
│   │   ├── idirectfbinputdevice.c
│   │   └── idirectfbinputdevice.h
│   ├── media/
│   │   ├── idirectfbdatabuffer.c
│   │   ├── idirectfbdatabuffer.h
│   │   ├── idirectfbdatabuffer_file.c
│   │   ├── idirectfbdatabuffer_file.h
│   │   ├── idirectfbdatabuffer_memory.c
│   │   ├── idirectfbdatabuffer_memory.h
│   │   ├── idirectfbdatabuffer_streamed.c
│   │   ├── idirectfbdatabuffer_streamed.h
│   │   ├── idirectfbfont.c
│   │   ├── idirectfbfont.h
│   │   ├── idirectfbimageprovider.c
│   │   ├── idirectfbimageprovider.h
│   │   ├── idirectfbvideoprovider.c
│   │   └── idirectfbvideoprovider.h
│   ├── meson.build
│   ├── misc/
│   │   ├── conf.c
│   │   ├── conf.h
│   │   ├── gfx_util.c
│   │   ├── gfx_util.h
│   │   └── util.c
│   └── windows/
│       ├── idirectfbwindow.c
│       └── idirectfbwindow.h
├── systems/
│   ├── drmkms/
│   │   ├── drmkms_layer.c
│   │   ├── drmkms_mode.c
│   │   ├── drmkms_mode.h
│   │   ├── drmkms_screen.c
│   │   ├── drmkms_surface_pool.c
│   │   ├── drmkms_system.c
│   │   ├── drmkms_system.h
│   │   ├── drmkms_vt.c
│   │   ├── drmkms_vt.h
│   │   └── meson.build
│   ├── dummy/
│   │   ├── dummy.c
│   │   └── meson.build
│   ├── fbdev/
│   │   ├── fbdev_layer.c
│   │   ├── fbdev_mode.c
│   │   ├── fbdev_mode.h
│   │   ├── fbdev_screen.c
│   │   ├── fbdev_surface_pool.c
│   │   ├── fbdev_surfacemanager.c
│   │   ├── fbdev_surfacemanager.h
│   │   ├── fbdev_system.c
│   │   ├── fbdev_system.h
│   │   ├── fbdev_vt.c
│   │   ├── fbdev_vt.h
│   │   └── meson.build
│   └── nuttxfb/
│       ├── nuttxfb_layer.c
│       ├── nuttxfb_screen.c
│       ├── nuttxfb_surface_pool.c
│       ├── nuttxfb_system.c
│       └── nuttxfb_system.h
└── wm/
    └── default/
        ├── default.c
        └── meson.build
Download .txt
Showing preview only (225K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3857 symbols across 277 files)

FILE: include/dfiff.h
  type DFIFFHeader (line 24) | typedef struct {

FILE: include/dfvff.h
  type DFVFFHeader (line 24) | typedef struct {

FILE: include/dgiff.h
  type DGIFFHeader (line 24) | typedef struct {
  type DGIFFFaceHeader (line 37) | typedef struct {
  type DGIFFGlyphInfo (line 56) | typedef struct {
  type DGIFFGlyphRow (line 70) | typedef struct {

FILE: include/directfb.h
  function D_DECLARE_INTERFACE (line 33) | D_DECLARE_INTERFACE( IDirectFB )
  type DFBResult (line 120) | typedef enum {
  type DFBEnumerationResult (line 185) | typedef enum {
  type DFBBox (line 376) | typedef struct {
  type DFBColor (line 386) | typedef struct {
  type DFBColorAdjustmentFlags (line 397) | typedef enum {
  type DFBColorAdjustment (line 414) | typedef struct {
  type DFBColorKey (line 426) | typedef struct {
  type DFBColorKeyPolarity (line 436) | typedef enum {
  type DFBColorKeyExtended (line 444) | typedef struct {
  type DFBColorYUV (line 453) | typedef struct {
  type DFBConvolutionFilter (line 463) | typedef struct {
  type DFBDimension (line 472) | typedef struct {
  type DFBInsets (line 482) | typedef struct {
  type DFBLocation (line 494) | typedef struct {
  type DFBPoint (line 504) | typedef struct {
  type DFBRectangle (line 512) | typedef struct {
  type DFBRegion (line 524) | typedef struct {
  type DFBSpan (line 534) | typedef struct {
  type DFBTrapezoid (line 542) | typedef struct {
  type DFBTriangle (line 554) | typedef struct {
  type DFBTriangleFormation (line 566) | typedef enum {
  type DFBVertex (line 575) | typedef struct {
  type DFBColorID (line 587) | typedef unsigned int DFBColorID;
  type DFBDisplayLayerID (line 588) | typedef unsigned int DFBDisplayLayerID;
  type DFBDisplayLayerIDs (line 589) | typedef unsigned int DFBDisplayLayerIDs;
  type DFBDisplayLayerSourceID (line 590) | typedef unsigned int DFBDisplayLayerSourceID;
  type DFBInputDeviceID (line 591) | typedef unsigned int DFBInputDeviceID;
  type DFBScreenID (line 592) | typedef unsigned int DFBScreenID;
  type DFBSurfaceID (line 593) | typedef unsigned int DFBSurfaceID;
  type DFBTextEncodingID (line 594) | typedef unsigned int DFBTextEncodingID;
  type DFBWindowID (line 595) | typedef unsigned int DFBWindowID;
  type DFBCooperativeLevel (line 631) | typedef enum {
  type DFBAccelerationMask (line 647) | typedef enum {
  type DFBSurfaceBlittingFlags (line 677) | typedef enum {
  type DFBSurfaceDrawingFlags (line 724) | typedef enum {
  type DFBGraphicsDriverInfo (line 744) | typedef struct {
  type DFBGraphicsDeviceDescription (line 758) | typedef struct {
  type DFBSurfaceDescriptionFlags (line 774) | typedef enum {
  type DFBSurfaceCapabilities (line 801) | typedef enum {
  type DFBSurfacePixelFormat (line 886) | typedef enum {
  type DFBSurfaceHintFlags (line 1111) | typedef enum {
  type DFBSurfaceColorSpace (line 1125) | typedef enum {
  type DFBSurfaceDescription (line 1147) | typedef struct {
  type DFBPaletteDescriptionFlags (line 1173) | typedef enum {
  type DFBPaletteCapabilities (line 1184) | typedef enum {
  type DFBPaletteDescription (line 1191) | typedef struct {
  type DFBScreenCapabilities (line 1203) | typedef enum {
  type DFBScreenDescription (line 1222) | typedef struct {
  type DFBDisplayLayerTypeFlags (line 1235) | typedef enum {
  type DFBDisplayLayerCapabilities (line 1249) | typedef enum {
  type DFBDisplayLayerDescription (line 1308) | typedef struct {
  type DFBInputDeviceTypeFlags (line 1328) | typedef enum {
  type DFBInputDeviceCapabilities (line 1344) | typedef enum {
  type DFBInputDeviceAxisIdentifier (line 1359) | typedef enum {
  type DFBInputDeviceButtonIdentifier (line 1371) | typedef enum {
  type DFBInputDeviceDescription (line 1386) | typedef struct {
  type DFBFontDescriptionFlags (line 1407) | typedef enum {
  type DFBFontAttributes (line 1430) | typedef enum {
  type DFBFontDescription (line 1471) | typedef struct {
  type DFBDataBufferDescriptionFlags (line 1490) | typedef enum {
  type DFBDataBufferDescription (line 1500) | typedef struct {
  type DFBEnumerationResult (line 1513) | typedef DFBEnumerationResult (*DFBVideoModeCallback) (
  type DFBEnumerationResult (line 1524) | typedef DFBEnumerationResult (*DFBScreenCallback) (
  type DFBEnumerationResult (line 1534) | typedef DFBEnumerationResult (*DFBDisplayLayerCallback) (
  type DFBEnumerationResult (line 1544) | typedef DFBEnumerationResult (*DFBInputDeviceCallback) (
  type timeval (line 1854) | struct timeval
  type timeval (line 1875) | struct timeval
  type DFBScreenPowerMode (line 1960) | typedef enum {
  type DFBScreenMixerCapabilities (line 1970) | typedef enum {
  type DFBScreenMixerDescription (line 1987) | typedef struct {
  type DFBScreenMixerConfigFlags (line 2001) | typedef enum {
  type DFBScreenMixerTree (line 2016) | typedef enum {
  type DFBScreenMixerConfig (line 2027) | typedef struct {
  type DFBScreenEncoderCapabilities (line 2039) | typedef enum {
  type DFBScreenEncoderType (line 2066) | typedef enum {
  type DFBScreenEncoderTVStandards (line 2077) | typedef enum {
  type DFBScreenOutputSignals (line 2099) | typedef enum {
  type DFBScreenOutputConnectors (line 2115) | typedef enum {
  type DFBScreenOutputResolution (line 2132) | typedef enum {
  type DFBScreenEncoderPictureFraming (line 2165) | typedef enum {
  type DFBDisplayAspectRatio (line 2198) | typedef enum {
  type DFBScreenEncoderDescription (line 2210) | typedef struct {
  type DFBScreenEncoderConfigFlags (line 2227) | typedef enum {
  type DFBScreenEncoderTestPicture (line 2250) | typedef enum {
  type DFBScreenOutputSlowBlankingSignals (line 2269) | typedef enum {
  type DFBScreenEncoderScanMode (line 2280) | typedef enum {
  type DFBScreenEncoderFrequency (line 2290) | typedef enum {
  type DFBScreenEncoderConfig (line 2307) | typedef struct {
  type DFBScreenOutputCapabilities (line 2328) | typedef enum {
  type DFBScreenOutputDescription (line 2347) | typedef struct {
  type DFBScreenOutputConfigFlags (line 2360) | typedef enum {
  type DFBScreenOutputConfig (line 2375) | typedef struct {
  type DFBDisplayLayerSourceCaps (line 2608) | typedef enum {
  type DFBDisplayLayerSourceDescription (line 2621) | typedef struct {
  type DFBDisplayLayerCooperativeLevel (line 2632) | typedef enum {
  type DFBDisplayLayerConfigFlags (line 2642) | typedef enum {
  type DFBDisplayLayerBufferMode (line 2660) | typedef enum {
  type DFBDisplayLayerOptions (line 2675) | typedef enum {
  type DFBDisplayLayerConfig (line 2714) | typedef struct {
  type DFBDisplayLayerBackgroundMode (line 2735) | typedef enum {
  type DFBWindowDescriptionFlags (line 2747) | typedef enum {
  type DFBWindowCapabilities (line 2769) | typedef enum {
  type DFBWindowOptions (line 2817) | typedef enum {
  type DFBWindowStackingClass (line 2854) | typedef enum {
  type DFBWindowDescription (line 2867) | typedef struct {
  type DFBSurfaceStereoEye (line 3410) | typedef enum {
  type DFBSurfaceLockFlags (line 3423) | typedef enum {
  type DFBSurfaceFlipFlags (line 3433) | typedef enum {
  type DFBSurfaceBlendFunction (line 3480) | typedef enum {
  type DFBSurfacePorterDuffRule (line 3503) | typedef enum {
  type DFBSurfaceTextFlags (line 3524) | typedef enum {
  type DFBSurfaceRenderOptions (line 3552) | typedef enum {
  type DFBSurfaceMaskFlags (line 3568) | typedef enum {
  type DFBMonoGlyphAttributes (line 3580) | typedef struct {
  type DFBFrameTimeConfigFlags (line 3594) | typedef enum {
  type DFBFrameTimeConfig (line 3608) | typedef struct {
  type DFBSurfaceBufferRole (line 3618) | typedef enum {
  type DFBInputDeviceKeyState (line 4922) | typedef enum {
  type DFBInputDeviceModifierMask (line 4930) | typedef enum {
  type DFBInputDeviceButtonMask (line 4943) | typedef enum {
  type DFBInputDeviceButtonState (line 4952) | typedef enum {
  type DFBInputDeviceConfigFlags (line 4960) | typedef enum {
  type DFBInputDeviceConfig (line 4972) | typedef struct {
  type DFBEventClass (line 5155) | typedef enum {
  type DFBInputEventType (line 5170) | typedef enum {
  type DFBInputEventFlags (line 5184) | typedef enum {
  type DFBInputEvent (line 5218) | typedef struct {
  type DFBWindowEventType (line 5246) | typedef enum {
  type DFBWindowEventFlags (line 5281) | typedef enum {
  type DFBWindowEvent (line 5295) | typedef struct {
  type DFBUserEvent (line 5342) | typedef struct {
  type DFBUniversalEvent (line 5351) | typedef struct {
  type DFBVideoProviderEventType (line 5365) | typedef enum {
  type DFBVideoProviderEventDataSubType (line 5394) | typedef enum {
  type DFBVideoProviderEvent (line 5408) | typedef struct {
  type DFBSurfaceEventType (line 5420) | typedef enum {
  type DFBSurfaceEvent (line 5433) | typedef struct {
  type DFBEvent (line 5451) | typedef union {
  type DFBEventBufferStats (line 5466) | typedef struct {
  type DFBWindowKeySelection (line 5645) | typedef enum {
  type DFBWindowGeometryMode (line 5654) | typedef enum {
  type DFBWindowGeometry (line 5665) | typedef struct {
  type DFBWindowCursorFlags (line 5674) | typedef enum {
  type DFBWindowTypeHint (line 5694) | typedef enum {
  type DFBWindowHintFlags (line 5718) | typedef enum {
  type DFBWindowSurfacePolicy (line 5732) | typedef enum {
  type DFBEnumerationResult (line 6420) | typedef DFBEnumerationResult (*DFBTextEncodingCallback) (
  type DFBImageCapabilities (line 6688) | typedef enum {
  type DFBImageDescription (line 6698) | typedef struct {
  type DIRenderFlags (line 6708) | typedef enum {
  type DIRenderCallbackResult (line 6719) | typedef enum {
  type DIRenderCallbackResult (line 6727) | typedef DIRenderCallbackResult (*DIRenderCallback) (
  type DFBVideoProviderCapabilities (line 6812) | typedef enum {
  type DFBStreamCapabilities (line 6829) | typedef enum {
  type DFBStreamDescription (line 6846) | typedef struct {
  type DFBVideoProviderStatus (line 6881) | typedef enum {
  type DFBVideoProviderPlaybackFlags (line 6893) | typedef enum {
  type DFBBufferOccupancy (line 6903) | typedef struct {
  type DFBBufferThresholds (line 6929) | typedef struct {

FILE: include/directfb_keyboard.h
  type DFBInputDeviceKeyType (line 25) | typedef enum {
  type DFBInputDeviceModifierKeyIdentifier (line 52) | typedef enum {
  type DFBInputDeviceKeyIdentifier (line 68) | typedef enum {
  type DFBInputDeviceKeySymbol (line 208) | typedef enum {
  type DFBInputDeviceLockState (line 765) | typedef enum {
  type DFBInputDeviceKeymapSymbolIndex (line 774) | typedef enum {
  type DFBInputDeviceKeymapEntry (line 786) | typedef struct {

FILE: include/directfb_util.h
  function dfb_rectangle_from_region (line 512) | static __inline__ void
  function dfb_rectangle_from_box (line 525) | static __inline__ void
  function dfb_rectangle_from_rectangle_plus_insets (line 538) | static __inline__ void
  function dfb_rectangle_from_rotated (line 553) | static __inline__ void
  function dfb_rectangle_translate (line 597) | static __inline__ void
  function dfb_rectangle_resize (line 608) | static __inline__ void
  function dfb_rectangle_region_intersects (line 621) | static __inline__ bool
  function dfb_rectangle_box_intersect (line 634) | static __inline__ bool
  function dfb_rectangle_subtract (line 671) | static __inline__ void
  function dfb_region_from_rectangle (line 689) | static __inline__ void
  function dfb_region_from_rectangle_translated (line 704) | static __inline__ void
  function dfb_region_from_rotated (line 721) | static __inline__ void
  function dfb_region_translate (line 765) | static __inline__ void
  function dfb_region_resize (line 778) | static __inline__ void
  function dfb_region_intersects (line 791) | static __inline__ bool
  function dfb_region_region_intersects (line 808) | static __inline__ bool
  function dfb_region_intersect (line 821) | static __inline__ bool
  function dfb_region_region_intersect (line 851) | static __inline__ bool
  function dfb_region_region_contains (line 878) | static __inline__ bool
  function dfb_region_region_extends (line 900) | static __inline__ bool
  function dfb_region_region_union (line 913) | static __inline__ void
  function dfb_region_clip (line 933) | static __inline__ void
  function dfb_regions_unite (line 956) | static __inline__ void
  function dfb_box_from_rectangle (line 978) | static __inline__ void
  function dfb_box_from_rectangle_translated (line 991) | static __inline__ void
  function dfb_box_from_rotated (line 1006) | static __inline__ void
  function dfb_box_translate (line 1050) | static __inline__ void
  function dfb_box_resize (line 1063) | static __inline__ void
  function dfb_box_box_contains (line 1076) | static __inline__ bool
  function dfb_box_intersects (line 1098) | static __inline__ bool
  function dfb_box_box_intersects (line 1115) | static __inline__ bool
  function dfb_box_intersect (line 1128) | static __inline__ bool
  function dfb_box_box_intersect (line 1163) | static __inline__ bool
  function dfb_box_region_intersects (line 1197) | static __inline__ bool
  function dfb_box_region_intersect (line 1220) | static __inline__ bool
  function dfb_box_box_extends (line 1258) | static __inline__ bool
  function dfb_box_box_union (line 1274) | static __inline__ void
  function dfb_box_region_union (line 1302) | static __inline__ void
  function dfb_box_clip (line 1330) | static __inline__ void
  function dfb_line_segment_intersect (line 1358) | static __inline__ bool
  function dfb_point_from_rotated_region (line 1393) | static __inline__ void
  function dfb_point_translate (line 1437) | static __inline__ void
  type DFBUpdates (line 1450) | typedef struct {

FILE: include/directfb_windows.h
  type DFBWindowConfig (line 72) | typedef struct {
  type DFBWindowStateFlags (line 97) | typedef enum {
  type DFBWindowState (line 110) | typedef struct {
  type DFBWindowInfo (line 117) | typedef struct {
  type DFBWindowsWatcher (line 130) | typedef struct {

FILE: include/directfbgl.h
  type DFBGLAttributes (line 42) | typedef struct {

FILE: inputdrivers/linux_input/linux_input.c
  type LinuxInputData (line 41) | typedef struct {
  type input_event (line 82) | struct input_event
  function config_values_parse (line 151) | static void
  function config_values_free (line 179) | static void
  type touchpad_axis (line 200) | struct touchpad_axis {
  type touchpad_fsm_state (line 204) | struct touchpad_fsm_state {
  function timeout_is_set (line 215) | static bool
  function timeout_passed (line 221) | static bool
  function timeout_clear (line 230) | static void
  function timeout_add (line 237) | static void
  function timeout_sub (line 250) | static void
  function touchpad_fsm_init (line 263) | static void
  function touchpad_normalize (line 273) | static int
  function touchpad_translate (line 280) | static int
  function touchpad_finger_landing (line 326) | static bool
  function touchpad_finger_leaving (line 332) | static bool
  function touchpad_finger_moving (line 338) | static bool
  function touchpad_fsm (line 344) | static int
  function DFBInputDeviceKeySymbol (line 480) | static DFBInputDeviceKeySymbol
  function DFBInputDeviceKeyIdentifier (line 593) | static DFBInputDeviceKeyIdentifier
  function keyboard_read_value (line 639) | static unsigned short
  function key_translate (line 663) | static int
  function key_event (line 679) | static bool
  function rel_event (line 727) | static bool
  function abs_event (line 765) | static bool
  function translate_event (line 799) | static bool
  function set_led (line 827) | static void
  function flush_xy (line 845) | static void
  type touchpad_fsm_state (line 893) | struct touchpad_fsm_state
  type input_absinfo (line 907) | struct input_absinfo
  type timeval (line 961) | struct timeval
  type timeval (line 965) | struct timeval
  function get_device_info (line 1084) | static void
  function check_device (line 1224) | static bool
  function driver_get_available (line 1290) | static int
  function driver_get_info (line 1361) | static void
  function DFBResult (line 1371) | static DFBResult
  function DFBResult (line 1490) | static DFBResult
  function driver_close_device (line 1563) | static void
  type HotplugThreadData (line 1608) | typedef struct {
  function DFBResult (line 1631) | static DFBResult
  function DFBResult (line 1666) | static DFBResult
  type sockaddr_un (line 1699) | struct sockaddr_un
  type sockaddr (line 1716) | struct sockaddr
  function DFBResult (line 1825) | static DFBResult
  function DFBResult (line 1841) | static DFBResult
  function DFBResult (line 1858) | static DFBResult
  function InputDriverCapability (line 1880) | static InputDriverCapability
  function DFBResult (line 1893) | static DFBResult
  function DFBResult (line 1947) | static DFBResult
  function DFBResult (line 1998) | static DFBResult
  function DFBResult (line 2035) | static DFBResult

FILE: inputdrivers/nuttx_input/nuttx_input.c
  function typedef (line 27) | DFB_INPUT_DRIVER( nuttx_input )
  type keyboard_event_s (line 109) | struct keyboard_event_s
  type touch_sample_s (line 122) | struct touch_sample_s
  function check_device (line 177) | static bool
  function driver_get_available (line 198) | static int
  function driver_get_info (line 242) | static void
  function DFBResult (line 252) | static DFBResult
  function DFBResult (line 314) | static DFBResult
  function driver_close_device (line 322) | static void

FILE: interfaces/ICoreResourceManager/icoreresourcemanager_default.c
  type ICoreResourceClient_data (line 37) | typedef struct {
  function ICoreResourceClient_Destruct (line 47) | static void
  function DirectResult (line 55) | static DirectResult
  function DirectResult (line 67) | static DirectResult
  function surface_mem (line 83) | static __inline__ unsigned int
  function DFBResult (line 98) | static DFBResult
  function DFBResult (line 114) | static DFBResult
  function DFBResult (line 128) | static DFBResult
  function DFBResult (line 147) | static DFBResult
  function DFBResult (line 166) | static DFBResult
  function DirectResult (line 181) | DirectResult
  type ICoreResourceManager_data (line 213) | typedef struct {
  function ICoreResourceManager_Destruct (line 221) | static void
  function DirectResult (line 229) | static DirectResult
  function DirectResult (line 241) | static DirectResult
  function DFBResult (line 254) | static DFBResult
  function DirectResult (line 270) | static DirectResult
  function DirectResult (line 276) | static DirectResult

FILE: interfaces/IDirectFBFont/idirectfbfont_dgiff.c
  type DGIFFImplData (line 41) | typedef struct {
  function IDirectFBFont_DGIFF_Destruct (line 48) | static void
  function DirectResult (line 71) | static DirectResult
  function DFBResult (line 86) | static DFBResult
  function DFBResult (line 96) | static DFBResult

FILE: interfaces/IDirectFBImageProvider/idirectfbimageprovider_dfiff.c
  type IDirectFBImageProvider_DFIFF_data (line 40) | typedef struct {
  function IDirectFBImageProvider_DFIFF_Destruct (line 60) | static void
  function DirectResult (line 75) | static DirectResult
  function DirectResult (line 87) | static DirectResult
  function DFBResult (line 100) | static DFBResult
  function DFBResult (line 116) | static DFBResult
  function DFBResult (line 132) | static DFBResult
  function DFBResult (line 241) | static DFBResult
  function DFBResult (line 258) | static DFBResult
  function DFBResult (line 268) | static DFBResult

FILE: interfaces/IDirectFBVideoProvider/idirectfbvideoprovider_dfvff.c
  type EventLink (line 44) | typedef struct {
  type IDirectFBVideoProvider_DFVFF_data (line 49) | typedef struct {
  function dispatch_event (line 86) | static void
  function IDirectFBVideoProvider_DFVFF_Destruct (line 222) | static void
  function DirectResult (line 251) | static DirectResult
  function DirectResult (line 263) | static DirectResult
  function DFBResult (line 276) | static DFBResult
  function DFBResult (line 292) | static DFBResult
  function DFBResult (line 308) | static DFBResult
  function DFBResult (line 332) | static DFBResult
  function DFBResult (line 381) | static DFBResult
  function DFBResult (line 407) | static DFBResult
  function DFBResult (line 423) | static DFBResult
  function DFBResult (line 448) | static DFBResult
  function DFBResult (line 468) | static DFBResult
  function DFBResult (line 484) | static DFBResult
  function DFBResult (line 500) | static DFBResult
  function DFBResult (line 528) | static DFBResult
  function DFBResult (line 544) | static DFBResult
  function DFBResult (line 571) | static DFBResult
  function DFBResult (line 606) | static DFBResult
  function DFBResult (line 622) | static DFBResult
  function DFBResult (line 639) | static DFBResult
  function DFBResult (line 670) | static DFBResult
  function DFBResult (line 693) | static DFBResult
  function DFBResult (line 703) | static DFBResult

FILE: interfaces/IDirectFBWindows/idirectfbwindows_default.c
  type RegisteredWatcher (line 34) | typedef struct {
  type IDirectFBWindows_data (line 43) | typedef struct {
  function ReactionResult (line 74) | static ReactionResult
  function ReactionResult (line 90) | static ReactionResult
  function ReactionResult (line 106) | static ReactionResult
  function ReactionResult (line 122) | static ReactionResult
  function ReactionResult (line 138) | static ReactionResult
  function ReactionResult (line 154) | static ReactionResult
  function IDirectFBWindows_Destruct (line 170) | static void
  function DirectResult (line 187) | static DirectResult
  function DirectResult (line 199) | static DirectResult
  function DFBResult (line 212) | static DFBResult
  function DFBResult (line 262) | static DFBResult
  function DirectResult (line 289) | static DirectResult
  function DirectResult (line 295) | static DirectResult

FILE: lib/direct/clock.c
  function direct_clock_get_micros (line 26) | __dfb_no_instrument_function__
  function direct_clock_get_millis (line 33) | __dfb_no_instrument_function__
  function direct_clock_get_abs_micros (line 40) | __dfb_no_instrument_function__
  function direct_clock_get_abs_millis (line 47) | __dfb_no_instrument_function__

FILE: lib/direct/conf.c
  function __D_conf_init (line 85) | void
  function __D_conf_deinit (line 123) | void
  type ConfigOption (line 137) | typedef struct {
  type ConfigOptionValue (line 142) | typedef struct {
  function config_option_value_add (line 147) | static void
  function ConfigOption (line 167) | static ConfigOption*
  function config_option_compare (line 188) | static bool
  function config_option_hash (line 200) | static unsigned int
  function DirectEnumerationResult (line 218) | static DirectEnumerationResult
  function DirectResult (line 237) | DirectResult
  function DirectResult (line 731) | DirectResult
  function direct_config_has_name (line 762) | bool
  function direct_config_get_int_value (line 791) | long long
  function direct_config_get_int_value_with_default (line 797) | long long

FILE: lib/direct/conf.h
  type DirectConfigFatalLevel (line 26) | typedef enum {
  type DirectConfigThreadScheduler (line 32) | typedef enum {
  type DirectMessageType (line 39) | typedef enum {
  type DirectConfig (line 56) | typedef struct {

FILE: lib/direct/debug.c
  function __dfb_no_instrument_function__ (line 38) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 54) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 70) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 82) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 102) | __dfb_no_instrument_function__
  function direct_debug_log (line 124) | void
  function direct_debug_at (line 131) | void
  function direct_assertion (line 137) | void
  function direct_assumption (line 145) | void

FILE: lib/direct/debug.h
  function direct_debug_config_domain (line 50) | static __inline__ void

FILE: lib/direct/direct.c
  type __D_DirectCleanupHandler (line 30) | struct __D_DirectCleanupHandler {
  function __D_direct_init (line 47) | void
  function __D_direct_deinit (line 53) | void
  function DirectResult (line 65) | DirectResult
  function DirectResult (line 92) | DirectResult
  function direct_atexit_handler (line 117) | static void
  function DirectResult (line 135) | DirectResult
  function DirectResult (line 171) | DirectResult

FILE: lib/direct/direct_result.c
  function __D_direct_result_init (line 33) | void
  function __D_direct_result_deinit (line 79) | void

FILE: lib/direct/hash.c
  function spaced_primes_closest (line 69) | static unsigned int
  function locate_key (line 84) | static __inline__ int
  function DirectResult (line 114) | DirectResult
  function direct_hash_destroy (line 131) | void
  function direct_hash_init (line 141) | void
  function direct_hash_deinit (line 156) | void
  function direct_hash_count (line 173) | int
  function DirectResult (line 181) | DirectResult
  function DirectResult (line 287) | DirectResult
  function direct_hash_iterate (line 331) | void

FILE: lib/direct/hash.h
  type DirectHashElement (line 26) | typedef struct {
  type __D_DirectHash (line 31) | struct __D_DirectHash {

FILE: lib/direct/init.c
  function __dfb_constructor__ (line 61) | __dfb_constructor__
  function __dfb_destructor__ (line 71) | __dfb_destructor__

FILE: lib/direct/interface.c
  type DirectInterfaceImplementation (line 37) | typedef struct {
  type InterfaceDesc (line 57) | typedef struct {
  function __D_interface_init (line 77) | void
  function __D_interface_deinit (line 83) | void
  function __D_interface_dbg_init (line 91) | void
  function __D_interface_dbg_deinit (line 97) | void
  function __D_interface_dbg_init (line 105) | void
  function __D_interface_dbg_deinit (line 110) | void
  function workaround_func (line 119) | __attribute__((noinline))
  function probe_interface (line 125) | static __inline__ int
  function DirectRegisterInterface (line 152) | void
  function DirectUnregisterInterface (line 176) | void
  function DirectResult (line 211) | DirectResult
  function DirectResult (line 218) | DirectResult
  function direct_print_interface_leaks (line 498) | void
  function __dfb_no_instrument_function__ (line 522) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 543) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 563) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 583) | __dfb_no_instrument_function__
  function direct_print_interface_leaks (line 622) | void
  function __dfb_no_instrument_function__ (line 627) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 638) | __dfb_no_instrument_function__

FILE: lib/direct/interface.h
  function D_DEFINE_INTERFACE (line 52) | D_DECLARE_INTERFACE( IAny )
  type DirectResult (line 85) | typedef DirectResult (*DirectInterfaceProbeFunc)( DirectInterfaceFuncs *...

FILE: lib/direct/list.h
  type __D_DirectLink (line 26) | struct __D_DirectLink {
  function direct_list_prepend (line 36) | static __inline__ void
  function direct_list_append (line 64) | static __inline__ void
  function direct_list_insert (line 93) | static __inline__ void
  function direct_list_contains_element_EXPENSIVE (line 130) | static __inline__ bool
  function direct_list_count_elements_EXPENSIVE (line 146) | static __inline__ int
  function direct_list_remove (line 166) | static __inline__ bool
  function direct_list_move_to_front (line 206) | static __inline__ void

FILE: lib/direct/log.c
  function __D_log_init (line 32) | void
  function __D_log_deinit (line 46) | void
  function DirectResult (line 62) | DirectResult
  function DirectResult (line 94) | DirectResult
  function __dfb_no_instrument_function__ (line 115) | __dfb_no_instrument_function__
  function DirectResult (line 167) | DirectResult
  function __dfb_no_instrument_function__ (line 177) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 186) | __dfb_no_instrument_function__
  function DirectResult (line 195) | DirectResult
  function __dfb_no_instrument_function__ (line 213) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 220) | __dfb_no_instrument_function__

FILE: lib/direct/log_domain.c
  type LogDomainEntry (line 35) | typedef struct {
  function __D_log_domain_init (line 52) | void
  function __D_log_domain_deinit (line 60) | void
  function __D_log_domain_init (line 68) | void
  function __D_log_domain_deinit (line 73) | void
  function __dfb_no_instrument_function__ (line 84) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 112) | __dfb_no_instrument_function__
  function direct_log_domain_configure (line 146) | void
  function direct_log_domain_check (line 186) | bool
  function direct_log_domain_check_level (line 192) | bool
  function __dfb_no_instrument_function__ (line 199) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 258) | __dfb_no_instrument_function__
  function direct_log_domain_configure (line 331) | void
  function direct_log_domain_check (line 337) | bool
  function direct_log_domain_check_level (line 343) | bool
  function DirectResult (line 350) | DirectResult
  function DirectResult (line 359) | DirectResult

FILE: lib/direct/log_domain.h
  type DirectLogLevel (line 27) | typedef enum {
  type DirectLogDomainConfig (line 53) | typedef struct {
  type DirectLogDomain (line 58) | typedef struct {
  function direct_log_domain_config_level (line 93) | static __inline__ void

FILE: lib/direct/map.c
  type MapEntry (line 30) | typedef struct {
  type __D_DirectMap (line 35) | struct __D_DirectMap {
  function locate_entry (line 57) | static int
  function DirectResult (line 87) | static DirectResult
  function DirectResult (line 132) | DirectResult
  function direct_map_destroy (line 173) | void
  function DirectResult (line 186) | DirectResult
  function DirectResult (line 243) | DirectResult
  function direct_map_iterate (line 292) | void

FILE: lib/direct/map.h
  type DirectEnumerationResult (line 30) | typedef DirectEnumerationResult (*DirectMapIteratorFunc)( DirectMap *map...

FILE: lib/direct/mem.c
  type MemDesc (line 41) | typedef struct {
  function __D_mem_init (line 59) | void
  function __D_mem_deinit (line 65) | void
  function __D_mem_init (line 73) | void
  function __D_mem_deinit (line 78) | void
  function local_alloc_hash_iterator (line 89) | static bool
  function direct_print_memleaks (line 109) | void
  function __dfb_no_instrument_function__ (line 129) | __dfb_no_instrument_function__
  function direct_dbg_free (line 373) | void
  function direct_print_memleaks (line 423) | void
  function direct_dbg_free (line 467) | void

FILE: lib/direct/memcpy.c
  function direct_find_best_memcpy (line 136) | void
  function direct_print_memcpy_routines (line 200) | void

FILE: lib/direct/messages.c
  function __dfb_no_instrument_function__ (line 32) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 69) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 111) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 134) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 157) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 180) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 205) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 219) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 244) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 269) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 285) | __dfb_no_instrument_function__
  function direct_messages_info (line 303) | void
  function direct_messages_error (line 308) | void
  function direct_messages_derror (line 313) | void
  function direct_messages_perror (line 319) | void
  function direct_messages_dlerror (line 325) | void
  function direct_messages_once (line 331) | void
  function direct_messages_unimplemented (line 339) | void
  function direct_messages_bug (line 346) | void
  function direct_messages_warn (line 354) | void
  function direct_messages_oom (line 362) | int
  function direct_messages_ooshm (line 370) | int

FILE: lib/direct/modules.c
  function suppress_module (line 41) | static int
  function direct_modules_register (line 61) | void
  function direct_modules_unregister (line 125) | void
  function direct_modules_explore_directory (line 157) | int
  function direct_module_unref (line 287) | void
  function DirectModuleEntry (line 310) | static DirectModuleEntry *
  function DirectModuleEntry (line 332) | static DirectModuleEntry *
  function load_module (line 356) | static bool
  function unload_module (line 375) | static void

FILE: lib/direct/modules.h
  type __D_DirectModuleEntry (line 27) | struct __D_DirectModuleEntry {
  type __D_DirectModuleDir (line 46) | struct __D_DirectModuleDir {

FILE: lib/direct/os/clock.h
  type DirectClockType (line 26) | typedef enum {

FILE: lib/direct/os/filesystem.h
  type DirectEntry (line 26) | typedef struct {
  type DirectFilePermission (line 30) | typedef enum {
  type DirectFileInfoFlags (line 39) | typedef enum {
  type DirectFileInfo (line 47) | typedef struct {

FILE: lib/direct/os/linux/clock.c
  function direct_clock_get_time (line 29) | __attribute__((no_instrument_function))
  function DirectResult (line 78) | __attribute__((no_instrument_function))
  function direct_clock_resolution (line 125) | __attribute__((no_instrument_function))

FILE: lib/direct/os/linux/filesystem.c
  function DirectResult (line 26) | DirectResult
  function DirectResult (line 38) | DirectResult
  function DirectResult (line 49) | DirectResult
  function DirectResult (line 65) | DirectResult
  function DirectResult (line 79) | DirectResult
  function DirectResult (line 97) | DirectResult
  function DirectResult (line 107) | DirectResult
  function DirectResult (line 124) | DirectResult
  function DirectResult (line 135) | DirectResult
  function DirectResult (line 153) | DirectResult
  function DirectResult (line 174) | DirectResult
  function DirectResult (line 195) | DirectResult
  function DirectResult (line 207) | DirectResult
  function DirectResult (line 219) | DirectResult
  function DirectResult (line 242) | DirectResult
  function DirectResult (line 275) | DirectResult
  function DirectResult (line 285) | DirectResult
  function DirectResult (line 303) | DirectResult
  function DirectResult (line 315) | DirectResult
  function DirectResult (line 328) | DirectResult
  function DirectResult (line 340) | DirectResult
  function DirectResult (line 364) | DirectResult
  function DirectResult (line 381) | DirectResult
  function DirectResult (line 393) | DirectResult
  function DirectResult (line 405) | DirectResult
  function DirectResult (line 417) | DirectResult
  function DirectResult (line 430) | DirectResult
  function DirectResult (line 450) | DirectResult
  function DirectResult (line 461) | DirectResult

FILE: lib/direct/os/linux/filesystem.h
  type DirectDir (line 26) | typedef struct {
  type DirectFile (line 30) | typedef struct {

FILE: lib/direct/os/linux/log.c
  function DirectResult (line 38) | DirectResult
  function DirectResult (line 59) | DirectResult
  function DirectResult (line 69) | __attribute__((no_instrument_function))
  function DirectResult (line 84) | __attribute__((no_instrument_function))
  function DirectResult (line 94) | __attribute__((no_instrument_function))
  function DirectResult (line 105) | static DirectResult
  function DirectResult (line 116) | static DirectResult
  function DirectResult (line 140) | static DirectResult
  function DirectResult (line 222) | static DirectResult
  function DirectResult (line 263) | static DirectResult

FILE: lib/direct/os/linux/mem.c
  function install_sentinels (line 38) | __attribute__((no_instrument_function))
  function remove_sentinels (line 58) | __attribute__((no_instrument_function))
  function check_sentinels (line 76) | __attribute__((no_instrument_function))
  function direct_free (line 169) | __attribute__((no_instrument_function))
  function direct_free (line 214) | __attribute__((no_instrument_function))

FILE: lib/direct/os/linux/mutex.c
  function DirectResult (line 25) | DirectResult
  function DirectResult (line 33) | DirectResult
  function DirectResult (line 53) | __attribute__((no_instrument_function))
  function DirectResult (line 62) | __attribute__((no_instrument_function))
  function DirectResult (line 71) | __attribute__((no_instrument_function))
  function DirectResult (line 80) | DirectResult
  function DirectResult (line 88) | DirectResult
  function DirectResult (line 96) | __attribute__((no_instrument_function))
  function DirectResult (line 105) | __attribute__((no_instrument_function))
  function DirectResult (line 114) | __attribute__((no_instrument_function))
  function DirectResult (line 123) | __attribute__((no_instrument_function))
  function DirectResult (line 132) | DirectResult

FILE: lib/direct/os/linux/mutex.h
  type DirectMutex (line 26) | typedef struct {
  type DirectRWLock (line 32) | typedef struct {

FILE: lib/direct/os/linux/signals.c
  type __D_DirectSignalHandler (line 30) | struct __D_DirectSignalHandler {
  type SigHandled (line 44) | typedef struct {
  function DirectResult (line 71) | DirectResult
  function DirectResult (line 99) | DirectResult
  function direct_signals_block_all (line 120) | void
  function DirectResult (line 132) | DirectResult
  function DirectResult (line 165) | DirectResult
  function show_segv (line 181) | static bool
  function show_bus (line 197) | static bool
  function show_ill (line 218) | static bool
  function show_fpe (line 259) | static bool
  function show_any (line 278) | static bool
  function call_handlers (line 299) | static void
  function signal_handler (line 355) | static void
  function install_handlers (line 482) | static void
  function remove_handlers (line 514) | static void

FILE: lib/direct/os/linux/system.c
  function direct_sched_yield (line 37) | __attribute__((no_instrument_function))
  function direct_pagesize (line 44) | long
  function direct_page_align (line 50) | unsigned long
  function pid_t (line 58) | __attribute__((no_instrument_function))
  function pid_t (line 65) | __attribute__((no_instrument_function))
  function direct_trap (line 72) | void
  function DirectResult (line 98) | DirectResult
  function direct_sync (line 112) | void
  function uid_t (line 118) | uid_t
  function DirectResult (line 130) | DirectResult
  function direct_madvise (line 163) | bool

FILE: lib/direct/os/linux/thread.c
  function DirectResult (line 46) | __attribute__((no_instrument_function))
  function init_once (line 56) | __attribute__((no_instrument_function))
  function DirectResult (line 64) | DirectResult
  function direct_thread_deinit (line 158) | void
  function direct_thread_setcancelstate (line 186) | __attribute__((no_instrument_function))
  function DirectThread (line 199) | __attribute__((no_instrument_function))
  function direct_thread_set_name (line 253) | void
  function direct_thread_cancel (line 283) | void
  function direct_thread_detach (line 299) | void
  function direct_thread_testcancel (line 315) | void
  function direct_thread_join (line 327) | void
  function direct_thread_kill (line 358) | void
  function direct_thread_sleep (line 371) | void
  function direct_thread_atfork (line 377) | void
  function DirectResult (line 432) | __attribute__((no_instrument_function))
  function DirectResult (line 442) | __attribute__((no_instrument_function))
  function DirectResult (line 468) | __attribute__((no_instrument_function))
  function direct_thread_cleanup (line 480) | static void

FILE: lib/direct/os/linux/thread.h
  type pthread_t (line 26) | typedef pthread_t DirectThreadHandle;
  type DirectOnce (line 28) | typedef struct {
  type DirectTLS (line 34) | typedef struct {

FILE: lib/direct/os/linux/types.h
  type unichar (line 55) | typedef unsigned int unichar;
  type u8 (line 57) | typedef uint8_t  u8;
  type u16 (line 58) | typedef uint16_t u16;
  type u32 (line 59) | typedef uint32_t u32;
  type u64 (line 60) | typedef uint64_t u64;
  type s8 (line 62) | typedef int8_t   s8;
  type s16 (line 63) | typedef int16_t  s16;
  type s32 (line 64) | typedef int32_t  s32;
  type s64 (line 65) | typedef int64_t  s64;

FILE: lib/direct/os/linux/waitqueue.h
  type DirectWaitQueue (line 27) | typedef struct {
  function DirectResult (line 31) | static inline DirectResult
  function DirectResult (line 39) | static inline DirectResult
  function DirectResult (line 48) | static inline DirectResult
  function DirectResult (line 72) | static inline DirectResult
  function DirectResult (line 80) | static inline DirectResult
  function DirectResult (line 88) | static inline DirectResult

FILE: lib/direct/os/log.h
  type DirectLogType (line 26) | typedef enum {
  type DirectResult (line 32) | typedef DirectResult (*DirectLogWriteFunc)( DirectLog *log, const char *...
  type DirectResult (line 33) | typedef DirectResult (*DirectLogFlushFunc)( DirectLog *log );
  type __D_DirectLog (line 35) | struct __D_DirectLog {

FILE: lib/direct/os/nuttx/clock.c
  function direct_clock_get_time (line 29) | __attribute__((no_instrument_function))
  function DirectResult (line 80) | __attribute__((no_instrument_function))
  function direct_clock_resolution (line 127) | __attribute__((no_instrument_function))

FILE: lib/direct/os/nuttx/filesystem.c
  function DirectResult (line 26) | DirectResult
  function DirectResult (line 38) | DirectResult
  function DirectResult (line 49) | DirectResult
  function DirectResult (line 65) | DirectResult
  function DirectResult (line 79) | DirectResult
  function DirectResult (line 97) | DirectResult
  function DirectResult (line 107) | DirectResult
  function DirectResult (line 124) | DirectResult
  function DirectResult (line 135) | DirectResult
  function DirectResult (line 153) | DirectResult
  function DirectResult (line 174) | DirectResult
  function DirectResult (line 195) | DirectResult
  function DirectResult (line 207) | DirectResult
  function DirectResult (line 219) | DirectResult
  function DirectResult (line 242) | DirectResult
  function DirectResult (line 275) | DirectResult
  function DirectResult (line 285) | DirectResult
  function DirectResult (line 303) | DirectResult
  function DirectResult (line 315) | DirectResult
  function DirectResult (line 328) | DirectResult
  function DirectResult (line 340) | DirectResult
  function DirectResult (line 364) | DirectResult
  function DirectResult (line 381) | DirectResult
  function DirectResult (line 393) | DirectResult
  function DirectResult (line 405) | DirectResult
  function DirectResult (line 417) | DirectResult
  function DirectResult (line 430) | DirectResult
  function DirectResult (line 450) | DirectResult
  function DirectResult (line 461) | DirectResult

FILE: lib/direct/os/nuttx/filesystem.h
  type DirectDir (line 26) | typedef struct {
  type DirectFile (line 30) | typedef struct {

FILE: lib/direct/os/nuttx/log.c
  function DirectResult (line 31) | DirectResult
  function DirectResult (line 50) | DirectResult
  function DirectResult (line 60) | __attribute__((no_instrument_function))
  function DirectResult (line 75) | __attribute__((no_instrument_function))
  function DirectResult (line 85) | __attribute__((no_instrument_function))
  function DirectResult (line 96) | static DirectResult
  function DirectResult (line 107) | static DirectResult

FILE: lib/direct/os/nuttx/mem.c
  function install_sentinels (line 38) | __attribute__((no_instrument_function))
  function remove_sentinels (line 58) | __attribute__((no_instrument_function))
  function check_sentinels (line 76) | __attribute__((no_instrument_function))
  function direct_free (line 169) | __attribute__((no_instrument_function))
  function direct_free (line 214) | __attribute__((no_instrument_function))

FILE: lib/direct/os/nuttx/mutex.c
  function DirectResult (line 25) | DirectResult
  function DirectResult (line 33) | DirectResult
  function DirectResult (line 53) | __attribute__((no_instrument_function))
  function DirectResult (line 62) | __attribute__((no_instrument_function))
  function DirectResult (line 71) | __attribute__((no_instrument_function))
  function DirectResult (line 80) | DirectResult
  function DirectResult (line 88) | DirectResult
  function DirectResult (line 96) | __attribute__((no_instrument_function))
  function DirectResult (line 105) | __attribute__((no_instrument_function))
  function DirectResult (line 114) | __attribute__((no_instrument_function))
  function DirectResult (line 123) | __attribute__((no_instrument_function))
  function DirectResult (line 132) | DirectResult

FILE: lib/direct/os/nuttx/mutex.h
  type DirectMutex (line 26) | typedef struct {
  type DirectRWLock (line 32) | typedef struct {

FILE: lib/direct/os/nuttx/signals.c
  type __D_DirectSignalHandler (line 32) | struct __D_DirectSignalHandler {
  type SigHandled (line 46) | typedef struct {
  function DirectResult (line 69) | DirectResult
  function DirectResult (line 81) | DirectResult
  function direct_signals_block_all (line 93) | void
  function DirectResult (line 105) | DirectResult
  function DirectResult (line 138) | DirectResult
  function call_handlers (line 154) | static void
  function signal_handler (line 210) | static void
  function install_handlers (line 231) | static void
  function remove_handlers (line 263) | static void

FILE: lib/direct/os/nuttx/system.c
  function direct_sched_yield (line 24) | __attribute__((no_instrument_function))
  function direct_pagesize (line 31) | long
  function direct_page_align (line 37) | unsigned long
  function pid_t (line 45) | __attribute__((no_instrument_function))
  function pid_t (line 52) | __attribute__((no_instrument_function))
  function direct_trap (line 59) | void
  function DirectResult (line 66) | DirectResult
  function direct_sync (line 80) | void
  function uid_t (line 85) | uid_t
  function DirectResult (line 97) | DirectResult
  function direct_madvise (line 108) | bool

FILE: lib/direct/os/nuttx/thread.c
  function DirectResult (line 44) | __attribute__((no_instrument_function))
  function init_once (line 54) | __attribute__((no_instrument_function))
  function DirectResult (line 62) | DirectResult
  function direct_thread_deinit (line 158) | void
  function direct_thread_setcancelstate (line 186) | __attribute__((no_instrument_function))
  function DirectThread (line 199) | __attribute__((no_instrument_function))
  function direct_thread_set_name (line 253) | void
  function direct_thread_cancel (line 283) | void
  function direct_thread_detach (line 299) | void
  function direct_thread_testcancel (line 315) | void
  function direct_thread_join (line 327) | void
  function direct_thread_kill (line 358) | void
  function direct_thread_sleep (line 371) | void
  function direct_thread_atfork (line 377) | void
  function DirectResult (line 435) | __attribute__((no_instrument_function))
  function DirectResult (line 445) | __attribute__((no_instrument_function))
  function DirectResult (line 471) | __attribute__((no_instrument_function))
  function direct_thread_cleanup (line 483) | static void

FILE: lib/direct/os/nuttx/thread.h
  type pthread_t (line 26) | typedef pthread_t DirectThreadHandle;
  type DirectOnce (line 28) | typedef struct {
  type DirectTLS (line 34) | typedef struct {

FILE: lib/direct/os/nuttx/types.h
  type unichar (line 34) | typedef unsigned int unichar;
  type u8 (line 36) | typedef unsigned char          u8;
  type u16 (line 37) | typedef unsigned short         u16;
  type u32 (line 38) | typedef unsigned int           u32;
  type u64 (line 39) | typedef unsigned long long int u64;
  type s8 (line 41) | typedef signed char            s8;
  type s16 (line 42) | typedef short int              s16;
  type s32 (line 43) | typedef int                    s32;
  type s64 (line 44) | typedef long long int          s64;

FILE: lib/direct/os/nuttx/waitqueue.h
  type DirectWaitQueue (line 27) | typedef struct {
  function DirectResult (line 31) | static inline DirectResult
  function DirectResult (line 39) | static inline DirectResult
  function DirectResult (line 48) | static inline DirectResult
  function DirectResult (line 72) | static inline DirectResult
  function DirectResult (line 80) | static inline DirectResult
  function DirectResult (line 88) | static inline DirectResult

FILE: lib/direct/os/signals.h
  type DirectSignalHandlerResult (line 26) | typedef enum {
  type DirectSignalHandlerResult (line 32) | typedef DirectSignalHandlerResult (*DirectSignalHandlerFunc)( int num, v...

FILE: lib/direct/os/system.h
  type timespec (line 51) | struct timespec

FILE: lib/direct/os/thread.h
  type DirectThreadType (line 27) | typedef enum {
  type __D_DirectThread (line 38) | struct __D_DirectThread {
  type DirectThreadCancelState (line 72) | typedef enum {

FILE: lib/direct/result.c
  function __D_result_init (line 33) | void
  function __D_result_deinit (line 39) | void
  function DirectResult (line 47) | DirectResult
  function DirectResult (line 96) | DirectResult

FILE: lib/direct/result.h
  type DirectResultType (line 26) | typedef struct {

FILE: lib/direct/serial.h
  type DirectSerial (line 28) | typedef struct {
  function direct_serial_init (line 41) | static __inline__ void
  function direct_serial_deinit (line 55) | static __inline__ void
  function direct_serial_increase (line 67) | static __inline__ void
  function direct_serial_copy (line 80) | static __inline__ void
  function direct_serial_check (line 94) | static __inline__ bool
  function direct_serial_update (line 112) | static __inline__ bool

FILE: lib/direct/stream.c
  type __D_DirectStream (line 32) | struct __D_DirectStream {
  function direct_stream_close (line 79) | static void
  function parse_url (line 168) | static void
  function net_response (line 242) | static int
  function net_command (line 279) | static int
  function DirectResult (line 321) | static DirectResult
  function DirectResult (line 419) | static DirectResult
  function DirectResult (line 446) | static DirectResult
  function DirectResult (line 486) | static DirectResult
  function DirectResult (line 514) | static DirectResult
  function DirectResult (line 562) | static DirectResult
  function DirectResult (line 607) | static DirectResult
  function DirectResult (line 657) | static DirectResult
  type RTPPayload (line 731) | typedef struct {
  type SDPMedia (line 744) | typedef struct {
  function DirectResult (line 749) | static DirectResult
  function DirectResult (line 825) | static DirectResult
  function DirectResult (line 918) | static DirectResult
  function DirectResult (line 953) | static DirectResult
  function DirectResult (line 994) | static DirectResult
  function DirectResult (line 1117) | static DirectResult
  function DirectResult (line 1172) | static DirectResult
  function DirectResult (line 1279) | static DirectResult
  function DirectResult (line 1306) | static DirectResult
  function DirectResult (line 1353) | static DirectResult
  function DirectResult (line 1409) | static DirectResult
  function DirectResult (line 1422) | static DirectResult
  function DirectResult (line 1452) | static DirectResult
  function DirectResult (line 1475) | static DirectResult
  function DirectResult (line 1492) | static DirectResult
  function DirectResult (line 1535) | DirectResult
  function DirectStream (line 1594) | DirectStream *
  function direct_stream_fileno (line 1604) | int
  function direct_stream_seekable (line 1612) | bool
  function direct_stream_remote (line 1620) | bool
  function direct_stream_offset (line 1641) | unsigned int
  function direct_stream_length (line 1649) | unsigned int
  function DirectResult (line 1657) | DirectResult
  function DirectResult (line 1670) | DirectResult
  function DirectResult (line 1690) | DirectResult
  function DirectResult (line 1709) | DirectResult
  function direct_stream_destroy (line 1727) | void

FILE: lib/direct/stream.h
  type timeval (line 81) | struct timeval

FILE: lib/direct/system.c
  function DirectResult (line 27) | DirectResult
  function DirectResult (line 59) | DirectResult
  function DirectResult (line 98) | DirectResult

FILE: lib/direct/thread.c
  type __D_DirectThreadInitHandler (line 32) | struct __D_DirectThreadInitHandler {
  function __D_thread_init (line 48) | void
  function __D_thread_deinit (line 54) | void
  function DirectThreadInitHandler (line 62) | DirectThreadInitHandler *
  function direct_thread_remove_init_handler (line 89) | void
  function DirectThread (line 107) | DirectThread *
  function DirectResult (line 172) | DirectResult
  function DirectResult (line 203) | DirectResult
  function DirectResult (line 226) | DirectResult
  function DirectResult (line 239) | DirectResult
  function DirectResult (line 252) | DirectResult
  function direct_thread_destroy (line 268) | void
  function pid_t (line 291) | pid_t
  function direct_thread_is_canceled (line 297) | bool
  function direct_thread_is_joined (line 303) | bool
  function _direct_thread_call_init_handlers (line 311) | void

FILE: lib/direct/trace.c
  type TraceFlags (line 42) | typedef enum {
  type Trace (line 47) | typedef struct {
  type __D_DirectTraceBuffer (line 52) | struct __D_DirectTraceBuffer {
  function __dfb_no_instrument_function__ (line 68) | __dfb_no_instrument_function__
  type Symbol (line 98) | typedef struct {
  type SymbolTable (line 103) | typedef struct {
  function __dfb_no_instrument_function__ (line 115) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 151) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 302) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 310) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 334) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 362) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 384) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 459) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 479) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 503) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 520) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 556) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 580) | __dfb_no_instrument_function__
  function __dfb_no_instrument_function__ (line 600) | __dfb_no_instrument_function__
  function direct_trace_print_stack (line 634) | void
  function direct_trace_print_stacks (line 639) | void
  function direct_trace_debug_indent (line 644) | int
  function DirectTraceBuffer (line 656) | DirectTraceBuffer *
  function direct_trace_free_buffer (line 662) | void

FILE: lib/direct/types.h
  type DirectResult (line 68) | typedef enum {
  type DirectEnumerationResult (line 114) | typedef enum {
  type DirectCleanupHandler (line 122) | typedef struct __D_DirectCleanupHandler    DirectCleanupHandler;
  type DirectHash (line 123) | typedef struct __D_DirectHash              DirectHash;
  type DirectLink (line 124) | typedef struct __D_DirectLink              DirectLink;
  type DirectLog (line 125) | typedef struct __D_DirectLog               DirectLog;
  type DirectMap (line 126) | typedef struct __D_DirectMap               DirectMap;
  type DirectModuleDir (line 127) | typedef struct __D_DirectModuleDir         DirectModuleDir;
  type DirectModuleEntry (line 128) | typedef struct __D_DirectModuleEntry       DirectModuleEntry;
  type DirectSignalHandler (line 129) | typedef struct __D_DirectSignalHandler     DirectSignalHandler;
  type DirectStream (line 130) | typedef struct __D_DirectStream            DirectStream;
  type DirectTraceBuffer (line 131) | typedef struct __D_DirectTraceBuffer       DirectTraceBuffer;
  type DirectThread (line 132) | typedef struct __D_DirectThread            DirectThread;
  type DirectThreadInitHandler (line 133) | typedef struct __D_DirectThreadInitHandler DirectThreadInitHandler;

FILE: lib/direct/utf8.h
  function unichar (line 39) | static __inline__ unichar

FILE: lib/direct/util.c
  function __D_util_init (line 38) | void
  function __D_util_deinit (line 78) | void
  function __dfb_no_instrument_function__ (line 97) | __dfb_no_instrument_function__
  function direct_trim (line 131) | void
  function md5_hash (line 372) | static void
  function direct_md5_sum (line 407) | void

FILE: lib/direct/util.h
  function direct_util_count_bits (line 169) | static __inline__ int
  function direct_util_align (line 185) | static __inline__ int
  function D_IFLOOR (line 204) | static __inline__ int
  function D_ICEIL (line 225) | static __inline__ int
  function direct_log2 (line 241) | static __inline__ int
  type DirectClock (line 254) | typedef struct {
  function direct_clock_start (line 259) | static __inline__ void
  function direct_clock_stop (line 265) | static __inline__ void
  function direct_clock_diff (line 271) | static __inline__ long long

FILE: lib/fusion/arena.c
  type __Fusion_FusionArena (line 28) | struct __Fusion_FusionArena {
  function DirectResult (line 51) | DirectResult
  function DirectResult (line 142) | DirectResult
  function DirectResult (line 175) | DirectResult
  function DirectResult (line 210) | DirectResult
  function FusionArena (line 282) | static FusionArena *
  function FusionArena (line 363) | static FusionArena *
  function unlock_arena (line 415) | static void

FILE: lib/fusion/call.c
  type CallTLS (line 52) | typedef struct {
  type CallInfo (line 71) | typedef struct {
  function call_tls_destroy (line 88) | static void
  function __Fusion_call_init (line 104) | void
  function __Fusion_call_deinit (line 110) | void
  function __Fusion_call_init (line 118) | void
  function __Fusion_call_deinit (line 123) | void
  function CallTLS (line 136) | static CallTLS *
  function DirectResult (line 170) | DirectResult
  function DirectResult (line 222) | DirectResult
  function DirectResult (line 274) | DirectResult
  function DirectResult (line 299) | DirectResult
  function DirectResult (line 334) | DirectResult
  function DirectResult (line 407) | DirectResult
  function DirectResult (line 473) | DirectResult
  function DirectResult (line 599) | DirectResult
  function DirectResult (line 660) | DirectResult
  function DirectResult (line 707) | DirectResult
  function DirectResult (line 756) | DirectResult
  function DirectResult (line 787) | DirectResult
  function DirectResult (line 818) | DirectResult
  function DirectResult (line 852) | DirectResult
  function _fusion_call_process (line 880) | void
  function _fusion_call_process3 (line 935) | void
  function DirectResult (line 1016) | DirectResult
  function DirectResult (line 1056) | DirectResult
  function DirectResult (line 1096) | DirectResult
  function DirectResult (line 1134) | DirectResult
  function DirectResult (line 1144) | static DirectResult
  function DirectResult (line 1283) | DirectResult
  function DirectResult (line 1294) | DirectResult
  function DirectResult (line 1305) | DirectResult
  function DirectResult (line 1318) | DirectResult
  function DirectResult (line 1325) | static DirectResult
  function DirectResult (line 1353) | DirectResult
  function DirectResult (line 1361) | DirectResult
  function DirectResult (line 1370) | DirectResult
  function DirectResult (line 1384) | DirectResult
  function DirectResult (line 1396) | DirectResult
  function DirectResult (line 1417) | DirectResult
  function _fusion_call_process (line 1425) | void
  function DirectResult (line 1511) | DirectResult
  function DirectResult (line 1531) | DirectResult
  function DirectResult (line 1551) | DirectResult
  function DirectResult (line 1576) | DirectResult
  function DirectResult (line 1586) | DirectResult
  function DirectResult (line 1627) | DirectResult
  function DirectResult (line 1668) | DirectResult
  function DirectResult (line 1720) | DirectResult
  function DirectResult (line 1727) | DirectResult
  function DirectResult (line 1735) | DirectResult
  function DirectResult (line 1744) | DirectResult
  function DirectResult (line 1753) | DirectResult
  function DirectResult (line 1761) | DirectResult
  function DirectResult (line 1773) | DirectResult

FILE: lib/fusion/call.h
  type FusionCallHandlerResult (line 26) | typedef enum {
  type FusionCallHandlerResult (line 31) | typedef FusionCallHandlerResult (*FusionCallHandler) ( int           cal...
  type FusionCallHandlerResult (line 38) | typedef FusionCallHandlerResult (*FusionCallHandler3)( int           cal...
  type __Fusion_FusionCall (line 48) | struct __Fusion_FusionCall {
  type FusionCallPermissions (line 59) | typedef enum {

FILE: lib/fusion/conf.c
  function __Fusion_conf_init (line 48) | void
  function __Fusion_conf_deinit (line 57) | void
  function DirectResult (line 64) | DirectResult

FILE: lib/fusion/conf.h
  type FusionConfig (line 26) | typedef struct {

FILE: lib/fusion/fusion.c
  function _fusion_fd (line 60) | int
  function FusionID (line 80) | FusionID
  function FusionWorld (line 100) | FusionWorld *
  function init_once (line 124) | static void
  function refs_map_compare (line 133) | static bool
  function refs_map_hash (line 145) | static unsigned int
  function refs_map_slave_compare (line 155) | static bool
  function refs_map_slave_hash (line 167) | static unsigned int
  function FusionCallHandlerResult (line 177) | static FusionCallHandlerResult
  function fusion_try_open (line 222) | static int
  function fusion_world_fork (line 250) | static void
  function fusion_fork_handler_prepare (line 329) | static void
  function fusion_fork_handler_parent (line 349) | static void
  function fusion_fork_handler_child (line 376) | static void
  function DirectResult (line 426) | static DirectResult
  function DirectResult (line 568) | DirectResult
  function DirectResult (line 910) | DirectResult
  function DirectResult (line 925) | DirectResult
  function DirectResult (line 961) | DirectResult
  function DirectResult (line 1085) | DirectResult
  function DirectResult (line 1128) | static DirectResult
  function DirectResult (line 1154) | DirectResult
  function DirectResult (line 1176) | DirectResult
  function handle_dispatch_cleanups (line 1187) | static void
  function DirectEnumerationResult (line 1209) | static DirectEnumerationResult
  function DirectResult (line 1354) | DirectResult
  function DirectResult (line 1468) | DirectResult
  function DirectResult (line 1512) | DirectResult
  function DirectResult (line 1543) | DirectResult
  function DirectResult (line 1567) | DirectResult
  type FusioneeRef (line 1596) | typedef struct {
  type Fusionee (line 1604) | typedef struct {
  function DirectResult (line 1613) | static DirectResult
  function _fusion_add_local (line 1648) | void
  function _fusion_check_locals (line 1701) | void
  function _fusion_remove_all_locals (line 1744) | void
  function _fusion_remove_fusionee (line 1773) | static void
  function DirectResult (line 1818) | DirectResult
  function DirectResult (line 1851) | DirectResult
  function fusion_fork_handler_prepare (line 1879) | static void
  function fusion_fork_handler_parent (line 1899) | static void
  function fusion_fork_handler_child (line 1929) | static void
  function DirectResult (line 2023) | DirectResult
  function DirectResult (line 2536) | DirectResult
  function DirectResult (line 2542) | DirectResult
  function DirectResult (line 2566) | DirectResult
  function DirectResult (line 2711) | DirectResult
  function DirectResult (line 2778) | DirectResult
  function DirectResult (line 2800) | DirectResult
  function handle_dispatch_cleanups (line 2811) | static void
  function DirectEnumerationResult (line 2833) | static DirectEnumerationResult
  type sockaddr_un (line 2859) | struct sockaddr_un
  type sockaddr (line 2888) | struct sockaddr
  function DirectResult (line 2994) | DirectResult
  function DirectResult (line 3001) | DirectResult
  function DirectResult (line 3018) | DirectResult
  function DirectResult (line 3028) | DirectResult
  function DirectResult (line 3052) | DirectResult
  function fusion_world_set_fork_action (line 3068) | void
  function FusionForkAction (line 3077) | FusionForkAction
  function fusion_world_set_fork_callback (line 3085) | void
  function fusion_world_set_leave_callback (line 3094) | void
  function fusion_world_index (line 3105) | int
  function FusionID (line 3114) | FusionID
  function fusion_is_multi (line 3122) | bool
  function pid_t (line 3130) | pid_t
  function fusion_master (line 3141) | bool
  function fusion_is_shared (line 3149) | bool
  function DirectResult (line 3357) | DirectResult
  function DirectResult (line 3440) | DirectResult
  function DirectResult (line 3520) | DirectResult
  function DirectResult (line 3595) | DirectResult
  function DirectResult (line 3667) | DirectResult
  function DirectResult (line 3673) | DirectResult
  function DirectResult (line 3680) | DirectResult
  function DirectResult (line 3720) | DirectResult
  function DirectResult (line 3742) | DirectResult
  function DirectResult (line 3753) | DirectResult
  function DirectResult (line 3760) | DirectResult
  function DirectResult (line 3767) | DirectResult
  function DirectResult (line 3784) | DirectResult
  function DirectResult (line 3794) | DirectResult
  function DirectResult (line 3818) | DirectResult
  function fusion_world_set_fork_action (line 3826) | void
  function FusionForkAction (line 3833) | FusionForkAction
  function fusion_world_set_fork_callback (line 3841) | void
  function fusion_world_set_leave_callback (line 3848) | void
  function fusion_world_index (line 3856) | int
  function FusionID (line 3864) | FusionID
  function fusion_is_multi (line 3872) | bool
  function pid_t (line 3880) | pid_t
  function fusion_master (line 3888) | bool
  function fusion_is_shared (line 3896) | bool

FILE: lib/fusion/fusion.h
  type FusionEnterRole (line 27) | typedef enum {
  type FusionForkAction (line 33) | typedef enum {
  type FusionForkState (line 38) | typedef enum {
  type FusionDispatchCleanup (line 50) | typedef struct {

FILE: lib/fusion/fusion_internal.h
  type __Fusion_FusionWorldShared (line 29) | struct __Fusion_FusionWorldShared {
  type __Fusion_FusionWorld (line 70) | struct __Fusion_FusionWorld {
  type FusionRefSlaveKey (line 124) | typedef struct {
  type FusionRefSlaveEntry (line 129) | typedef struct {
  type FusionRefSlaveSlaveEntry (line 137) | typedef struct {
  function fusion_entry_add_permissions (line 173) | static __inline__ void
  type DeferredCall (line 203) | typedef struct {
  type sockaddr_un (line 244) | struct sockaddr_un
  type sockaddr_un (line 249) | struct sockaddr_un
  type FusionEventDispatcherBuffer (line 264) | typedef struct {
  type FusionEventDispatcherCall (line 277) | typedef struct

FILE: lib/fusion/hash.c
  function spaced_primes_closest (line 76) | static unsigned int
  function FusionHashNode (line 88) | static __inline__ FusionHashNode **
  function DirectResult (line 116) | static DirectResult
  function DirectResult (line 168) | DirectResult
  function DirectResult (line 179) | DirectResult
  function fusion_hash_node_destroy (line 191) | static void
  function fusion_hash_destroy (line 228) | void
  function fusion_hash_set_autofree (line 257) | void
  function DirectResult (line 281) | DirectResult
  function DirectResult (line 317) | DirectResult
  function DirectResult (line 377) | DirectResult
  function fusion_hash_iterate (line 404) | void
  function fusion_hash_size (line 425) | unsigned int
  function fusion_hash_should_resize (line 433) | bool fusion_hash_should_resize( FusionHash *hash )
  function DirectResult (line 444) | DirectResult

FILE: lib/fusion/hash.h
  type FusionHashType (line 27) | typedef enum {
  type FusionHashNode (line 33) | typedef struct _FusionHashNode {
  type __Fusion_FusionHash (line 39) | struct __Fusion_FusionHash {
  type FusionHashIterator (line 148) | typedef struct {

FILE: lib/fusion/init.c
  function __dfb_constructor__ (line 41) | __dfb_constructor__
  function __dfb_destructor__ (line 51) | __dfb_destructor__

FILE: lib/fusion/lock.c
  function DirectResult (line 44) | DirectResult
  function DirectResult (line 82) | DirectResult
  function DirectResult (line 116) | DirectResult
  function DirectResult (line 156) | DirectResult
  function DirectResult (line 199) | DirectResult
  function DirectResult (line 250) | DirectResult
  function DirectResult (line 284) | DirectResult
  function DirectResult (line 327) | DirectResult
  function DirectResult (line 373) | DirectResult
  function DirectResult (line 407) | DirectResult
  type WaitNode (line 462) | typedef struct {
  function DirectResult (line 469) | DirectResult
  function DirectResult (line 496) | DirectResult
  function DirectResult (line 531) | DirectResult
  function DirectResult (line 594) | DirectResult
  function DirectResult (line 637) | DirectResult
  function DirectResult (line 671) | DirectResult
  function DirectResult (line 710) | DirectResult
  function restart_handler (line 745) | static void restart_handler( int s ) {}
  function DirectResult (line 747) | DirectResult
  function DirectResult (line 833) | DirectResult
  function DirectResult (line 874) | DirectResult
  function DirectResult (line 886) | DirectResult
  function DirectResult (line 910) | DirectResult
  function DirectResult (line 919) | DirectResult
  function DirectResult (line 938) | DirectResult
  function DirectResult (line 957) | DirectResult
  function DirectResult (line 982) | DirectResult
  function DirectResult (line 995) | DirectResult
  function DirectResult (line 1017) | DirectResult
  function DirectResult (line 1033) | DirectResult
  function DirectResult (line 1046) | DirectResult
  function ptr_compare (line 1056) | static int
  function DirectResult (line 1063) | DirectResult
  function DirectResult (line 1094) | DirectResult

FILE: lib/fusion/lock.h
  type FusionSkirmishSingle (line 28) | typedef struct {
  type FusionSkirmish (line 36) | typedef struct {
  type FusionSkirmishPermissions (line 55) | typedef enum {

FILE: lib/fusion/object.c
  function FusionCallHandlerResult (line 31) | static FusionCallHandlerResult
  function FusionObjectPool (line 140) | FusionObjectPool *
  function DirectResult (line 195) | DirectResult
  type ObjectIteratorContext (line 270) | typedef struct {
  function object_iterator (line 276) | static bool
  function DirectResult (line 290) | DirectResult
  function DirectResult (line 318) | DirectResult
  function FusionObject (line 332) | FusionObject *
  function DirectResult (line 419) | DirectResult
  function DirectResult (line 464) | DirectResult
  function DirectResult (line 496) | DirectResult
  function DirectResult (line 508) | DirectResult
  function DirectResult (line 519) | DirectResult
  function DirectResult (line 579) | DirectResult
  function fusion_object_remove_property (line 627) | void
  function DirectResult (line 644) | DirectResult
  function DirectResult (line 669) | DirectResult
  function DirectResult (line 696) | DirectResult
  function DirectResult (line 717) | DirectResult
  function DirectResult (line 749) | DirectResult

FILE: lib/fusion/object.h
  type u32 (line 29) | typedef u32 FusionObjectID;
  type FusionObjectState (line 31) | typedef enum {
  type __Fusion_FusionObject (line 37) | struct __Fusion_FusionObject {
  type __Fusion_FusionObjectPool (line 65) | struct __Fusion_FusionObjectPool {

FILE: lib/fusion/protocol.h
  type FusionMessageType (line 26) | typedef enum {
  type FusionEnter (line 38) | typedef struct {
  type FusionLeave (line 47) | typedef struct {
  type FusionCallMessage (line 56) | typedef struct {
  type FusionCallReturn (line 77) | typedef struct {
  type FusionReactorMessage (line 86) | typedef struct {
  type FusionMessage (line 95) | typedef union {

FILE: lib/fusion/reactor.c
  type ReactorNode (line 46) | typedef struct {
  type NodeLink (line 59) | typedef struct {
  function remove_node_link (line 68) | static void
  function FusionReactor (line 89) | FusionReactor *
  function DirectResult (line 144) | DirectResult
  function DirectResult (line 176) | DirectResult
  function DirectResult (line 195) | DirectResult
  function DirectResult (line 262) | DirectResult
  function DirectResult (line 320) | DirectResult
  function DirectResult (line 385) | DirectResult
  function DirectResult (line 421) | DirectResult
  function DirectResult (line 457) | DirectResult
  function _fusion_reactor_process_message (line 487) | void
  type Listener (line 569) | typedef struct {
  function FusionReactor (line 578) | FusionReactor *
  function DirectResult (line 620) | DirectResult
  function DirectResult (line 640) | DirectResult
  function DirectResult (line 663) | DirectResult
  function DirectResult (line 744) | DirectResult
  function DirectResult (line 801) | DirectResult
  function DirectResult (line 913) | DirectResult
  function DirectResult (line 935) | DirectResult
  function DirectResult (line 942) | DirectResult
  function _fusion_reactor_process_message (line 950) | void
  function DirectResult (line 1019) | DirectResult
  function DirectResult (line 1050) | DirectResult
  function DirectResult (line 1068) | DirectResult
  function DirectResult (line 1081) | DirectResult
  function DirectResult (line 1122) | DirectResult
  function DirectResult (line 1161) | DirectResult
  function DirectResult (line 1172) | DirectResult
  function _fusion_reactor_free_all (line 1183) | void
  function process_globals (line 1222) | static void
  function ReactorNode (line 1281) | static ReactorNode *
  function unlock_node (line 1410) | static void
  function FusionReactor (line 1420) | FusionReactor *
  function DirectResult (line 1447) | DirectResult
  function DirectResult (line 1461) | DirectResult
  function DirectResult (line 1484) | DirectResult
  function DirectResult (line 1511) | DirectResult
  function DirectResult (line 1532) | DirectResult
  function DirectResult (line 1563) | DirectResult
  function DirectResult (line 1575) | DirectResult
  function DirectResult (line 1586) | DirectResult
  function DirectResult (line 1596) | DirectResult
  function DirectResult (line 1607) | DirectResult
  function DirectResult (line 1617) | DirectResult
  function DirectResult (line 1630) | DirectResult
  function DirectResult (line 1658) | DirectResult
  function DirectResult (line 1684) | DirectResult
  function DirectResult (line 1695) | DirectResult
  function process_globals (line 1704) | static void

FILE: lib/fusion/reactor.h
  type __Fusion_FusionReactor (line 27) | struct __Fusion_FusionReactor {
  type ReactionResult (line 53) | typedef enum {
  type FusionReactorPermissions (line 59) | typedef enum {
  type ReactionResult (line 68) | typedef ReactionResult (*ReactionFunc)( const void *msg_data, void *ctx );
  type Reaction (line 70) | typedef struct {
  type GlobalReaction (line 77) | typedef struct {

FILE: lib/fusion/ref.c
  function DirectResult (line 44) | DirectResult
  function DirectResult (line 52) | DirectResult
  function DirectResult (line 103) | DirectResult
  function DirectResult (line 143) | DirectResult
  function DirectResult (line 227) | DirectResult
  function DirectResult (line 348) | DirectResult
  function DirectResult (line 421) | DirectResult
  function DirectResult (line 497) | DirectResult
  function DirectResult (line 535) | DirectResult
  function DirectResult (line 590) | DirectResult
  function DirectResult (line 642) | DirectResult
  function DirectResult (line 704) | DirectResult
  function DirectResult (line 744) | DirectResult
  function DirectResult (line 791) | DirectResult
  function DirectResult (line 848) | DirectResult
  function DirectResult (line 856) | DirectResult
  function DirectResult (line 893) | DirectResult
  function DirectResult (line 902) | DirectResult
  function DirectResult (line 952) | DirectResult
  function DirectResult (line 1012) | DirectResult
  function DirectResult (line 1117) | DirectResult
  function DirectResult (line 1175) | DirectResult
  function DirectResult (line 1229) | DirectResult
  function DirectResult (line 1252) | DirectResult
  function DirectResult (line 1302) | DirectResult
  function DirectResult (line 1339) | DirectResult
  function DirectResult (line 1398) | DirectResult
  function DirectResult (line 1412) | DirectResult
  function DirectResult (line 1432) | DirectResult
  function DirectResult (line 1444) | DirectResult
  function DirectResult (line 1465) | DirectResult
  function DirectResult (line 1474) | DirectResult
  function DirectResult (line 1483) | DirectResult
  function DirectResult (line 1514) | DirectResult
  function DirectResult (line 1566) | DirectResult
  function DirectResult (line 1579) | DirectResult
  function DirectResult (line 1593) | DirectResult
  function DirectResult (line 1608) | DirectResult
  function DirectResult (line 1633) | DirectResult
  function DirectResult (line 1657) | DirectResult
  function DirectResult (line 1687) | DirectResult
  function DirectResult (line 1701) | DirectResult
  function DirectResult (line 1718) | DirectResult

FILE: lib/fusion/ref.h
  type __Fusion_FusionRef (line 26) | struct __Fusion_FusionRef {
  type FusionRefPermissions (line 60) | typedef enum {

FILE: lib/fusion/shm/fake.c
  function DirectResult (line 27) | DirectResult
  function DirectResult (line 54) | DirectResult

FILE: lib/fusion/shm/heap.c
  type list (line 123) | struct list
  type list (line 133) | struct list
  type list (line 134) | struct list
  type list (line 175) | struct list
  function _fusion_shfree (line 352) | void
  function DirectResult (line 497) | DirectResult
  function DirectResult (line 590) | DirectResult

FILE: lib/fusion/shm/pool.c
  function DirectResult (line 56) | DirectResult
  function DirectResult (line 134) | DirectResult
  function DirectResult (line 178) | DirectResult
  function DirectResult (line 197) | DirectResult
  function DirectResult (line 220) | DirectResult
  function DirectResult (line 262) | DirectResult
  function DirectResult (line 304) | DirectResult
  function DirectResult (line 338) | static DirectResult
  function DirectResult (line 459) | static DirectResult
  function leave_pool (line 519) | static void
  function shutdown_pool (line 552) | static void
  function _fusion_shmpool_process (line 598) | void
  function DirectResult (line 644) | static DirectResult
  function DirectResult (line 721) | static DirectResult
  function leave_pool (line 759) | static void
  function shutdown_pool (line 781) | static void

FILE: lib/fusion/shm/shm.c
  function fusion_find_tmpfs (line 29) | int
  function DirectResult (line 74) | DirectResult
  function DirectResult (line 154) | DirectResult
  function DirectResult (line 210) | DirectResult

FILE: lib/fusion/shm/shm.h
  type DirectEnumerationResult (line 26) | typedef DirectEnumerationResult (*FusionSHMPoolCallback)( FusionSHMPool ...

FILE: lib/fusion/shm/shm_internal.h
  type shmalloc_info (line 38) | typedef union {
  type list (line 64) | struct list {
  type shmalloc_heap (line 69) | typedef struct {
  type __Fusion_FusionSHMPool (line 112) | struct __Fusion_FusionSHMPool {
  type __Fusion_FusionSHMPoolShared (line 129) | struct __Fusion_FusionSHMPoolShared {
  type __Fusion_FusionSHM (line 155) | struct __Fusion_FusionSHM {
  type __Fusion_FusionSHMShared (line 168) | struct __Fusion_FusionSHMShared {
  type SHMemDesc (line 190) | typedef struct {

FILE: lib/fusion/shmalloc.c
  function fusion_print_madvise (line 47) | void
  function fusion_print_memleaks (line 70) | void
  function SHMemDesc (line 104) | static SHMemDesc *
  function fusion_dbg_shfree (line 366) | void
  function fusion_dbg_shfree (line 499) | void
  function fusion_print_memleaks (line 524) | void
  function fusion_dbg_shfree (line 574) | void
  function fusion_shfree (line 672) | void
  function fusion_shfree (line 726) | void

FILE: lib/fusion/types.h
  type FusionArena (line 35) | typedef struct __Fusion_FusionArena         FusionArena;
  type FusionCall (line 36) | typedef struct __Fusion_FusionCall          FusionCall;
  type FusionHash (line 37) | typedef struct __Fusion_FusionHash          FusionHash;
  type FusionObject (line 38) | typedef struct __Fusion_FusionObject        FusionObject;
  type FusionObjectPool (line 39) | typedef struct __Fusion_FusionObjectPool    FusionObjectPool;
  type FusionReactor (line 40) | typedef struct __Fusion_FusionReactor       FusionReactor;
  type FusionRef (line 41) | typedef struct __Fusion_FusionRef           FusionRef;
  type FusionSHMPool (line 42) | typedef struct __Fusion_FusionSHMPool       FusionSHMPool;
  type FusionSHMPoolShared (line 43) | typedef struct __Fusion_FusionSHMPoolShared FusionSHMPoolShared;
  type FusionSHM (line 44) | typedef struct __Fusion_FusionSHM           FusionSHM;
  type FusionSHMShared (line 45) | typedef struct __Fusion_FusionSHMShared     FusionSHMShared;
  type FusionWorld (line 46) | typedef struct __Fusion_FusionWorld         FusionWorld;
  type FusionWorldShared (line 47) | typedef struct __Fusion_FusionWorldShared   FusionWorldShared;
  type FusionID (line 59) | typedef unsigned long FusionID;
  type FusionCallExecFlags (line 61) | typedef enum {

FILE: lib/fusion/vector.c
  function ensure_capacity (line 28) | static __inline__ bool
  function fusion_vector_init (line 70) | void
  function fusion_vector_destroy (line 88) | void
  function DirectResult (line 106) | DirectResult
  function DirectResult (line 123) | DirectResult
  function DirectResult (line 149) | DirectResult
  function DirectResult (line 184) | DirectResult

FILE: lib/fusion/vector.h
  type FusionVector (line 27) | typedef struct {
  function fusion_vector_has_elements (line 62) | static __inline__ bool
  function fusion_vector_is_empty (line 70) | static __inline__ bool
  function fusion_vector_size (line 78) | static __inline__ int
  function fusion_vector_contains (line 97) | static __inline__ bool
  function fusion_vector_index_of (line 119) | static __inline__ int

FILE: src/core/CoreDFB_CallMode.h
  type CoreDFBCallMode (line 26) | typedef enum {
  function CoreDFBCallMode (line 32) | static __inline__ CoreDFBCallMode

FILE: src/core/CoreDFB_includes.h
  function DirectResult (line 33) | static __inline__ DirectResult
  function DirectResult (line 49) | static __inline__ DirectResult
  function DirectResult (line 59) | static __inline__ DirectResult
  function u32 (line 81) | static __inline__ u32
  function DirectResult (line 87) | static __inline__ DirectResult
  function DirectResult (line 110) | static __inline__ DirectResult
  function DirectResult (line 116) | static __inline__ DirectResult
  function DirectResult (line 126) | static __inline__ DirectResult
  function DirectResult (line 146) | static __inline__ DirectResult
  function DirectResult (line 156) | static __inline__ DirectResult
  function u32 (line 173) | static __inline__ u32
  function DirectResult (line 179) | static __inline__ DirectResult
  function DirectResult (line 202) | static __inline__ DirectResult
  function DirectResult (line 208) | static __inline__ DirectResult
  function DirectResult (line 218) | static __inline__ DirectResult
  function u32 (line 237) | static __inline__ u32
  function DirectResult (line 243) | static __inline__ DirectResult
  function DirectResult (line 266) | static __inline__ DirectResult
  function DirectResult (line 272) | static __inline__ DirectResult
  function DirectResult (line 282) | static __inline__ DirectResult
  function DirectResult (line 302) | static __inline__ DirectResult
  function DirectResult (line 312) | static __inline__ DirectResult
  function u32 (line 331) | static __inline__ u32
  function DirectResult (line 337) | static __inline__ DirectResult
  function DirectResult (line 360) | static __inline__ DirectResult
  function DirectResult (line 368) | static __inline__ DirectResult
  function DirectResult (line 378) | static __inline__ DirectResult
  function u32 (line 397) | static __inline__ u32
  function DirectResult (line 403) | static __inline__ DirectResult
  function DirectResult (line 427) | static __inline__ DirectResult
  function DirectResult (line 433) | static __inline__ DirectResult
  function DirectResult (line 443) | static __inline__ DirectResult

FILE: src/core/CoreDFB_real.c
  function DFBResult (line 31) | DFBResult
  function DFBResult (line 44) | DFBResult
  function DFBResult (line 55) | DFBResult
  function DFBResult (line 87) | DFBResult
  function DFBResult (line 101) | DFBResult
  function DFBResult (line 119) | DFBResult
  function DFBResult (line 149) | DFBResult
  function DFBResult (line 167) | DFBResult
  function DFBResult (line 177) | DFBResult
  function DFBResult (line 224) | DFBResult
  function DFBResult (line 239) | DFBResult

FILE: src/core/CoreGraphicsStateClient.c
  type clients_t (line 33) | typedef struct clients_s {
  function AddClient (line 42) | void
  function RemoveClient (line 65) | void
  function DFBResult (line 106) | DFBResult
  function CoreGraphicsStateClient_Deinit (line 140) | void
  function CoreGraphicsStateClient_Flush (line 159) | void
  function DFBResult (line 174) | DFBResult
  function DFBResult (line 186) | DFBResult
  function DFBResult (line 200) | static DFBResult
  function DFBResult (line 340) | DFBResult
  function DFBResult (line 406) | DFBResult
  function DFBResult (line 433) | DFBResult
  function DFBResult (line 459) | DFBResult
  function DFBResult (line 488) | DFBResult
  function DFBResult (line 514) | DFBResult
  function DFBResult (line 540) | DFBResult
  function DFBResult (line 566) | DFBResult
  function DFBResult (line 592) | DFBResult
  function DFBResult (line 619) | DFBResult
  function DFBResult (line 650) | DFBResult
  function DFBResult (line 680) | DFBResult
  function DFBResult (line 732) | DFBResult
  function DFBResult (line 766) | DFBResult

FILE: src/core/CoreGraphicsStateClient.h
  type __DFB_CoreGraphicsStateClient (line 26) | struct __DFB_CoreGraphicsStateClient {

FILE: src/core/CoreGraphicsState_includes.h
  function DirectResult (line 21) | static __inline__ DirectResult

FILE: src/core/CoreGraphicsState_real.c
  function DFBResult (line 26) | DFBResult
  function DFBResult (line 37) | DFBResult
  function DFBResult (line 48) | DFBResult
  function DFBResult (line 61) | DFBResult
  function DFBResult (line 74) | DFBResult
  function DFBResult (line 92) | DFBResult
  function DFBResult (line 103) | DFBResult
  function DFBResult (line 114) | DFBResult
  function DFBResult (line 125) | DFBResult
  function DFBResult (line 136) | DFBResult
  function DFBResult (line 151) | DFBResult
  function DFBResult (line 164) | DFBResult
  function DFBResult (line 177) | DFBResult
  function DFBResult (line 191) | DFBResult
  function DFBResult (line 203) | DFBResult
  function DFBResult (line 216) | DFBResult
  function DFBResult (line 227) | DFBResult
  function DFBResult (line 238) | DFBResult
  function DFBResult (line 251) | DFBResult
  function DFBResult (line 263) | DFBResult
  function DFBResult (line 275) | DFBResult
  function DFBResult (line 290) | DFBResult
  function DFBResult (line 308) | DFBResult
  function DFBResult (line 323) | DFBResult
  function DFBResult (line 338) | DFBResult
  function DFBResult (line 353) | DFBResult
  function DFBResult (line 368) | DFBResult
  function DFBResult (line 384) | DFBResult
  function DFBResult (line 406) | DFBResult
  function DFBResult (line 430) | DFBResult
  function DFBResult (line 452) | DFBResult
  function DFBResult (line 480) | DFBResult
  function DFBResult (line 501) | DFBResult
  function DFBResult (line 511) | DFBResult
  function DFBResult (line 523) | DFBResult
  function DFBResult (line 536) | DFBResult

FILE: src/core/CoreInputDevice_includes.h
  function DirectResult (line 22) | static __inline__ DirectResult

FILE: src/core/CoreInputDevice_real.c
  function DFBResult (line 26) | DFBResult
  function DFBResult (line 36) | DFBResult

FILE: src/core/CoreLayerContext_includes.h
  function DirectResult (line 21) | static __inline__ DirectResult

FILE: src/core/CoreLayerContext_real.c
  function DFBResult (line 30) | DFBResult
  function DFBResult (line 42) | DFBResult
  function DFBResult (line 54) | DFBResult
  function DFBResult (line 65) | DFBResult
  function DFBResult (line 76) | DFBResult
  function DFBResult (line 87) | DFBResult
  function DFBResult (line 98) | DFBResult
  function DFBResult (line 108) | DFBResult
  function DFBResult (line 117) | DFBResult
  function DFBResult (line 128) | DFBResult
  function DFBResult (line 138) | DFBResult
  function DFBResult (line 151) | DFBResult
  function DFBResult (line 162) | DFBResult
  function DFBResult (line 173) | DFBResult
  function DFBResult (line 184) | DFBResult
  function DFBResult (line 229) | DFBResult
  function DFBResult (line 258) | DFBResult
  type FindWindowByResourceID_Context (line 267) | typedef struct {
  function DFBEnumerationResult (line 272) | static DFBEnumerationResult
  function DFBResult (line 288) | DFBResult

FILE: src/core/CoreLayerRegion_includes.h
  function DirectResult (line 21) | static __inline__ DirectResult

FILE: src/core/CoreLayerRegion_real.c
  function DFBResult (line 26) | DFBResult
  function DFBResult (line 35) | DFBResult
  function DFBResult (line 49) | DFBResult

FILE: src/core/CoreLayer_includes.h
  function DirectResult (line 22) | static __inline__ DirectResult

FILE: src/core/CoreLayer_real.c
  function DFBResult (line 26) | DFBResult
  function DFBResult (line 37) | DFBResult
  function DFBResult (line 49) | DFBResult
  function DFBResult (line 60) | DFBResult
  function DFBResult (line 71) | DFBResult
  function DFBResult (line 80) | DFBResult

FILE: src/core/CorePalette_includes.h
  function DirectResult (line 21) | static __inline__ DirectResult

FILE: src/core/CorePalette_real.c
  function DFBResult (line 28) | DFBResult
  function DFBResult (line 70) | DFBResult

FILE: src/core/CoreScreen_includes.h
  function DirectResult (line 22) | static __inline__ DirectResult

FILE: src/core/CoreScreen_real.c
  function DFBResult (line 26) | DFBResult
  function DFBResult (line 37) | DFBResult
  function DFBResult (line 46) | DFBResult
  function DFBResult (line 54) | DFBResult
  function DFBResult (line 67) | DFBResult
  function DFBResult (line 79) | DFBResult
  function DFBResult (line 92) | DFBResult
  function DFBResult (line 104) | DFBResult
  function DFBResult (line 117) | DFBResult
  function DFBResult (line 129) | DFBResult

FILE: src/core/CoreSlave_includes.h
  type CoreSlave (line 25) | typedef struct {
  function DirectResult (line 29) | static __inline__ DirectResult

FILE: src/core/CoreSlave_real.c
  function DFBResult (line 27) | DFBResult
  function DFBResult (line 47) | DFBResult

FILE: src/core/CoreSurfaceAllocation_includes.h
  function DirectResult (line 21) | static __inline__ DirectResult

FILE: src/core/CoreSurfaceAllocation_real.c
  function DFBResult (line 28) | DFBResult

FILE: src/core/CoreSurfaceClient_includes.h
  function DirectResult (line 21) | static __inline__ DirectResult

FILE: src/core/CoreSurfaceClient_real.c
  function DFBResult (line 27) | DFBResult

FILE: src/core/CoreSurface_includes.h
  function DirectResult (line 21) | static __inline__ DirectResult

FILE: src/core/CoreSurface_real.c
  function DFBResult (line 33) | DFBResult
  function DFBResult (line 44) | DFBResult
  function DFBResult (line 66) | DFBResult
  function DFBResult (line 77) | DFBResult
  function manage_interlocks (line 89) | static void
  function DFBResult (line 147) | DFBResult
  function DFBResult (line 220) | DFBResult
  function DFBResult (line 323) | DFBResult
  function DFBResult (line 424) | DFBResult
  function DFBResult (line 464) | DFBResult
  function DFBResult (line 543) | DFBResult
  function DFBResult (line 552) | DFBResult
  function DFBResult (line 563) | DFBResult
  function DFBResult (line 617) | DFBResult

FILE: src/core/CoreWindowStack_includes.h
  function DirectResult (line 21) | static __inline__ DirectResult

FILE: src/core/CoreWindowStack_real.c
  function DFBResult (line 27) | DFBResult
  function DFBResult (line 35) | DFBResult
  function DFBResult (line 44) | DFBResult
  function DFBResult (line 53) | DFBResult
  function DFBResult (line 62) | DFBResult
  function DFBResult (line 71) | DFBResult
  function DFBResult (line 80) | DFBResult
  function DFBResult (line 89) | DFBResult
  function DFBResult (line 98) | DFBResult
  function DFBResult (line 108) | DFBResult
  function DFBResult (line 120) | DFBResult

FILE: src/core/CoreWindow_includes.h
  function DirectResult (line 21) | static __inline__ DirectResult

FILE: src/core/CoreWindow_real.c
  function DFBResult (line 31) | DFBResult
  function DFBResult (line 69) | DFBResult
  function DFBResult (line 88) | DFBResult
  function DFBResult (line 100) | DFBResult
  function DFBResult (line 112) | DFBResult
  function DFBResult (line 124) | DFBResult
  function DFBResult (line 135) | DFBResult
  function DFBResult (line 146) | DFBResult
  function DFBResult (line 157) | DFBResult
  function DFBResult (line 168) | DFBResult
  function DFBResult (line 180) | DFBResult
  function DFBResult (line 192) | DFBResult
  function DFBResult (line 215) | DFBResult
  function DFBResult (line 238) | DFBResult
  function DFBResult (line 249) | DFBResult
  function DFBResult (line 260) | DFBResult
  function DFBResult (line 294) | DFBResult
  function DFBResult (line 308) | DFBResult
  function DFBResult (line 320) | DFBResult
  function DFBResult (line 330) | DFBResult
  function DFBResult (line 342) | DFBResult
  function DFBResult (line 354) | DFBResult
  function DFBResult (line 366) | DFBResult
  function DFBResult (line 379) | DFBResult
  function DFBResult (line 390) | DFBResult
  function DFBResult (line 409) | DFBResult
  function DFBResult (line 426) | DFBResult
  function DFBResult (line 446) | DFBResult
  function DFBResult (line 457) | DFBResult
  function DFBResult (line 469) | DFBResult
  function DFBResult (line 481) | DFBResult

FILE: src/core/clipboard.c
  function DFBResult (line 34) | static DFBResult
  function DFBResult (line 57) | static DFBResult
  function DFBResult (line 75) | static DFBResult
  function DFBResult (line 102) | static DFBResult
  function DFBResult (line 116) | static DFBResult
  function DFBResult (line 127) | static DFBResult
  function DFBResult (line 140) | DFBResult
  function DFBResult (line 195) | DFBResult
  function DFBResult (line 232) | DFBResult

FILE: src/core/clipboard.h
  type DFBClipboardCoreShared (line 27) | typedef struct {
  type DFBClipboardCore (line 39) | typedef struct {
  type timeval (line 53) | struct timeval
  type timeval (line 61) | struct timeval

FILE: src/core/colorhash.c
  function DFBResult (line 36) | static DFBResult
  function DFBResult (line 63) | static DFBResult
  function DFBResult (line 89) | static DFBResult
  function DFBResult (line 107) | static DFBResult
  function DFBResult (line 125) | static DFBResult
  function DFBResult (line 136) | static DFBResult
  function dfb_colorhash_lookup (line 149) | unsigned int
  function dfb_colorhash_invalidate (line 219) | void

FILE: src/core/colorhash.h
  type Colorhash (line 27) | typedef struct {
  type DFBColorHashCoreShared (line 33) | typedef struct {
  type DFBColorHashCore (line 37) | typedef struct {

FILE: src/core/core.c
  type __DFB_CoreCleanup (line 48) | struct __DFB_CoreCleanup {
  type __DFB_CoreMemoryPermission (line 56) | struct __DFB_CoreMemoryPermission {
  type ResourceIdentity (line 105) | typedef struct {
  function FusionCallHandlerResult (line 112) | static FusionCallHandlerResult
  function DFBResult (line 127) | DFBResult
  function DFBResult (line 276) | DFBResult
  function DFBResult (line 403) | DFBResult
  function CoreGraphicsState (line 467) | CoreGraphicsState *
  function CoreLayerContext (line 486) | CoreLayerContext *
  function CoreLayerRegion (line 505) | CoreLayerRegion *
  function CorePalette (line 524) | CorePalette *
  function CoreSurface (line 543) | CoreSurface *
  function CoreSurfaceAllocation (line 562) | CoreSurfaceAllocation *
  function CoreSurfaceBuffer (line 582) | CoreSurfaceBuffer *
  function CoreSurfaceClient (line 601) | CoreSurfaceClient *
  function CoreWindow (line 620) | CoreWindow *
  function DFBResult (line 639) | DFBResult
  function DFBResult (line 669) | DFBResult
  function DFBResult (line 699) | DFBResult
  function DFBResult (line 729) | DFBResult
  function DFBResult (line 759) | DFBResult
  function DFBResult (line 789) | DFBResult
  function DFBResult (line 819) | DFBResult
  function DFBResult (line 849) | DFBResult
  function DFBResult (line 879) | DFBResult
  function DirectResult (line 909) | DirectResult
  function DirectResult (line 929) | DirectResult
  function DirectResult (line 949) | DirectResult
  function DirectResult (line 969) | DirectResult
  function DirectResult (line 989) | DirectResult
  function DirectResult (line 1009) | DirectResult
  function DirectResult (line 1029) | DirectResult
  function DirectResult (line 1049) | DirectResult
  function DirectResult (line 1069) | DirectResult
  function dump_objects (line 1089) | static bool
  function dfb_core_dump_all (line 1102) | static void
  function DirectResult (line 1141) | static DirectResult
  function DirectResult (line 1214) | DirectResult
  function DirectResult (line 1240) | DirectResult
  function dfb_core_is_master (line 1268) | bool
  function dfb_core_activate (line 1276) | void
  function FusionWorld (line 1286) | FusionWorld *
  function FusionSHMPoolShared (line 1297) | FusionSHMPoolShared *
  function FusionSHMPoolShared (line 1315) | FusionSHMPoolShared *
  function DFBResult (line 1333) | DFBResult
  function DFBResult (line 1381) | DFBResult
  function CoreCleanup (line 1429) | CoreCleanup *
  function dfb_core_cleanup_remove (line 1455) | void
  function CoreFontManager (line 1471) | CoreFontManager *
  function DFBResult (line 1486) | DFBResult
  function DFBResult (line 1519) | DFBResult
  function DFBResult (line 1539) | DFBResult
  function dfb_core_deinit_check (line 1572) | static void
  function dfb_core_thread_init_handler (line 1584) | static void
  function dfb_core_process_cleanups (line 1591) | static void
  function DirectSignalHandlerResult (line 1609) | static DirectSignalHandlerResult
  function region_callback (line 1631) | static bool
  function DFBResult (line 1644) | static DFBResult
  function DFBResult (line 1737) | static DFBResult
  function DFBResult (line 1757) | static DFBResult
  function dfb_core_leave_callback (line 1787) | static void
  function DFBResult (line 1795) | static DFBResult
  function DFBResult (line 1854) | static DFBResult
  function DFBResult (line 1895) | static DFBResult
  function DFBResult (line 1926) | static DFBResult
  function core_tls_destroy (line 1947) | static void
  function Core_TLS__init (line 1959) | void
  function Core_TLS__deinit (line 1965) | void
  function CoreTLS (line 1971) | CoreTLS *
  function Core_PushIdentity (line 1996) | void
  function Core_PopIdentity (line 2013) | void
  function FusionID (line 2030) | FusionID
  function Core_PushCalling (line 2057) | void
  function Core_PopCalling (line 2068) | void
  function Core_GetCalling (line 2085) | int
  function DFBResult (line 2101) | DFBResult
  function DFBResult (line 2125) | DFBResult
  function DFBResult (line 2149) | DFBResult
  function DFBResult (line 2172) | DFBResult
  function DFBResult (line 2195) | DFBResult
  function DFBResult (line 2219) | DFBResult
  function Core_Resource_DisposeIdentity (line 2276) | void
  function ICoreResourceClient (line 2294) | ICoreResourceClient *
  function CoreSlave (line 2308) | CoreSlave *

FILE: src/core/core.h
  type CoreDFBShared (line 30) | typedef struct {
  type __DFB_CoreDFB (line 52) | struct __DFB_CoreDFB {
  type CorePartID (line 93) | typedef enum {
  type CoreMemoryPermissionFlags (line 105) | typedef enum {
  type AsyncCall (line 114) | typedef struct {
  type CoreTLS (line 123) | typedef struct {
  function DFBResult (line 386) | static __inline__ DFBResult

FILE: src/core/core_parts.c
  function DFBResult (line 27) | DFBResult
  function DFBResult (line 78) | DFBResult
  function DFBResult (line 116) | DFBResult
  function DFBResult (line 148) | DFBResult

FILE: src/core/core_parts.h
  type DFBResult (line 26) | typedef DFBResult (*CoreInitialize)( CoreDFB *core, void *data_local, vo...
  type DFBResult (line 27) | typedef DFBResult (*CoreJoin)      ( CoreDFB *core, void *data_local, vo...
  type DFBResult (line 28) | typedef DFBResult (*CoreShutdown)  ( void *data_local, bool emergency );
  type DFBResult (line 29) | typedef DFBResult (*CoreLeave)     ( void *data_local, bool emergency );
  type DFBResult (line 30) | typedef DFBResult (*CoreSuspend)   ( void *data_local );
  type DFBResult (line 31) | typedef DFBResult (*CoreResume)    ( void *data_local );
  type CorePart (line 33) | typedef struct {

FILE: src/core/coretypes.h
  type CardState (line 27) | typedef struct __DFB_CardState               CardState;
  type CoreCleanup (line 28) | typedef struct __DFB_CoreCleanup             CoreCleanup;
  type CoreDFB (line 29) | typedef struct __DFB_CoreDFB                 CoreDFB;
  type CoreGraphicsState (line 30) | typedef struct __DFB_CoreGraphicsState       CoreGraphicsState;
  type CoreGraphicsStateClient (line 31) | typedef struct __DFB_CoreGraphicsStateClient CoreGraphicsStateClient;
  type CoreFont (line 32) | typedef struct __DFB_CoreFont                CoreFont;
  type CoreFontCache (line 33) | typedef struct __DFB_CoreFontCache           CoreFontCache;
  type CoreFontCacheRow (line 34) | typedef struct __DFB_CoreFontCacheRow        CoreFontCacheRow;
  type CoreFontManager (line 35) | typedef struct __DFB_CoreFontManager         CoreFontManager;
  type CoreGlyphData (line 36) | typedef struct __DFB_CoreGlyphData           CoreGlyphData;
  type CoreInputDevice (line 37) | typedef struct __DFB_CoreInputDevice         CoreInputDevice;
  type CoreLayer (line 38) | typedef struct __DFB_CoreLayer               CoreLayer;
  type CoreLayerContext (line 39) | typedef struct __DFB_CoreLayerContext        CoreLayerContext;
  type CoreLayerRegion (line 40) | typedef struct __DFB_CoreLayerRegion         CoreLayerRegion;
  type CoreMemoryPermission (line 41) | typedef struct __DFB_CoreMemoryPermission    CoreMemoryPermission;
  type CorePalette (line 42) | typedef struct __DFB_CorePalette             CorePalette;
  type CoreScreen (line 43) | typedef struct __DFB_CoreScreen              CoreScreen;
  type CoreSurface (line 44) | typedef struct __DFB_CoreSurface             CoreSurface;
  type CoreSurfaceAllocation (line 45) | typedef struct __DFB_CoreSurfaceAllocation   CoreSurfaceAllocation;
  type CoreSurfaceBuffer (line 46) | typedef struct __DFB_CoreSurfaceBuffer       CoreSurfaceBuffer;
  type CoreSurfaceBufferLock (line 47) | typedef struct __DFB_CoreSurfaceBufferLock   CoreSurfaceBufferLock;
  type CoreSurfaceClient (line 48) | typedef struct __DFB_CoreSurfaceClient       CoreSurfaceClient;
  type CoreSurfaceConfig (line 49) | typedef struct __DFB_CoreSurfaceConfig       CoreSurfaceConfig;
  type CoreSurfacePool (line 50) | typedef struct __DFB_CoreSurfacePool         CoreSurfacePool;
  type CoreSurfacePoolBridge (line 51) | typedef struct __DFB_CoreSurfacePoolBridge   CoreSurfacePoolBridge;
  type CoreWindow (line 52) | typedef struct __DFB_CoreWindow              CoreWindow;
  type CoreWindowConfig (line 53) | typedef struct __DFB_CoreWindowConfig        CoreWindowConfig;
  type CoreWindowStack (line 54) | typedef struct __DFB_CoreWindowStack         CoreWindowStack;
  type GenefxState (line 55) | typedef struct __DFB_GenefxState             GenefxState;
  type GraphicsDeviceInfo (line 56) | typedef struct __DFB_GraphicsDeviceInfo      GraphicsDeviceInfo;
  type GraphicsDriverInfo (line 57) | typedef struct __DFB_GraphicsDriverInfo      GraphicsDriverInfo;
  type CoreGraphicsSerial (line 61) | typedef struct {
  type CoreWMGrabTarget (line 68) | typedef enum {
  type CoreSurfaceAccessorID (line 77) | typedef enum {
  type CoreSurfacePoolID (line 113) | typedef unsigned int CoreSurfacePoolID;
  type CoreSurfacePoolBridgeID (line 115) | typedef unsigned int CoreSurfacePoolBridgeID;

FILE: src/core/fluxcomp.py
  class Entity (line 39) | class Entity:
    method __init__ (line 40) | def __init__(self):
  class Interface (line 44) | class Interface(Entity):
    method SetProperty (line 45) | def SetProperty(self, name, value):
  class Method (line 54) | class Method(Entity):
    method SetProperty (line 58) | def SetProperty(self, name, value):
    method ArgumentsAsParamDecl (line 66) | def ArgumentsAsParamDecl(self):
    method ArgumentsAsMemberDecl (line 97) | def ArgumentsAsMemberDecl(self):
    method ArgumentsOutputAsMemberDecl (line 125) | def ArgumentsOutputAsMemberDecl(self):
    method ArgumentsAsMemberParams (line 148) | def ArgumentsAsMemberParams(self):
    method ArgumentsInputAssignments (line 191) | def ArgumentsInputAssignments(self):
    method ArgumentsOutputAssignments (line 242) | def ArgumentsOutputAssignments(self):
    method ArgumentsAssertions (line 267) | def ArgumentsAssertions(self):
    method ArgumentsOutputObjectDecl (line 276) | def ArgumentsOutputObjectDecl(self):
    method ArgumentsOutputTmpDecl (line 285) | def ArgumentsOutputTmpDecl(self):
    method ArgumentsInputObjectDecl (line 298) | def ArgumentsInputObjectDecl(self):
    method ArgumentsOutputObjectCatch (line 307) | def ArgumentsOutputObjectCatch(self):
    method ArgumentsOutputObjectThrow (line 325) | def ArgumentsOutputObjectThrow(self):
    method ArgumentsOutputTmpReturn (line 336) | def ArgumentsOutputTmpReturn(self):
    method ArgumentsInputObjectLookup (line 350) | def ArgumentsInputObjectLookup(self):
    method ArgumentsInputDebug (line 383) | def ArgumentsInputDebug(self):
    method ArgumentsInputObjectUnref (line 404) | def ArgumentsInputObjectUnref(self):
    method ArgumentsNames (line 415) | def ArgumentsNames(self):
    method ArgumentsSize (line 428) | def ArgumentsSize(self, output):
    method ArgumentsSizeReturn (line 449) | def ArgumentsSizeReturn(self):
  class Arg (line 461) | class Arg(Entity):
    method SetProperty (line 465) | def SetProperty(self, name, value):
    method formatCharacter (line 482) | def formatCharacter(self):
    method typeCast (line 497) | def typeCast(self):
    method size (line 506) | def size(self, use_args):
    method sizeMax (line 512) | def sizeMax(self):
    method sizeReturn (line 515) | def sizeReturn(self, method):
    method offset (line 523) | def offset(self, method, use_args, output):
  function GetEntities (line 544) | def GetEntities(position, out_vector):
  function GenerateHeader (line 610) | def GenerateHeader():
  function GenerateSource (line 736) | def GenerateSource():

FILE: src/core/fonts.c
  type __DFB_CoreFontCache (line 36) | struct __DFB_CoreFontCache {
  type __DFB_CoreFontCacheRow (line 48) | struct __DFB_CoreFontCacheRow {
  type __DFB_CoreFontManager (line 63) | struct __DFB_CoreFontManager {
  function DFBResult (line 79) | DFBResult
  function DFBResult (line 106) | DFBResult
  function font_cache_map_compare (line 122) | static bool
  function font_cache_map_hash (line 134) | static unsigned int
  function DFBResult (line 144) | DFBResult
  function DirectEnumerationResult (line 169) | static DirectEnumerationResult
  function DFBResult (line 185) | DFBResult
  function DFBResult (line 204) | DFBResult
  function DFBResult (line 218) | DFBResult
  function DFBResult (line 232) | DFBResult
  type FindLruRowContext (line 274) | typedef struct {
  function DirectEnumerationResult (line 279) | static DirectEnumerationResult
  function DFBResult (line 304) | DFBResult
  function DFBResult (line 344) | DFBResult
  function DFBResult (line 373) | DFBResult
  function DFBResult (line 385) | DFBResult
  function DFBResult (line 415) | DFBResult
  function DFBResult (line 440) | DFBResult
  function DFBResult (line 513) | DFBResult
  function DFBResult (line 535) | DFBResult
  function DFBResult (line 547) | DFBResult
  function DFBResult (line 582) | DFBResult
  function DFBResult (line 614) | DFBResult
  function dfb_font_destroy (line 666) | void
  function free_glyphs (line 701) | static bool
  function DFBResult (line 757) | DFBResult
  function DFBResult (line 779) | DFBResult
  function DFBResult (line 961) | DFBResult
  function DFBResult (line 1025) | DFBResult
  function DFBResult (line 1096) | DFBResult

FILE: src/core/fonts.h
  type CoreFontEncodingFuncs (line 29) | typedef struct {
  type CoreFontEncoding (line 41) | typedef struct {
  type CoreFontFlags (line 51) | typedef enum {
  type __DFB_CoreFont (line 59) | struct __DFB_CoreFont {
  type __DFB_CoreGlyphData (line 121) | struct __DFB_CoreGlyphData {
  type CoreFontCacheType (line 163) | typedef struct {
  function dfb_font_lock (line 288) | static __inline__ void
  function dfb_font_unlock (line 299) | static __inline__ void

FILE: src/core/gfxcard.c
  type DFBGraphicsCoreShared (line 46) | typedef struct {
  type DFBGraphicsCore (line 71) | typedef struct {
  function dfb_gfxcard_find_driver (line 99) | static void
  function InitDevice_Async (line 154) | static void
  function DFBResult (line 186) | static DFBResult
  function dfb_gfxcard_load_driver (line 281) | static void
  function DFBResult (line 316) | static DFBResult
  function DFBResult (line 381) | static DFBResult
  function DFBResult (line 424) | static DFBResult
  function DFBResult (line 448) | static DFBResult
  function DFBResult (line 461) | static DFBResult
  function DFBResult (line 480) | DFBResult
  function dfb_gfxcard_unlock (line 538) | void
  function DFBResult (line 553) | DFBResult
  function dfb_gfxcard_start_drawing (line 596) | void
  function dfb_gfxcard_stop_drawing (line 608) | void
  function dfb_gfxcard_state_check (line 620) | bool
  function dfb_gfxcard_state_acquire (line 831) | static bool
  function dfb_gfxcard_state_check_acquire (line 1019) | static bool
  function dfb_gfxcard_state_release (line 1427) | static void
  function dfb_gfxcard_state_init (line 1482) | void
  function dfb_gfxcard_state_destroy (line 1499) | void
  type DDA (line 1551) | typedef struct {
  function fill_tri (line 1592) | static void
  function dfb_gfxcard_fillrectangles (line 1652) | void
  function dfb_gfxcard_drawrectangle (line 1817) | void
  function dfb_gfxcard_drawlines (line 1924) | void
  function dfb_gfxcard_filltriangles (line 1979) | void
  function fill_trap (line 2091) | static void
  function dfb_gfxcard_filltrapezoids (line 2147) | void
  function dfb_gfxcard_fillquadrangles (line 2299) | void
  function dfb_gfxcard_fillspans (line 2369) | void
  function dfb_gfxcard_draw_mono_glyphs (line 2538) | void
  function GenefxVertexAffine_Transform (line 2576) | static void
  function dfb_gfxcard_blit_locked (line 2617) | static void
  function dfb_gfxcard_blit (line 2742) | void
  function clip_blits (line 2754) | static void
  function dfb_gfxcard_batchblit (line 2796) | void
  function dfb_gfxcard_batchblit2 (line 2988) | void
  function dfb_gfxcard_batchstretchblit (line 3068) | void
  function dfb_gfxcard_stretchblit (line 3208) | void
  function dfb_gfxcard_tileblit (line 3216) | void
  function dfb_gfxcard_texture_triangles (line 3403) | void
  function font_state_prepare (line 3459) | static void
  function font_state_restore (line 3514) | static void
  function dfb_gfxcard_drawstring (line 3525) | void
  function dfb_gfxcard_drawglyph (line 3648) | void
  function dfb_gfxcard_drawstring_check_state (line 3697) | bool
  function DFBResult (line 3750) | DFBResult
  function DFBResult (line 3767) | DFBResult
  function dfb_gfxcard_flush_texture_cache (line 3814) | void
  function dfb_gfxcard_flush_read_cache (line 3824) | void
  function dfb_gfxcard_after_set_var (line 3834) | void
  function dfb_gfxcard_get_capabilities (line 3844) | void
  function dfb_gfxcard_get_device_info (line 3854) | void
  function dfb_gfxcard_get_driver_info (line 3869) | void
  function dfb_gfxcard_reserve_memory (line 3884) | int
  function dfb_gfxcard_memory_length (line 3911) | unsigned int
  function dfb_gfxcard_unmap_mmio (line 3931) | void
  function dfb_gfxcard_get_accelerator (line 3938) | unsigned int
  function dfb_gfxcard_calc_buffer_size (line 3944) | void
  function dfb_gfxcard_memory_physical (line 4006) | unsigned long
  function dfb_gfxcard_update_stats (line 4041) | static void
  function dfb_gfxcard_switch_busy (line 4064) | static void
  function dfb_gfxcard_switch_idle (line 4088) | static void

FILE: src/core/gfxcard.h
  type GraphicsDriverVersion (line 34) | typedef struct {
  type __DFB_GraphicsDriverInfo (line 39) | struct __DFB_GraphicsDriverInfo {
  type CardCapabilitiesFlags (line 54) | typedef enum {
  type CardCapabilities (line 63) | typedef struct {
  type CardLimitations (line 72) | typedef struct {
  type __DFB_GraphicsDeviceInfo (line 85) | struct __DFB_GraphicsDeviceInfo {
  type GraphicsDeviceFuncs (line 94) | typedef struct _GraphicsDeviceFuncs {
  type GraphicsDriverFuncs (line 303) | typedef struct {
  type GraphicsDeviceLockFlags (line 323) | typedef enum {

FILE: src/core/graphics_state.c
  function state_destructor (line 27) | static void
  function FusionObjectPool (line 53) | FusionObjectPool *
  function DFBResult (line 67) | DFBResult

FILE: src/core/graphics_state.h
  type __DFB_CoreGraphicsState (line 26) | struct __DFB_CoreGraphicsState {
  type CoreGraphicsStateNotificationFlags (line 37) | typedef enum {
  type CoreGraphicsStateNotification (line 41) | typedef struct {

FILE: src/core/input.c
  type DFBInputCoreShared (line 44) | typedef struct {
  type DFBInputCore (line 52) | typedef struct {
  type InputDeviceHotplugEvent (line 72) | typedef struct {
  type DeadKeyCombo (line 78) | typedef struct {
  type DeadKeyMap (line 83) | typedef struct {
  function DFBResult (line 2097) | static DFBResult
  function lookup_from_table (line 2129) | static bool
  function find_key_code_by_id (line 2167) | static int
  function find_key_code_by_symbol (line 2193) | static int
  function fixup_key_event (line 2247) | static void
  function fixup_mouse_event (line 2476) | static void
  function DFBInputDeviceKeyIdentifier (line 2530) | static DFBInputDeviceKeyIdentifier
  function DFBInputDeviceKeySymbol (line 2643) | static DFBInputDeviceKeySymbol
  function dump_primary_layer_surface (line 2811) | static void
  function core_input_filter (line 2849) | static bool

FILE: src/core/input.h
  type InputDriverVersion (line 39) | typedef struct {
  type InputDriverInfo (line 44) | typedef struct {
  type InputDriverCapability (line 53) | typedef enum {
  type InputDeviceInfo (line 61) | typedef struct {
  type InputDeviceAxisInfoFlags (line 67) | typedef enum {
  type InputDeviceAxisInfo (line 76) | typedef struct {
  type InputDriverFuncs (line 82) | typedef struct {
  type InputDeviceKeymap (line 122) | typedef struct {
  type InputDeviceState (line 129) | typedef struct {
  type CoreInputDeviceShared (line 136) | typedef struct {
  type CoreInputDriver (line 163) | typedef struct {
  type __DFB_CoreInputDevice (line 177) | struct __DFB_CoreInputDevice {
  type DFBEnumerationResult (line 192) | typedef DFBEnumerationResult (*InputDeviceCallback)( CoreInputDevice *de...

FILE: src/core/input_driver.h
  function DFBResult (line 72) | static DFBResult
  function DFBResult (line 78) | static DFBResult
  function DFBResult (line 84) | static DFBResult
  function InputDriverCapability (line 91) | static InputDriverCapability
  function DFBResult (line 97) | static DFBResult
  function DFBResult (line 104) | static DFBResult

FILE: src/core/layer_context.c
  function context_destructor (line 36) | static void
  function FusionObjectPool (line 96) | FusionObjectPool *
  function screen_rectangle (line 110) | static void
  function init_region_config (line 153) | static void
  function update_stack_geometry (line 193) | static void
  function DFBResult (line 237) | DFBResult
  function DirectResult (line 321) | DirectResult
  function DirectResult (line 342) | DirectResult
  function dfb_layer_context_active (line 352) | bool
  function DFBResult (line 362) | DFBResult
  function DFBResult (line 435) | DFBResult
  function DFBResult (line 480) | DFBResult
  function DFBResult (line 516) | DFBResult
  function DFBResult (line 553) | DFBResult
  function build_updated_config (line 667) | static void
  function DFBResult (line 794) | DFBResult
  function DFBResult (line 877) | DFBResult
  function DFBResult (line 1070) | DFBResult
  function DFBResult (line 1086) | static DFBResult
  function DFBResult (line 1127) | DFBResult
  function DFBResult (line 1165) | DFBResult
  function DFBResult (line 1203) | DFBResult
  function DFBResult (line 1270) | DFBResult
  function DFBResult (line 1306) | DFBResult
  function DFBResult (line 1342) | DFBResult
  function DFBResult (line 1384) | DFBResult
  function DFBResult (line 1422) | DFBResult
  function DFBResult (line 1450) | DFBResult
  function DFBResult (line 1497) | DFBResult
  function DFBResult (line 1511) | DFBResult
  function DFBResult (line 1546) | DFBResult
  function DFBResult (line 1563) | DFBResult
  function DFBResult (line 1599) | DFBResult
  function DFBResult (line 1652) | DFBResult
  function DFBResult (line 1679) | DFBResult
  function DFBResult (line 1701) | DFBResult
  function CoreWindow (line 1768) | CoreWindow *
  function CoreWindowStack (line 1806) | CoreWindowStack *
  function DFBResult (line 1816) | DFBResult
  function DFBResult (line 1926) | DFBResult
  function DFBResult (line 2044) | DFBResult

FILE: src/core/layer_context.h
  type CoreLayerLayoutMode (line 26) | typedef enum {
  type __DFB_CoreLayerContext (line 33) | struct __DFB_CoreLayerContext {
  type CoreLayerContextNotificationFlags (line 82) | typedef enum {
  type CoreLayerContextNotification (line 87) | typedef struct {

FILE: src/core/layer_control.c
  function DFBResult (line 29) | DFBResult
  function DFBResult (line 72) | DFBResult
  function DFBResult (line 115) | DFBResult
  function DFBResult (line 170) | DFBResult
  function DFBResult (line 218) | DFBResult
  function DFBResult (line 300) | DFBResult
  function DFBResult (line 376) | DFBResult
  function DFBResult (line 456) | DFBResult
  function DFBResult (line 479) | DFBResult
  function DFBResult (line 497) | DFBResult
  function DFBResult (line 514) | DFBResult
  function DFBResult (line 523) | DFBResult

FILE: src/core/layer_region.c
  function region_destructor (line 63) | static void
  function FusionObjectPool (line 125) | FusionObjectPool *
  function DFBResult (line 139) | DFBResult
  function DirectResult (line 200) | DirectResult
  function DirectResult (line 208) | DirectResult
  function DFBResult (line 216) | DFBResult
  function DFBResult (line 254) | DFBResult
  function DFBResult (line 292) | DFBResult
  function DFBResult (line 330) | DFBResult
  function ReactionResult (line 366) | static ReactionResult
  function DFBResult (line 406) | DFBResult
  function DFBResult (line 485) | DFBResult
  function DFBResult (line 521) | DFBResult
  function DFBResult (line 727) | DFBResult
  function DFBResult (line 952) | DFBResult
  function DFBResult (line 966) | DFBResult
  function DFBResult (line 1103) | DFBResult
  function ReactionResult (line 1126) | ReactionResult
  function DFBResult (line 1239) | static DFBResult
  function DFBResult (line 1272) | static DFBResult
  function DFBResult (line 1341) | DFBResult
  function DFBResult (line 1414) | DFBResult
  function DFBResult (line 1496) | DFBResult

FILE: src/core/layer_region.h
  type CoreLayerRegionStateFlags (line 27) | typedef enum {
  type CoreLayerRegionConfig (line 39) | typedef struct {
  type __DFB_CoreLayerRegion (line 91) | struct __DFB_CoreLayerRegion {
  type CoreLayerRegionConfigFlags (line 121) | typedef enum {
  type CoreLayerRegionNotificationFlags (line 151) | typedef enum {
  type CoreLayerRegionNotification (line 155) | typedef struct {

FILE: src/core/layers.c
  type DFBLayerCoreShared (line 32) | typedef struct {
  type DFBLayerCore (line 39) | typedef struct {
  function DFBResult (line 54) | static DFBResult
  function DFBResult (line 176) | static DFBResult
  function DFBResult (line 213) | static DFBResult
  function DFBResult (line 293) | static DFBResult
  function DFBResult (line 322) | static DFBResult
  function DFBResult (line 338) | static DFBResult
  function CoreLayer (line 356) | CoreLayer *
  function CoreLayer (line 390) | CoreLayer *
  function dfb_layer_get_description (line 427) | void
  function DFBSurfacePixelFormat (line 442) | DFBSurfacePixelFormat
  function dfb_layers_enumerate (line 456) | void
  function dfb_layers_num (line 470) | int
  function CoreLayer (line 476) | CoreLayer *
  function CoreLayer (line 485) | CoreLayer *
  function DFBDisplayLayerID (line 503) | DFBDisplayLayerID
  function DFBDisplayLayerID (line 516) | DFBDisplayLayerID

FILE: src/core/layers.h
  type DisplayLayerFuncs (line 27) | typedef struct {
  type CoreLayerSource (line 215) | typedef struct {
  type CoreLayerContexts (line 220) | typedef struct {
  type CoreLayerShared (line 227) | typedef struct {
  type __DFB_CoreLayer (line 253) | struct __DFB_CoreLayer {
  type DFBEnumerationResult (line 270) | typedef DFBEnumerationResult (*DisplayLayerCallback)( CoreLayer *layer, ...

FILE: src/core/local_surface_pool.c
  type LocalAllocationData (line 29) | typedef struct {
  function localAllocationDataSize (line 38) | static int
  function DFBResult (line 44) | static DFBResult
  function DFBResult (line 70) | static DFBResult
  function DFBResult (line 84) | static DFBResult
  function DFBResult (line 96) | static DFBResult
  function DFBResult (line 108) | static DFBResult
  function DFBResult (line 164) | static DFBResult
  function DFBResult (line 190) | static DFBResult
  function DFBResult (line 213) | static DFBResult

FILE: src/core/palette.c
  function palette_destructor (line 35) | static void
  function FusionObjectPool (line 68) | FusionObjectPool *
  function DFBResult (line 82) | DFBResult
  function dfb_palette_generate_rgb332_map (line 137) | void
  function dfb_palette_generate_rgb121_map (line 160) | void
  function dfb_palette_search (line 183) | unsigned int
  function dfb_palette_update (line 201) | void
  function dfb_palette_equal (line 227) | bool

FILE: src/core/palette.h
  type __DFB_CorePalette (line 27) | struct __DFB_CorePalette {
  type CorePaletteNotificationFlags (line 43) | typedef enum {
  type CorePaletteNotification (line 48) | typedef struct {
  type DFB_PALETTE_GLOBALS (line 67) | typedef enum {

FILE: src/core/prealloc_surface_pool.c
  type PreallocAllocationData (line 28) | typedef struct {
  function preallocAllocationDataSize (line 35) | static int
  function DFBResult (line 41) | static DFBResult
  function DFBResult (line 64) | static DFBResult
  function DFBResult (line 85) | static DFBResult
  function DFBResult (line 136) | static DFBResult
  function DFBResult (line 152) | static DFBResult
  function DFBResult (line 185) | static DFBResult
  function DFBResult (line 202) | static DFBResult

FILE: src/core/prealloc_surface_pool_bridge.c
  type preallocPoolBridgeData (line 30) | typedef struct {
  function preallocPoolBridgeDataSize (line 37) | static int
  function DFBResult (line 43) | static DFBResult
  function DFBResult (line 75) | static DFBResult
  function DFBResult (line 91) | static DFBResult
  function DFBResult (line 103) | static DFBResult
  function DFBResult (line 115) | static DFBResult
  function DFBResult (line 147) | static DFBResult
  function DFBResult (line 210) | static DFBResult
  function DFBResult (line 274) | static DFBResult
  function DFBResult (line 319) | static DFBResult

FILE: src/core/screen.c
  function DFBResult (line 27) | DFBResult
  function DFBResult (line 50) | DFBResult
  function DFBResult (line 58) | DFBResult
  function DFBResult (line 66) | DFBResult
  function DFBResult (line 83) | DFBResult
  function DFBResult (line 99) | DFBResult
  function DFBResult (line 119) | DFBResult
  function DFBResult (line 141) | DFBResult
  function DFBResult (line 163) | DFBResult
  function DFBResult (line 200) | DFBResult
  function DFBResult (line 245) | DFBResult
  function DFBResult (line 267) | DFBResult
  function DFBResult (line 289) | DFBResult
  function DFBResult (line 326) | DFBResult
  function DFBResult (line 371) | DFBResult
  function DFBResult (line 393) | DFBResult
  function DFBResult (line 415) | DFBResult
  function DFBResult (line 452) | DFBResult
  function DFBResult (line 497) | DFBResult
  function DFBResult (line 515) | DFBResult
  function DFBResult (line 586) | DFBResult
  function DFBResult (line 651) | DFBResult

FILE: src/core/screens.c
  type DFBScreenCoreShared (line 33) | typedef struct {
  type DFBScreenCore (line 40) | typedef struct {
  function DFBResult (line 55) | static DFBResult
  function DFBResult (line 220) | static DFBResult
  function DFBResult (line 257) | static DFBResult
  function DFBResult (line 323) | static DFBResult
  function DFBResult (line 349) | static DFBResult
  function DFBResult (line 365) | static DFBResult
  function CoreScreen (line 383) | CoreScreen *
  function CoreScreen (line 411) | CoreScreen *
  function dfb_screens_enumerate (line 448) | void
  function dfb_screens_num (line 462) | unsigned int
  function CoreScreen (line 468) | CoreScreen *
  function CoreScreen (line 477) | CoreScreen *
  function DFBScreenID (line 498) | DFBScreenID
  function DFBScreenID (line 511) | DFBScreenID

FILE: src/core/screens.h
  type CoreMixerStateFlags (line 28) | typedef enum {
  type CoreMixerState (line 36) | typedef struct {
  type ScreenFuncs (line 42) | typedef struct {
  type CoreScreenMixer (line 205) | typedef struct {
  type CoreScreenEncoder (line 210) | typedef struct {
  type CoreScreenOutput (line 215) | typedef struct {
  type CoreScreenShared (line 220) | typedef struct {
  type __DFB_CoreScreen (line 236) | struct __DFB_CoreScreen {
  type DFBEnumerationResult (line 249) | typedef DFBEnumerationResult (*CoreScreenCallback)( CoreScreen *screen, ...

FILE: src/core/shared_secure_surface_pool.c
  type SharedPoolData (line 32) | typedef struct {
  type SharedPoolLocalData (line 36) | typedef struct {
  type SharedAllocationData (line 41) | typedef struct {
  function sharedSecurePoolDataSize (line 50) | static int
  function sharedSecurePoolLocalDataSize (line 56) | static int
  function sharedSecureAllocationDataSize (line 62) | static int
  function DFBResult (line 68) | static DFBResult
  function DFBResult (line 140) | static DFBResult
  function DFBResult (line 159) | static DFBResult
  function DFBResult (line 229) | static DFBResult
  function DFBResult (line 259) | static DFBResult
  function DFBResult (line 311) | static DFBResult

FILE: src/core/shared_surface_pool.c
  type SharedPoolData (line 32) | typedef struct {
  type SharedPoolLocalData (line 36) | typedef struct {
  type SharedAllocationData (line 41) | typedef struct {
  function sharedPoolDataSize (line 50) | static int
  function sharedPoolLocalDataSize (line 56) | static int
  function sharedAllocationDataSize (line 62) | static int
  function DFBResult (line 68) | static DFBResult
  function DFBResult (line 106) | static DFBResult
  function DFBResult (line 123) | static DFBResult
  function DFBResult (line 182) | static DFBResult
  function DFBResult (line 202) | static DFBResult
  function DFBResult (line 229) | static DFBResult

FILE: src/core/state.c
  function validate_clip (line 28) | static __inline__ void
  function dfb_state_init (line 70) | int
  function dfb_state_destroy (line 134) | void
  function DFBResult (line 168) | DFBResult
  function DFBResult (line 213) | DFBResult
  function DFBResult (line 267) | DFBResult
  function DFBResult (line 305) | DFBResult
  function DFBResult (line 352) | DFBResult
  function DFBResult (line 390) | DFBResult
  function dfb_state_update (line 428) | void
  function dfb_state_update_destination (line 479) | void
  function dfb_state_update_sources (line 508) | void
  function DFBResult (line 545) | DFBResult
  function dfb_state_set_matrix (line 579) | void
  function dfb_state_set_src_colormatrix (line 595) | void
  function dfb_state_set_src_convolution (line 609) | void
  function dfb_state_set_color_or_index (line 623) | void
  function DFBResult (line 659) | DFBResult

FILE: src/core/state.h
  type CardStateFlags (line 34) | typedef enum {
  type StateModificationFlags (line 53) | typedef enum {
  type __DFB_CardState (line 86) | struct __DFB_CardState {
  function dfb_state_lock (line 256) | static __inline__ void
  function dfb_state_start_drawing (line 266) | static __inline__ void
  function dfb_state_stop_drawing (line 281) | static __inline__ void
  function dfb_state_unlock (line 296) | static __inline__ void
  function dfb_state_set_from (line 306) | static __inline__ void
  function dfb_state_set_to (line 322) | static __inline__ void
  function dfb_state_set_clip (line 338) | static __inline__ void
  function dfb_state_set_color (line 351) | static __inline__ void
  function dfb_state_set_colorkey (line 364) | static __inline__ void
  function dfb_state_set_source_mask_vals (line 377) | static __inline__ void
  function dfb_state_set_src_colorkey_extended (line 394) | static __inline__ void
  function dfb_state_set_dst_colorkey_extended (line 409) | static __inline__ void

FILE: src/core/surface.c
  function dfb_surface_set_stereo_eye (line 44) | static __inline__ void
  function DFBSurfaceStereoEye (line 57) | static __inline__ DFBSurfaceStereoEye
  function keep_frame (line 68) | static void
  function release_frame (line 102) | static void
  function surface_destructor_buffers_iterator (line 139) | static bool
  function surface_destructor (line 163) | static void
  function FusionObjectPool (line 237) | FusionObjectPool *
  function DFBResult (line 251) | DFBResult
  function DFBResult (line 473) | DFBResult
  function DFBResult (line 503) | DFBResult
  function DFBResult (line 539) | DFBResult
  function DFBResult (line 567) | DFBResult
  function DFBResult (line 580) | DFBResult
  function DFBResult (line 601) | DFBResult
  function DFBResult (line 625) | DFBResult
  function DFBResult (line 669) | DFBResult
  function DFBResult (line 683) | DFBResult
  function DFBResult (line 722) | DFBResult
  function DFBResult (line 741) | DFBResult
  function DFBResult (line 811) | DFBResult
  function DFBResult (line 845) | DFBResult
  function DFBResult (line 999) | DFBResult
  function DFBResult (line 1021) | DFBResult
  function DFBResult (line 1060) | DFBResult
  function DFBResult (line 1093) | DFBResult
  function DFBResult (line 1113) | DFBResult
  function DFBResult (line 1153) | DFBResult
  function DFBResult (line 1194) | DFBResult
  function DFBResult (line 1209) | DFBResult
  function DFBResult (line 1310) | DFBResult
  function DFBResult (line 1414) | DFBResult
  function DFBResult (line 1440) | DFBResult
  function DFBResult (line 1473) | DFBResult
  function DFBResult (line 1734) | DFBResult
  function DFBResult (line 1766) | DFBResult
  function DFBResult (line 1797) | DFBResult
  function DFBResult (line 1817) | DFBResult
  function CoreSurfaceBuffer (line 1843) | CoreSurfaceBuffer *
  function CoreSurfaceBuffer (line 1857) | CoreSurfaceBuffer *
  function CoreSurfaceBuffer (line 1876) | CoreSurfaceBuffer *
  function ReactionResult (line 1904) | ReactionResult

FILE: src/core/surface.h
  type CoreSurfaceStateFlags (line 29) | typedef enum {
  type CoreSurfaceConfigFlags (line 37) | typedef enum {
  type __DFB_CoreSurfaceConfig (line 49) | struct __DFB_CoreSurfaceConfig {
  type CoreSurfaceTypeFlags (line 71) | typedef enum {
  type CoreSurfaceNotificationFlags (line 87) | typedef enum {
  type __DFB_CoreSurface (line 105) | struct __DFB_CoreSurface
  type CoreSurfaceAccessFlags (line 158) | typedef enum {
  type CoreSurfaceChannel (line 169) | typedef enum {
  type CoreSurfaceNotification (line 174) | typedef struct {
  type DFB_SURFACE_GLOBALS (line 201) | typedef enum {
  function DirectResult (line 357) | static __inline__ DirectResult
  function DirectResult (line 365) | static __inline__ DirectResult
  function DirectResult (line 373) | static __inline__ DirectResult
  function dfb_surface_get_data_offsets (line 381) | static __inline__ void
  function dfb_surface_calc_buffer_size (line 551) | static __inline__ void

FILE: src/core/surface_allocation.c
  function surface_allocation_destructor (line 33) | static void
  function FusionObjectPool (line 70) | FusionObjectPool *
  function DFBResult (line 84) | DFBResult
  function DFBResult (line 143) | DFBResult
  function transfer_buffer (line 203) | static void
  function DFBResult (line 288) | static DFBResult
  function DFBResult (line 342) | static DFBResult
  function DFBResult (line 381) | static DFBResult
  function DFBResult (line 420) | DFBResult
  function DFBResult (line 514) | DFBResult

FILE: src/core/surface_allocation.h
  type CoreSurfaceAllocationFlags (line 26) | typedef enum {
  type __DFB_CoreSurfaceAllocation (line 40) | struct __DFB_CoreSurfaceAllocation {
  type CoreSurfaceAllocationNotificationFlags (line 93) | typedef enum {
  type CoreSurfaceAllocationNotification (line 101) | typedef struct {
  function dfb_surface_allocation_locks (line 136) | static __inline__ int

FILE: src/core/surface_buffer.c
  function surface_buffer_destructor (line 33) | static void
  function FusionObjectPool (line 71) | FusionObjectPool *
  function DFBResult (line 85) | DFBResult
  function DFBResult (line 161) | DFBResult
  function DFBResult (line 181) | DFBResult
  function CoreSurfaceAllocation (line 201) | CoreSurfaceAllocation *
  function CoreSurfaceAllocation (line 279) | CoreSurfaceAllocation *
  function DFBResult (line 303) | DFBResult
  function DFBResult (line 403) | DFBResult
  function DFBResult (line 437) | DFBResult
  function DFBResult (line 451) | DFBResult
  function DFBResult (line 708) | static DFBResult
  function DFBResult (line 735) | DFBResult
  function DFBResult (line 743) | DFBResult

FILE: src/core/surface_buffer.h
  type CoreSurfacePolicy (line 26) | typedef enum {
  type CoreSurfaceBufferFlags (line 33) | typedef enum {
  type __DFB_CoreSurfaceBuffer (line 42) | struct __DFB_CoreSurfaceBuffer {
  type __DFB_CoreSurfaceBufferLock (line 69) | struct __DFB_CoreSurfaceBufferLock {
  type CoreSurfaceBufferNotificationFlags (line 113) | typedef enum {
  type CoreSurfaceBufferNotification (line 117) | typedef struct {
  function dfb_surface_buffer_lock_reset (line 183) | static __inline__ void
  function dfb_surface_buffer_lock_init (line 197) | static __inline__ void
  function dfb_surface_buffer_lock_deinit (line 210) | static __inline__ void
  function dfb_surface_buffer_index (line 221) | static __inline__ int

FILE: src/core/surface_client.c
  function surface_client_destructor (line 29) | static void
  function FusionObjectPool (line 68) | FusionObjectPool *
  function DFBResult (line 82) | DFBResult

FILE: src/core/surface_client.h
  type __DFB_CoreSurfaceClient (line 27) | struct __DFB_CoreSurfaceClient {
  type CoreSurfaceClientNotificationFlags (line 43) | typedef enum {
  type CoreSurfaceClientNotification (line 47) | typedef struct {

FILE: src/core/surface_core.c
  function DFBEnumerationResult (line 47) | static DFBEnumerationResult
  function DFBEnumerationResult (line 151) | static DFBEnumerationResult
  function dump_surface_pools (line 172) | static void
  function DirectSignalHandlerResult (line 178) | static DirectSignalHandlerResult
  function DFBResult (line 188) | static DFBResult
  function DFBResult (line 258) | static DFBResult
  function DFBResult (line 301) | static DFBResult
  function DFBResult (line 328) | static DFBResult
  function DFBResult (line 354) | static DFBResult
  function DFBResult (line 365) | static DFBResult

FILE: src/core/surface_core.h
  type DFBSurfaceCoreShared (line 26) | typedef struct {
  type DFBSurfaceCore (line 35) | typedef struct __DFB_DFBSurfaceCore {

FILE: src/core/surface_pool.c
  function SurfacePoolFuncs (line 40) | static __inline__ const SurfacePoolFuncs *
  function DFBResult (line 71) | DFBResult
  function DFBResult (line 79) | DFBResult
  function DFBResult (line 146) | DFBResult
  function DFBResult (line 154) | DFBResult
  function DFBResult (line 219) | DFBResult
  function DFBResult (line 254) | DFBResult
  function DFBResult (line 277) | DFBResult
  function DFBResult (line 332) | DFBResult
  function DFBResult (line 486) | DFBResult
  function DFBResult (line 508) | DFBResult
  function DFBResult (line 532) | DFBResult
  function DFBResult (line 640) | DFBResult
  function DFBResult (line 714) | DFBResult
  function DFBResult (line 743) | DFBResult
  function DFBResult (line 833) | DFBResult
  function DFBResult (line 882) | DFBResult
  function DFBResult (line 994) | DFBResult
  function DFBResult (line 1025) | DFBResult
  function DFBResult (line 1063) | DFBResult
  function DFBResult (line 1099) | DFBResult
  function DFBResult (line 1149) | DFBResult
  function DFBResult (line 1197) | DFBResult
  function DFBResult (line 1220) | static DFBResult
  function insert_pool_local (line 1286) | static void
  function remove_pool_local (line 1322) | static void
  function remove_allocation (line 1349) | static void
  function DFBResult (line 1375) | static DFBResult

FILE: src/core/surface_pool.h
  type CoreSurfacePoolCapabilities (line 26) | typedef enum {
  type CoreSurfacePoolPriority (line 37) | typedef enum {
  type CoreSurfacePoolDescription (line 45) | typedef struct {
  type SurfacePoolFuncs (line 53) | typedef struct {
  type __DFB_CoreSurfacePool (line 198) | struct __DFB_CoreSurfacePool {
  type DFBEnumerationResult (line 222) | typedef DFBEnumerationResult (*CoreSurfacePoolCallback) ( CoreSurfacePoo...
  type DFBEnumerationResult (line 224) | typedef DFBEnumerationResult (*CoreSurfaceAllocCallback)( CoreSurfaceAll...

FILE: src/core/surface_pool_bridge.c
  function SurfacePoolBridgeFuncs (line 38) | static __inline__ const SurfacePoolBridgeFuncs *
  function DFBResult (line 70) | DFBResult
  function DFBResult (line 133) | DFBResult
  function DFBResult (line 200) | DFBResult
  function DFBResult (line 234) | DFBResult
  function DFBResult (line 258) | DFBResult
  function DFBResult (line 280) | static DFBResult
  function deallocate_transfer (line 328) | static void
  function DFBResult (line 343) | DFBResult
  function DFBResult (line 437) | static DFBResult
  function insert_bridge_local (line 496) | static void
  function remove_bridge_local (line 532) | static void

FILE: src/core/surface_pool_bridge.h
  type CoreSurfacePoolBridgeCapabilities (line 26) | typedef enum {
  type CoreSurfacePoolBridgeDescription (line 34) | typedef struct {
  type CoreSurfacePoolTransfer (line 40) | typedef struct {
  type SurfacePoolBridgeFuncs (line 57) | typedef struct {
  type __DFB_CoreSurfacePoolBridge (line 115) | struct __DFB_CoreSurfacePoolBridge {
  type DFBEnumerationResult (line 137) | typedef DFBEnumerationResult (*CoreSurfacePoolBridgeCallback)( CoreSurfa...

FILE: src/core/system.c
  type DFBSystemCoreShared (line 30) | typedef struct {
  type DFBSystemCore (line 36) | typedef struct {
  function DFBResult (line 53) | static DFBResult
  function DFBResult (line 81) | static DFBResult
  function DFBResult (line 122) | static DFBResult
  function DFBResult (line 154) | static DFBResult
  function DFBResult (line 179) | static DFBResult
  function DFBResult (line 192) | static DFBResult
  function DFBResult (line 207) | DFBResult
  function CoreSystemCapabilities (line 254) | CoreSystemCapabilities
  function VideoMode (line 266) | VideoMode *
  function VideoMode (line 274) | VideoMode *
  function DFBResult (line 282) | DFBResult
  function dfb_system_input_filter (line 290) | bool
  function dfb_system_unmap_mmio (line 308) | void
  function dfb_system_get_accelerator (line 317) | unsigned int
  function dfb_system_video_memory_physical (line 325) | unsigned long
  function dfb_system_videoram_length (line 341) | unsigned int
  function dfb_system_get_busid (line 349) | void
  function dfb_system_get_deviceid (line 368) | void

FILE: src/core/system.h
  type CoreSystemVersion (line 37) | typedef struct {
  type CoreSystemCapabilities (line 42) | typedef enum {
  type CoreSystemInfo (line 56) | typedef struct {
  type CoreSystemFuncs (line 67) | typedef struct {

FILE: src/core/video_mode.h
  type VideoMode (line 24) | typedef struct _VideoMode {

FILE: src/core/windows.c
  type BoundWindow (line 36) | typedef struct {
  function window_destructor (line 50) | static void
  function FusionObjectPool (line 115) | FusionObjectPool *
  function DFBResult (line 129) | DFBResult
  function DFBResult (line 238) | static DFBResult
  function ReactionResult (line 278) | static ReactionResult
  function DFBResult (line 335) | DFBResult
  function dfb_window_destroy (line 667) | void
  function DFBResult (line 757) | DFBResult
  function DFBResult (line 799) | DFBResult
  function DFBResult (line 833) | DFBResult
  function DFBResult (line 868) | DFBResult
  function DFBResult (line 898) | DFBResult
  function DFBResult (line 928) | DFBResult
  function DFBResult (line 958) | DFBResult
  function DFBResult (line 988) | DFBResult
  function DFBResult (line 1019) | DFBResult
  function DFBResult (line 1050) | DFBResult
  function DFBResult (line 1078) | DFBResult
  function DFBResult (line 1121) | static DFBResult
  function DFBResult (line 1146) | DFBResult
  function DFBResult (line 1190) | DFBResult
  function DFBResult (line 1256) | DFBResult
  function DFBResult (line 1298) | DFBResult
  function DFBResult (line 1357) | DFBResult
  function DFBResult (line 1406) | DFBResult
  function DFBResult (line 1443) | DFBResult
  function DFBResult (line 1478) | DFBResult
  function DFBResult (line 1513) | DFBResult
  function DFBResult (line 1549) | DFBResult
  function DFBResult (line 1586) | DFBResult
  function DFBResult (line 1622) | DFBResult
  function DFBResult (line 1659) | DFBResult
  function DFBResult (line 1695) | DFBResult
  function DFBResult (line 1728) | DFBResult
  function core_window_filter (line 1761) | static bool
  function dfb_window_post_event (line 1791) | void
  function DFBResult (line 1829) | DFBResult
  function DFBResult (line 1849) | DFBResult
  function DFBResult (line 1875) | DFBResult

FILE: src/core/windows.h
  type CoreWindowFlags (line 28) | typedef enum {
  type __DFB_CoreWindowConfig (line 46) | struct __DFB_CoreWindowConfig {
  type __DFB_CoreWindow (line 70) | struct __DFB_CoreWindow {
  function dfb_surface_caps_apply_policy (line 362) | static __inline__ void

FILE: src/core/windowstack.c
  type Stack_Container (line 37) | typedef struct {
  type StackDevice (line 42) | typedef struct {
  function stack_containers_add (line 52) | static void
  function stack_containers_remove (line 73) | static void
  function DFBEnumerationResult (line 92) | static DFBEnumerationResult
  function stack_containers_attach_device (line 116) | void
  function DFBEnumerationResult (line 132) | static DFBEnumerationResult
  function stack_containers_detach_device (line 164) | void
  function CoreWindowStack (line 182) | CoreWindowStack*
  function dfb_windowstack_detach_devices (line 260) | void
  function dfb_windowstack_destroy (line 285) | void
  function dfb_windowstack_resize (line 321) | void
  function DirectResult (line 383) | DirectResult
  function DirectResult (line 392) | DirectResult
  function DFBResult (line 401) | DFBResult
  function DFBResult (line 428) | DFBResult
  function DFBResult (line 462) | DFBResult
  function DFBResult (line 505) | DFBResult
  function DFBResult (line 536) | DFBResult
  function DFBResult (line 564) | static DFBResult
  function DFBResult (line 618) | static DFBResult
  function DFBResult (line 690) | DFBResult
  function DFBResult (line 731) | DFBResult
  function DFBResult (line 758) | DFBResult
  function DFBResult (line 842) | DFBResult
  function DFBResult (line 880) | DFBResult
  function DFBResult (line 904) | DFBResult
  function WindowStack_Input_Flush (line 931) | static void
  function WindowStack_Input_AddAbsolute (line 963) | static void
  function WindowStack_Input_AddRelative (line 973) | static void
  function WindowStack_Input_Add (line 989) | static void
  function WindowStack_Input_DispatchCleanup (line 1030) | static void
  function ReactionResult (line 1041) | ReactionResult
  function ReactionResult (line 1120) | ReactionResult

FILE: src/core/windowstack.h
  type CoreWindowStackFlags (line 30) | typedef enum {
  type __DFB_CoreWindowStack (line 39) | struct __DFB_CoreWindowStack {

FILE: src/core/wm.c
  type DFBWMCoreShared (line 35) | typedef struct {
  type DFBWMCore (line 49) | typedef struct {
  function DFBResult (line 68) | static DFBResult
  function DFBResult (line 107) | static DFBResult
  function DFBResult (line 206) | static DFBResult
  function DFBResult (line 286) | static DFBResult
  function DFBResult (line 339) | static DFBResult
  function DFBResult (line 376) | static DFBResult
  function DFBResult (line 396) | static DFBResult
  function dfb_wm_layer_context_callback (line 418) | static bool
  function DFBResult (line 449) | DFBResult
  function DFBResult (line 464) | DFBResult
  type AttachContext (line 479) | typedef struct {
  function convert_config (line 485) | static void
  function convert_state (line 508) | static void
  function DFBEnumerationResult (line 524) | static DFBEnumerationResult
  function dfb_wm_layer_context_WINDOW_ADD_callback (line 547) | static bool
  function DFBResult (line 574) | DFBResult
  function DFBResult (line 593) | DFBResult
  function DFBResult (line 602) | static DFBResult
  function DFBResult (line 613) | DFBResult
  function DFBResult (line 635) | DFBResult
  function DFBResult (line 646) | DFBResult
  function DFBResult (line 661) | DFBResult
  function DFBResult (line 674) | DFBResult
  function DFBResult (line 687) | DFBResult
  function DFBResult (line 706) | DFBResult
  function DFBResult (line 721) | DFBResult
  function DFBResult (line 769) | DFBResult
  function DFBResult (line 805) | DFBResult
  function DFBResult (line 850) | DFBResult
  function DFBResult (line 875) | DFBResult
  function DFBResult (line 901) | DFBResult
  function DFBResult (line 923) | DFBResult
  function DFBResult (line 950) | DFBResult
  function DFBResult (line 976) | DFBResult
  function DFBResult (line 1002) | DFBResult
  function DFBResult (line 1027) | DFBResult
  function DFBResult (line 1078) | DFBResult
  function DFBResult (line 1113) | DFBResult
  function DFBResult (line 1150) | DFBResult
  function DFBResult (line 1181) | DFBResult
  function DFBResult (line 1211) | DFBResult
  function apply_geometry (line 1244) | static void
  function DFBResult (line 1307) | DFBResult
  function DFBResult (line 1477) | DFBResult
  function DFBResult (line 1505) | DFBResult
  function DFBResult (line 1531) | DFBResult
  function DFBResult (line 1557) | DFBResult
  function DFBResult (line 1580) | DFBResult
  function DFBResult (line 1604) | DFBResult
  function DFBResult (line 1628) | DFBResult
  function DFBResult (line 1655) | DFBResult
  function DFBResult (line 1697) | DFBResult

FILE: src/core/wm.h
  type CoreWMVersion (line 38) | typedef struct {
  type CoreWMInfo (line 43) | typedef struct {
  type CoreWMGrab (line 57) | typedef struct {
  type CoreCursorUpdateFlags (line 64) | typedef enum {
  type DFBEnumerationResult (line 78) | typedef DFBEnumerationResult (*CoreWMWindowCallback)( CoreWindow *window...
  type CoreWMFuncs (line 80) | typedef struct {
  type CoreWMChannels (line 259) | typedef enum {
  type CoreWM_WindowAdd (line 269) | typedef struct {
  type CoreWM_WindowRemove (line 273) | typedef struct {
  type CoreWM_WindowConfig (line 277) | typedef struct {
  type CoreWM_WindowState (line 283) | typedef struct {
  type CoreWM_WindowRestack (line 288) | typedef struct {
  type CoreWM_WindowFocus (line 293) | typedef struct {

FILE: src/directfb.c
  function DFBResult (line 73) | DFBResult
  function DFBResult (line 94) | DFBResult
  function init_once (line 117) | static void
  function DFBResult (line 123) | DFBResult
  function DFBResult (line 211) | DFBResult
  function DFBResult (line 229) | DFBResult

FILE: src/directfb_result.c
  function DFBResult__init (line 31) | void
  function DFBResult__deinit (line 45) | void

FILE: src/display/idirectfbdisplaylayer.c
  type IDirectFBDisplayLayer_data (line 40) | typedef struct {
  function IDirectFBDisplayLayer_Destruct (line 61) | static void
  function DirectResult (line 81) | static DirectResult
  function DirectResult (line 93) | static DirectResult
  function DFBResult (line 106) | static DFBResult
  function DFBResult (line 122) | static DFBResult
  function DFBResult (line 139) | static DFBResult
  function DFBResult (line 161) | static DFBResult
  function DFBResult (line 172) | static DFBResult
  function DFBResult (line 227) | static DFBResult
  function DFBResult (line 250) | static DFBResult
  function DFBResult (line 326) | static DFBResult
  function DFBResult (line 340) | static DFBResult
  function DFBResult (line 359) | static DFBResult
  function DFBResult (line 386) | static DFBResult
  function DFBResult (line 411) | static DFBResult
  function DFBResult (line 434) | static DFBResult
  function DFBResult (line 459) | static DFBResult
  function DFBResult (line 477) | static DFBResult
  function DFBResult (line 498) | static DFBResult
  function DFBResult (line 512) | static DFBResult
  function DFBResult (line 534) | static DFBResult
  function DFBResult (line 548) | static DFBResult
  function DFBResult (line 570) | static DFBResult
  function DFBResult (line 593) | static DFBResult
  function DFBResult (line 616) | static DFBResult
  function DFBResult (line 639) | static DFBResult
  function DFBResult (line 656) | static DFBResult
  function DFBResult (line 684) | static DFBResult
  function DFBResult (line 715) | static DFBResult
  function DFBResult (line 737) | static DFBResult
  function DFBResult (line 751) | static DFBResult
  function DFBResult (line 771) | static DFBResult
  function DFBResult (line 852) | static DFBResult
  function DFBResult (line 877) | static DFBResult
  function DFBResult (line 894) | static DFBResult
  function DFBResult (line 925) | static DFBResult
  function DFBResult (line 945) | static DFBResult
  function DFBResult (line 967) | static DFBResult
  function DFBResult (line 1011) | static DFBResult
  function DFBResult (line 1028) | static DFBResult
  function DFBResult (line 1038) | static DFBResult
  function DFBResult (line 1066) | static DFBResult
  function DFBResult (line 1080) | static DFBResult
  function DFBResult (line 1096) | static DFBResult
  function DFBResult (line 1120) | static DFBResult
  function DFBResult (line 1143) | DFBResult

FILE: src/display/idirectfbpalette.c
  function IDirectFBPalette_Destruct (line 30) | static void
  function DirectResult (line 43) | static DirectResult
  function DirectResult (line 55) | static DirectResult
  function DFBResult (line 68) | static DFBResult
  function DFBResult (line 87) | static DFBResult
  function DFBResult (line 106) | static DFBResult
  function DFBResult (line 125) | static DFBResult
  function DFBResult (line 146) | static DFBResult
  function DFBResult (line 169) | static DFBResult
  function DFBResult (line 205) | static DFBResult
  function DFBResult (line 224) | static DFBResult
  function DFBResult (line 245) | static DFBResult
  function DFBResult (line 279) | DFBResult

FILE: src/display/idirectfbpalette.h
  type IDirectFBPalette_data (line 27) | typedef struct {

FILE: src/display/idirectfbscreen.c
  type IDirectFBScreen_data (line 32) | typedef struct {
  type EnumDisplayLayers_Context (line 45) | typedef struct {
  function IDirectFBScreen_Destruct (line 55) | static void
  function DirectResult (line 63) | static DirectResult
  function DirectResult (line 75) | static DirectResult
  function DFBResult (line 88) | static DFBResult
  function DFBResult (line 104) | static DFBResult
  function DFBResult (line 120) | static DFBResult
  function DFBResult (line 148) | static DFBResult
  function DFBResult (line 171) | static DFBResult
  function DFBResult (line 193) | static DFBResult
  function DFBResult (line 203) | static DFBResult
  function DFBResult (line 225) | static DFBResult
  function DFBResult (line 246) | static DFBResult
  function DFBResult (line 282) | static DFBResult
  function DFBResult (line 317) | static DFBResult
  function DFBResult (line 339) | static DFBResult
  function DFBResult (line 360) | static DFBResult
  function DFBResult (line 396) | static DFBResult
  function DFBResult (line 431) | static DFBResult
  function DFBResult (line 453) | static DFBResult
  function DFBResult (line 474) | static DFBResult
  function DFBResult (line 510) | static DFBResult
  function DFBResult (line 545) | static DFBResult
  function DFBResult (line 567) | DFBResult
  function DFBResult (line 608) | static DFBResult
  function DFBResult (line 631) | static DFBResult
  function DFBResult (line 714) | static DFBResult
  function DFBEnumerationResult (line 740) | static DFBEnumerationResult

FILE: src/display/idirectfbsurface.c
  function DFBResult (line 42) | static DFBResult
  function DFBResult (line 77) | static DFBResult
  function IDirectFBSurface_Destruct (line 92) | void
  function DirectResult (line 196) | static DirectResult
  function DirectResult (line 208) | static DirectResult
  function DFBResult (line 238) | static DFBResult
  function DFBResult (line 254) | static DFBResult
  function DFBResult (line 275) | static DFBResult
  function DFBResult (line 296) | static DFBResult
  function DFBResult (line 315) | static DFBResult
  function DFBResult (line 334) | static DFBResult
  function DFBResult (line 353) | static DFBResult
  function DFBResult (line 395) | static DFBResult
  function DFBResult (line 434) | static DFBResult
  function DFBResult (line 465) | static DFBResult
  function DFBResult (line 484) | static DFBResult
  function DFBResult (line 503) | static DFBResult
  function DFBResult (line 524) | static DFBResult
  function DFBResult (line 625) | static DFBResult
  function DFBResult (line 652) | static DFBResult
  function DFBResult (line 671) | DFBResult
  function DFBResult (line 760) | DFBResult
  function DFBResult (line 862) | static DFBResult
  function DFBResult (line 884) | static DFBResult
  function DFBResult (line 946) | static DFBResult
  function DFBResult (line 989) | static DFBResult
  function DFBResult (line 1010) | static DFBResult
  function DFBResult (line 1037) | static DFBResult
  function DFBResult (line 1074) | static DFBResult
  function DFBResult (line 1104) | static DFBResult
  function DFBResult (line 1134) | static DFBResult
  function DFBResult (line 1213) | static DFBResult
  function DFBResult (line 1242) | static DFBResult
  function DFBResult (line 1270) | static DFBResult
  function DFBResult (line 1301) | static DFBResult
  function DFBResult (line 1331) | static DFBResult
  function DFBResult (line 1344) | static DFBResult
  function DFBResult (line 1433) | static DFBResult
  function DFBResult (line 1525) | static DFBResult
  function DFBResult (line 1610) | static DFBResult
  function DFBResult (line 1650) | static DFBResult
  function DFBResult (line 1759) | static DFBResult
  function DFBResult (line 1772) | static DFBResult
  function DFBResult (line 1806) | static DFBResult
  function DFBResult (line 1840) | static DFBResult
  function DFBResult (line 1901) | static DFBResult
  function DFBResult (line 1975) | static DFBResult
  function DFBResult (line 2012) | static DFBResult
  function DFBResult (line 2069) | static DFBResult
  function DFBResult (line 2110) | static DFBResult
  function DFBResult (line 2161) | static DFBResult
  function DFBResult (line 2196) | static DFBResult
  function DFBResult (line 2223) | static DFBResult
  function DFBResult (line 2342) | static DFBResult
  function DFBResult (line 2437) | static DFBResult
  function DFBResult (line 2450) | static DFBResult
  function DFBResult (line 2529) | static DFBResult
  function DFBResult (line 2564) | static DFBResult
  function DFBResult (line 2592) | static DFBResult
  function DFBResult (line 2608) | static DFBResult
  function DFBResult (line 2624) | static DFBResult
  function DFBResult (line 2646) | static DFBResult
  function DFBResult (line 2659) | static DFBResult
  function DFBResult (line 2675) | static DFBResult
  function DFBResult (line 2714) | static DFBResult
  function DFBResult (line 2793) | static DFBResult
  function DFBResult (line 2820) | static DFBResult
  function DFBResult (line 2847) | static DFBResult
  function DFBResult (line 2883) | static DFBResult
  function DFBResult (line 2997) | static DFBResult
  function DFBResult (line 3022) | static DFBResult
  function DFBResult (line 3073) | static DFBResult
  function DFBResult (line 3111) | static DFBResult
  function DFBResult (line 3124) | static DFBResult
  function DFBResult (line 3137) | static DFBResult
  function DFBResult (line 3178) | static DFBResult
  function DFBResult (line 3194) | static DFBResult
  function DFBResult (line 3210) | static DFBResult
  function DFBResult (line 3229) | static DFBResult
  function DFBResult (line 3243) | static DFBResult
  function DFBResult (line 3267) | static DFBResult
  function DFBResult (line 3283) | static DFBResult
  function DFBResult (line 3294) | static DFBResult
  function DFBResult (line 3397) | static DFBResult
  function DFBResult (line 3418) | static DFBResult
  function DFBResult (line 3443) | static DFBResult
  function DFBResult (line 3469) | static DFBResult
  function DFBResult (line 3535) | static DFBResult
  function DFBResult (line 3558) | static DFBResult
  function DFBResult (line 3601) | static DFBResult
  function DFBResult (line 3641) | static DFBResult
  function DFBResult (line 3707) | static DFBResult
  function ReactionResult (line 3719) | static ReactionResult
  function ReactionResult (line 3771) | static ReactionResult
  function DFBResult (line 3803) | DFBResult
  function IDirectFBSurface_StopAll (line 4033) | void
  function IDirectFBSurface_WaitForBackBuffer (line 4057) | void

FILE: src/display/idirectfbsurface.h
  type DFBResult (line 25) | typedef DFBResult (*FlipFunc)( void *ctx );
  type IDirectFBSurface_data (line 30) | typedef struct {

FILE: src/display/idirectfbsurface_layer.c
  type IDirectFBSurface_Layer_data (line 32) | typedef struct {
  function IDirectFBSurface_Layer_Destruct (line 40) | static void
  function DirectResult (line 52) | static DirectResult
  function DFBResult (line 65) | static DFBResult
  function DFBResult (line 148) | static DFBResult
  function DFBResult (line 239) | static DFBResult
  function DFBResult (line 320) | DFBResult

FILE: src/display/idirectfbsurface_window.c
  type IDirectFBSurface_Window_data (line 32) | typedef struct {
  function IDirectFBSurface_Window_Destruct (line 42) | static void
  function DirectResult (line 60) | static DirectResult
  function DFBResult (line 73) | static DFBResult
  function DFBResult (line 97) | static DFBResult
  function DFBResult (line 122) | static DFBResult
  function DFBResult (line 229) | DFBResult

FILE: src/display/idirectfbsurfaceallocation.c
  type IDirectFBSurfaceAllocation_data (line 32) | typedef struct {
  function IDirectFBSurfaceAllocation_Destruct (line 44) | static void
  function DirectResult (line 65) | static DirectResult
  function DirectResult (line 77) | static DirectResult
  function DFBResult (line 90) | static DFBResult
  function DFBResult (line 113) | static DFBResult
  function DFBResult (line 143) | static DFBResult
  function DFBResult (line 173) | static DFBResult
  function DFBResult (line 191) | DFBResult

FILE: src/gfx/clip.c
  function DFBBoolean (line 32) | DFBBoolean
  function DFBBoolean (line 102) | DFBBoolean
  function DFBBoolean (line 135) | DFBBoolean
  function DFBEdgeFlags (line 262) | DFBEdgeFlags
  function dfb_build_clipped_rectangle_outlines (line 301) | void
  function dfb_clip_blit (line 364) | void
  function dfb_clip_stretchblit (line 395) | void
  function dfb_clip_blit_flipped_rotated (line 424) | void

FILE: src/gfx/clip.h
  type DFBEdgeFlags (line 26) | typedef enum {
  function DFBBoolean (line 108) | static __inline__ DFBBoolean
  function DFBBoolean (line 120) | static __inline__ DFBBoolean

FILE: src/gfx/convert.c
  function dfb_pixel_to_color (line 64) | void
  function dfb_pixel_from_color (line 237) | unsigned long
  function dfb_pixel_to_components (line 368) | void
  function dfb_convert_to_rgb16 (line 502) | void
  function dfb_convert_to_rgb555 (line 939) | void
  function dfb_convert_to_rgb32 (line 1342) | void
  function dfb_convert_to_argb (line 1781) | void
  function dfb_convert_to_rgb24 (line 2267) | void
  function dfb_convert_to_a8 (line 2855) | void
  function dfb_convert_to_a4 (line 3025) | void

FILE: src/gfx/convert.h
  function u32 (line 584) | static __inline__ u32
  function dfb_argb_to_rgb332 (line 590) | static __inline__ void
  function dfb_argb_to_argb1555 (line 604) | static __inline__ void
  function dfb_argb_to_rgba5551 (line 618) | static __inline__ void
  function dfb_argb_to_argb2554 (line 632) | static __inline__ void
  function dfb_argb_to_argb4444 (line 646) | static __inline__ void
  function dfb_argb_to_rgba4444 (line 660) | static __inline__ void
  function dfb_argb_to_argb1666be (line 674) | static __inline__ void
  function dfb_argb_to_argb1666le (line 692) | static __inline__ void
  function dfb_argb_to_argb6666be (line 710) | static __inline__ void
  function dfb_argb_to_argb6666le (line 728) | static __inline__ void
  function dfb_argb_to_argb8565be (line 746) | static __inline__ void
  function dfb_argb_to_argb8565le (line 764) | static __inline__ void
  function dfb_argb_to_rgb18be (line 782) | static __inline__ void
  function dfb_argb_to_rgb18le (line 800) | static __inline__ void
  function dfb_argb_to_rgb16 (line 818) | static __inline__ void
  function dfb_argb_to_rgb444 (line 832) | static __inline__ void
  function dfb_argb_to_rgb555 (line 846) | static __inline__ void
  function dfb_argb_to_bgr555 (line 860) | static __inline__ void
  function dfb_argb_to_abgr (line 874) | static __inline__ void
  function dfb_argb_to_rgbaf88871 (line 888) | static __inline__ void
  function dfb_argb_to_a8 (line 902) | static __inline__ void

FILE: src/gfx/generic/generic.c
  function Cop_to_Aop_16 (line 523) | static void
  function Cop_to_Aop_24 (line 552) | static void
  function Cop_to_Aop_32 (line 574) | static void
  function Cop_to_Aop_8 (line 612) | static void
  function Cop_to_Aop_yuv422 (line 618) | static void
  function Cop_to_Aop_i420 (line 649) | static void
  function Cop_to_Aop_nv12 (line 660) | static void
  function Cop_to_Aop_nv16 (line 675) | static void
  function Cop_to_Aop_nv21 (line 688) | static void
  function Cop_to_Aop_18 (line 703) | static void
  function Cop_to_Aop_y444 (line 719) | static void
  function Cop_to_Aop_argb8565 (line 727) | static void
  function Cop_to_Aop_vyu (line 749) | static void
  function Cop_to_Aop_y42b (line 770) | static void
  function Cop_to_Aop_nv61 (line 778) | static void
  function Cop_to_Aop_nv24 (line 791) | static void
  function Cop_to_Aop_nv42 (line 804) | static void
  function Cop_toK_Aop_8 (line 870) | static void
  function Cop_toK_Aop_yuv422 (line 886) | static void
  function Cop_toK_Aop_alut44 (line 926) | static void
  function Cop_toK_Aop_y444 (line 942) | static void
  function Cop_toK_Aop_avyu (line 967) | static void
  function Sop_a8_to_Dacc (line 1036) | static void
  function Sop_yuy2_to_Dacc (line 1053) | static void
  function Sop_rgb332_to_Dacc (line 1089) | static void
  function Sop_uyvy_to_Dacc (line 1108) | static void
  function Sop_i420_to_Dacc (line 1144) | static void
  function Sop_lut8_to_Dacc (line 1165) | static void
  function Sop_alut44_to_Dacc (line 1185) | static void
  function Sop_nv12_to_Dacc (line 1206) | static void
  function Sop_nv21_to_Dacc (line 1226) | static void
  function Sop_ayuv_to_Dacc (line 1246) | static void
  function Sop_a4_to_Dacc (line 1265) | static void
  function Sop_y444_to_Dacc (line 1288) | static void
  function Sop_avyu_to_Dacc (line 1307) | static void
  function Sop_vyu_to_Dacc (line 1326) | static void
  function Sop_nv24_to_Dacc (line 1351) | static void
  function Sop_nv42_to_Dacc (line 1370) | static void
  function Sop_a8_Kto_Dacc (line 1442) | static void
  function Sop_yuy2_Kto_Dacc (line 1460) | static void
  function Sop_rgb332_Kto_Dacc (line 1539) | static void
  function Sop_uyvy_Kto_Dacc (line 1563) | static void
  function Sop_lut8_Kto_Dacc (line 1642) | static void
  function Sop_alut44_Kto_Dacc (line 1667) | static void
  function Sop_y444_Kto_Dacc (line 1693) | static void
  function Sop_avyu_Kto_Dacc (line 1721) | static void
  function Sop_vyu_Kto_Dacc (line 1745) | static void
  function Sop_a8_Sto_Dacc (line 1834) | static void
  function Sop_yuy2_Sto_Dacc (line 1856) | static void
  function Sop_rgb332_Sto_Dacc (line 1893) | static void
  function Sop_uyvy_Sto_Dacc (line 1915) | static void
  function Sop_i420_Sto_Dacc (line 1952) | static void
  function Sop_lut8_Sto_Dacc (line 1974) | static void
  function Sop_alut44_Sto_Dacc (line 1997) | static void
  function Sop_nv12_Sto_Dacc (line 2021) | static void
  function Sop_nv21_Sto_Dacc (line 2042) | static void
  function Sop_ayuv_Sto_Dacc (line 2063) | static void
  function Sop_a4_Sto_Dacc (line 2085) | static void
  function Sop_y444_Sto_Dacc (line 2112) | static void
  function Sop_avyu_Sto_Dacc (line 2134) | static void
  function Sop_vyu_Sto_Dacc (line 2156) | static void
  function Sop_nv24_Sto_Dacc (line 2185) | static void
  function Sop_nv42_Sto_Dacc (line 2206) | static void
  function Sop_a8_SKto_Dacc (line 2280) | static void
  function Sop_yuy2_SKto_Dacc (line 2303) | static void
  function Sop_rgb332_SKto_Dacc (line 2370) | static void
  function Sop_uyvy_SKto_Dacc (line 2397) | static void
  function Sop_lut8_SKto_Dacc (line 2464) | static void
  function Sop_alut44_SKto_Dacc (line 2492) | static void
  function Sop_y444_SKto_Dacc (line 2521) | static void
  function Sop_avyu_SKto_Dacc (line 2552) | static void
  function Sop_vyu_SKto_Dacc (line 2579) | static void
  function Sop_a8_TEX_to_Dacc (line 2672) | static void
  function Sacc_to_Aop_a8 (line 2801) | static void
  function Sacc_to_Aop_yuy2 (line 2818) | static void
  function Sacc_to_Aop_rgb332 (line 2877) | static void
  function Sacc_to_Aop_uyvy (line 2896) | static void
  function Sacc_to_Aop_i420 (line 2955) | static void
  function Sacc_to_Aop_lut8 (line 3008) | static void
  function Sacc_to_Aop_alut44 (line 3029) | static void
  function Sacc_to_Aop_nv12 (line 3051) | static void
  function Sacc_to_Aop_nv16 (line 3104) | static void
  function Sacc_to_Aop_nv21 (line 3154) | static void
  function Sacc_to_Aop_ayuv (line 3207) | static void
  function Sacc_to_Aop_a4 (line 3227) | static void
  function Sacc_to_Aop_y444 (line 3256) | static void
  function Sacc_to_Aop_avyu (line 3277) | static void
  function Sacc_to_Aop_vyu (line 3297) | static void
  function Sacc_to_Aop_y42b (line 3326) | static void
  function Sacc_to_Aop_nv61 (line 3375) | static void
  function Sacc_to_Aop_nv24 (line 3425) | static void
  function Sacc_to_Aop_nv42 (line 3459) | static void
  function Sacc_toK_Aop_a8 (line 3546) | static void
  function Sacc_toK_Aop_yuy2 (line 3563) | static void
  function Sacc_toK_Aop_rgb332 (line 3632) | static void
  function Sacc_toK_Aop_uyvy (line 3652) | static void
  function Sacc_toK_Aop_lut8 (line 3721) | static void
  function Sacc_toK_Aop_alut44 (line 3743) | static void
  function Sacc_toK_Aop_y444 (line 3766) | static void
  function Sacc_toK_Aop_avyu (line 3792) | static void
  function Sacc_toK_Aop_vyu (line 3813) | static void
  function Sacc_Sto_Aop_a8 (line 3902) | static void
  function Sacc_Sto_Aop_yuy2 (line 3922) | static void
  function Sacc_Sto_Aop_rgb332 (line 3986) | static void
  function Sacc_Sto_Aop_uyvy (line 4009) | static void
  function Sacc_Sto_Aop_i420 (line 4073) | static void
  function Sacc_Sto_Aop_lut8 (line 4133) | static void
  function Sacc_Sto_Aop_alut44 (line 4158) | static void
  function Sacc_Sto_Aop_nv12 (line 4184) | static void
  function Sacc_Sto_Aop_nv16 (line 4243) | static void
  function Sacc_Sto_Aop_nv21 (line 4299) | static void
  function Sacc_Sto_Aop_ayuv (line 4358) | static void
  function Sacc_Sto_Aop_y444 (line 4382) | static void
  function Sacc_Sto_Aop_avyu (line 4407) | static void
  function Sacc_Sto_Aop_vyu (line 4431) | static void
  function Sacc_Sto_Aop_y42b (line 4464) | static void
  function Sacc_Sto_Aop_nv61 (line 4520) | static void
  function Sacc_Sto_Aop_nv24 (line 4576) | static void
  function Sacc_Sto_Aop_nv42 (line 4615) | static void
  function Sacc_StoK_Aop_y444 (line 4707) | static void
  function Sacc_StoK_Aop_avyu (line 4736) | static void
  function Sacc_StoK_Aop_vyu (line 4761) | static void
  function Bop_16_to_Aop (line 4854) | static void
  function Bop_24_to_Aop (line 4860) | static void
  function Bop_32_to_Aop (line 4866) | static void
  function Bop_8_to_Aop (line 4872) | static void
  function Bop_i420_to_Aop (line 4878) | static void
  function Bop_nv12_to_Aop (line 4888) | static void
  function Bop_nv16_to_Aop (line 4896) | static void
  function Bop_4_to_Aop (line 4903) | static void
  function Bop_y444_to_Aop (line 4909) | static void
  function Bop_y42b_to_Aop (line 4917) | static void
  function Bop_nv24_to_Aop (line 4925) | static void Bop_nv24_to_Aop( GenefxState *gfxs )
  function Bop_16_toR_Aop (line 4984) | static void
  function Bop_24_toR_Aop (line 5000) | static void
  function Bop_32_toR_Aop (line 5018) | static void
  function Bop_8_toR_Aop (line 5034) | static void
  function Bop_i420_toR_Aop (line 5050) | static void
  function Bop_nv12_toR_Aop (line 5072) | static void
  function Bop_nv16_toR_Aop (line 5090) | static void
  function Bop_4_toR_Aop (line 5106) | static void
  function Bop_y444_toR_Aop (line 5122) | static void
  function Bop_y42b_toR_Aop (line 5149) | static void
  function Bop_nv24_toR_Aop (line 5169) | static void
  function Bop_yuv422_toK_Aop (line 5238) | static void
  function Bop_rgb332_toK_Aop (line 5291) | static void
  function Bop_y444_toK_Aop (line 5309) | static void
  function Bop_8_toK_Aop (line 5341) | static void
  function Bop_a8_Kto_Aop (line 5412) | static void
  function Bop_yuv422_Kto_Aop (line 5419) | static void
  function Bop_8_Kto_Aop (line 5482) | static void
  function Bop_alut44_Kto_Aop (line 5511) | static void
  function Bop_y444_Kto_Aop (line 5536) | static void
  function Bop_y444_KtoK_Aop (line 5625) | static void
  function Bop_16_Sto_Aop (line 5718) | static void
  function Bop_24_Sto_Aop (line 5752) | static void
  function Bop_32_Sto_Aop (line 5771) | static void
  function Bop_8_Sto_Aop (line 5786) | static void
  function Bop_yuy2_Sto_Aop (line 5801) | static void
  function Bop_uyvy_Sto_Aop (line 5838) | static void
  function Bop_i420_Sto_Aop (line 5875) | static void
  function Bop_nv12_Sto_Aop (line 5907) | static void
  function Bop_nv16_Sto_Aop (line 5932) | static void
  function Bop_y444_Sto_Aop (line 5954) | static void
  function Bop_y42b_Sto_Aop (line 5979) | static void
  function Bop_nv24_Sto_Aop (line 6006) | static void
  function Bop_a8_SKto_Aop (line 6078) | static void
  function Bop_yuy2_SKto_Aop (line 6094) | static void
  function Bop_8_SKto_Aop (line 6154) | static void
  function Bop_uyvy_SKto_Aop (line 6175) | static void
  function Bop_alut44_SKto_Aop (line 6233) | static void
  function Bop_y444_SKto_Aop (line 6254) | static void
  function Bop_y444_StoK_Aop (line 6337) | static void
  function Bop_y444_SKtoK_Aop (line 6424) | static void
  function Bop_24_TEX_to_Aop (line 6512) | static void
  function Bop_32_TEX_to_Aop (line 6535) | static void
  function Bop_argb_blend_alphachannel_src_invsrc_Aop_rgb16 (line 6612) | static void
  function Bop_argb_blend_alphachannel_src_invsrc_Aop_rgb32 (line 6641) | static void
  function Bop_argb_blend_alphachannel_src_invsrc_Aop_argb8565 (line 6666) | static void
  function Bop_argb_blend_alphachannel_one_invsrc_Aop_argb (line 6765) | static void
  function Bop_argb_blend_alphachannel_one_invsrc_premultiply_Aop_argb (line 6852) | static void
  function Bop_a8_set_alphapixel_Aop_argb1555 (line 6943) | static void
  function Bop_a8_set_alphapixel_Aop_rgb16 (line 6972) | static void
  function Bop_a8_set_alphapixel_Aop_rgb24 (line 6999) | static void
  function Bop_a8_set_alphapixel_Aop_rgb32 (line 7037) | static void
  function Bop_a8_set_alphapixel_Aop_argb (line 7064) | static void
  function Bop_a8_set_alphapixel_Aop_a8 (line 7093) | static void
  function Bop_a8_set_alphapixel_Aop_yuy2 (line 7115) | static void
  function Bop_a8_set_alphapixel_Aop_rgb332 (line 7168) | static void
  function Bop_a8_set_alphapixel_Aop_uyvy (line 7194) | static void
  function Bop_a8_set_alphapixel_Aop_lut8 (line 7226) | static void
  function Bop_a8_set_alphapixel_Aop_alut44 (line 7243) | static void
  function Bop_a8_set_alphapixel_Aop_airgb (line 7276) | static void
  function Bop_a8_set_alphapixel_Aop_argb1666 (line 7306) | static void
  function Bop_a8_set_alphapixel_Aop_argb6666 (line 7335) | static void
  function Bop_a8_set_alphapixel_Aop_rgb18 (line 7365) | static void
  function Bop_a8_set_alphapixel_Aop_rgba5551 (line 7392) | static void
  function Bop_a8_set_alphapixel_Aop_y444 (line 7421) | static void
  function Bop_a8_set_alphapixel_Aop_argb8565 (line 7454) | static void
  function Bop_a8_set_alphapixel_Aop_vyu (line 7521) | static void
  function Bop_a8_set_alphapixel_Aop_bgr24 (line 7578) | static void
  function Bop_a1_set_alphapixel_Aop_argb1555 (line 7671) | static void
  function Bop_a1_set_alphapixel_Aop_rgb16 (line 7687) | static void
  function Bop_a1_set_alphapixel_Aop_rgb24 (line 7703) | static void
  function Bop_a1_set_alphapixel_Aop_rgb32 (line 7723) | static void
  function Bop_a1_set_alphapixel_Aop_argb (line 7739) | static void
  function Bop_a1_set_alphapixel_Aop_a8 (line 7755) | static void
  function Bop_a1_set_alphapixel_Aop_yuy2 (line 7770) | static void
  function Bop_a1_set_alphapixel_Aop_rgb332 (line 7787) | static void
  function Bop_a1_set_alphapixel_Aop_uyvy (line 7803) | static void
  function Bop_a1_set_alphapixel_Aop_lut8 (line 7820) | static void
  function Bop_a1_set_alphapixel_Aop_alut44 (line 7836) | static void
  function Bop_a1_set_alphapixel_Aop_airgb (line 7852) | static void
  function Bop_a1_set_alphapixel_Aop_argb2554 (line 7868) | static void
  function Bop_a1_set_alphapixel_Aop_argb4444 (line 7884) | static void
  function Bop_a1_set_alphapixel_Aop_rgba4444 (line 7900) | static void
  function Bop_a1_set_alphapixel_Aop_argb1666 (line 7916) | static void
  function Bop_a1_set_alphapixel_Aop_argb6666 (line 7938) | static void
  function Bop_a1_set_alphapixel_Aop_rgb18 (line 7960) | static void
  function Bop_a1_set_alphapixel_Aop_rgba5551 (line 7982) | static void
  function Bop_a1_set_alphapixel_Aop_y444 (line 7998) | static void
  function Bop_a1_set_alphapixel_Aop_argb8565 (line 8017) | static void
  function Bop_a1_set_alphapixel_Aop_bgr24 (line 8043) | static void
  function Bop_a1_lsb_set_alphapixel_Aop_argb1555 (line 8116) | static void
  function Bop_a1_lsb_set_alphapixel_Aop_rgb16 (line 8132) | static void
  function Bop_a1_lsb_set_alphapixel_Aop_rgb24 (line 8148) | static void
  function Bop_a1_lsb_set_alphapixel_Aop_rgb32 (line 8168) | static void
  function Bop_a1_lsb_set_alphapixel_Aop_argb (line 8184) | static void
  function Bop_a1_lsb_set_alphapixel_Aop_a8 (line 8200) | static void
  function Bop_a1_lsb_set_alphapixel_Aop_yuy2 (line 8215) | static void
  function Bop_a1_lsb_set_alphapixel_Aop_rgb332 (line 8232) | static void
  function Bop_a1_lsb_set_alphapixel_Aop_uyvy (line 8248) | static void
  function Bop_a1_lsb_set_alphapixel_Aop_lut8 (line 8265) | static void
  function Bop_a1_lsb_set_alphapixel_Aop_alut44 (line 8281) | static void
  function Bop_a1_lsb_set_alphapixel_Aop_airgb (line 8297) | static void
  function Bop_a1_lsb_set_alphapixel_Aop_argb2554 (line 8313) | static void
  function Bop_a1_lsb_set_alphapixel_Aop_argb4444 (line 8329) | static void
  function Bop_a1_lsb_set_alphapixel_Aop_argb1666 (line 8345) | static void
  function Bop_a1_lsb_set_alphapixel_Aop_argb6666 (line 8367) | static void
  function Bop_a1_lsb_set_alphapixel_Aop_rgb18 (line 8389) | static void
  function Bop_a1_lsb_set_alphapixel_Aop_bgr24 (line 8411) | static void
  function Bop_lut2_translate_to_Aop_lut8_C (line 8484) | static void
  function Xacc_blend_zero (line 8527) | static void
  function Xacc_blend_one (line 8543) | static void
  function Xacc_blend_srccolor (line 8556) | static void
  function Xacc_blend_invsrccolor (line 8602) | static void
  function Xacc_blend_srcalpha (line 8648) | static void
  function Xacc_blend_invsrcalpha (line 8692) | static void
  function Xacc_blend_dstalpha (line 8736) | static void
  function Xacc_blend_invdstalpha (line 8761) | static void
  function Xacc_blend_destcolor (line 8786) | static void
  function Xacc_blend_invdestcolor (line 8809) | static void
  function Xacc_blend_srcalphasat (line 8832) | static void
  function Dacc_set_alpha (line 8897) | static void
  function Dacc_modulate_alpha (line 8913) | static void
  function Dacc_modulate_rgb (line 8929) | static void
  function Dacc_modulate_rgb_set_alpha (line 8947) | static void
  function Dacc_modulate_argb (line 8967) | static void
  function Dacc_modulate_mask_alpha_ARGB (line 9001) | static void
  function Dacc_modulate_mask_alpha_A8 (line 9018) | static void
  function Dacc_modulate_mask_rgb_ARGB (line 9088) | static void
  function Dacc_modulate_mask_argb_ARGB (line 9160) | static void
  function Dacc_premultiply_C (line 9233) | static void
  function Dacc_premultiply_color_alpha_C (line 9256) | static void
  function Dacc_demultiply_C (line 9278) | static void
  function Dacc_xor_C (line 9301) | static void
  function Dacc_clamp_C (line 9324) | static void
  function Sacc_xor_Dacc_C (line 9350) | static void
  function Cacc_to_Dacc_C (line 9374) | static void
  function SCacc_add_to_Dacc_C (line 9389) | static void
  function Sacc_add_to_Dacc_C (line 9412) | static void
  function Dacc_RGB_to_YCbCr_BT601_C (line 9440) | static void
  function Dacc_RGB_to_YCbCr_BT709_C (line 9457) | static void
  function Dacc_RGB_to_YCbCr_BT2020_C (line 9474) | static void
  function Dacc_YCbCr_to_RGB_BT601_C (line 9503) | static void
  function Dacc_YCbCr_to_RGB_BT709_C (line 9520) | static void
  function Dacc_YCbCr_to_RGB_BT2020_C (line 9537) | static void
  function Dacc_Alpha_to_YCbCr_C (line 9562) | static void
  function Sop_is_Aop (line 9583) | static void Sop_is_Aop  ( GenefxState *gfxs ) { gfxs->Sop = gfxs->Aop; g...
  function Sop_is_Bop (line 9584) | static void Sop_is_Bop  ( GenefxState *gfxs ) { gfxs->Sop = gfxs->Bop; g...
  function Slut_is_Alut (line 9586) | static void Slut_is_Alut( GenefxState *gfxs ) { gfxs->Slut = gfxs->Alut; }
  function Slut_is_Blut (line 9587) | static void Slut_is_Blut( GenefxState *gfxs ) { gfxs->Slut = gfxs->Blut; }
  function Sacc_is_NULL (line 9589) | static void Sacc_is_NULL( GenefxState *gfxs ) { gfxs->Sacc = NULL; }
  function Sacc_is_Aacc (line 9590) | static void Sacc_is_Aacc( GenefxState *gfxs ) { gfxs->Sacc = gfxs->Aacc; }
  function Sacc_is_Bacc (line 9591) | static void Sacc_is_Bacc( GenefxState *gfxs ) { gfxs->Sacc = gfxs->Bacc; }
  function Sacc_is_Tacc (line 9592) | static void Sacc_is_Tacc( GenefxState *gfxs ) { gfxs->Sacc = gfxs->Tacc; }
  function Dacc_is_Aacc (line 9594) | static void Dacc_is_Aacc( GenefxState *gfxs ) { gfxs->Dacc = gfxs->Aacc; }
  function Dacc_is_Bacc (line 9595) | static void Dacc_is_Bacc( GenefxState *gfxs ) { gfxs->Dacc = gfxs->Bacc; }
  function Dacc_is_Tacc (line 9596) | static void Dacc_is_Tacc( GenefxState *gfxs ) { gfxs->Dacc = gfxs->Tacc; }
  function Xacc_is_Bacc (line 9598) | static void Xacc_is_Bacc( GenefxState *gfxs ) { gfxs->Xacc = gfxs->Bacc; }
  function Xacc_is_Tacc (line 9599) | static void Xacc_is_Tacc( GenefxState *gfxs ) { gfxs->Xacc = gfxs->Tacc; }
  function Yacc_is_Aacc (line 9601) | static void Yacc_is_Aacc( GenefxState *gfxs ) { gfxs->Yacc = gfxs->Aacc; }
  function Yacc_is_Bacc (line 9602) | static void Yacc_is_Bacc( GenefxState *gfxs ) { gfxs->Yacc = gfxs->Bacc; }
  function Len_is_Slen (line 9604) | static void Len_is_Slen ( GenefxState *gfxs ) { gfxs->length = gfxs->Sle...
  function Len_is_Dlen (line 9605) | static void Len_is_Dlen ( GenefxState *gfxs ) { gfxs->length = gfxs->Dle...
  function Bop_rgb24_to_Aop_rgb16_LE (line 9625) | static void
  function Bop_rgb32_to_Aop_rgb16_LE (line 9681) | static void
  function gInit_MMX (line 9724) | static void
  function gInit_NEON (line 9746) | static void
  function gInit_64bit (line 9778) | static void
  function gInit_BigEndian (line 9808) | static void
  function gGetDriverInfo (line 9852) | void
  function gGetDeviceInfo (line 9897) | void
  function gAcquireCheck (line 9911) | static bool
  function DFBResult (line 9970) | static DFBResult
  function DFBResult (line 10046) | static DFBResult
  function gAcquireSetup (line 10066) | static bool
  function gAcquire (line 11159) | bool
  function gRelease (line 11186) | void

FILE: src/gfx/generic/generic.h
  type GenefxAccumulator (line 28) | typedef union {
  type __DFB_GenefxState (line 43) | struct __DFB_GenefxState {

FILE: src/gfx/generic/generic_64.h
  function Cop_to_Aop_32_64 (line 19) | static void
  function Bop_rgb32_toK_Aop_64 (line 42) | static void
  function Bop_rgb32_Kto_Aop_64 (line 94) | static void
  function Bop_32_Sto_Aop_64 (line 148) | static void
  function Dacc_xor_64 (line 179) | static void

FILE: src/gfx/generic/generic_blit.c
  function gBlit (line 29) | void

FILE: src/gfx/generic/generic_draw_line.c
  function gDrawLine (line 27) | void

FILE: src/gfx/generic/generic_fill_rectangle.c
  function gFillRectangle (line 26) | void

FILE: src/gfx/generic/generic_mmx.h
  function Xacc_blend_srcalpha_MMX (line 19) | static void
  function Xacc_blend_invsrcalpha_MMX (line 84) | static void
  function Dacc_modulate_argb_MMX (line 151) | static void
  function SCacc_add_to_Dacc_MMX (line 176) | static void
  function Sacc_add_to_Dacc_MMX (line 196) | static void

FILE: src/gfx/generic/generic_neon.h
  function Sop_rgb16_to_Dacc_NEON (line 19) | static void
  function Sop_argb_to_Dacc_NEON (line 93) | static void
  function Sacc_to_Aop_rgb16_NEON (line 158) | static void
  function Bop_argb_blend_alphachannel_src_invsrc_Aop_rgb16_NEON (line 278) | static void
  function Xacc_blend_srcalpha_NEON (line 413) | static void
  function Xacc_blend_invsrcalpha_NEON (line 587) | static void
  function Dacc_modulate_rgb_NEON (line 761) | static void
  function Dacc_modulate_argb_NEON (line 839) | static void
  function SCacc_add_to_Dacc_NEON (line 928) | static void
  function Sacc_add_to_Dacc_NEON (line 988) | static void

FILE: src/gfx/generic/generic_stretch_blit.c
  type StretchCtx (line 31) | typedef struct {
  type StretchFunctionTable (line 54) | typedef struct {
  function stretch_hvx_planar (line 256) | __attribute__((noinline))
  function stretch_hvx (line 323) | __attribute__((noinline))
  function gStretchBlit (line 635) | void

FILE: src/gfx/generic/generic_texture_triangles.c
  type DDA (line 26) | typedef struct {
  function Genefx_TextureTriangleAffine (line 67) | static void
  function Genefx_TextureTrianglesAffine (line 328) | void

FILE: src/gfx/generic/generic_texture_triangles.h
  type GenefxVertexAffine (line 26) | typedef struct {

FILE: src/gfx/generic/generic_util.c
  function Genefx_Aop_crab (line 24) | void
  function Genefx_Aop_prev_crab (line 31) | void
  function Genefx_Aop_xy (line 38) | void
  function Genefx_Aop_next (line 110) | void
  function Genefx_Aop_prev (line 217) | void
  function Genefx_Bop_xy (line 324) | void
  function Genefx_Bop_next (line 396) | void
  function Genefx_Bop_prev (line 503) | void
  function Genefx_Mop_xy (line 610) | void
  function Genefx_Mop_next (line 682) | void
  function Genefx_Mop_prev (line 789) | void
  function Genefx_ABacc_prepare (line 896) | bool
  function Genefx_ABacc_flush (line 929) | void

FILE: src/gfx/util.c
  function dfb_gfx_copy_stereo (line 34) | void
  function dfb_gfx_clear (line 81) | void
  function dfb_gfx_stretch_stereo (line 118) | void
  function dfb_gfx_copy_regions_client (line 170) | void
  function back_to_front_copy (line 265) | static void
  function dfb_back_to_front_copy_stereo (line 342) | void
  function dfb_sort_triangle (line 356) | void
  function dfb_sort_trapezoid (line 392) | void

FILE: src/gfx/util.h
  function dfb_simplify_blittingflags (line 76) | static __inline__ void

FILE: src/idirectfb.c
  type IDirectFB_data (line 64) | typedef struct {
  type EnumScreens_Context (line 104) | typedef struct {
  type GetScreen_Context (line 109) | typedef struct {
  type EnumDisplayLayers_Context (line 115) | typedef struct {
  type GetDisplayLayer_Context (line 120) | typedef struct {
  type EnumInputDevices_Context (line 128) | typedef struct {
  type GetInputDevice_Context (line 133) | typedef struct {
  type CreateEventBuffer_Context (line 139) | typedef struct {
  type EventBuffer_Container (line 154) | typedef struct {
  function eventbuffer_containers_add (line 163) | static void
  function eventbuffer_containers_remove (line 185) | void
  function eventbuffer_containers_attach_device (line 204) | void
  function eventbuffer_containers_detach_device (line 225) | void
  function drop_window (line 243) | static void
  function DFBResult (line 260) | static DFBResult
  function DirectResult (line 301) | static DirectResult
  function DirectResult (line 313) | static DirectResult
  function DFBResult (line 326) | static DFBResult
  function DFBResult (line 385) | static DFBResult
  function DFBResult (line 442) | static DFBResult
  function DFBResult (line 476) | static DFBResult
  function DFBResult (line 501) | static DFBResult
  function ReactionResult (line 522) | static ReactionResult
  function DFBResult (line 551) | static DFBResult
  function DFBResult (line 1066) | static DFBResult
  function DFBResult (line 1116) | static DFBResult
  function DFBResult (line 1138) | static DFBResult
  function DFBResult (line 1168) | static DFBResult
  function DFBResult (line 1190) | static DFBResult
  function DFBResult (line 1222) | static DFBResult
  function DFBResult (line 1244) | static DFBResult
  function DFBResult (line 1271) | static DFBResult
  function input_filter_local (line 1295) | static bool
  function input_filter_global (line 1328) | static bool
  function DFBResult (line 1344) | static DFBResult
  function DFBResult (line 1380) | static DFBResult
  function DFBResult (line 1398) | static DFBResult
  function DFBResult (line 1434) | static DFBResult
  function DFBResult (line 1470) | static DFBResult
  function DFBResult (line 1517) | static DFBResult
  function DFBResult (line 1563) | static DFBResult
  function DFBResult (line 1591) | static DFBResult
  function DFBResult (line 1631) | static DFBResult
  function DFBResult (line 1655) | static DFBResult
  function DFBResult (line 1665) | static DFBResult
  function DFBResult (line 1675) | static DFBResult
  function DFBResult (line 1687) | static DFBResult
  function DFBResult (line 1699) | static DFBResult
  function DFBResult (line 1733) | static DFBResult
  function DFBResult (line 1762) | static DFBResult
  function LoadBackgroundImage (line 1778) | static void
  function DFBResult (line 1832) | static DFBResult
  function DFBResult (line 1861) | static DFBResult
  function InitIDirectFB_Async (line 2021) | static void
  function DFBResult (line 2060) | DFBResult
  function DFBResult (line 2129) | DFBResult
  function DFBResult (line 2146) | DFBResult
  function DFBEnumerationResult (line 2161) | static DFBEnumerationResult
  function DFBEnumerationResult (line 2179) | static DFBEnumerationResult
  function DFBEnumerationResult (line 2195) | static DFBEnumerationResult
  function DFBEnumerationResult (line 2213) | static DFBEnumerationResult
  function DFBEnumerationResult (line 2229) | static DFBEnumerationResult
  function DFBEnumerationResult (line 2241) | static DFBEnumerationResult
  function DFBEnumerationResult (line 2257) | static DFBEnumerationResult

FILE: src/init.c
  function __dfb_constructor__ (line 38) | __dfb_constructor__
  function __dfb_destructor__ (line 48) | __dfb_destructor__

FILE: src/input/idirectfbeventbuffer.c
  type IDirectFBEventBuffer_data (line 39) | typedef struct {
  type EventBufferItem (line 63) | typedef struct {
  type AttachedDevice (line 70) | typedef struct {
  type AttachedWindow (line 79) | typedef struct {
  type AttachedSurface (line 86) | typedef struct {
  function dump_event (line 103) | static void
  function IDirectFBEventBuffer_Destruct (line 139) | static void
  function DirectResult (line 212) | static DirectResult
  function DirectResult (line 224) | static DirectResult
  function DFBResult (line 237) | static DFBResult
  function DFBResult (line 262) | static DFBResult
  function DFBResult (line 287) | static DFBResult
  function DFBResult (line 326) | static DFBResult
  function DFBResult (line 394) | static DFBResult
  function DFBResult (line 452) | static DFBResult
  function DFBResult (line 465) | static DFBResult
  function DFBResult (line 541) | static DFBResult
  function DFBResult (line 556) | static DFBResult
  function DFBResult (line 612) | static DFBResult
  function DFBResult (line 651) | static DFBResult
  function DFBResult (line 680) | DFBResult
  function DFBResult (line 713) | DFBResult
  function DFBResult (line 741) | DFBResult
  function DFBResult (line 768) | DFBResult
  function DFBResult (line 796) | DFBResult
  function DFBResult (line 825) | DFBResult
  function DFBResult (line 875) | DFBResult
  function IDirectFBEventBuffer_AddItem (line 909) | static void
  function ReactionResult (line 930) | static ReactionResult
  function ReactionResult (line 955) | static ReactionResult
  function ReactionResult (line 996) | static ReactionResult
  function CollectEventStatistics (line 1090) | static void

FILE: src/input/idirectfbinputdevice.c
  type IDirectFBInputDevice_data (line 30) | typedef struct {
  function IDirectFBInputDevice_Destruct (line 45) | static void
  function DirectResult (line 57) | static DirectResult
  function DirectResult (line 69) | static DirectResult
  function DFBResult (line 82) | static DFBResult
  function DFBResult (line 98) | static DFBResult
  function DFBResult (line 114) | static DFBResult
  function DFBResult (line 135) | static DFBResult
  function DFBResult (line 156) | static DFBResult
  function DFBResult (line 170) | static DFBResult
  function DFBResult (line 191) | static DFBResult
  function DFBResult (line 202) | static DFBResult
  function DFBResult (line 213) | static DFBResult
  function DFBResult (line 232) | static DFBResult
  function DFBResult (line 255) | static DFBResult
  function DFBResult (line 278) | static DFBResult
  function DFBResult (line 301) | static DFBResult
  function DFBResult (line 325) | static DFBResult
  function DFBResult (line 342) | static DFBResult
  function DFBResult (line 363) | static DFBResult
  function ReactionResult (line 372) | static ReactionResult
  function DFBResult (line 409) | DFBResult

FILE: src/media/idirectfbdatabuffer.c
  function IDirectFBDataBuffer_Destruct (line 28) | void
  function DirectResult (line 41) | static DirectResult
  function DirectResult (line 53) | static DirectResult
  function DFBResult (line 66) | static DFBResult
  function DFBResult (line 72) | static DFBResult
  function DFBResult (line 78) | static DFBResult
  function DFBResult (line 85) | static DFBResult
  function DFBResult (line 92) | static DFBResult
  function DFBResult (line 99) | static DFBResult
  function DFBResult (line 106) | static DFBResult
  function DFBResult (line 115) | static DFBResult
  function DFBResult (line 124) | static DFBResult
  function DFBResult (line 134) | static DFBResult
  function DFBResult (line 140) | static DFBResult
  function DFBResult (line 148) | static DFBResult
  function DFBResult (line 163) | static DFBResult
  function DFBResult (line 178) | static DFBResult
  function DFBResult (line 194) | DFBResult

FILE: src/media/idirectfbdatabuffer.h
  type IDirectFBDataBuffer_data (line 27) | typedef struct {

FILE: src/media/idirectfbdatabuffer_file.c
  type IDirectFBDataBuffer_File_data (line 31) | typedef struct {
  function IDirectFBDataBuffer_File_Destruct (line 41) | static void
  function DirectResult (line 55) | static DirectResult
  function DFBResult (line 68) | static DFBResult
  function DFBResult (line 76) | static DFBResult
  function DFBResult (line 84) | static DFBResult
  function DFBResult (line 106) | static DFBResult
  function DFBResult (line 122) | static DFBResult
  function DFBResult (line 138) | static DFBResult
  function DFBResult (line 157) | static DFBResult
  function DFBResult (line 200) | static DFBResult
  function DFBResult (line 224) | static DFBResult
  function DFBResult (line 249) | static DFBResult
  function DFBResult (line 261) | static DFBResult
  function DFBResult (line 271) | DFBResult

FILE: src/media/idirectfbdatabuffer_memory.c
  type IDirectFBDataBuffer_Memory_data (line 31) | typedef struct {
  function IDirectFBDataBuffer_Memory_Destruct (line 42) | static void
  function DirectResult (line 50) | static DirectResult
  function DFBResult (line 63) | static DFBResult
  function DFBResult (line 71) | static DFBResult
  function DFBResult (line 79) | static DFBResult
  function DFBResult (line 95) | static DFBResult
  function DFBResult (line 111) | static DFBResult
  function DFBResult (line 127) | static DFBResult
  function DFBResult (line 141) | static DFBResult
  function DFBResult (line 157) | static DFBResult
  function DFBResult (line 187) | static DFBResult
  function DFBResult (line 216) | static DFBResult
  function DFBResult (line 229) | static DFBResult
  function DFBResult (line 239) | DFBResult

FILE: src/media/idirectfbdatabuffer_streamed.c
  type IDirectFBDataBuffer_Streamed_data (line 32) | typedef struct {
  type DataChunk (line 46) | typedef struct {
  function IDirectFBDataBuffer_Streamed_Destruct (line 67) | static void
  function DirectResult (line 80) | static DirectResult
  function DFBResult (line 93) | static DFBResult
  function DFBResult (line 109) | static DFBResult
  function DFBResult (line 127) | static DFBResult
  function DFBResult (line 136) | static DFBResult
  function DFBResult (line 145) | static DFBResult
  function DFBResult (line 161) | static DFBResult
  function DFBResult (line 182) | static DFBResult
  function DFBResult (line 223) | static DFBResult
  function DFBResult (line 263) | static DFBResult
  function DFBResult (line 301) | static DFBResult
  function DFBResult (line 315) | static DFBResult
  function DFBResult (line 353) | DFBResult
  function DestroyAllChunks (line 385) | static void
  function ReadChunkData (line 402) | static void
  function DataChunk (line 460) | static DataChunk *
  function destroy_chunk (line 490) | static void

FILE: src/media/idirectfbfont.c
  function sqrt16 (line 31) | static unsigned int
  function IDirectFBFont_Destruct (line 56) | void
  function DirectResult (line 86) | static DirectResult
  function DirectResult (line 98) | static DirectResult
  function DFBResult (line 111) | static DFBResult
  function DFBResult (line 127) | static DFBResult
  function DFBResult (line 143) | static DFBResult
  function DFBResult (line 159) | static DFBResult
  function DFBResult (line 175) | static DFBResult
  function DFBResult (line 225) | static DFBResult
  function DFBResult (line 296) | static DFBResult
  function DFBResult (line 411) | static DFBResult
  function DFBResult (line 460) | static DFBResult
  function DFBResult (line 585) | static DFBResult
  function DFBResult (line 601) | static DFBResult
  function DFBResult (line 625) | static DFBResult
  function DFBResult (line 654) | static DFBResult
  function DFBResult (line 664) | static DFBResult
  function DFBResult (line 687) | static DFBResult
  function DFBResult (line 743) | static DFBResult
  function DFBResult (line 761) | static DFBResult
  function DFBResult (line 777) | DFBResult
  function unmap_or_free (line 810) | static void
  function DFBResult (line 834) | DFBResult

FILE: src/media/idirectfbfont.h
  type IDirectFBFont_ProbeContextContentType (line 27) | typedef enum {
  type IDirectFBFont_ProbeContext (line 38) | typedef struct {
  type IDirectFBFont_data (line 48) | typedef struct {

FILE: src/media/idirectfbimageprovider.c
  function DirectResult (line 26) | static DirectResult
  function DirectResult (line 32) | static DirectResult
  function DFBResult (line 38) | static DFBResult
  function DFBResult (line 50) | static DFBResult
  function DFBResult (line 62) | static DFBResult
  function DFBResult (line 70) | static DFBResult
  function DFBResult (line 78) | static DFBResult
  function IDirectFBImageProvider_Construct (line 85) | static void
  function DFBResult (line 99) | DFBResult

FILE: src/media/idirectfbimageprovider.h
  type IDirectFBImageProvider_ProbeContext (line 27) | typedef struct {

FILE: src/media/idirectfbvideoprovider.c
  function DirectResult (line 26) | static DirectResult
  function DirectResult (line 32) | static DirectResult
  function DFBResult (line 38) | static DFBResult
  function DFBResult (line 50) | static DFBResult
  function DFBResult (line 62) | static DFBResult
  function DFBResult (line 74) | static DFBResult
  function DFBResult (line 84) | static DFBResult
  function DFBResult (line 90) | static DFBResult
  function DFBResult (line 102) | static DFBResult
  function DFBResult (line 109) | static DFBResult
  function DFBResult (line 121) | static DFBResult
  function DFBResult (line 133) | static DFBResult
  function DFBResult (line 140) | static DFBResult
  function DFBResult (line 147) | static DFBResult
  function DFBResult (line 154) | static DFBResult
  function DFBResult (line 161) | static DFBResult
  function DFBResult (line 168) | st
Condensed preview — 395 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (5,578K chars).
[
  {
    "path": ".gitignore",
    "chars": 7,
    "preview": "/build\n"
  },
  {
    "path": "AUTHORS",
    "chars": 1824,
    "preview": "(c) Copyright 2017-2025  DirectFB2 Open Source Project (fork of DirectFB)\n(c) Copyright 2012-2016  DirectFB integrated m"
  },
  {
    "path": "COPYING",
    "chars": 26530,
    "preview": "                  GNU LESSER GENERAL PUBLIC LICENSE\n                       Version 2.1, February 1999\n\n Copyright (C) 19"
  },
  {
    "path": "ChangeLog",
    "chars": 70546,
    "preview": "commit 3b6508281d8c23270dde6002f1142a3906fb2da0\nAuthor: Nicolas Caramelli <caramelli.devel@gmail.com>\nDate:   Sun Jun 22"
  },
  {
    "path": "INSTALL",
    "chars": 1605,
    "preview": "Installation Instructions\n=========================\n\nDirectFB2 is built using Meson.\n\nYou will also need a C compiler an"
  },
  {
    "path": "Kconfig",
    "chars": 878,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "Make.defs",
    "chars": 990,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "Makefile",
    "chars": 9779,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "NEWS",
    "chars": 953,
    "preview": "2.0.0\n-----\n\nMeson build system\n\nPure C implementation\n\nNo external dependency (except fluxcomp for converting .flux int"
  },
  {
    "path": "README",
    "chars": 234,
    "preview": "DirectFB2\n=========\n\nDirectFB2 is a fork of DirectFB, a graphics library which was designed with embedded systems in min"
  },
  {
    "path": "README.md",
    "chars": 2091,
    "preview": "The DirectFB2 open source project\n---------------------------------\n\nhttps://directfb2.github.io\n\n______________________"
  },
  {
    "path": "dfb-update-pkgconfig.in",
    "chars": 1239,
    "preview": "#!/bin/sh\n#\n#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modi"
  },
  {
    "path": "include/dfiff.h",
    "chars": 1242,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "include/dfvff.h",
    "chars": 1346,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "include/dgiff.h",
    "chars": 1888,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "include/directfb.h",
    "chars": 306520,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "include/directfb_keyboard.h",
    "chars": 38604,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "include/directfb_util.h",
    "chars": 56932,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "include/directfb_windows.h",
    "chars": 9045,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "include/directfbgl.h",
    "chars": 4146,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "include/gen_directfb_keynames.sh",
    "chars": 1632,
    "preview": "#!/bin/sh\n#\n#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modi"
  },
  {
    "path": "include/gen_directfb_strings.sh",
    "chars": 4684,
    "preview": "#!/bin/sh\n#\n#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modi"
  },
  {
    "path": "include/meson.build",
    "chars": 2661,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "inputdrivers/linux_input/linux_input.c",
    "chars": 65492,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "inputdrivers/linux_input/meson.build",
    "chars": 1665,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "inputdrivers/nuttx_input/nuttx_input.c",
    "chars": 10803,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "interfaces/ICoreResourceManager/icoreresourcemanager_default.c",
    "chars": 9302,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "interfaces/ICoreResourceManager/meson.build",
    "chars": 1650,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "interfaces/IDirectFBFont/idirectfbfont_dgiff.c",
    "chars": 7798,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "interfaces/IDirectFBFont/meson.build",
    "chars": 1578,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "interfaces/IDirectFBImageProvider/idirectfbimageprovider_dfiff.c",
    "chars": 12345,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "interfaces/IDirectFBImageProvider/meson.build",
    "chars": 1642,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "interfaces/IDirectFBVideoProvider/idirectfbvideoprovider_dfvff.c",
    "chars": 25377,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "interfaces/IDirectFBVideoProvider/meson.build",
    "chars": 1642,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "interfaces/IDirectFBWindows/idirectfbwindows_default.c",
    "chars": 10616,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "interfaces/IDirectFBWindows/meson.build",
    "chars": 1613,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "lib/direct/atomic.h",
    "chars": 1049,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/clock.c",
    "chars": 1590,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/clock.h",
    "chars": 1230,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/compiler.h",
    "chars": 1537,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/conf.c",
    "chars": 29000,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/conf.h",
    "chars": 5734,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/debug.c",
    "chars": 4332,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/debug.h",
    "chars": 11669,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/direct.c",
    "chars": 5217,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/direct.h",
    "chars": 1853,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/direct_result.c",
    "chars": 5271,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/direct_result.h",
    "chars": 1059,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/filesystem.h",
    "chars": 1009,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/hash.c",
    "chars": 8747,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/hash.h",
    "chars": 4292,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/init.c",
    "chars": 2140,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/interface.c",
    "chars": 20714,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/interface.h",
    "chars": 10157,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/interface_implementation.h",
    "chars": 3946,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/list.h",
    "chars": 7350,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/log.c",
    "chars": 5756,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/log.h",
    "chars": 2802,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/log_domain.c",
    "chars": 10570,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/log_domain.h",
    "chars": 4677,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/map.c",
    "chars": 8507,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/map.h",
    "chars": 2669,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/mem.c",
    "chars": 12286,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/mem.h",
    "chars": 3512,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/memcpy.c",
    "chars": 5940,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/memcpy.h",
    "chars": 1803,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/meson.build",
    "chars": 5213,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "lib/direct/messages.c",
    "chars": 8718,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/messages.h",
    "chars": 7868,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/modules.c",
    "chars": 12416,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/modules.h",
    "chars": 2782,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/mutex.h",
    "chars": 994,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/clock.h",
    "chars": 1623,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/filesystem.h",
    "chars": 6912,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/linux/clock.c",
    "chars": 4942,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/linux/filesystem.c",
    "chars": 9678,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/linux/filesystem.h",
    "chars": 1137,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/linux/log.c",
    "chars": 7212,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/linux/mem.c",
    "chars": 5072,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/linux/mutex.c",
    "chars": 3471,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/linux/mutex.h",
    "chars": 1204,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/linux/signals.c",
    "chars": 16838,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/linux/system.c",
    "chars": 4662,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/linux/thread.c",
    "chars": 15587,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/linux/thread.h",
    "chars": 1220,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/linux/types.h",
    "chars": 1794,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/linux/waitqueue.h",
    "chars": 2767,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/log.h",
    "chars": 2177,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/mem.h",
    "chars": 1374,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/mutex.h",
    "chars": 1926,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/nuttx/clock.c",
    "chars": 4961,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/nuttx/configs/sim/defconfig",
    "chars": 480,
    "preview": "CONFIG_ARCH=\"sim\"\nCONFIG_ARCH_BOARD=\"sim\"\nCONFIG_ARCH_BOARD_SIM=y\nCONFIG_ARCH_CHIP=\"sim\"\nCONFIG_ARCH_SIM=y\nCONFIG_BOARD_"
  },
  {
    "path": "lib/direct/os/nuttx/configs/stm32f429i-disco/defconfig",
    "chars": 1543,
    "preview": "# CONFIG_STM32_FB_CMAP is not set\nCONFIG_ARCH=\"arm\"\nCONFIG_ARCH_BOARD=\"stm32f429i-disco\"\nCONFIG_ARCH_BOARD_STM32F429I_DI"
  },
  {
    "path": "lib/direct/os/nuttx/filesystem.c",
    "chars": 9678,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/nuttx/filesystem.h",
    "chars": 1137,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/nuttx/log.c",
    "chars": 3324,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/nuttx/mem.c",
    "chars": 5072,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/nuttx/mutex.c",
    "chars": 3471,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/nuttx/mutex.h",
    "chars": 1204,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/nuttx/signals.c",
    "chars": 8065,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/nuttx/system.c",
    "chars": 2292,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/nuttx/thread.c",
    "chars": 15611,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/nuttx/thread.h",
    "chars": 1220,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/nuttx/types.h",
    "chars": 1480,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/nuttx/waitqueue.h",
    "chars": 2767,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/signals.h",
    "chars": 2218,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/system.h",
    "chars": 2589,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/thread.h",
    "chars": 6408,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/types.h",
    "chars": 1754,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/os/waitqueue.h",
    "chars": 1740,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/result.c",
    "chars": 4786,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/result.h",
    "chars": 1733,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/serial.h",
    "chars": 3990,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/signals.h",
    "chars": 1000,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/stream.c",
    "chars": 47033,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/stream.h",
    "chars": 3759,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/system.c",
    "chars": 3494,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/system.h",
    "chars": 1424,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/thread.c",
    "chars": 8987,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/thread.h",
    "chars": 3903,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/trace.c",
    "chars": 16859,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/trace.h",
    "chars": 2871,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/types.h",
    "chars": 7099,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/utf8.h",
    "chars": 2048,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/util.c",
    "chars": 12919,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/util.h",
    "chars": 8780,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/direct/waitqueue.h",
    "chars": 1006,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/arena.c",
    "chars": 12518,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/arena.h",
    "chars": 2785,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/call.c",
    "chars": 55893,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/call.h",
    "chars": 7694,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/conf.c",
    "chars": 8012,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/conf.h",
    "chars": 2047,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/fusion.c",
    "chars": 121816,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/fusion.h",
    "chars": 8401,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/fusion_internal.h",
    "chars": 11303,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/hash.c",
    "chars": 12813,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/hash.h",
    "chars": 7394,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/init.c",
    "chars": 1634,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/lock.c",
    "chars": 32008,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/lock.h",
    "chars": 6013,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/meson.build",
    "chars": 3471,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "lib/fusion/object.c",
    "chars": 23543,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/object.h",
    "chars": 24121,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/protocol.h",
    "chars": 2546,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/reactor.c",
    "chars": 51800,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/reactor.h",
    "chars": 8445,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/ref.c",
    "chars": 51441,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/ref.h",
    "chars": 5676,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/shm/fake.c",
    "chars": 2211,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/shm/heap.c",
    "chars": 27437,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/shm/pool.c",
    "chars": 25237,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/shm/pool.h",
    "chars": 2694,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/shm/shm.c",
    "chars": 7673,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/shm/shm.h",
    "chars": 1684,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/shm/shm_internal.h",
    "chars": 7976,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/shmalloc.c",
    "chars": 21664,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/shmalloc.h",
    "chars": 5235,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/types.h",
    "chars": 2930,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/vector.c",
    "chars": 5828,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "lib/fusion/vector.h",
    "chars": 4986,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "meson.build",
    "chars": 4535,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "meson_options.txt",
    "chars": 3023,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "src/core/CoreDFB.flux",
    "chars": 7341,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "src/core/CoreDFB_CallMode.h",
    "chars": 2412,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreDFB_includes.h",
    "chars": 15275,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreDFB_real.c",
    "chars": 7607,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreGraphicsState.flux",
    "chars": 18569,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "src/core/CoreGraphicsStateClient.c",
    "chars": 26340,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreGraphicsStateClient.h",
    "chars": 6506,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreGraphicsState_includes.h",
    "chars": 1451,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreGraphicsState_real.c",
    "chars": 16343,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreInputDevice.flux",
    "chars": 1670,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "src/core/CoreInputDevice_includes.h",
    "chars": 1532,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreInputDevice_real.c",
    "chars": 1752,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreLayer.flux",
    "chars": 2557,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "src/core/CoreLayerContext.flux",
    "chars": 7809,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "src/core/CoreLayerContext_includes.h",
    "chars": 1447,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreLayerContext_real.c",
    "chars": 10281,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreLayerRegion.flux",
    "chars": 2653,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "src/core/CoreLayerRegion_includes.h",
    "chars": 1437,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreLayerRegion_real.c",
    "chars": 2340,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreLayer_includes.h",
    "chars": 1493,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreLayer_real.c",
    "chars": 2708,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CorePalette.flux",
    "chars": 2320,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "src/core/CorePalette_includes.h",
    "chars": 1407,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CorePalette_real.c",
    "chars": 4500,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreScreen.flux",
    "chars": 5584,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "src/core/CoreScreen_includes.h",
    "chars": 1494,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreScreen_real.c",
    "chars": 4747,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreSlave.flux",
    "chars": 2375,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "src/core/CoreSlave_includes.h",
    "chars": 1540,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreSlave_real.c",
    "chars": 2171,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreSurface.flux",
    "chars": 12387,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "src/core/CoreSurfaceAllocation.flux",
    "chars": 1482,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "src/core/CoreSurfaceAllocation_includes.h",
    "chars": 1509,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreSurfaceAllocation_real.c",
    "chars": 3568,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreSurfaceClient.flux",
    "chars": 1173,
    "preview": "#  This file is part of DirectFB.\n#\n#  This library is free software; you can redistribute it and/or\n#  modify it under "
  },
  {
    "path": "src/core/CoreSurfaceClient_includes.h",
    "chars": 1453,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  },
  {
    "path": "src/core/CoreSurfaceClient_real.c",
    "chars": 1772,
    "preview": "/*\n   This file is part of DirectFB.\n\n   This library is free software; you can redistribute it and/or\n   modify it unde"
  }
]

// ... and 195 more files (download for full content)

About this extraction

This page contains the full source code of the directfb2/DirectFB2 GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 395 files (5.1 MB), approximately 1.4M tokens, and a symbol index with 3857 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!