Просмотр исходного кода

Better documentation categories

BearishSun 9 лет назад
Родитель
Сommit
a67e3eebc2

+ 4 - 3
Documentation/Doxygen/Managed.doxyconfig

@@ -68,7 +68,7 @@ OUTPUT_DIRECTORY       = ../Generated/Managed
 # performance problems for the file system.
 # performance problems for the file system.
 # The default value is: NO.
 # The default value is: NO.
 
 
-CREATE_SUBDIRS         = YES
+CREATE_SUBDIRS         = NO
 
 
 # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
 # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
 # characters to appear in the names of generated files. If set to NO, non-ASCII
 # characters to appear in the names of generated files. If set to NO, non-ASCII
@@ -694,7 +694,7 @@ FILE_VERSION_FILTER    =
 # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
 # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
 # tag is left empty.
 # tag is left empty.
 
 
-LAYOUT_FILE            = layout.xml
+LAYOUT_FILE            = ManagedLayout.xml
 
 
 # The CITE_BIB_FILES tag can be used to specify one or more bib files containing
 # The CITE_BIB_FILES tag can be used to specify one or more bib files containing
 # the reference definitions. This must be a list of .bib files. The .bib
 # the reference definitions. This must be a list of .bib files. The .bib
@@ -1169,7 +1169,8 @@ HTML_STYLESHEET        =
 # list). For an example see the documentation.
 # list). For an example see the documentation.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 
-HTML_EXTRA_STYLESHEET  = doxystyle.css
+HTML_EXTRA_STYLESHEET  = doxystyle.css \
+                         doxystyle_managed.css
 
 
 # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
 # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
 # other source files which should be copied to the HTML output directory. Note
 # other source files which should be copied to the HTML output directory. Note

+ 3 - 8
Documentation/Doxygen/layout.xml → Documentation/Doxygen/ManagedLayout.xml

@@ -3,14 +3,9 @@
   <!-- Navigation index tabs for HTML output -->
   <!-- Navigation index tabs for HTML output -->
   <navindex>
   <navindex>
     <tab type="mainpage" visible="yes" title=""/>
     <tab type="mainpage" visible="yes" title=""/>
-    <tab type="modules" visible="yes"
-                        title="API reference"
-                        intro="API reference with classes separated in logical groups."/>
-
-    <tab type="classlist" visible="true"
-                            title="Class list"
-                            intro="A complete list of all classes."/>
-
+	<tab type="user" url="manuals.html" title="Manuals"/>
+    <tab type="user" url="group___banshee_engine.html" title="Engine API"/>
+	<tab type="user" url="group___banshee_editor.html" title="Editor API"/>
     <!-- We don't use what's below -->
     <!-- We don't use what's below -->
     <tab type="namespaces" visible="no" title="">
     <tab type="namespaces" visible="no" title="">
       <tab type="namespacelist" visible="no" title="" intro=""/>
       <tab type="namespacelist" visible="no" title="" intro=""/>

+ 4 - 3
Documentation/Doxygen/Native.doxyconfig

@@ -68,7 +68,7 @@ OUTPUT_DIRECTORY       = ../Generated/Native
 # performance problems for the file system.
 # performance problems for the file system.
 # The default value is: NO.
 # The default value is: NO.
 
 
-CREATE_SUBDIRS         = YES
+CREATE_SUBDIRS         = NO
 
 
 # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
 # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
 # characters to appear in the names of generated files. If set to NO, non-ASCII
 # characters to appear in the names of generated files. If set to NO, non-ASCII
@@ -694,7 +694,7 @@ FILE_VERSION_FILTER    =
 # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
 # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
 # tag is left empty.
 # tag is left empty.
 
 
-LAYOUT_FILE            = layout.xml
+LAYOUT_FILE            = NativeLayout.xml
 
 
 # The CITE_BIB_FILES tag can be used to specify one or more bib files containing
 # The CITE_BIB_FILES tag can be used to specify one or more bib files containing
 # the reference definitions. This must be a list of .bib files. The .bib
 # the reference definitions. This must be a list of .bib files. The .bib
@@ -1184,7 +1184,8 @@ HTML_STYLESHEET        =
 # list). For an example see the documentation.
 # list). For an example see the documentation.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 
-HTML_EXTRA_STYLESHEET  = doxystyle.css
+HTML_EXTRA_STYLESHEET  = doxystyle.css \
+                         doxystyle_native.css
 
 
 # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
 # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
 # other source files which should be copied to the HTML output directory. Note
 # other source files which should be copied to the HTML output directory. Note

+ 198 - 0
Documentation/Doxygen/NativeLayout.xml

@@ -0,0 +1,198 @@
+<doxygenlayout version="1.0">
+  <!-- Generated by doxygen 1.8.7 -->
+  <!-- Navigation index tabs for HTML output -->
+  <navindex>
+    <tab type="mainpage" visible="yes" title=""/>
+	<tab type="user" url="manuals.html" title="Manuals"/>
+    <tab type="user" url="group___layers.html" title="Core API"/>
+	<tab type="user" url="group___internals.html" title="Internals"/>
+	<tab type="user" url="group___plugins.html" title="Plugins"/>
+	
+    <!-- We don't use what's below -->
+    <tab type="namespaces" visible="no" title="">
+      <tab type="namespacelist" visible="no" title="" intro=""/>
+      <tab type="namespacemembers" visible="no" title="" intro=""/>
+    </tab>
+
+    <tab type="examples" visible="no" title="" intro=""/>
+
+    <tab type="classes" visible="no" title="">
+      <tab type="classindex" visible="$ALPHABETICAL_INDEX" title=""/>
+      <tab type="hierarchy" visible="no" title="" intro=""/>
+    </tab>
+
+    <tab type="files" visible="no" title="">
+      <tab type="globals" visible="no" title="" intro=""/>
+    </tab>
+  </navindex>
+
+  <!-- Layout definition for a class page -->
+  <class>
+    <briefdescription visible="no"/>
+    <detaileddescription title="Description"/>
+	<inheritancegraph visible="$CLASS_GRAPH"/>
+    <memberdecl>
+      <related title="Synopsis of methods" subtitle=" "/>
+      <nestedclasses visible="no" title=""/>
+      <membergroups visible="yes"/>
+      <publicmethods title="Methods"/>
+      <publicstaticmethods title="Static methods"/>
+      <publicattributes title="Fields"/>
+      <publicstaticattributes title="Static fields"/>
+	  
+      <!-- We don't use what's below -->
+      <publictypes title=""/>
+      <services title=""/>
+      <interfaces title=""/>
+      <publicslots title=""/>
+      <signals title=""/>
+      <protectedtypes title=""/>
+      <protectedslots title=""/>
+      <packagetypes title=""/>
+      <packagemethods title=""/>
+      <packagestaticmethods title=""/>
+      <packageattributes title=""/>
+      <packagestaticattributes title=""/>
+      <properties title=""/>
+      <events title=""/>
+      <privatetypes title=""/>
+      <privateslots title=""/>
+      <privatemethods title=""/>
+      <privatestaticmethods title=""/>
+      <privateattributes title=""/>
+      <privatestaticattributes title=""/>
+    </memberdecl>
+    <memberdef>
+      <functions title="Method documentation"/>
+      <variables title=""/>
+      <inlineclasses title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+
+      <!-- This is not for C++ -->
+      <services title=""/>
+      <interfaces title=""/>
+      <constructors title=""/>
+      <properties title=""/>
+      <events title=""/>
+    </memberdef>
+    <includes visible="$SHOW_INCLUDE_FILES"/>
+    <collaborationgraph visible="$COLLABORATION_GRAPH"/>	
+    <allmemberslink visible="yes"/>
+    <usedfiles visible="$SHOW_USED_FILES"/>
+    <authorsection visible="yes"/>
+  </class>
+
+  <!-- Layout definition for a namespace page -->
+  <namespace>
+    <briefdescription visible="yes"/>
+    <memberdecl>
+      <nestednamespaces visible="yes" title=""/>
+      <constantgroups visible="yes" title=""/>
+      <classes visible="yes" title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+      <functions title=""/>
+      <variables title=""/>
+      <membergroups visible="yes"/>
+    </memberdecl>
+    <detaileddescription title=""/>
+    <memberdef>
+      <inlineclasses title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+      <functions title=""/>
+      <variables title=""/>
+    </memberdef>
+    <authorsection visible="yes"/>
+  </namespace>
+
+  <!-- Layout definition for a file page -->
+  <file>
+    <briefdescription visible="yes"/>
+    <includes visible="$SHOW_INCLUDE_FILES"/>
+    <includegraph visible="$INCLUDE_GRAPH"/>
+    <includedbygraph visible="$INCLUDED_BY_GRAPH"/>
+    <sourcelink visible="yes"/>
+    <memberdecl>
+      <classes visible="yes" title=""/>
+      <namespaces visible="yes" title=""/>
+      <constantgroups visible="yes" title=""/>
+      <defines title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+      <functions title=""/>
+      <variables title=""/>
+      <membergroups visible="yes"/>
+    </memberdecl>
+    <detaileddescription title=""/>
+    <memberdef>
+      <inlineclasses title=""/>
+      <defines title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+      <functions title=""/>
+      <variables title=""/>
+    </memberdef>
+    <authorsection/>
+  </file>
+
+  <!-- Layout definition for a group page -->
+  <group>
+    <briefdescription visible="no"/>
+    <detaileddescription title="Description"/>
+
+    <groupgraph visible="$GROUP_GRAPHS"/>
+    <memberdecl>
+      <nestedgroups visible="yes" title=""/>
+      <dirs visible="yes" title=""/>
+      <files visible="yes" title=""/>
+      <namespaces visible="yes" title=""/>
+      <classes visible="yes" title=""/>
+      <defines title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+      <enumvalues title=""/>
+      <functions title=""/>
+      <variables title=""/>
+      <signals title=""/>
+      <publicslots title=""/>
+      <protectedslots title=""/>
+      <privateslots title=""/>
+      <events title=""/>
+      <properties title=""/>
+      <friends title=""/>
+      <membergroups visible="yes"/>
+    </memberdecl>
+    <memberdef>
+      <pagedocs/>
+      <inlineclasses title=""/>
+      <defines title=""/>
+      <typedefs title=""/>
+      <enums title=""/>
+      <enumvalues title=""/>
+      <functions title=""/>
+      <variables title=""/>
+      <signals title=""/>
+      <publicslots title=""/>
+      <protectedslots title=""/>
+      <privateslots title=""/>
+      <events title=""/>
+      <properties title=""/>
+      <friends title=""/>
+    </memberdef>
+    <authorsection visible="yes"/>
+  </group>
+
+  <!-- Layout definition for a directory page -->
+  <directory>
+    <briefdescription visible="yes"/>
+    <directorygraph visible="yes"/>
+    <memberdecl>
+      <dirs visible="yes"/>
+      <files visible="yes"/>
+    </memberdecl>
+    <detaileddescription title=""/>
+  </directory>
+</doxygenlayout>
+

+ 2 - 2
Documentation/Doxygen/doxystyle.css

@@ -39,7 +39,7 @@ a:visited {
 div.contents {
 div.contents {
 	margin: auto;
 	margin: auto;
 	width: 960px;
 	width: 960px;
-	padding-bottom: 150px;
+	padding-bottom: 170px;
 }
 }
 
 
 /* Nav bar */
 /* Nav bar */
@@ -121,7 +121,7 @@ div.contents {
 /* Page header */
 /* Page header */
 div.header {
 div.header {
 	width: 960px;
 	width: 960px;
-	margin: auto;
+	margin: auto auto 15px auto;
 	background-image: none;
 	background-image: none;
 	border-bottom: 1px solid rgba(89, 160, 195, 0.86);
 	border-bottom: 1px solid rgba(89, 160, 195, 0.86);
 }
 }

+ 3 - 0
Documentation/Doxygen/doxystyle_managed.css

@@ -0,0 +1,3 @@
+#MSearchBox {
+	left: 335px;
+}

+ 3 - 0
Documentation/Doxygen/doxystyle_native.css

@@ -0,0 +1,3 @@
+#MSearchBox {
+	left: 335px;
+}

+ 1 - 1
Documentation/Doxygen/footer.html

@@ -3,7 +3,7 @@
 	<div class="footer">
 	<div class="footer">
 		<div class="ui inverted vertical footer segment">
 		<div class="ui inverted vertical footer segment">
 			<div class="ui container">
 			<div class="ui container">
-			  <div class="ui stackable inverted divided equal height stackable grid">
+			  <div class="ui inverted divided equal height grid">
 				<div class="three wide column">
 				<div class="three wide column">
 				  <h4 class="ui inverted header">About</h4>
 				  <h4 class="ui inverted header">About</h4>
 				  <div class="ui inverted link list">
 				  <div class="ui inverted link list">

+ 4 - 7
Documentation/Manuals/Managed/index.md

@@ -4,7 +4,7 @@ Banshee Engine Documentation (Managed)						{#mainpage}
 
 
 Welcome to the documentation for the managed (C#) API of the Banshee Engine.
 Welcome to the documentation for the managed (C#) API of the Banshee Engine.
 
 
-This documentation contains a set of [manuals](@ref manuals), an <a class="el" href="modules.html">API reference</a> and an alphabetical <a class="el" href="annotated.html">class list</a>.
+This documentation contains a set of [manuals](@ref manuals) and an API reference.
 
 
 # Manuals # {#mainpage_a}
 # Manuals # {#mainpage_a}
 Manuals should be your primary entry point into learning about Banshee. They will provide you information about how to use all the functionality provided by the editor and the scripting API.
 Manuals should be your primary entry point into learning about Banshee. They will provide you information about how to use all the functionality provided by the editor and the scripting API.
@@ -14,9 +14,6 @@ Manuals should be your primary entry point into learning about Banshee. They wil
 # API Reference # {#mainpage_b}
 # API Reference # {#mainpage_b}
 API reference provides a categorized and hierarchical view the entire scripting API.
 API reference provides a categorized and hierarchical view the entire scripting API.
 
 
-<a class="el" href="modules.html">Visit</a>
-
-# Class list # {#mainpage_c}
-Contains the same information as the API references, but with all clases listed in a flat list, alphabetically.
-
-<a class="el" href="annotated.html">Visit</a>
+All classes are categorized into two primary groups:
+ - <a class="el" href="group___banshee_engine.html">Engine API</a> - Contains documentation for the primary scripting API. This contains all the types you will be using during game runtime, and is what most users will be interested in.
+ - <a class="el" href="group___banshee_editor.html">Editor API</a> - Contains documentation for the editor scripting API. This API is used for extending the editor by adding new windows, inspectors, tools and automating common tasks.

+ 5 - 13
Documentation/Manuals/Native/index.md

@@ -5,7 +5,7 @@ Banshee Engine Documentation (Native)						{#mainpage}
 
 
 Welcome to the documentation for the native (C++) API of the Banshee Engine.
 Welcome to the documentation for the native (C++) API of the Banshee Engine.
 
 
-This documentation contains a set of [manuals](@ref manuals), an <a class="el" href="modules.html">API reference</a> and an alphabetical <a class="el" href="annotated.html">class list</a>.
+This documentation contains a set of [manuals](@ref manuals) and an API reference for all native types.
 
 
 # Manuals # {#mainpage_a}
 # Manuals # {#mainpage_a}
 Manuals should be your primary entry point into learning about Banshee. They will provide you with a view of the general architecture of the engine, as well as the architecture of the more important systems. They will also teach you have to extend/modify various parts of the engine, including adding custom GUI types, script objects, resources, importers, renderers and many more.
 Manuals should be your primary entry point into learning about Banshee. They will provide you with a view of the general architecture of the engine, as well as the architecture of the more important systems. They will also teach you have to extend/modify various parts of the engine, including adding custom GUI types, script objects, resources, importers, renderers and many more.
@@ -17,17 +17,9 @@ The manuals generally do not cover user-facing functionality, and focus more on
 # API Reference # {#mainpage_b}
 # API Reference # {#mainpage_b}
 API reference provides a categorized and hierarchical view of all the engine's classes. 
 API reference provides a categorized and hierarchical view of all the engine's classes. 
 
 
-All classes are categorized into two primary groups:
- - **Layers** - Layers make up the core of the engine. Each layer is built directly on top of the previous one. This is what most people will be interested in. Each layer also contains an **INTERNAL** category which contains lower level classes that are not meant for normal use, but can be important for those modifying the engine.
- - **Plugins** - Plugins are various interchangeable libraries that contain high level systems built on top of abstractions defined in the layers. If you are modifying the engine you might be interested in this documentation, but it can be skipped for most normal users. 
- 
-A separate **IMPLEMENTATION** category is also provided which contains base classes and templates that are used in construction of other types. You will almost never need this documentation as those specialized types inherit the documentation from their parents. 
+All classes are categorized into three primary groups:
+ - <a class="el" href="group___layers.html">Core API</a> - Contains documentation for the user-facing API of the engine core, categorized per layer. Each layer is built directly on top of the previous one. This is what most users will be interested in. 
+ - <a class="el" href="group___internals.html">Internals</a> - Reference documentation for internals of the engine core, categorized per layer. Primarily useful for those modifying the engine but of less relevance for normal users.
+ - <a class="el" href="group___plugins.html">Plugins</a> - Reference documentation for all available plugins. Plugins are various interchangeable libraries that contain high level systems built on top of abstractions defined in the engine core. If you are modifying the engine you might be interested in this documentation, but it can be skipped for most normal users.
  
  
 You should read the [architecture](@ref architecture) manual for a more detailed breakdown of the architecture.
 You should read the [architecture](@ref architecture) manual for a more detailed breakdown of the architecture.
-
-<a class="el" href="modules.html">Visit</a>
-
-# Class list # {#mainpage_c}
-Contains the same information as the API references, but with all clases listed in a flat list, alphabetically.
-
-<a class="el" href="annotated.html">Visit</a>

+ 9 - 4
Source/BansheeCore/Include/BsCorePrerequisites.h

@@ -87,8 +87,15 @@
  *	%Physics system: colliders, triggers, rigidbodies, joints, scene queries, etc.
  *	%Physics system: colliders, triggers, rigidbodies, joints, scene queries, etc.
  */
  */
 
 
-/** @defgroup Internal-Core [INTERNAL]
- *	Low-level classes and methods not meant for normal use, useful for those that are modifying the engine.
+/** @} */
+/** @} */
+
+/** @addtogroup Internals
+ *  @{
+ */
+
+/** @defgroup Internal-Core Core
+ *	Second lowest layer that provides core engine functionality and abstract interfaces for various systems.
  *  @{
  *  @{
  */
  */
 
 
@@ -156,8 +163,6 @@
  *	Audio clips, 3D sound and music reproduction.
  *	Audio clips, 3D sound and music reproduction.
  */
  */
 
 
-/** @} */
-
 /** @} */
 /** @} */
 /** @} */
 /** @} */
 
 

+ 9 - 4
Source/BansheeEditor/Include/BsEditorPrerequisites.h

@@ -67,8 +67,15 @@
  *  Entry point into the editor application.
  *  Entry point into the editor application.
  */
  */
 
 
-/** @defgroup Internal-Editor [INTERNAL]
- *	Low-level classes and methods not meant for normal use, useful for those that are modifying the engine.
+/** @} */
+/** @} */
+
+/** @addtogroup Internals
+ *  @{
+ */
+
+/** @defgroup Internal-Editor Editor
+ *	Functionality specific to the Banshee Editor.
  *  @{
  *  @{
  */
  */
 
 
@@ -96,8 +103,6 @@
   *	Rendering/interacting with the scene view in editor.
   *	Rendering/interacting with the scene view in editor.
   */
   */
 
 
-/** @} */
-
 /** @} */
 /** @} */
 /** @} */
 /** @} */
 
 

+ 9 - 4
Source/BansheeEngine/Include/BsPrerequisites.h

@@ -51,8 +51,15 @@
  *  Entry point into the application.
  *  Entry point into the application.
  */
  */
 
 
-/** @defgroup Internal-Engine [INTERNAL]
- *	Low-level classes and methods not meant for normal use, useful for those that are modifying the engine.
+/** @} */
+/** @} */
+
+/** @addtogroup Internals
+ *  @{
+ */
+
+/** @defgroup Internal-Engine Engine
+ *	Layer that builds upon Core, providing specific implementations of its interfaces as well as other high level systems.
  *  @{
  *  @{
  */
  */
 
 
@@ -80,8 +87,6 @@
  *  Various utility methods and types used by the engine layer.
  *  Various utility methods and types used by the engine layer.
  */
  */
 
 
-/** @} */
-
 /** @} */
 /** @} */
 /** @} */
 /** @} */
 
 

+ 13 - 8
Source/BansheeUtility/Include/BsPrerequisitesUtil.h

@@ -5,13 +5,12 @@
 #include <assert.h>
 #include <assert.h>
 
 
 /** @defgroup Layers Layers 
 /** @defgroup Layers Layers 
- *	Core layers of the engine. 
+ *	User facing API for the engine core, categorized per layer. 
  *  @{
  *  @{
  */
  */
 
 
 /** @defgroup Utility Utility
 /** @defgroup Utility Utility
- *	Lowest layer of the engine containing a collection of very decoupled and separate systems that are 
- *  likely to be used throughout all of the higher layers.
+ *	Lowest layer of the engine containing various utility and helper classes.
  *  @{
  *  @{
  */
  */
 
 
@@ -77,8 +76,16 @@
  *  %Platform specific functionality.
  *  %Platform specific functionality.
  */
  */
 
 
-/** @defgroup Internal-Utility [INTERNAL]
- *	Low-level classes and methods not meant for normal use, useful for those that are modifying the engine.
+/** @} */
+/** @} */
+
+/** @defgroup Internals Internals 
+ *	Non-user-facing low-level classes and methods, useful primarily to those modifying the engine.
+ *  @{
+ */
+
+/** @defgroup Utility-Internal Utility
+ *	Lowest layer of the engine containing various utility and helper classes.
  *  @{
  *  @{
  */
  */
 
 
@@ -114,13 +121,11 @@
  *  Thread manipulation and synchronization.
  *  Thread manipulation and synchronization.
  */
  */
 
 
-/** @} */
-
 /** @} */
 /** @} */
 /** @} */
 /** @} */
 
 
 /** @defgroup Plugins Plugins
 /** @defgroup Plugins Plugins
- *	Implementations of various systems defined in the core layers.
+ *	Reference documentation for implementations of various plugins, useful primarily to those extending the engine.
  */
  */
 
 
 /** @defgroup Implementation [IMPLEMENTATION]
 /** @defgroup Implementation [IMPLEMENTATION]

+ 1 - 1
Source/MBansheeEngine/Interop/Program.cs

@@ -7,7 +7,7 @@ using System.Runtime.CompilerServices;
 namespace BansheeEngine
 namespace BansheeEngine
 {
 {
     /** @addtogroup BansheeEngine
     /** @addtogroup BansheeEngine
-     *  Primary scripting API.
+     *  Documentation for the engine scripting API.
      *  @{
      *  @{
      */
      */