mainpage.doxygen   mainpage.doxygen 
skipping to change at line 31 skipping to change at line 31
@mainpage Stellarium Developers Documentation @mainpage Stellarium Developers Documentation
@section intro_sec Introduction @section intro_sec Introduction
This documentation concerns the inner workings of Stellarium. This documen tation This documentation concerns the inner workings of Stellarium. This documen tation
is targetted at developers of scripts, plugins and the core program. is targetted at developers of scripts, plugins and the core program.
@section architecture_sec Program Architecture @section architecture_sec Program Architecture
The code of Stellarium is split into several main blocks: <ul> The code of Stellarium is split into several main blocks:
<ul>
<li> the main loop and main widget classes StelMainWindow, StelMainGraphics <li>the main loop and main widget classes @em StelMainWindow and @em StelMa
View and inGraphicsView. Those classes have a single instance which is created at st
StelAppGraphicsWidget. Those classes have a single instance created at sta artup by the ::main() function. They perform various tasks such as the crea
rtup by the ::main() tion of the main program window and openGL context, the creation of the ste
function. They perform tasks such as creating of the main window and rende llarium core, the creation of the GUI. After initialization, they manage us
rer, creating the er's input event propagation and event loop. There are heavily based on %Qt
stellarium core, creating the GUI. After initialization, they manage user's features.</li>
input event <li>the core which provides a number of generic services and features to th
propagation and event loop. They are heavily based on %Qt features. </li> e other components. The main class is the StelApp singleton class which is
used everywhere in the code to access other elements. It is the StelApp ins
<li> the core which provides generic services and features to the other com tance which creates all the main core services and modules at initializatio
ponents. The main n. Example services are OpenGL textures management with the StelTextureMgr,
class is the StelApp singleton which is used everywhere in the code to acce font management with the StelFontMgr, sky images management (images which
ss other elements. have a fixed position in the sky) with the StelSkyImageMgr etc.. Two especi
The StelApp instance creates all the main core services and modules at init ally important manager classes (the ones with the "Mgr" suffix) are the Ste
ialization. Example lModuleMgr and StelCore classes: the first one manages the collection of St
services are sky layer management (e.g. images which have a fixed position elModule instances which are registered in the program (see next point for
in the sky) with the more info on what a StelModule is). The second one provides performance cri
StelSkyLayerMgr, drawing with StelRenderer etc. . Two especially important tical features for rendering various elements using openGL, or for computin
manager classes are g coordinate transformation and other mathematical services.</li>
the StelModuleMgr and StelCore: the former manages the collection of StelMo <li>a collection of StelModule instances which display the main elements of
dule instances the program such as planets and stars. Each StelModule should be registere
registered in the program (see next point for more info on what a StelModul d to the StelModuleMgr. Because many components of Stellarium derive from t
e is). The latter he StelModule class, it is possible for the main loop to treat them generic
provides performance critical features for computing coordinate transformat ally by calling their standard methods such StelModule::update() and StelMo
ion and other dule::draw() at each program iteration. It also allows other program compon
mathematical services. </li> ents to access them by name. StelModule can also be loaded dynamically by S
tellarium, which is the standard way of creating @ref plugins.</li>
<li> a collection of StelModule instances which display the main elements o <li>the Graphical User Interface (StelGui). It is based on styled %Qt widge
f the program such as ts which are rendered directly in the openGL window. Users actions trigger
planets and stars. Each StelModule should be registered to the StelModuleMg signals which are connected to core and StelModules slots.</li>
r. Because many <li>the script engine (StelScriptMgr) allows scripts to calls slots from th
Stellarium components derive from the StelModule class, the main loop is ab e core and StelModules slots.</li>
le to treat them
generically by calling their standard methods such StelModule::update() and
StelModule::draw()
at each program iteration. This also allows other program components to acc
ess them by name.
StelModule can also be loaded dynamically by Stellarium, which is the stand
ard way of creating
@ref plugins. </li>
<li> the Graphical User Interface (StelGui). It is based on styled %Qt widg
ets which are
rendered directly in the graphics window. User actions trigger signals conn
ected to core and
StelModules slots. </li>
<li> the script engine (StelScriptMgr) allows scripts to calls slots from t
he core and
StelModule slots. </li>
</ul> </ul>
@image html stellarium-architecture.png @image html stellarium-architecture.png
@image html stellarium-logo.png @image html stellarium-logo.png
*/ */
 End of changes. 1 change blocks. 
54 lines changed or deleted 35 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/