lumiera_documentation/src/doxygen.dox
Ichthyostega 1c234d5a0b clean-up: some Doxygen improvements
- reorganise the navigation tab structure
- place all further index lists into a common "Index" tab
- include a list of concepts
- remove the various "member" sub-tabs, these are not helpful
- the "modules" tab is now called "topics" (since C++ has now Modules!)
- generally re-sync DoxygenLayout.xml with a current pristine template
- comb though the Doxygen Warnings and fix a lot of small problems
2025-11-05 02:55:45 +01:00

167 lines
5.8 KiB
Text

/*
DOXYGEN.dox - front page for the Doxygen API documentation
Copyright (C)
2008, Christian Thaeter <ct@pipapo.org>
2013, Hermann Vosseler <Ichthyostega@web.de>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of
the License, or (at your option) any later version.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/** @mainpage Lumiera API Documentation
This section contains the API and reference documentation
of the Lumiera code base. It is generated automatically from the
source code comments.
Lumiera Documentation Structure
===============================
Lumiera comes with extensive documentation, which is organised into several tiers or layers,
according to the target audience, the degree of detail and the level of technicality.
Mostly, the sources of the documentation are kept in-tree; documentation pages are generated
with the *ASCIIDOC* tool and published at the [Lumiera website](http://Lumiera.org/documentation)
- as a general introduction, you should read the [»outer space« document](http://Lumiera.org/documentation/user/intro/intro.html)
- further user documentation -- mostly tutorials -- is available in the [user section](http://Lumiera.org/documentation/user/)
- Architecture and specification documents can be found in the [design section](http://www.lumiera.org/documentation/design/)
- fundamental discussions and decisions are documented in the form of [RfC entries](http://www.lumiera.org/documentation/devel/design_process.html)
- as entrance to the *technical level*, developers should read the [»inner core«](http://www.lumiera.org/documentation/technical/overview.html) document
- from there, various pages in the [technical documentation](http://www.lumiera.org/documentation/technical) detail specific aspects
of implementation and technology. They treat some topics in a coherent fashion and introduce the concepts and abstractions
necessary to understand the actual code
- right now, you are looking at the **API Documentation**, which is the entrance point to the actual code
- on your exploration path down to the internal details, you might want to follow the overview given
+ by the [Layer and Subsystem](topics.html) overview
+ the file level comments of relevant interfaces
*/
/* ==== Layers ==== */
/** @defgroup vault Vault-Layer
* Provides the technical services for all processing and system access.
* Manages worker pools, schedules jobs, does the memory management for the
* heavy multimedia data. Loads and delegates to external libraries for
* media processing.
*/
/** @defgroup steam Steam-Layer
* Keeps the Session, generates the rendering graphs for sequences,
* arranges what to do when and how, coordinates command/event processing,
* playback and rendering.
*/
/** @defgroup gui Graphical User Interface
* Interaction and Presentation layer.
* Provides the structures to coordinate navication, presentation state
* and gestures. Defines the widgets and controllers for the UI.
* Loaded as Plug-in.
*/
/* ==== Subsystems ==== */
/** @defgroup asset Asset Management
@ingroup steam
*/
/** @defgroup session Session
@ingroup steam
*/
/** @defgroup fixture Fixture and low-level-Model
@ingroup steam
*/
/** @defgroup player Playback and Render Control
@ingroup steam
*/
/** @defgroup engine Render Engine
@ingroup vault
*/
/** @defgroup scheduler Scheduler
@ingroup vault
The Scheduler acts as the central hub in the implementation of the RenderEngine
and coordinates the processing resources of the application. A Render Job is created
for every frame and passed to the Scheduler, marked with a deadline, and connected
to _prerequisite_ jobs.
*/
/** @defgroup memory Memory Management
@ingroup vault
*/
/* ==== Global Namespaces ==== */
/** @namespace lumiera
Lumiera public interface.
Global interfaces and facilities accessible from plugins and scripts.
It's probably a good idea to pull it in explicitly and to avoid nesting
implementation namespaces within \c lumiera::
*/
/** @namespace lib
Implementation namespace for support and library code.
*/
/* ==== Test Namespaces ==== */
/** @namespace test
Test runner and basic definitions for tests.
*/
/** @namespace lib::test
Unit tests for the Lumiera support library.
*/
/** @namespace lib::test::test */
/** @namespace lib::time::test */
/** @namespace lib::diff::test */
/** @namespace lib::hash::test */
/** @namespace lib::idi::test */
/** @namespace lib::iter::test */
/** @namespace lib::meta::test */
/** @namespace util::test */
/** @namespace vault::test */
/** @namespace vault::mem::test */
/** @namespace vault::gear::test */
/** @namespace steam::test */
/** @namespace steam::play:test */
/** @namespace steam::engine::test */
/** @namespace steam::fixture::test */
/** @namespace steam::asset::test */
/** @namespace steam::asset::meta::test */
/** @namespace steam::control::test */
/** @namespace steam::session::test */
/** @namespace steam::builder::test */
/** @namespace stage::test */
/** @namespace stage::ctrl::test */
/** @namespace stage::model::test */
/** @namespace stage::interact::test */
// Remark: for some unclear reason, cross-links to test-class names do not work in Doxygen;
// even after declaring these namespaces, or after setting EXTRACT_ALL = YES