فهرست منبع

Improved the "Overall structure" documentation page.

Lasse Öörni 12 سال پیش
والد
کامیت
28254f9a1d
2فایلهای تغییر یافته به همراه19 افزوده شده و 4 حذف شده
  1. 17 2
      Docs/GettingStarted.dox
  2. 2 2
      Docs/Reference.dox

+ 17 - 2
Docs/GettingStarted.dox

@@ -383,7 +383,8 @@ $CC -o Urho3DPlayer Urho3DPlayer.cpp `pkg-config --cflags --libs Urho3D`
 
 
 \page Structure Overall structure
 \page Structure Overall structure
 
 
-The Urho3D library consists of the following subdirectories that represent different subsystems:
+The Urho3D engine compiles into one library. Conceptually it consists of several "sublibraries" that represent different subsystems or functionality. Each of these resides in a subdirectory
+under the Source/Engine directory:
 
 
 - Container. Provides STL replacement classes and shared pointers.
 - Container. Provides STL replacement classes and shared pointers.
 - Math. Provides vector, quaternion & matrix types and geometric shapes used in intersection tests.
 - Math. Provides vector, quaternion & matrix types and geometric shapes used in intersection tests.
@@ -401,7 +402,21 @@ The Urho3D library consists of the following subdirectories that represent diffe
 - %Script. Provides scripting support using the AngelScript language.
 - %Script. Provides scripting support using the AngelScript language.
 - %Engine. Instantiates the subsystems from the modules above (except Script, which needs to be instantiated by the application) and manages the main loop iteration.
 - %Engine. Instantiates the subsystems from the modules above (except Script, which needs to be instantiated by the application) and manages the main loop iteration.
 
 
-Third-party libraries are used for the following functionality:
+\section Structure_Context Execution context
+
+The heart of Urho3D is the Context object, which must always be created as the first in a Urho3D application, and deleted last. All "important" objects that derive from the Object base class,
+such as scene nodes, resources like textures and models, and the subsystems themselves require %Context pointer in their constructor. This avoids both the singleton pattern for subsystems,
+or having to pass around several objects into constructors.
+
+The %Context provides the following functionality (described in detail on their own pages):
+
+- Registering and accessing \ref Subsystems "subsystems"
+- Creation and reflection facilities per object type: \ref ObjectTypes "object factories" and \ref Serialization "serializable attributes".
+- Sending \ref Events "events" between objects
+
+\section Structure_ThirdParty Third-party libraries
+
+The third-party libraries used by Urho3D and their purposes are:
 
 
 - AngelScript: scripting language implementation
 - AngelScript: scripting language implementation
 - Bullet: physics simulation implementation
 - Bullet: physics simulation implementation

+ 2 - 2
Docs/Reference.dox

@@ -119,7 +119,7 @@ Because the \ref Object::SendEvent "SendEvent()" function is public, an event ca
 
 
 \page MainLoop %Engine initialization and main loop
 \page MainLoop %Engine initialization and main loop
 
 
-Before an Urho3D program can enter its main loop, the Engine subsystem object must be created and initialized by calling its \ref Engine::Initialize "Initialize()" function. Parameters sent in a VariantMap can be used to direct how the Engine initializes itself and the subsystems. One way to configure the parameters is to parse them from the command line like the Urho3DPlayer application does: this is accomplished by the helper function \ref Engine::ParseParameters "ParseParameters()".
+Before a Urho3D application can enter its main loop, the Engine subsystem object must be created and initialized by calling its \ref Engine::Initialize "Initialize()" function. Parameters sent in a VariantMap can be used to direct how the Engine initializes itself and the subsystems. One way to configure the parameters is to parse them from the command line like the Urho3DPlayer application does: this is accomplished by the helper function \ref Engine::ParseParameters "ParseParameters()".
 
 
 The full list of supported parameters, their datatypes and default values:
 The full list of supported parameters, their datatypes and default values:
 
 
@@ -192,7 +192,7 @@ Note that on iOS calling \ref Engine::Exit "Exit()" is a no-op as there is no of
 
 
 \section MainLoop_ApplicationFramework Application framework
 \section MainLoop_ApplicationFramework Application framework
 
 
-The Application class provides a minimal framework for an Urho3D C++ program with a main loop. It has virtual functions Setup(), Start() and Stop() which can be defined by the application subclass. The header file also provides a macro for defining a program entry point, which
+The Application class provides a minimal framework for a Urho3D C++ application with a main loop. It has virtual functions Setup(), Start() and Stop() which can be defined by the application subclass. The header file also provides a macro for defining a program entry point, which
 will instantiate the Context object and then the user-specified application class. A minimal example, which would just display a blank rendering window and exit by pressing ESC:
 will instantiate the Context object and then the user-specified application class. A minimal example, which would just display a blank rendering window and exit by pressing ESC:
 
 
 \code
 \code