Commits

Jason McKesson committed 3c5e173

Updated documentation with tags for chunked filenames.

  • Participants
  • Parent commits 85793e2

Comments (0)

Files changed (8)

File Documents/Basics/Tutorial 00.xml

 <chapter xml:id="tut_00" xmlns="http://docbook.org/ns/docbook"
     xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink"
     version="5.0">
+    <?dbhtml filename="Introduction.html" ?>
     <title>Introduction</title>
     <para>Unlike most of the tutorials, this tutorial is purely text. There is no source code or
         project associated with this tutorial.</para>
         </section>
     </section>
     <section>
+        <?dbhtml filename="Intro What is OpenGL.html" ?>
         <title>What is OpenGL</title>
         <para>Before we can begin looking into writing an OpenGL application, we must first know
             what it is that we are writing. What exactly is OpenGL?</para>
                 still a valid OpenGL implementation.</para>
         </section>
     </section>
-    <glossary>
+    <section xml:id="Intro_Glossary">
+        <?dbhtml filename="Intro Glossary.html" ?>
         <title>Glossary</title>
-        <glossentry>
-            <glossterm>pixel</glossterm>
-            <glossdef>
-                <para>The smallest division of a digital image. A pixel has a particular color in a
-                    particular colorspace.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>image</glossterm>
-            <glossdef>
-                <para>A two-dimensional array of pixels.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>colorspace</glossterm>
-            <glossdef>
-                <para>The set of reference colors that define a way of representing a color in
-                    computer graphics. All colors are defined relative to a particular
-                    colorspace.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>rendering</glossterm>
-            <glossdef>
-                <para>The process of taking the source 3D world and converting it into a 2D image
-                    that represents a view of that world from a particular angle.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>rasterization</glossterm>
-            <glossdef>
-                <para>A particular rendering method, used to convert a series of 3D triangles into a
-                    2D image.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>geometry, model, mesh</glossterm>
-            <glossdef>
-                <para>A single object in 3D space made of triangles.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>vertex</glossterm>
-            <glossdef>
-                <para>One of the 3 elements that make up a triangle. Vertices can contain arbitrary
-                    of data, but among that data is a 3-dimensional position representing the
-                    location of the vertex in 3D space.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>clip space, clip coordinates</glossterm>
-            <glossdef>
-                <para>A region of three-dimensional space into which vertex positions are
-                    transformed. These vertex positions are 4 dimensional quantities. The fourth
-                    component (W) of clip coordinates represents the visible range of clip space for
-                    that vertex. So the X, Y, and Z component of clip coordinates must be between
-                    [-W, W] to be a visible part of the world.</para>
-                <para>In clip space, positive X goes right, positive Y up, and positive Z
-                    away.</para>
-                <para>Clip-space vertices are output by the vertex processing stage of the rendering
-                    pipeline.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>normalized device coordinates</glossterm>
-            <glossdef>
-                <para>These are clip coordinates that have been divided by their fourth component.
-                    This makes this range of space the same for all components. Vertices with
-                    positions on the range [-1, 1] are visible, and other vertices are not.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>window space, window coordinates</glossterm>
-            <glossdef>
-                <para>A region of three-dimensional space that normalized device coordinates are
-                    mapped to. The X and Y positions of vertices in this space are relative to the
-                    destination image. The origin is in the bottom-left, with positive X going right
-                    and positive Y going up. The Z value is a number on the range [0, 1], where 0 is
-                    the closest value and 1 is the farthest. Vertex positions outside of this range
-                    are not visible.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>scan conversion</glossterm>
-            <glossdef>
-                <para>The process of taking a triangle in window space and converting it into a
-                    number of fragments based on projecting it onto the pixels of the output
-                    image.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>sample</glossterm>
-            <glossdef>
-                <para>A discrete location within the bounds of a pixel that determines whether to
-                    generate a fragment from scan converting the triangle. The area of a single
-                    pixel can have multiple samples, which can generate multiple fragments.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>fragment</glossterm>
-            <glossdef>
-                <para>A single element of a scan converted triangle. A fragment can contain
-                    arbitrary data, but among that data is a 3-dimensional position, identifying the
-                    location on the triangle in window space where this fragment originates
-                    from.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>invariance guarantee</glossterm>
-            <glossdef>
-                <para>A guarantee provided by OpenGL, such that if you provide binary-identical
-                    inputs to the vertex processing, while all other state remains exactly
-                    identical, then the exact same vertex in clip-space will produce the exact same
-                    output.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>shader</glossterm>
-            <glossdef>
-                <para>A program designed to be executed by a renderer, in order to perform some
-                    user-defined operations.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>shader stage</glossterm>
-            <glossdef>
-                <para>A particular place in a rendering pipeline where a shader can be executed to
-                    perform a computation.</para>
-            </glossdef>
-        </glossentry>
-    </glossary>
+        <glosslist>
+            <glossentry>
+                <glossterm>pixel</glossterm>
+                <glossdef>
+                    <para>The smallest division of a digital image. A pixel has a particular color in a
+                        particular colorspace.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>image</glossterm>
+                <glossdef>
+                    <para>A two-dimensional array of pixels.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>colorspace</glossterm>
+                <glossdef>
+                    <para>The set of reference colors that define a way of representing a color in
+                        computer graphics. All colors are defined relative to a particular
+                        colorspace.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>rendering</glossterm>
+                <glossdef>
+                    <para>The process of taking the source 3D world and converting it into a 2D image
+                        that represents a view of that world from a particular angle.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>rasterization</glossterm>
+                <glossdef>
+                    <para>A particular rendering method, used to convert a series of 3D triangles into a
+                        2D image.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>geometry, model, mesh</glossterm>
+                <glossdef>
+                    <para>A single object in 3D space made of triangles.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>vertex</glossterm>
+                <glossdef>
+                    <para>One of the 3 elements that make up a triangle. Vertices can contain arbitrary
+                        of data, but among that data is a 3-dimensional position representing the
+                        location of the vertex in 3D space.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>clip space, clip coordinates</glossterm>
+                <glossdef>
+                    <para>A region of three-dimensional space into which vertex positions are
+                        transformed. These vertex positions are 4 dimensional quantities. The fourth
+                        component (W) of clip coordinates represents the visible range of clip space for
+                        that vertex. So the X, Y, and Z component of clip coordinates must be between
+                        [-W, W] to be a visible part of the world.</para>
+                    <para>In clip space, positive X goes right, positive Y up, and positive Z
+                        away.</para>
+                    <para>Clip-space vertices are output by the vertex processing stage of the rendering
+                        pipeline.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>normalized device coordinates</glossterm>
+                <glossdef>
+                    <para>These are clip coordinates that have been divided by their fourth component.
+                        This makes this range of space the same for all components. Vertices with
+                        positions on the range [-1, 1] are visible, and other vertices are not.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>window space, window coordinates</glossterm>
+                <glossdef>
+                    <para>A region of three-dimensional space that normalized device coordinates are
+                        mapped to. The X and Y positions of vertices in this space are relative to the
+                        destination image. The origin is in the bottom-left, with positive X going right
+                        and positive Y going up. The Z value is a number on the range [0, 1], where 0 is
+                        the closest value and 1 is the farthest. Vertex positions outside of this range
+                        are not visible.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>scan conversion</glossterm>
+                <glossdef>
+                    <para>The process of taking a triangle in window space and converting it into a
+                        number of fragments based on projecting it onto the pixels of the output
+                        image.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>sample</glossterm>
+                <glossdef>
+                    <para>A discrete location within the bounds of a pixel that determines whether to
+                        generate a fragment from scan converting the triangle. The area of a single
+                        pixel can have multiple samples, which can generate multiple fragments.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>fragment</glossterm>
+                <glossdef>
+                    <para>A single element of a scan converted triangle. A fragment can contain
+                        arbitrary data, but among that data is a 3-dimensional position, identifying the
+                        location on the triangle in window space where this fragment originates
+                        from.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>invariance guarantee</glossterm>
+                <glossdef>
+                    <para>A guarantee provided by OpenGL, such that if you provide binary-identical
+                        inputs to the vertex processing, while all other state remains exactly
+                        identical, then the exact same vertex in clip-space will produce the exact same
+                        output.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>shader</glossterm>
+                <glossdef>
+                    <para>A program designed to be executed by a renderer, in order to perform some
+                        user-defined operations.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>shader stage</glossterm>
+                <glossdef>
+                    <para>A particular place in a rendering pipeline where a shader can be executed to
+                        perform a computation.</para>
+                </glossdef>
+            </glossentry>
+        </glosslist>
+    </section>
 </chapter>

File Documents/Basics/Tutorial 01.xml

 <?oxygen SCHSchema="http://docbook.org/xml/5.0/rng/docbookxi.rng"?>
 <chapter xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
     xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
+    <?dbhtml filename="Tutorial 01.html" ?>
     <title>Hello, Triangle!</title>
     <para>It is traditional for tutorials and introductory books on programming languages start with
         a program called <quote>Hello, World!</quote> This program is the simplest code necessary to
             to.</para>
     </section>
     <section>
+        <?dbhtml filename="Tut01 Dissecting Display.html" ?>
         <title>Dissecting Display</title>
         <para>The <function>display</function> function seems on the surface to be fairly simple.
             However, the functioning of it is fairly complicated and intertwined with the
             rendering to be displayed to the user.</para>
     </section>
     <section>
+        <?dbhtml filename="Tut01 Following the Data.html" ?>
         <title>Following the Data</title>
         <para>In the <link linkend="tut_00">basic background section</link>, we described the
             functioning of the OpenGL pipeline. We will now revisit this pipeline in the context of
                 with this object.</para>
             <para>The <function>glBindBuffer</function> function makes the buffer object the
                 currently bound buffer to the <literal>GL_ARRAY_BUFFER</literal> binding target. As
-                mentioned in <link endterm="OpenGLObjects">Tutorial 0</link>, objects in OpenGL
+                mentioned in <link linkend="OpenGLObjects">Tutorial 0</link>, objects in OpenGL
                 usually have to be bound to the context in order for them to do anything, and buffer
                 objects are no exception.</para>
             <para>The <function>glBufferData</function> function allocates memory for the buffer
         </section>
     </section>
     <section>
+        <?dbhtml filename="Tut01 Making Shaders.html" ?>
         <title>Making Shaders</title>
         <para>We glossed over exactly how these text strings called shaders actually get used. We
             will go into some detail on that now.</para>
         </note>
     </section>
     <section>
+        <?dbhtml filename="Tut01 Cleanup.html" ?>
         <title>Cleanup</title>
         <para>The tutorial allocates a lot of system resources. It allocates a buffer object, which
             represents memory on the GPU. It creates two shader objects and a program object. But it
             that destructors will delete the OpenGL objects. But it isn't strictly necessary.</para>
     </section>
     <section>
+        <?dbhtml filename="Tut01 In Review.html" ?>
         <title>In Review</title>
         <para>At this point, you have a good general overview of how things work in OpenGL. You know
             how to compile and link shaders, how to pass some basic vertex data to OpenGL, and how
             </glosslist>
         </section>
     </section>
-    <glossary>
+    <section xml:id="Tut01_Glossary">
+        <?dbhtml filename="Tut01 Glossary.html" ?>
         <title>Glossary</title>
-        <glossentry>
-            <glossterm>buffer object</glossterm>
-            <glossdef>
-                <para>An OpenGL object that represents a linear array of memory, containing
-                    arbitrary data. The contents of the buffer are defined by the user, but the
-                    memory is allocated by OpenGL. Data in buffer objects can be used for many
-                    purposes, including storing vertex data to be used when rendering.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>input variable</glossterm>
-            <glossdef>
-                <para>A shader variable, declared at global scope. Input variables receive their
-                    values from earlier stages in the OpenGL rendering pipeline.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>output variable</glossterm>
-            <glossdef>
-                <para>A shader variable, declared at global scope, using the <literal>out</literal>
-                    keyword. Output variables written to by a shader are passed to later stages in
-                    the OpenGL rendering pipeline for processing.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>vertex attribute</glossterm>
-            <glossdef>
-                <para>Input variables to vertex shaders are called vertex attributes. Each vertex
-                    attribute is a vector of up to 4 elements in length. Vertex attributes are drawn
-                    from buffer objects; the connection between buffer object data and vertex inputs
-                    is made with the <function>glVertexAttribPointer</function> and
+        <glosslist>
+            <glossentry>
+                <glossterm>buffer object</glossterm>
+                <glossdef>
+                    <para>An OpenGL object that represents a linear array of memory, containing
+                        arbitrary data. The contents of the buffer are defined by the user, but the
+                        memory is allocated by OpenGL. Data in buffer objects can be used for many
+                        purposes, including storing vertex data to be used when rendering.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>input variable</glossterm>
+                <glossdef>
+                    <para>A shader variable, declared at global scope. Input variables receive their
+                        values from earlier stages in the OpenGL rendering pipeline.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>output variable</glossterm>
+                <glossdef>
+                    <para>A shader variable, declared at global scope, using the <literal>out</literal>
+                        keyword. Output variables written to by a shader are passed to later stages in
+                        the OpenGL rendering pipeline for processing.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>vertex attribute</glossterm>
+                <glossdef>
+                    <para>Input variables to vertex shaders are called vertex attributes. Each vertex
+                        attribute is a vector of up to 4 elements in length. Vertex attributes are drawn
+                        from buffer objects; the connection between buffer object data and vertex inputs
+                        is made with the <function>glVertexAttribPointer</function> and
                         <function>glEnableVertexAttribArray</function> functions. Each vertex
-                    attribute in a particular program object has an index; this index can be queried
-                    with <function>glGetAttribLocation</function>. The index is used by the various
-                    other vertex attribute functions to refer to that specific attribute.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>viewport transform</glossterm>
-            <glossdef>
-                <para>The process of transforming vertex data from normalized device coordinate
-                    space to window space. It specifies the viewable region of a window.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>shader object</glossterm>
-            <glossdef>
-                <para>An object in the OpenGL API that is used to compile shaders and represent the
-                    compiled shader's information. Each shader object is typed based on the shader
-                    stage that it contains data for.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>program object</glossterm>
-            <glossdef>
-                <para>An object in the OpenGL API that represents the full sequence of all shader
-                    processing to be used when rendering. Program objects can be queried for
-                    attribute locations and various other information about the program. They also
-                    contain some state that will be seen in later tutorials.</para>
-            </glossdef>
-        </glossentry>
-    </glossary>
+                        attribute in a particular program object has an index; this index can be queried
+                        with <function>glGetAttribLocation</function>. The index is used by the various
+                        other vertex attribute functions to refer to that specific attribute.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>viewport transform</glossterm>
+                <glossdef>
+                    <para>The process of transforming vertex data from normalized device coordinate
+                        space to window space. It specifies the viewable region of a window.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>shader object</glossterm>
+                <glossdef>
+                    <para>An object in the OpenGL API that is used to compile shaders and represent the
+                        compiled shader's information. Each shader object is typed based on the shader
+                        stage that it contains data for.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>program object</glossterm>
+                <glossdef>
+                    <para>An object in the OpenGL API that represents the full sequence of all shader
+                        processing to be used when rendering. Program objects can be queried for
+                        attribute locations and various other information about the program. They also
+                        contain some state that will be seen in later tutorials.</para>
+                </glossdef>
+            </glossentry>
+        </glosslist>
+    </section>
 </chapter>

File Documents/Basics/Tutorial 02.xml

 <?oxygen SCHSchema="http://docbook.org/xml/5.0/rng/docbookxi.rng"?>
 <chapter xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
     xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="tut02">
+    <?dbhtml filename="Tutorial 02.html" ?>
     <title>Playing with Colors</title>
     <para>This tutorial will show how to provide some color to the triangle from the previous
         tutorial. Instead of just giving the triangle a solid color, we will use two methods to
         <para>Other than the fragment shader, nothing much changes in the code.</para>
     </section>
     <section>
+        <?dbhtml filename="Tut02 Vertex Attributes.html" ?>
         <title>Vertex Attributes</title>
         <para>Using the fragment position in a fragment shader is quite useful, but it is far from
             the best tool for controlling the color of triangles. A much more useful tool is to give
         </section>
     </section>
     <section>
+        <?dbhtml filename="Tut02 In Review.html" ?>
         <title>In Review</title>
         <para>In this tutorial, you learned how to use much of the <varname>gl_FragCoord</varname>
             built-in variable in a fragment shader. You learned that this data is in screen-space,
             </itemizedlist>
         </section>
     </section>
-    <glossary>
+    <section xml:id="Tut02_Glossary">
+        <?dbhtml filename="Tut02 Glossary.html" ?>
         <title>Glossary</title>
-        <glossentry>
-            <glossterm>fragment interpolation</glossterm>
-            <glossdef>
-                <para>This is the process of taking 3 corresponding vertex shader outputs and
-                    interpolating them across the surface of the triangle. For each fragment
-                    generated, there will also be an interpolated value generated for each of the
-                    vertex shader's outputs (except for certain built-in outputs, like
+        <glosslist>
+            <glossentry>
+                <glossterm>fragment interpolation</glossterm>
+                <glossdef>
+                    <para>This is the process of taking 3 corresponding vertex shader outputs and
+                        interpolating them across the surface of the triangle. For each fragment
+                        generated, there will also be an interpolated value generated for each of the
+                        vertex shader's outputs (except for certain built-in outputs, like
                         <varname>gl_Position</varname>.) The way that the interpolation is handled
-                    depends on the <glossterm>interpolation qualifier</glossterm> on the vertex
-                    output and fragment input.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>interpolation qualifier</glossterm>
-            <glossdef>
-                <para>A GLSL keyword assigned to outputs of vertex shaders and the corresponding
-                    inputs of fragment shaders. It determines how the three values of the triangle
-                    are interpolated across that triangle's surface. The qualifier used on the
-                    vertex shader output must match with the one used on the fragment shader input
-                    of the same name.</para>
-                <para>Valid interpolation qualifiers are <literal>smooth</literal>,
+                        depends on the <glossterm>interpolation qualifier</glossterm> on the vertex
+                        output and fragment input.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>interpolation qualifier</glossterm>
+                <glossdef>
+                    <para>A GLSL keyword assigned to outputs of vertex shaders and the corresponding
+                        inputs of fragment shaders. It determines how the three values of the triangle
+                        are interpolated across that triangle's surface. The qualifier used on the
+                        vertex shader output must match with the one used on the fragment shader input
+                        of the same name.</para>
+                    <para>Valid interpolation qualifiers are <literal>smooth</literal>,
                         <literal>flat</literal>, and <literal>noperspective</literal>.</para>
-            </glossdef>
-        </glossentry>
-    </glossary>
+                </glossdef>
+            </glossentry>
+        </glosslist>
+    </section>
 </chapter>

File Documents/Positioning/Tutorial 03.xml

 <?oxygen SCHSchema="http://docbook.org/xml/5.0/rng/docbookxi.rng"?>
 <chapter xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
     xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
+    <?dbhtml filename="Tutorial 03.html" ?>
     <title>OpenGL's Moving Triangle</title>
     <para>This tutorial is about how to move objects around. It will introduce new shader
         techniques.</para>
             tutorial) that slides around in a circle.</para>
     </section>
     <section>
+        <?dbhtml filename="Tut03 A Better Way.html" ?>
         <title>A Better Way</title>
         <para>This is fine for a 3-vertex example. But imagine a scene involving millions of
             vertices (and no, that's not an exaggeration for high-end games). Moving objects this
             addition.</para>
     </section>
     <section>
+        <?dbhtml filename="Tut03 More Power To The Shaders.html" ?>
         <title>More Power to the Shaders</title>
         <para>It's all well and good that we are no longer having to transform vertices manually.
             But perhaps we can move more things to the vertex shader. Could it be possible to move
             5.0f in perpetuity; we do not need to set it every frame.</para>
     </section>
     <section>
+        <?dbhtml filename="Tut03 Multiple Shaders.html" ?>
         <title>Multiple Shaders</title>
         <para>Well, moving the triangle around is nice and all, but it would also be good if we
             could do something time-based in the fragment shader. Fragment shaders cannot affect the
         </formalpara>
     </section>
     <section>
-        <title>Vertex Shader Performance</title>
+        <?dbhtml filename="Tut03 On Vertex Shader Performance.html" ?>
+        <title>On Vertex Shader Performance</title>
         <para>These tutorials are simple and should run fast enough, but it is still important to
             look at the performance implications of various operations. In this tutorial, we present
             3 ways of moving vertex data: transform it yourself on the CPU and upload it to buffer
             and is able to thus compute the location of the particle at an arbitrary time.</para>
     </section>
     <section>
+        <?dbhtml filename="Tut03 In Review.html" ?>
         <title>In Review</title>
         <para>In this tutorial, you have learned about uniform variables in shaders. Uniforms are
             shader variables that change, not with every shader envocation, but between rendering
             </glosslist>
         </section>
     </section>
-    <glossary>
+    <section xml:id="Tut03_Glossary">
+        <?dbhtml filename="Tut03 Glossary.html" ?>
         <title>Glossary</title>
-        <glossentry>
-            <glossterm>uniforms</glossterm>
-            <glossdef>
-                <para>These are a class of global variable that can be defined in GLSL shaders. They
-                    represent values that are uniform (unchanging) over the course of a rendering
-                    operation.</para>
-            </glossdef>
-        </glossentry>
-    </glossary>
+        <glosslist>
+            <glossentry>
+                <glossterm>uniforms</glossterm>
+                <glossdef>
+                    <para>These are a class of global variable that can be defined in GLSL shaders. They
+                        represent values that are uniform (unchanging) over the course of a rendering
+                        operation.</para>
+                </glossdef>
+            </glossentry>
+        </glosslist>
+    </section>
 </chapter>

File Documents/Positioning/Tutorial 04.xml

 <?oxygen SCHSchema="http://docbook.org/xml/5.0/rng/docbookxi.rng"?>
 <chapter xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
     xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
+    <?dbhtml filename="Tutorial 04.html" ?>
     <title>Objects at Rest</title>
     <para>Thus far, we have seen very flat things. Namely, a single triangle. Maybe the triangle
         moved around or had some colors.</para>
         </section>
     </section>
     <section>
+        <?dbhtml filename="Tut04 Perspective Projection.html" ?>
         <title>Perspective Projection</title>
         <para>A <glossterm>projection</glossterm>, for the purposes of rendering, is a way to
             transform a world from one dimensionality to another. Our destination image is two
                     also be wondering, in this modern days of vertex shaders that can do vector
                     divisions very quickly, why we should bother to use the hardware division-by-W
                     step at all. There are two reasons. One we will cover in just a bit when we deal
-                    with matrices; the main one will be covered in the next tutorial. Suffice it to say that there are very good reasons to put
-                    the perspective term in the W coordinate of clip space vertices.</para>
+                    with matrices; the main one will be covered in the next tutorial. Suffice it to
+                    say that there are very good reasons to put the perspective term in the W
+                    coordinate of clip space vertices.</para>
             </note>
         </section>
         <section>
         </section>
     </section>
     <section>
+        <?dbhtml filename="Tut04 The Matrix Has You.html" ?>
         <title>The Matrix has You</title>
         <para>So, now that we can put the world into perspective, let's do it the right way. The
                 <quote>needlessly overcomplicated for the time being but will make sense in a few
         <para>The same thing we had before. Only now done with matrices.</para>
     </section>
     <section>
+        <?dbhtml filename="Tut04 Aspect of the World.html" ?>
         <title>Aspect of the World</title>
         <para>If you run the last program, and resize the window, the viewport resizes with it.
             Unfortunately, this also means that what was once a rectangular prism with a square
             square.</para>
     </section>
     <section>
+        <?dbhtml filename="Tut04 In Review.html" ?>
         <title>In Review</title>
         <para>In this tutorial, you learned about face culling of triangles and the perspective
             projection. You learned the math behind creating the illusion of perspective, and you
             </glosslist>
         </section>
     </section>
-    <glossary>
+    <section xml:id="Tut04_Glossary">
+        <?dbhtml filename="Tut04 Glossary.html" ?>
         <title>Glossary</title>
-        <glossentry>
-            <glossterm>face culling</glossterm>
-            <glossdef>
-                <para>The ability to cull triangles based on the winding order of the triangle. This
-                    functionality is activated in OpenGL by using <function>glEnable</function> with
-                        <literal>GL_CULL_FACE</literal>. Which faces get culled is determined by the
-                        <function>glCullFace</function> and <function>glFrontFace</function>
-                    functions.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>winding order</glossterm>
-            <glossdef>
-                <para>The order, clockwise or counter-clockwise, that the 3 vertices that make up a
-                    triangle are received in. This is measured in window coordinates,
-                    two-dimensionally.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>projection</glossterm>
-            <glossdef>
-                <para>The act of taking a series of objects in a higher dimension and presenting
-                    those objects in a lower dimension. The act of rendering a 3D scene to a 2D
-                    image requires projecting that scene from three dimensions into two
-                    dimensions.</para>
-                <para>Projection always happens relative to a surface of projection. Projecting 2D
-                    space onto a 1D space requires a finite line to be projected on. Projecting 3D
-                    space onto 2D space requires a plane of projection. This surface is defined in
-                    the higher dimension's world.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>orthographic projection</glossterm>
-            <glossdef>
-                <para>A form of projection that simply negates all offsets in the direction
-                    perpendicular to the surface of projection. When doing a 3D to 2D orthographic
-                    projection, if the plane is axis aligned, then the projection can be done
-                    simply. The coordinate that is perpendicular to the plane of projection is
-                    simply discarded. If the plane is not axis aligned, then the math is more
-                    complex, but it has the same effect.</para>
-                <para>Orthographic projections are uniform in the direction of the projection.
-                    Because of the uniformity, lines that are parallel in the higher dimension space
-                    are guaranteed to remain parallel in the lower dimension space.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>perspective projection</glossterm>
-            <glossdef>
-                <para>A form of projection that projects onto the surface based on a position, the
-                    eye position. Perspective projections attempt to emulate a pin-hole camera
-                    model, which is similar to how human eyes see. The positions of objects in space
-                    are projected onto the surface of projection radially based on the eye
-                    position.</para>
-                <para>Parallel lines in the higher dimension are <emphasis>not</emphasis> guaranteed
-                    to remain parallel in the lower dimension. They might, but they might
-                    not.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>frustum</glossterm>
-            <glossdef>
-                <para>Geometrically, a frustum is 3D shape; a pyramid that has the top chopped off.
-                    The view of a 3D to 2D perspective projection, from the eye through the plane of
-                    projection has the shape of a frustum.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>perspective divide</glossterm>
-            <glossdef>
-                <para>A new name for the transformation from clip space to normalized device
-                    coordinate space. This is so called because the division by W is what allows
-                    perspective projection to work using only matrix math; a matrix alone would not
-                    otherwise be able to perform the full perspective projection operation.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>camera space</glossterm>
-            <glossdef>
-                <para>An arbitrarily defined, but highly useful, space from which the perspective
-                    projection can be performed relatively easily. Camera space is an infinitely
-                    large space, with positive X going right, positive Y going up, and positive Z
-                    coming towards the viewer.</para>
-                <para>In camera space, the eye position of the perspective projection is assumed to
-                    be at (0, 0, 1), and the plane of projection is a [-1, 1] plane in X and Y,
-                    which passes through the 3D origin. Thus, all points that have a positive Z are
-                    considered to be behind the camera and thus out of view.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>camera zNear, camera zFar</glossterm>
-            <glossdef>
-                <para>Normalized device coordinate (NDC) space is bounded in all dimensions on the
-                    range [-1, 1]. Camera space is unbounded, but the perspective transform
-                    implicitly bounds what is considered in view to [-1, 1] in the X and Y axis.
-                    This leaves the Z axis unbounded, which NDC space does not allow.</para>
-                <para>The camera zNear and zFar values are numbers that define the minimum and
-                    maximum extent of Z in the perspective projection transform. These values are
-                    positive value, though they represent negative values in camera space. Using the
-                    standard perspective transform, both values must be greater than 0, and zNear
-                    must be less than zFar.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>swizzle selection</glossterm>
-            <glossdef>
-                <para>Swizzle selection is a vector technique, unique to shading languages, that
-                    allows you to take a vector and arbitrarily build other vectors from the
-                    components. This selection is completely arbitrary; you can build a vec4 from a
-                    vec2, or any other combination you wish, up to 4 elements.</para>
-                <para>Swizzle selections use combinations of <quote>x,</quote>
-                    <quote>y,</quote>
-                    <quote>z,</quote> and <quote>w</quote> to pick components out of the input
-                    vector. Swizzle operations look like this:</para>
-                <programlisting>vec2 firstVec;
+        <glosslist>
+            <glossentry>
+                <glossterm>face culling</glossterm>
+                <glossdef>
+                    <para>The ability to cull triangles based on the winding order of the triangle.
+                        This functionality is activated in OpenGL by using
+                            <function>glEnable</function> with <literal>GL_CULL_FACE</literal>.
+                        Which faces get culled is determined by the <function>glCullFace</function>
+                        and <function>glFrontFace</function> functions.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>winding order</glossterm>
+                <glossdef>
+                    <para>The order, clockwise or counter-clockwise, that the 3 vertices that make
+                        up a triangle are received in. This is measured in window coordinates,
+                        two-dimensionally.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>projection</glossterm>
+                <glossdef>
+                    <para>The act of taking a series of objects in a higher dimension and presenting
+                        those objects in a lower dimension. The act of rendering a 3D scene to a 2D
+                        image requires projecting that scene from three dimensions into two
+                        dimensions.</para>
+                    <para>Projection always happens relative to a surface of projection. Projecting
+                        2D space onto a 1D space requires a finite line to be projected on.
+                        Projecting 3D space onto 2D space requires a plane of projection. This
+                        surface is defined in the higher dimension's world.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>orthographic projection</glossterm>
+                <glossdef>
+                    <para>A form of projection that simply negates all offsets in the direction
+                        perpendicular to the surface of projection. When doing a 3D to 2D
+                        orthographic projection, if the plane is axis aligned, then the projection
+                        can be done simply. The coordinate that is perpendicular to the plane of
+                        projection is simply discarded. If the plane is not axis aligned, then the
+                        math is more complex, but it has the same effect.</para>
+                    <para>Orthographic projections are uniform in the direction of the projection.
+                        Because of the uniformity, lines that are parallel in the higher dimension
+                        space are guaranteed to remain parallel in the lower dimension space.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>perspective projection</glossterm>
+                <glossdef>
+                    <para>A form of projection that projects onto the surface based on a position,
+                        the eye position. Perspective projections attempt to emulate a pin-hole
+                        camera model, which is similar to how human eyes see. The positions of
+                        objects in space are projected onto the surface of projection radially based
+                        on the eye position.</para>
+                    <para>Parallel lines in the higher dimension are <emphasis>not</emphasis>
+                        guaranteed to remain parallel in the lower dimension. They might, but they
+                        might not.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>frustum</glossterm>
+                <glossdef>
+                    <para>Geometrically, a frustum is 3D shape; a pyramid that has the top chopped
+                        off. The view of a 3D to 2D perspective projection, from the eye through the
+                        plane of projection has the shape of a frustum.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>perspective divide</glossterm>
+                <glossdef>
+                    <para>A new name for the transformation from clip space to normalized device
+                        coordinate space. This is so called because the division by W is what allows
+                        perspective projection to work using only matrix math; a matrix alone would
+                        not otherwise be able to perform the full perspective projection
+                        operation.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>camera space</glossterm>
+                <glossdef>
+                    <para>An arbitrarily defined, but highly useful, space from which the
+                        perspective projection can be performed relatively easily. Camera space is
+                        an infinitely large space, with positive X going right, positive Y going up,
+                        and positive Z coming towards the viewer.</para>
+                    <para>In camera space, the eye position of the perspective projection is assumed
+                        to be at (0, 0, 1), and the plane of projection is a [-1, 1] plane in X and
+                        Y, which passes through the 3D origin. Thus, all points that have a positive
+                        Z are considered to be behind the camera and thus out of view.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>camera zNear, camera zFar</glossterm>
+                <glossdef>
+                    <para>Normalized device coordinate (NDC) space is bounded in all dimensions on
+                        the range [-1, 1]. Camera space is unbounded, but the perspective transform
+                        implicitly bounds what is considered in view to [-1, 1] in the X and Y axis.
+                        This leaves the Z axis unbounded, which NDC space does not allow.</para>
+                    <para>The camera zNear and zFar values are numbers that define the minimum and
+                        maximum extent of Z in the perspective projection transform. These values
+                        are positive value, though they represent negative values in camera space.
+                        Using the standard perspective transform, both values must be greater than
+                        0, and zNear must be less than zFar.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>swizzle selection</glossterm>
+                <glossdef>
+                    <para>Swizzle selection is a vector technique, unique to shading languages, that
+                        allows you to take a vector and arbitrarily build other vectors from the
+                        components. This selection is completely arbitrary; you can build a vec4
+                        from a vec2, or any other combination you wish, up to 4 elements.</para>
+                    <para>Swizzle selections use combinations of <quote>x,</quote>
+                        <quote>y,</quote>
+                        <quote>z,</quote> and <quote>w</quote> to pick components out of the input
+                        vector. Swizzle operations look like this:</para>
+                    <programlisting>vec2 firstVec;
 vec4 secondVec = firstVec.xyxx;
 vec3 thirdVec = secondVec.wzyx;</programlisting>
-                <para>Swizzle selection is, in graphics hardware, considered an operation so fast as
-                    to be instantaneous. That is, graphics hardware is built with swizzle selection
-                    in mind.</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>matrix</glossterm>
-            <glossdef>
-                <para>A two-dimensional arrangement of numbers. .</para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>column-major, row-major</glossterm>
-            <glossdef>
-                <para>These terms define the two ways in which a matrix can be stored as an array of
-                    values. Column-major order means that, for an NxM matrix (columns x rows), the
-                    first N values in the array are the first column (top-to-bottom), the next N
-                    values are the second column, and so forth. In row-major order, the first M
-                    values in the array are the first row (left-to-right), followed by another M
-                    values for the second row, and so forth.</para>
-            </glossdef>
-        </glossentry>
-    </glossary>
+                    <para>Swizzle selection is, in graphics hardware, considered an operation so
+                        fast as to be instantaneous. That is, graphics hardware is built with
+                        swizzle selection in mind.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>matrix</glossterm>
+                <glossdef>
+                    <para>A two-dimensional arrangement of numbers. Like vectors, matrices can be
+                        considered a single element. Matrices are often used to represent the
+                        coefficients in a system of linear equations; because of this (among other
+                        things), matrix math is often called linear algebra.</para>
+                    <para>The size of a matrix, the number of columns and rows (denoted as NxM,
+                        where N is the number of columns and M is the number of rows) determines the
+                        kind of matrix. Matrix arithmetic has specific requirements on the two
+                        matrices involved, depending on the arithmetic operation. Multiplying two
+                        matrices together can only be performed if the number of rows in the matrix
+                        on the left is equal to the number of columns in the matrix on the right.
+                        Because of this, matrix multiplication is not commutative (A*B is not B*A;
+                        sometimes B*A isn't even possible).</para>
+                    <para>4x4 matrices are used in computer graphics to transform 3 or 4-dimensional
+                        vectors from one space to another. Most kinds of linear transforms can be
+                        represented with 4x4 matrices.</para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>column-major, row-major</glossterm>
+                <glossdef>
+                    <para>These terms define the two ways in which a matrix can be stored as an
+                        array of values. Column-major order means that, for an NxM matrix (columns x
+                        rows), the first N values in the array are the first column (top-to-bottom),
+                        the next N values are the second column, and so forth. In row-major order,
+                        the first M values in the array are the first row (left-to-right), followed
+                        by another M values for the second row, and so forth.</para>
+                </glossdef>
+            </glossentry>
+        </glosslist>
+    </section>
 </chapter>

File Documents/Positioning/Tutorial 05.xml

 <?oxygen SCHSchema="http://docbook.org/xml/5.0/rng/docbookxi.rng"?>
 <chapter xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude"
     xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
+    <?dbhtml filename="Tutorial 05.html" ?>
     <title>Objects in Depth</title>
     <para>In this tutorial, we will look at how to deal with rendering multiple objects, as well as
         what happens when multiple objects overlap.</para>
         </section>
     </section>
     <section>
+        <?dbhtml filename="Tut05 Optimization Base Vertex.html" ?>
         <title>Optimization: Base Vertex</title>
         <para>Using VAOs can dramatically simplify code. However, VAOs are not always the best case
             for performance, particularly if you use a lot of separate buffer objects.</para>
         </note>
     </section>
     <section>
+        <?dbhtml filename="Tut05 Overlap and Depth Buffering.html" ?>
         <title>Overlap and Depth Buffering</title>
         <para>Regardless of how we render the objects, there is a strange visual problem with what
             we're rendering:</para>
             you draw something behind something else, the fragments that were written by the higher
             objects will prevent you from writing the farther away ones.</para>
         <para>The <quote>tag</quote> is the window-space Z value. You may recall from <link
-                endterm="tut00_window_space">the introduction,</link> the window-space Z position of
+                linkend="tut00_window_space">the introduction,</link> the window-space Z position of
             a fragment ranges from 0 to 1, where 0 is the closest and 1 is the farthest.</para>
         <para>Colors output from the fragment shader are output into the color buffer. Therefore it
             naturally follows that depth values would be stored in a <glossterm>depth
         </section>
     </section>
     <section>
+        <?dbhtml filename="Tut05 Boundaries and Clipping.html" ?>
         <title>Boundaries and Clipping</title>
         <para/>
     </section>
     <section>
+        <?dbhtml filename="Tut05 In Review.html" ?>
         <title>In Review</title>
         <para/>
         <section>
             </glosslist>
         </section>
     </section>
-    <glossary>
+    <section xml:id="Tut05_Glossary">
+        <?dbhtml filename="Tut05 Glossary.html" ?>
         <title>Glossary</title>
-        <glossentry>
-            <glossterm>vertex array object (VAO)</glossterm>
-            <glossdef>
-                <para/>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>array drawing</glossterm>
-            <glossdef>
-                <para/>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>indexed drawing</glossterm>
-            <glossdef>
-                <para/>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>element array</glossterm>
-            <glossdef>
-                <para>Also known as an <glossterm>index array</glossterm>, </para>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>depth sorting</glossterm>
-            <glossdef>
-                <para/>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>depth buffer</glossterm>
-            <glossdef>
-                <para/>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>depth test</glossterm>
-            <glossdef>
-                <para/>
-            </glossdef>
-        </glossentry>
-        <glossentry>
-            <glossterm>range zNear, range zFar</glossterm>
-            <glossdef>
-                <para/>
-            </glossdef>
-        </glossentry>
-    </glossary>
+        <glosslist>
+            <glossentry>
+                <glossterm>vertex array object (VAO)</glossterm>
+                <glossdef>
+                    <para/>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>array drawing</glossterm>
+                <glossdef>
+                    <para/>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>indexed drawing</glossterm>
+                <glossdef>
+                    <para/>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>element array</glossterm>
+                <glossdef>
+                    <para>Also known as an <glossterm>index array</glossterm>, </para>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>depth sorting</glossterm>
+                <glossdef>
+                    <para/>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>depth buffer</glossterm>
+                <glossdef>
+                    <para/>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>depth test</glossterm>
+                <glossdef>
+                    <para/>
+                </glossdef>
+            </glossentry>
+            <glossentry>
+                <glossterm>range zNear, range zFar</glossterm>
+                <glossdef>
+                    <para/>
+                </glossdef>
+            </glossentry>
+        </glosslist>
+    </section>
 </chapter>

File Documents/Tutorial Documents.xpr

 <?xml version="1.0" encoding="UTF-8"?>
-<project version="11.1">
+<project version="11.2">
     <meta>
         <filters directoryPatterns="" filePatterns=""
             positiveFilePatterns="" showHiddenFiles="false"/>
         <options>
-            <serialized version="11.1">
+            <serialized version="11.2">
                 <map>
                     <entry>
                         <String xml:space="preserve">scenario.associations</String>
                         <scenarioAssociation-array>
                             <scenarioAssociation>
                                 <field name="name">
+                                    <String xml:space="preserve">Tutorial to HTML Chunked</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">Tutorials.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
                                     <String xml:space="preserve">Tutorial to HTML</String>
                                 </field>
                                 <field name="type">
                                     <String xml:space="preserve">XSL</String>
                                 </field>
                                 <field name="url">
-                                    <String xml:space="preserve">Basics/Tutorial%2000.xml</String>
+                                    <String xml:space="preserve">Tutorials.html</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/G:/Program%20Files/XMLmind_XML_Editor/demo/docbook-modular-book/chapter.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook XHTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/H:/SM/KotoRII/FirstBook.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/H:/SM/KotoRII/Episode%20I/Chapter2.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/H:/SM/KotoRII/Episode%20I/Episode%20I.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook PDF</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/H:/SM/KotoRII/Episode%20I/Chapter3.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook XHTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/H:/SM/KotoRII/Episode%20I/Chapter1.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/H:/SM/KotoRII/BasicOutline.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../WritingDesign/TacticalD20/Anime_d20_SRD_v1.0_-_Chap01-12/DocBook/CharacterCreation.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../Critiques/Past%20Mistakes%201%20Trouble.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../Critiques/Past%20Mistakes%20Prologue.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook PDF</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../Projects/DuelingCircle/DC21.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../Programming/ExternalExes/doxygen%20development/Design/DoxyFormat.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../Programming/ExternalExes/doxygen%20development/Design/OldData/DoxyFormat.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../Writing/KotoRII/Novelization/Episode%20II/Chapter1.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook HTML</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../Programming/ExternalExes/doxygen%20development/Design/ProgDocSchema.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook PDF</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../Programming/InternalExes/FoMaker/design/FoLoadCodeGen.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook PDF Printable</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../Design/RenderToDo.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook PDF Printable</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../Writing/KotoRII/Adventures%20of%20Bastila%20and%20Mira/Chapter%202.xml</String>
+                                </field>
+                            </scenarioAssociation>
+                            <scenarioAssociation>
+                                <field name="name">
+                                    <String xml:space="preserve">Docbook PDF Printable</String>
+                                </field>
+                                <field name="type">
+                                    <String xml:space="preserve">XSL</String>
+                                </field>
+                                <field name="url">
+                                    <String xml:space="preserve">file:/../Writing/KotoRII/Adventures%20of%20Bastila%20and%20Mira/Chapter%201.xml</String>
                                 </field>
                             </scenarioAssociation>
                             <scenarioAssociation>
                                     <String xml:space="preserve">XSL</String>
                                 </field>
                                 <field name="url">
-                                    <String xml:space="preserve">Tutorials.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook PDF Printable</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../Writing/KotoRII/Adventures%20of%20Bastila%20and%20Mira/Chapter%201.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook PDF Printable</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../Writing/KotoRII/Adventures%20of%20Bastila%20and%20Mira/Chapter%202.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook PDF Printable</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../Design/RenderToDo.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook PDF</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../Programming/InternalExes/FoMaker/design/FoLoadCodeGen.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../Programming/ExternalExes/doxygen%20development/Design/ProgDocSchema.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../Writing/KotoRII/Novelization/Episode%20II/Chapter1.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../Programming/ExternalExes/doxygen%20development/Design/OldData/DoxyFormat.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../Programming/ExternalExes/doxygen%20development/Design/DoxyFormat.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook PDF</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../Projects/DuelingCircle/DC21.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../Critiques/Past%20Mistakes%20Prologue.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../Critiques/Past%20Mistakes%201%20Trouble.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/../WritingDesign/TacticalD20/Anime_d20_SRD_v1.0_-_Chap01-12/DocBook/CharacterCreation.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/H:/SM/KotoRII/BasicOutline.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook XHTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/H:/SM/KotoRII/Episode%20I/Chapter1.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook PDF</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/H:/SM/KotoRII/Episode%20I/Chapter3.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/H:/SM/KotoRII/Episode%20I/Episode%20I.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/H:/SM/KotoRII/Episode%20I/Chapter2.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook XHTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/H:/SM/KotoRII/FirstBook.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Docbook HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">file:/G:/Program%20Files/XMLmind_XML_Editor/demo/docbook-modular-book/chapter.xml</String>
-                                </field>
-                            </scenarioAssociation>
-                            <scenarioAssociation>
-                                <field name="name">
-                                    <String xml:space="preserve">Tutorial to HTML</String>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="url">
-                                    <String xml:space="preserve">Tutorials.html</String>
+                                    <String xml:space="preserve">Basics/Tutorial%2000.xml</String>
                                 </field>
                             </scenarioAssociation>
                         </scenarioAssociation-array>
                                     <null/>
                                 </field>
                                 <field name="name">
-                                    <String xml:space="preserve">Docbook PDF Kindle</String>
-                                </field>
-                                <field name="baseURL">
-                                    <String xml:space="preserve"></String>
-                                </field>
-                                <field name="footerURL">
-                                    <String xml:space="preserve"></String>
-                                </field>
-                                <field name="fOPMethod">
-                                    <String xml:space="preserve">pdf</String>
-                                </field>
-                                <field name="fOProcessorName">
-                                    <String xml:space="preserve">Apache FOP</String>
-                                </field>
-                                <field name="headerURL">
-                                    <String xml:space="preserve"></String>
-                                </field>
-                                <field name="inputXSLURL">
-                                    <String xml:space="preserve">${frameworks}/docbook/xsl/fo/docbook.xsl</String>
-                                </field>
-                                <field name="inputXMLURL">
-                                    <String xml:space="preserve">${currentFileURL}</String>
-                                </field>
-                                <field name="defaultScenario">
-                                    <Boolean xml:space="preserve">false</Boolean>
-                                </field>
-                                <field name="isFOPPerforming">
-                                    <Boolean xml:space="preserve">true</Boolean>
-                                </field>
-                                <field name="type">
-                                    <String xml:space="preserve">XSL</String>
-                                </field>
-                                <field name="saveAs">
-                                    <Boolean xml:space="preserve">true</Boolean>
-                                </field>
-                                <field name="openInBrowser">
-                                    <Boolean xml:space="preserve">true</Boolean>
-                                </field>
-                                <field name="outputFile">
-                                    <File xml:space="preserve">${cfd}/${cfn}.pdf</File>
-                                </field>
-                                <field name="openOtherLocationInBrowser">
-                                    <Boolean xml:space="preserve">false</Boolean>
-                                </field>
-                                <field name="locationToOpenInBrowserURL">
-                                    <null/>
-                                </field>
-                                <field name="openInEditor">
-                                    <Boolean xml:space="preserve">false</Boolean>
-                                </field>
-                                <field name="showInHTMLPane">
-                                    <Boolean xml:space="preserve">false</Boolean>
-                                </field>
-                                <field name="showInXMLPane">
-                                    <Boolean xml:space="preserve">false</Boolean>
-                                </field>
-                                <field name="showInSVGPane">
-                                    <Boolean xml:space="preserve">false</Boolean>
-                                </field>
-                                <field name="showInResultSetPane">
-                                    <Boolean xml:space="preserve">false</Boolean>
-                                </field>
-                                <field name="useXSLTInput">
-                                    <Boolean xml:space="preserve">true</Boolean>
-                                </field>
-                                <field name="xsltParams">
-                                    <list>
-                                    <transformationParameter>
-                                    <field name="paramDescription">
-                                    <paramDescriptor>
-                                    <field name="localName">
-                                    <String xml:space="preserve">body.font.master</String>
-                                    </field>
-                                    <field name="prefix">
-                                    <null/>
-                                    </field>
-                                    <field name="namespace">
-                                    <null/>
-                                    </field>
-                                    </paramDescriptor>
-                                    </field>
-                                    <field name="value">
-                                    <String xml:space="preserve">10</String>
-                                    </field>
-                                    </transformationParameter>
-                                    <transformationParameter>
-                                    <field name="paramDescription">
-                                    <paramDescriptor>
-                                    <field name="localName">
-                                    <String xml:space="preserve">body.start.indent</String>
-                                    </field>
-                                    <field name="prefix">
-                                    <null/>
-                                    </field>
-                                    <field name="namespace">
-                                    <null/>
-                                    </field>
-                                    </paramDescriptor>
-                                    </field>
-                                    <field name="value">
-                                    <String xml:space="preserve">0pt</String>
-                                    </field>
-                                    </transformationParameter>
-                                    <transformationParameter>
-                                    <field name="paramDescription">
-                                    <paramDescriptor>
-                                    <field name="localName">
-                                    <String xml:space="preserve">draft.mode</String>
-                                    </field>
-                                    <field name="prefix">
-                                    <null/>
-                                    </field>
-                                    <field name="namespace">
-                                    <null/>
-                                    </field>
-                                    </paramDescriptor>
-                                    </field>
-                                    <field name="value">
-                                    <String xml:space="preserve">no</String>
-                                    </field>
-                                    </transformationParameter>
-                                    <transformationParameter>
-                                    <field name="paramDescription">
-                                    <paramDescriptor>
-                                    <field name="localName">
-                                    <String xml:space="preserve">page.height</String>
-                                    </field>
-                                    <field name="prefix">
-                                    <null/>
-                                    </field>
-                                    <field name="namespace">
-                                    <null/>
-                                    </field>
-                                    </paramDescriptor>
-                                    </field>
-                                    <field name="value">
-                                    <String xml:space="preserve">4.79in</String>
-                                    </field>
-                                    </transformationParameter>
-                                    <transformationParameter>
-                                    <field name="paramDescription">
-                                    <paramDescriptor>
-                                    <field name="localName">
-                                    <String xml:space="preserve">page.height.portrait</String>
-                                    </field>
-                                    <field name="prefix">
-                                    <null/>
-                                    </field>
-                                    <field name="namespace">
-                                    <null/>
-                                    </field>
-                                    </paramDescriptor>
-                                    </field>
-                                    <field name="value">
-                                    <String xml:space="preserve">4.79in</String>
-                                    </field>
-                                    </transformationParameter>
-                                    <transformationParameter>
-                                    <field name="paramDescription">
-                                    <paramDescriptor>
-                                    <field name="localName">
-                                    <String xml:space="preserve">page.margin.bottom</String>
-                                    </field>
-                                    <field name="prefix">
-                                    <null/>
-                                    </field>
-                                    <field name="namespace">
-                                    <null/>
-                                    </field>
-                                    </paramDescriptor>
-                                    </field>
-                                    <field name="value">
-                                    <String xml:space="preserve">0in</String>
-                                    </field>
-                                    </transformationParameter>
-                                    <transformationParameter>
-                                    <field name="paramDescription">
-                                    <paramDescriptor>
-                                    <field name="localName">
-                                    <String xml:space="preserve">page.margin.inner</String>
-                                    </field>
-                                    <field name="prefix">
-                                    <null/>
-                                    </field>
-                                    <field name="namespace">
-                                    <null/>
-                                    </field>
-                                    </paramDescriptor>
-                                    </field>
-                                    <field name="value">
-                                    <String xml:space="preserve">0in</String>
-                                    </field>
-                                    </transformationParameter>
-                                    <transformationParameter>
-                                    <field name="paramDescription">
-                                    <paramDescriptor>
-                                    <field name="localName">
-                                    <String xml:space="preserve">page.margin.outer</String>
-                                    </field>
-                                    <field name="prefix">
-                                    <null/>
-                                    </field>
-                                    <field name="namespace">
-                                    <null/>
-                                    </field>
-                                    </paramDescriptor>
-                                    </field>
-                                    <field name="value">
-                                    <String xml:space="preserve">0in</String>
-                                    </field>
-                                    </transformationParameter>
-                                    <transformationParameter>
-                                    <field name="paramDescription">
-                                    <paramDescriptor>
-                                    <field name="localName">
-                                    <String xml:space="preserve">page.margin.top</String>
-                                    </field>
-                                    <field name="prefix">
-                                    <null/>
-                                    </field>
-                                    <field name="namespace">
-                                    <null/>
-                                    </field>
-                                    </paramDescriptor>
-                                    </field>
-                                    <field name="value">
-                                    <String xml:space="preserve">0in</String>
-                                    </field>
-                                    </transformationParameter>
-                                    <transformationParameter>
-                                    <field name="paramDescription">
-                                    <paramDescriptor>
-                                    <field name="localName">
-                                    <String xml:space="preserve">page.width</String>
-                                    </field>
-                                    <field name="prefix">
-                                    <null/>
-                                    </field>
-                                    <field name="namespace">
-                                    <null/>
-                                    </field>
-                                    </paramDescriptor>
-                                    </field>
-                                    <field name="value">
-                                    <String xml:space="preserve">3.59in</String>
-                                    </field>
-                                    </transformationParameter>
-                                    <transformationParameter>
-                                    <field name="paramDescription">
-                                    <paramDescriptor>
-                                    <field name="localName">
-                                    <String xml:space="preserve">page.width.portrait</String>
-                                    </field>
-                                    <field name="prefix">
-                                    <null/>
-                                    </field>
-                                    <field name="namespace">
-                                    <null/>
-                                    </field>
-                                    </paramDescriptor>
-                                    </field>