summaryrefslogtreecommitdiff
path: root/manuals/chickadee
diff options
context:
space:
mode:
Diffstat (limited to 'manuals/chickadee')
-rw-r--r--manuals/chickadee/3D-Models.html6
-rw-r--r--manuals/chickadee/9_002dPatches.html131
-rw-r--r--manuals/chickadee/Basics.html2
-rw-r--r--manuals/chickadee/Bezier-Curves.html2
-rw-r--r--manuals/chickadee/Blending.html116
-rw-r--r--manuals/chickadee/Buffers.html6
-rw-r--r--manuals/chickadee/Easings.html2
-rw-r--r--manuals/chickadee/Fonts.html10
-rw-r--r--manuals/chickadee/Framebuffers.html2
-rw-r--r--manuals/chickadee/Graphics.html19
-rw-r--r--manuals/chickadee/Grid.html10
-rw-r--r--manuals/chickadee/Index.html43
-rw-r--r--manuals/chickadee/Math.html12
-rw-r--r--manuals/chickadee/Matrices.html118
-rw-r--r--manuals/chickadee/Particles.html16
-rw-r--r--manuals/chickadee/Path-Finding.html8
-rw-r--r--manuals/chickadee/Quaternions.html2
-rw-r--r--manuals/chickadee/Rectangles.html6
-rw-r--r--manuals/chickadee/Rendering-Engine.html24
-rw-r--r--manuals/chickadee/Shaders.html12
-rw-r--r--manuals/chickadee/Sprites.html47
-rw-r--r--manuals/chickadee/The-Game-Loop.html14
-rw-r--r--manuals/chickadee/Tile-Maps.html39
-rw-r--r--manuals/chickadee/Vector-Paths.html10
-rw-r--r--manuals/chickadee/Vectors.html8
-rw-r--r--manuals/chickadee/Viewports.html2
-rw-r--r--manuals/chickadee/index.html48
27 files changed, 525 insertions, 190 deletions
diff --git a/manuals/chickadee/3D-Models.html b/manuals/chickadee/3D-Models.html
index ef1a2cb..6d0f7c7 100644
--- a/manuals/chickadee/3D-Models.html
+++ b/manuals/chickadee/3D-Models.html
@@ -33,7 +33,7 @@ http://www.texinfo.org/ (GNU Texinfo).
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Graphics.html" rel="up" title="Graphics">
<link href="Blending.html" rel="next" title="Blending">
-<link href="Particles.html" rel="prev" title="Particles">
+<link href="Tile-Maps.html" rel="prev" title="Tile Maps">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
@@ -82,10 +82,10 @@ ul.no-bullet {list-style: none}
<body lang="en">
<span id="g_t3D-Models"></span><div class="header">
<p>
-Next: <a href="Blending.html" accesskey="n" rel="next">Blending</a>, Previous: <a href="Particles.html" accesskey="p" rel="prev">Particles</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+Next: <a href="Blending.html" accesskey="n" rel="next">Blending</a>, Previous: <a href="Tile-Maps.html" accesskey="p" rel="prev">Tile Maps</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
-<span id="g_t3D-Models-1"></span><h4 class="subsection">2.3.8 3D Models</h4>
+<span id="g_t3D-Models-1"></span><h4 class="subsection">2.3.9 3D Models</h4>
<p><em>Disclaimer: Chickadee is alpha software, but 3D model support is
even more alpha than that. There are many missing features in both
diff --git a/manuals/chickadee/9_002dPatches.html b/manuals/chickadee/9_002dPatches.html
new file mode 100644
index 0000000..270ee0e
--- /dev/null
+++ b/manuals/chickadee/9_002dPatches.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!-- Copyright (C) 2017-2020 David Thompson davet@gnu.org
+
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3
+or any later version published by the Free Software Foundation;
+with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+A copy of the license is included in the section entitled "GNU
+Free Documentation License".
+
+A copy of the license is also available from the Free Software
+Foundation Web site at http://www.gnu.org/licenses/fdl.html.
+
+
+* Chickadee: (chickadee). Game programming toolkit for Guile.
+
+The document was typeset with
+http://www.texinfo.org/ (GNU Texinfo).
+ -->
+<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<title>9-Patches (The Chickadee Game Toolkit)</title>
+
+<meta name="description" content="9-Patches (The Chickadee Game Toolkit)">
+<meta name="keywords" content="9-Patches (The Chickadee Game Toolkit)">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="makeinfo">
+<link href="index.html" rel="start" title="Top">
+<link href="Index.html" rel="index" title="Index">
+<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
+<link href="Graphics.html" rel="up" title="Graphics">
+<link href="Fonts.html" rel="next" title="Fonts">
+<link href="Sprites.html" rel="prev" title="Sprites">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.indentedblock {margin-right: 0em}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+kbd {font-style: oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+span.nolinebreak {white-space: nowrap}
+span.roman {font-family: initial; font-weight: normal}
+span.sansserif {font-family: sans-serif; font-weight: normal}
+ul.no-bullet {list-style: none}
+@media (min-width: 1140px) {
+ body {
+ margin-left: 14rem;
+ margin-right: 4rem;
+ max-width: 52rem;
+ }
+}
+
+@media (min-width: 800px) and (max-width: 1140px) {
+ body {
+ margin-left: 6rem;
+ margin-right: 4rem;
+ max-width: 52rem;
+ }
+}
+
+@media (max-width: 800px) {
+ body {
+ margin: 1rem;
+ }
+}
+
+-->
+</style>
+<link rel="stylesheet" type="text/css" href="https://dthompson.us/css/dthompson.css">
+
+
+</head>
+
+<body lang="en">
+<span id="g_t9_002dPatches"></span><div class="header">
+<p>
+Next: <a href="Fonts.html" accesskey="n" rel="next">Fonts</a>, Previous: <a href="Sprites.html" accesskey="p" rel="prev">Sprites</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+</div>
+<hr>
+<span id="g_t9_002dPatches-1"></span><h4 class="subsection">2.3.4 9-Patches</h4>
+
+<p>A 9-patch is a method of rendering a texture so that it can be
+stretched to cover an area of any size without becoming distorted.
+This is achieved by dividing up the sprite into nine regions:
+</p>
+<ul>
+<li> the center, which can be stretched or tiled horizontally and vertically
+</li><li> the four corners, which are never stretched or tiled
+</li><li> the left and right sides, which can be stretched or tiled vertically
+</li><li> the top and bottom sides, which can be stretched or tiled horizontally
+</li></ul>
+
+<p>The most common application of this technique is for graphical user
+interface widgets like buttons and dialog boxes which are often
+dynamically resizable. By using a 9-patch, they can be rendered at
+any size without scaling artifacts.
+</p>
+<dl>
+<dt id="index-draw_002dnine_002dpatch">Procedure: <strong>draw-nine-patch</strong> <em>texture rect [#:margin 0] [#:top-margin margin] [#:bottom-margin margin] [#:left-margin margin] [#:right-margin margin] [#:mode stretch] [#:origin] [#:scale] [#:rotation] [#:blend-mode] [#:tint white]</em></dt>
+<dd>
+<p>Draw a 9-patch over the area <var>rect</var> using <var>texture</var> whose
+stretchable/tileable patches are defined by the given margin
+measurements. The corners are never stretched/tiled, the left and
+right edges will be stretched/tiled vertically, the top and bottom
+edges may be stretched/tiled horizontally, and the center may be
+stretched/tiled in both directions.
+</p>
+<p><var>mode</var> may be either <code>stretch</code> (the default) or <code>tile</code>.
+</p>
+<p><var>margin</var> specifies the margin size for all sides of the 9-patch.
+To make margins of differing sizes, the <var>top-margin</var>,
+<var>bottom-margin</var>, <var>left-margin</var>, and <var>right-margin</var>
+arguments may be used.
+</p>
+<p>Refer to <code>draw-sprite</code> (see <a href="Sprites.html">Sprites</a>) for information about
+the other arguments as they are the same.
+</p></dd></dl>
+
+
+
+
+</body>
+</html>
diff --git a/manuals/chickadee/Basics.html b/manuals/chickadee/Basics.html
index 22fe5c7..e258de2 100644
--- a/manuals/chickadee/Basics.html
+++ b/manuals/chickadee/Basics.html
@@ -129,7 +129,7 @@ factor <var>alpha</var>, a number in the range [0, 1].
</p></dd></dl>
<dl>
-<dt id="index-degrees_002d_003eradians-1">Procedure: <strong>degrees-&gt;radians</strong> <em>radians</em></dt>
+<dt id="index-radians_002d_003edegrees">Procedure: <strong>radians-&gt;degrees</strong> <em>radians</em></dt>
<dd><p>Convert <var>radians</var> to degrees.
</p></dd></dl>
diff --git a/manuals/chickadee/Bezier-Curves.html b/manuals/chickadee/Bezier-Curves.html
index b424dac..cb413cf 100644
--- a/manuals/chickadee/Bezier-Curves.html
+++ b/manuals/chickadee/Bezier-Curves.html
@@ -85,7 +85,7 @@ ul.no-bullet {list-style: none}
Next: <a href="Path-Finding.html" accesskey="n" rel="next">Path Finding</a>, Previous: <a href="Easings.html" accesskey="p" rel="prev">Easings</a>, Up: <a href="Math.html" accesskey="u" rel="up">Math</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
-<span id="Bezier-Curves-1"></span><h4 class="subsection">2.2.8 Bezier Curves</h4>
+<span id="Bezier-Curves-1"></span><h4 class="subsection">2.2.7 Bezier Curves</h4>
<p>The <code>(chickadee math bezier)</code> module provides an API for
describing cubic Bezier curves in 2D space. These curves are notably
diff --git a/manuals/chickadee/Blending.html b/manuals/chickadee/Blending.html
index 4cf13a7..0a54bbe 100644
--- a/manuals/chickadee/Blending.html
+++ b/manuals/chickadee/Blending.html
@@ -85,40 +85,118 @@ ul.no-bullet {list-style: none}
Next: <a href="Framebuffers.html" accesskey="n" rel="next">Framebuffers</a>, Previous: <a href="3D-Models.html" accesskey="p" rel="prev">3D Models</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
-<span id="Blending-1"></span><h4 class="subsection">2.3.9 Blending</h4>
+<span id="Blending-1"></span><h4 class="subsection">2.3.10 Blending</h4>
<p>Rendering a scene often involves drawing layers of objects that
overlap each other. Blending determines how two overlapping pixels
are combined in the final image that is rendered to the screen.
-Chickadee provides the following blend modes:
</p>
-<ul>
-<li> <code>replace</code>
-Use the latest color, ignoring all others.
-
-</li><li> <code>alpha</code>
-Blend pixels according to the values of their alpha channels. This is
-the most commonly used blend mode and thus is Chickadee&rsquo;s default
-mode.
-
-</li><li> <code>add</code>
-Add all pixel color values together. The more colors blended
+<p>Chickadee provides the following blend modes:
+</p>
+<dl>
+<dt id="index-blend_003aalpha">Variable: <strong>blend:alpha</strong></dt>
+<dd><p>Blend pixels according to the values of their alpha channels. This is
+the most commonly used blend mode.
+</p></dd></dl>
+
+<dl>
+<dt id="index-blend_003areplace">Variable: <strong>blend:replace</strong></dt>
+<dd><p>Overwrite the output pixel color with the color being drawn.
+</p></dd></dl>
+
+<dl>
+<dt id="index-blend_003aadd">Variable: <strong>blend:add</strong></dt>
+<dd><p>Add all pixel color values together. The more colors blended
together, the more white the final color becomes.
+</p></dd></dl>
-</li><li> <code>subtract</code>
-Subtract all pixel color values. The more colors blended together,
+<dl>
+<dt id="index-blend_003asubtract">Variable: <strong>blend:subtract</strong></dt>
+<dd><p>Subtract all pixel color values. The more colors blended together,
the more black the final color becomes.
+</p></dd></dl>
-</li><li> <code>multiply</code>
+<dl>
+<dt id="index-blend_003amultiply">Variable: <strong>blend:multiply</strong></dt>
+</dl>
-</li><li> <code>darken</code>
+<dl>
+<dt id="index-blend_003adarken">Variable: <strong>blend:darken</strong></dt>
+</dl>
-</li><li> <code>lighten</code>
+<dl>
+<dt id="index-blend_003alighten">Variable: <strong>blend:lighten</strong></dt>
+</dl>
-</li><li> <code>screen</code>
+<dl>
+<dt id="index-blend_003ascreen">Variable: <strong>blend:screen</strong></dt>
+</dl>
+<p>Custom blend modes can be created using the <code>make-blend-mode</code> procedure:
+</p>
+<dl>
+<dt id="index-make_002dblend_002dmode">Procedure: <strong>make-blend-mode</strong> <em>equation source-function destination-function</em></dt>
+<dd><p>Return a new custom blend mode that applies <var>source-function</var> to
+the source color, <var>destination-function</var> to the destination color,
+and finally applies <var>equation</var> to the transformed
+source/destination color values. These arguments are <em>not</em>
+procedures, but symbolic representations of the functions that OpenGL
+supports.
+</p>
+<p>Valid values for <var>equation</var> are:
+</p>
+<ul>
+<li> <code>add</code>
+</li><li> <code>subtract</code>
+</li><li> <code>reverse-subtract</code>
+</li><li> <code>min</code>
+</li><li> <code>max</code>
+</li><li> <code>alpha-min</code>
+</li><li> <code>alpha-max</code>
</li></ul>
+<p>Valid values for <var>source-function</var> are:
+</p>
+<ul>
+<li> <code>zero</code>
+</li><li> <code>one</code>
+</li><li> <code>destination-color</code>
+</li><li> <code>one-minus-destination-color</code>
+</li><li> <code>source-alpha-saturate</code>
+</li><li> <code>source-alpha</code>
+</li><li> <code>one-minus-source-alpha</code>
+</li><li> <code>destination-alpha</code>
+</li><li> <code>one-minus-destination-alpha</code>
+</li><li> <code>constant-color</code>
+</li><li> <code>one-minus-constant-color</code>
+</li><li> <code>constant-alpha</code>
+</li><li> <code>one-minus-constant-alpha</code>
+</li></ul>
+
+<p>Valid values for <var>destination-function</var> are:
+</p>
+<ul>
+<li> <code>zero</code>
+</li><li> <code>one</code>
+</li><li> <code>source-color</code>
+</li><li> <code>one-minus-source-color</code>
+</li><li> <code>source-alpha</code>
+</li><li> <code>one-minus-source-alpha</code>
+</li><li> <code>destination-alpha</code>
+</li><li> <code>one-minus-destination-alpha</code>
+</li><li> <code>constant-color</code>
+</li><li> <code>one-minus-constant-color</code>
+</li><li> <code>constant-alpha</code>
+</li><li> <code>one-minus-constant-alpha</code>
+</li></ul>
+
+</dd></dl>
+
+<hr>
+<div class="header">
+<p>
+Next: <a href="Framebuffers.html" accesskey="n" rel="next">Framebuffers</a>, Previous: <a href="3D-Models.html" accesskey="p" rel="prev">3D Models</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+</div>
diff --git a/manuals/chickadee/Buffers.html b/manuals/chickadee/Buffers.html
index e5652c3..06b156a 100644
--- a/manuals/chickadee/Buffers.html
+++ b/manuals/chickadee/Buffers.html
@@ -85,7 +85,7 @@ ul.no-bullet {list-style: none}
Next: <a href="Shaders.html" accesskey="n" rel="next">Shaders</a>, Previous: <a href="Rendering-Engine.html" accesskey="p" rel="prev">Rendering Engine</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
-<span id="Buffers-1"></span><h4 class="subsection">2.3.13 Buffers</h4>
+<span id="Buffers-1"></span><h4 class="subsection">2.3.14 Buffers</h4>
<p>Alright, let&rsquo;s brush aside all of those pretty high level abstractions
and discuss what is going on under the hood. The GPU exists as a
@@ -183,7 +183,7 @@ for each attribute.
<p>With the vertex array created, the GPU is now fully aware of how to
interpret the data that it has been given in the original buffer.
Actually rendering this square is left as an exercise to the reader.
-See the <a href="Shaders.html">Shaders</a> section and the <code>gpu-apply</code> procedure in
+See the <a href="Shaders.html">Shaders</a> section and the <code>shader-apply</code> procedure in
<a href="Rendering-Engine.html">Rendering Engine</a> for the remaining pieces of a successful draw
call. Additionally, consider reading the source code for sprites,
shapes, or particles to see GPU buffers in action.
@@ -341,7 +341,7 @@ single number
</li></ul>
<p><var>divisor</var> is only needed for instanced rendering applications (see
-<code>gpu-apply/instanced</code> in <a href="Rendering-Engine.html">Rendering Engine</a>) and represents
+<code>shader-apply/instanced</code> in <a href="Rendering-Engine.html">Rendering Engine</a>) and represents
how many instances each vertex element applies to. A divisor of 0
means that a single element is used for every instance and is used for
the data being instanced. A divisor of 1 means that each element is
diff --git a/manuals/chickadee/Easings.html b/manuals/chickadee/Easings.html
index 241e9e8..0e79a7e 100644
--- a/manuals/chickadee/Easings.html
+++ b/manuals/chickadee/Easings.html
@@ -85,7 +85,7 @@ ul.no-bullet {list-style: none}
Next: <a href="Bezier-Curves.html" accesskey="n" rel="next">Bezier Curves</a>, Previous: <a href="Quaternions.html" accesskey="p" rel="prev">Quaternions</a>, Up: <a href="Math.html" accesskey="u" rel="up">Math</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
-<span id="Easings-1"></span><h4 class="subsection">2.2.7 Easings</h4>
+<span id="Easings-1"></span><h4 class="subsection">2.2.6 Easings</h4>
<p>Easing functions are essential for animation. Each easing function
provides a different path to go from an initial value to a final
diff --git a/manuals/chickadee/Fonts.html b/manuals/chickadee/Fonts.html
index 4bc0411..e2ab386 100644
--- a/manuals/chickadee/Fonts.html
+++ b/manuals/chickadee/Fonts.html
@@ -32,8 +32,8 @@ http://www.texinfo.org/ (GNU Texinfo).
<link href="Index.html" rel="index" title="Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Graphics.html" rel="up" title="Graphics">
-<link href="Particles.html" rel="next" title="Particles">
-<link href="Vector-Paths.html" rel="prev" title="Vector Paths">
+<link href="Vector-Paths.html" rel="next" title="Vector Paths">
+<link href="9_002dPatches.html" rel="prev" title="9-Patches">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
@@ -82,10 +82,10 @@ ul.no-bullet {list-style: none}
<body lang="en">
<span id="Fonts"></span><div class="header">
<p>
-Next: <a href="Particles.html" accesskey="n" rel="next">Particles</a>, Previous: <a href="Vector-Paths.html" accesskey="p" rel="prev">Vector Paths</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+Next: <a href="Vector-Paths.html" accesskey="n" rel="next">Vector Paths</a>, Previous: <a href="9_002dPatches.html" accesskey="p" rel="prev">9-Patches</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
-<span id="Fonts-1"></span><h4 class="subsection">2.3.6 Fonts</h4>
+<span id="Fonts-1"></span><h4 class="subsection">2.3.5 Fonts</h4>
<p>Printing text to the screen is quite easy:
</p>
@@ -171,7 +171,7 @@ the other arguments.
<hr>
<div class="header">
<p>
-Next: <a href="Particles.html" accesskey="n" rel="next">Particles</a>, Previous: <a href="Vector-Paths.html" accesskey="p" rel="prev">Vector Paths</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+Next: <a href="Vector-Paths.html" accesskey="n" rel="next">Vector Paths</a>, Previous: <a href="9_002dPatches.html" accesskey="p" rel="prev">9-Patches</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
diff --git a/manuals/chickadee/Framebuffers.html b/manuals/chickadee/Framebuffers.html
index dcef63b..a6ad3d2 100644
--- a/manuals/chickadee/Framebuffers.html
+++ b/manuals/chickadee/Framebuffers.html
@@ -85,7 +85,7 @@ ul.no-bullet {list-style: none}
Next: <a href="Viewports.html" accesskey="n" rel="next">Viewports</a>, Previous: <a href="Blending.html" accesskey="p" rel="prev">Blending</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
-<span id="Framebuffers-1"></span><h4 class="subsection">2.3.10 Framebuffers</h4>
+<span id="Framebuffers-1"></span><h4 class="subsection">2.3.11 Framebuffers</h4>
<p>A framebuffer is a chunk of memory that the GPU can render things
onto. By default, the framebuffer that is used for rendering is the
diff --git a/manuals/chickadee/Graphics.html b/manuals/chickadee/Graphics.html
index 51d97cb..60ba1f8 100644
--- a/manuals/chickadee/Graphics.html
+++ b/manuals/chickadee/Graphics.html
@@ -33,7 +33,7 @@ http://www.texinfo.org/ (GNU Texinfo).
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="API-Reference.html" rel="up" title="API Reference">
<link href="Colors.html" rel="next" title="Colors">
-<link href="Path-Finding.html" rel="prev" title="Path Finding">
+<link href="Grid.html" rel="prev" title="Grid">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
@@ -103,17 +103,19 @@ blocks to implement additional rendering techniques.
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Sprites.html" accesskey="3">Sprites</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Draw 2D images.
</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="Tile-Maps.html" accesskey="4">Tile Maps</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Draw 2D tile maps.
+<tr><td align="left" valign="top">&bull; <a href="9_002dPatches.html" accesskey="4">9-Patches</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Scalable bitmap boxes.
</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="Vector-Paths.html" accesskey="5">Vector Paths</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Draw filled and stroked paths.
+<tr><td align="left" valign="top">&bull; <a href="Fonts.html" accesskey="5">Fonts</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Drawing text.
</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="Fonts.html" accesskey="6">Fonts</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Drawing text.
+<tr><td align="left" valign="top">&bull; <a href="Vector-Paths.html" accesskey="6">Vector Paths</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Draw filled and stroked paths.
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Particles.html" accesskey="7">Particles</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Pretty little flying pieces!
</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="3D-Models.html" accesskey="8">3D Models</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Spinning teapots everywhere.
+<tr><td align="left" valign="top">&bull; <a href="Tile-Maps.html" accesskey="8">Tile Maps</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Draw 2D tile maps.
</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="Blending.html" accesskey="9">Blending</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Control how pixels are combined.
+<tr><td align="left" valign="top">&bull; <a href="3D-Models.html" accesskey="9">3D Models</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Spinning teapots everywhere.
+</td></tr>
+<tr><td align="left" valign="top">&bull; <a href="Blending.html">Blending</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Control how pixels are combined.
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Framebuffers.html">Framebuffers</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Render to texture.
</td></tr>
@@ -127,6 +129,11 @@ blocks to implement additional rendering techniques.
</td></tr>
</table>
+<hr>
+<div class="header">
+<p>
+Next: <a href="Audio.html" accesskey="n" rel="next">Audio</a>, Previous: <a href="Math.html" accesskey="p" rel="prev">Math</a>, Up: <a href="API-Reference.html" accesskey="u" rel="up">API Reference</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+</div>
diff --git a/manuals/chickadee/Grid.html b/manuals/chickadee/Grid.html
index 0cacb91..ed96cd3 100644
--- a/manuals/chickadee/Grid.html
+++ b/manuals/chickadee/Grid.html
@@ -32,8 +32,8 @@ http://www.texinfo.org/ (GNU Texinfo).
<link href="Index.html" rel="index" title="Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Math.html" rel="up" title="Math">
-<link href="Matrices.html" rel="next" title="Matrices">
-<link href="Rectangles.html" rel="prev" title="Rectangles">
+<link href="Graphics.html" rel="next" title="Graphics">
+<link href="Path-Finding.html" rel="prev" title="Path Finding">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
@@ -82,10 +82,10 @@ ul.no-bullet {list-style: none}
<body lang="en">
<span id="Grid"></span><div class="header">
<p>
-Next: <a href="Matrices.html" accesskey="n" rel="next">Matrices</a>, Previous: <a href="Rectangles.html" accesskey="p" rel="prev">Rectangles</a>, Up: <a href="Math.html" accesskey="u" rel="up">Math</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+Previous: <a href="Path-Finding.html" accesskey="p" rel="prev">Path Finding</a>, Up: <a href="Math.html" accesskey="u" rel="up">Math</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
-<span id="Grid-1"></span><h4 class="subsection">2.2.4 Grid</h4>
+<span id="Grid-1"></span><h4 class="subsection">2.2.9 Grid</h4>
<p>The <code>(chickadee math grid)</code> module provides a simple spatial
partitioning system for axis-aligned bounding boxes
@@ -205,7 +205,7 @@ the minimum amount needed to make it no longer overlap
<hr>
<div class="header">
<p>
-Next: <a href="Matrices.html" accesskey="n" rel="next">Matrices</a>, Previous: <a href="Rectangles.html" accesskey="p" rel="prev">Rectangles</a>, Up: <a href="Math.html" accesskey="u" rel="up">Math</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+Previous: <a href="Path-Finding.html" accesskey="p" rel="prev">Path Finding</a>, Up: <a href="Math.html" accesskey="u" rel="up">Math</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
diff --git a/manuals/chickadee/Index.html b/manuals/chickadee/Index.html
index f4b958e..74142f7 100644
--- a/manuals/chickadee/Index.html
+++ b/manuals/chickadee/Index.html
@@ -149,9 +149,12 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th
<tr><td></td><td valign="top"><a href="Agendas.html#index-after"><code>after</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Agendas.html">Agendas</a></td></tr>
<tr><td></td><td valign="top"><a href="Agendas.html#index-agenda_002dtime"><code>agenda-time</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Agendas.html">Agendas</a></td></tr>
<tr><td></td><td valign="top"><a href="Agendas.html#index-agenda_003f"><code>agenda?</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Agendas.html">Agendas</a></td></tr>
+<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-animation_002dduration"><code>animation-duration</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-animation_002dframe_002dduration"><code>animation-frame-duration</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-animation_002dframe_002dtile"><code>animation-frame-tile</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-animation_002dframe_003f"><code>animation-frame?</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
+<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-animation_002dframes"><code>animation-frames</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
+<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-animation_003f"><code>animation?</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
<tr><td></td><td valign="top"><a href="Vector-Paths.html#index-arc"><code>arc</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Vector-Paths.html">Vector Paths</a></td></tr>
<tr><td></td><td valign="top"><a href="Agendas.html#index-at"><code>at</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Agendas.html">Agendas</a></td></tr>
<tr><td></td><td valign="top"><a href="Shaders.html#index-attribute_002dlocation"><code>attribute-location</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Shaders.html">Shaders</a></td></tr>
@@ -179,6 +182,14 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th
<tr><td></td><td valign="top"><a href="Bezier-Curves.html#index-bezier_002dpath"><code>bezier-path</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Bezier-Curves.html">Bezier Curves</a></td></tr>
<tr><td></td><td valign="top"><a href="Vector-Paths.html#index-bezier_002dto"><code>bezier-to</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Vector-Paths.html">Vector Paths</a></td></tr>
<tr><td></td><td valign="top"><a href="Colors.html#index-black"><code>black</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Colors.html">Colors</a></td></tr>
+<tr><td></td><td valign="top"><a href="Blending.html#index-blend_003aadd"><code>blend:add</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Blending.html">Blending</a></td></tr>
+<tr><td></td><td valign="top"><a href="Blending.html#index-blend_003aalpha"><code>blend:alpha</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Blending.html">Blending</a></td></tr>
+<tr><td></td><td valign="top"><a href="Blending.html#index-blend_003adarken"><code>blend:darken</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Blending.html">Blending</a></td></tr>
+<tr><td></td><td valign="top"><a href="Blending.html#index-blend_003alighten"><code>blend:lighten</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Blending.html">Blending</a></td></tr>
+<tr><td></td><td valign="top"><a href="Blending.html#index-blend_003amultiply"><code>blend:multiply</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Blending.html">Blending</a></td></tr>
+<tr><td></td><td valign="top"><a href="Blending.html#index-blend_003areplace"><code>blend:replace</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Blending.html">Blending</a></td></tr>
+<tr><td></td><td valign="top"><a href="Blending.html#index-blend_003ascreen"><code>blend:screen</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Blending.html">Blending</a></td></tr>
+<tr><td></td><td valign="top"><a href="Blending.html#index-blend_003asubtract"><code>blend:subtract</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Blending.html">Blending</a></td></tr>
<tr><td></td><td valign="top"><a href="Colors.html#index-blue"><code>blue</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Colors.html">Colors</a></td></tr>
<tr><td></td><td valign="top"><a href="Shaders.html#index-bool"><code>bool</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Shaders.html">Shaders</a></td></tr>
<tr><td></td><td valign="top"><a href="Buffers.html#index-buffer_002ddata"><code>buffer-data</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Buffers.html">Buffers</a></td></tr>
@@ -239,12 +250,11 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th
<tr><th id="Index_fn_letter-D">D</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="Shaders.html#index-define_002dshader_002dtype"><code>define-shader-type</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Shaders.html">Shaders</a></td></tr>
<tr><td></td><td valign="top"><a href="Basics.html#index-degrees_002d_003eradians"><code>degrees-&gt;radians</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Basics.html">Basics</a></td></tr>
-<tr><td></td><td valign="top"><a href="Basics.html#index-degrees_002d_003eradians-1"><code>degrees-&gt;radians</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Basics.html">Basics</a></td></tr>
<tr><td></td><td valign="top"><a href="The-Environment.html#index-distance_002dmodel"><code>distance-model</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="The-Environment.html">The Environment</a></td></tr>
<tr><td></td><td valign="top"><a href="The-Environment.html#index-doppler_002dfactor"><code>doppler-factor</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="The-Environment.html">The Environment</a></td></tr>
<tr><td></td><td valign="top"><a href="Vector-Paths.html#index-draw_002dcanvas"><code>draw-canvas</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Vector-Paths.html">Vector Paths</a></td></tr>
<tr><td></td><td valign="top"><a href="3D-Models.html#index-draw_002dmodel"><code>draw-model</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="3D-Models.html">3D Models</a></td></tr>
-<tr><td></td><td valign="top"><a href="Sprites.html#index-draw_002dnine_002dpatch"><code>draw-nine-patch</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Sprites.html">Sprites</a></td></tr>
+<tr><td></td><td valign="top"><a href="9_002dPatches.html#index-draw_002dnine_002dpatch"><code>draw-nine-patch</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="9_002dPatches.html">9-Patches</a></td></tr>
<tr><td></td><td valign="top"><a href="Particles.html#index-draw_002dparticles"><code>draw-particles</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Particles.html">Particles</a></td></tr>
<tr><td></td><td valign="top"><a href="Particles.html#index-draw_002dparticles_002a"><code>draw-particles*</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Particles.html">Particles</a></td></tr>
<tr><td></td><td valign="top"><a href="Sprites.html#index-draw_002dsprite"><code>draw-sprite</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Sprites.html">Sprites</a></td></tr>
@@ -294,10 +304,6 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th
<tr><td></td><td valign="top"><a href="Framebuffers.html#index-framebuffer_003f"><code>framebuffer?</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Framebuffers.html">Framebuffers</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Index_fn_letter-G">G</th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="Rendering-Engine.html#index-gpu_002dapply"><code>gpu-apply</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Rendering-Engine.html">Rendering Engine</a></td></tr>
-<tr><td></td><td valign="top"><a href="Rendering-Engine.html#index-gpu_002dapply_002a"><code>gpu-apply*</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Rendering-Engine.html">Rendering Engine</a></td></tr>
-<tr><td></td><td valign="top"><a href="Rendering-Engine.html#index-gpu_002dapply_002finstanced"><code>gpu-apply/instanced</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Rendering-Engine.html">Rendering Engine</a></td></tr>
-<tr><td></td><td valign="top"><a href="Rendering-Engine.html#index-gpu_002dapply_002finstanced-1"><code>gpu-apply/instanced</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Rendering-Engine.html">Rendering Engine</a></td></tr>
<tr><td></td><td valign="top"><a href="Colors.html#index-green"><code>green</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Colors.html">Colors</a></td></tr>
<tr><td></td><td valign="top"><a href="Grid.html#index-grid_002dadd"><code>grid-add</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Grid.html">Grid</a></td></tr>
<tr><td></td><td valign="top"><a href="Grid.html#index-grid_002dcell_002dcount"><code>grid-cell-count</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Grid.html">Grid</a></td></tr>
@@ -343,6 +349,7 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th
<tr><td></td><td valign="top"><a href="Colors.html#index-magenta"><code>magenta</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Colors.html">Colors</a></td></tr>
<tr><td></td><td valign="top"><a href="Agendas.html#index-make_002dagenda"><code>make-agenda</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Agendas.html">Agendas</a></td></tr>
<tr><td></td><td valign="top"><a href="Bezier-Curves.html#index-make_002dbezier_002dcurve"><code>make-bezier-curve</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Bezier-Curves.html">Bezier Curves</a></td></tr>
+<tr><td></td><td valign="top"><a href="Blending.html#index-make_002dblend_002dmode"><code>make-blend-mode</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Blending.html">Blending</a></td></tr>
<tr><td></td><td valign="top"><a href="Buffers.html#index-make_002dbuffer"><code>make-buffer</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Buffers.html">Buffers</a></td></tr>
<tr><td></td><td valign="top"><a href="Buffers.html#index-make_002dbuffer_002dview"><code>make-buffer-view</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Buffers.html">Buffers</a></td></tr>
<tr><td></td><td valign="top"><a href="Vector-Paths.html#index-make_002dcanvas"><code>make-canvas</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Vector-Paths.html">Vector Paths</a></td></tr>
@@ -351,9 +358,12 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th
<tr><td></td><td valign="top"><a href="Vector-Paths.html#index-make_002dempty_002dcanvas"><code>make-empty-canvas</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Vector-Paths.html">Vector Paths</a></td></tr>
<tr><td></td><td valign="top"><a href="Framebuffers.html#index-make_002dframebuffer"><code>make-framebuffer</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Framebuffers.html">Framebuffers</a></td></tr>
<tr><td></td><td valign="top"><a href="Grid.html#index-make_002dgrid"><code>make-grid</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Grid.html">Grid</a></td></tr>
+<tr><td></td><td valign="top"><a href="Matrices.html#index-make_002didentity_002dmatrix3"><code>make-identity-matrix3</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
<tr><td></td><td valign="top"><a href="Matrices.html#index-make_002didentity_002dmatrix4"><code>make-identity-matrix4</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
<tr><td></td><td valign="top"><a href="Quaternions.html#index-make_002didentity_002dquaternion"><code>make-identity-quaternion</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Quaternions.html">Quaternions</a></td></tr>
+<tr><td></td><td valign="top"><a href="Matrices.html#index-make_002dmatrix3"><code>make-matrix3</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
<tr><td></td><td valign="top"><a href="Matrices.html#index-make_002dmatrix4"><code>make-matrix4</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
+<tr><td></td><td valign="top"><a href="Matrices.html#index-make_002dnull_002dmatrix3"><code>make-null-matrix3</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
<tr><td></td><td valign="top"><a href="Matrices.html#index-make_002dnull_002dmatrix4"><code>make-null-matrix4</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
<tr><td></td><td valign="top"><a href="Particles.html#index-make_002dparticle_002demitter"><code>make-particle-emitter</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Particles.html">Particles</a></td></tr>
<tr><td></td><td valign="top"><a href="Particles.html#index-make_002dparticles"><code>make-particles</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Particles.html">Particles</a></td></tr>
@@ -371,6 +381,18 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th
<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-map_002dobject_002dtype"><code>map-object-type</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-map_002dobject_003f"><code>map-object?</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
<tr><td></td><td valign="top"><a href="Shaders.html#index-mat4"><code>mat4</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Shaders.html">Shaders</a></td></tr>
+<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_002a"><code>matrix3*</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
+<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_002didentity_0021"><code>matrix3-identity!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
+<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_002dmult_0021"><code>matrix3-mult!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
+<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_002drotate"><code>matrix3-rotate</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
+<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_002drotate_0021"><code>matrix3-rotate!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
+<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_002dscale"><code>matrix3-scale</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
+<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_002dscale_0021"><code>matrix3-scale!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
+<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_002dtransform"><code>matrix3-transform</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
+<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_002dtransform_0021"><code>matrix3-transform!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
+<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_002dtranslate"><code>matrix3-translate</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
+<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_002dtranslate_0021"><code>matrix3-translate!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
+<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix3_003f"><code>matrix3?</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002a"><code>matrix4*</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002d2d_002dtransform_0021"><code>matrix4-2d-transform!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002didentity_0021"><code>matrix4-identity!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
@@ -381,6 +403,7 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th
<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002drotate_002dz_0021"><code>matrix4-rotate-z!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002dscale"><code>matrix4-scale</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002dscale_0021"><code>matrix4-scale!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
+<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002dtransform_0021"><code>matrix4-transform!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002dtranslate"><code>matrix4-translate</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002dtranslate_0021"><code>matrix4-translate!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_003f"><code>matrix4?</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
@@ -433,6 +456,7 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th
<tr><td></td><td valign="top"><a href="Quaternions.html#index-quaternion_003f"><code>quaternion?</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Quaternions.html">Quaternions</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Index_fn_letter-R">R</th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="Basics.html#index-radians_002d_003edegrees"><code>radians-&gt;degrees</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Basics.html">Basics</a></td></tr>
<tr><td></td><td valign="top"><a href="Window-Manipulation.html#index-raise_002dwindow_0021"><code>raise-window!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Window-Manipulation.html">Window Manipulation</a></td></tr>
<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect"><code>rect</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Rectangles.html">Rectangles</a></td></tr>
<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002darea"><code>rect-area</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Rectangles.html">Rectangles</a></td></tr>
@@ -534,6 +558,10 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th
<tr><td></td><td valign="top"><a href="Window-Manipulation.html#index-set_002dwindow_002dposition_0021"><code>set-window-position!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Window-Manipulation.html">Window Manipulation</a></td></tr>
<tr><td></td><td valign="top"><a href="Window-Manipulation.html#index-set_002dwindow_002dsize_0021"><code>set-window-size!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Window-Manipulation.html">Window Manipulation</a></td></tr>
<tr><td></td><td valign="top"><a href="Window-Manipulation.html#index-set_002dwindow_002dtitle_0021"><code>set-window-title!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Window-Manipulation.html">Window Manipulation</a></td></tr>
+<tr><td></td><td valign="top"><a href="Rendering-Engine.html#index-shader_002dapply"><code>shader-apply</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Rendering-Engine.html">Rendering Engine</a></td></tr>
+<tr><td></td><td valign="top"><a href="Rendering-Engine.html#index-shader_002dapply_002a"><code>shader-apply*</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Rendering-Engine.html">Rendering Engine</a></td></tr>
+<tr><td></td><td valign="top"><a href="Rendering-Engine.html#index-shader_002dapply_002finstanced"><code>shader-apply/instanced</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Rendering-Engine.html">Rendering Engine</a></td></tr>
+<tr><td></td><td valign="top"><a href="Rendering-Engine.html#index-shader_002dapply_002finstanced-1"><code>shader-apply/instanced</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Rendering-Engine.html">Rendering Engine</a></td></tr>
<tr><td></td><td valign="top"><a href="Shaders.html#index-shader_002dattributes"><code>shader-attributes</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Shaders.html">Shaders</a></td></tr>
<tr><td></td><td valign="top"><a href="Shaders.html#index-shader_002ddata_002dtype_003f"><code>shader-data-type?</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Shaders.html">Shaders</a></td></tr>
<tr><td></td><td valign="top"><a href="Shaders.html#index-shader_002duniform"><code>shader-uniform</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Shaders.html">Shaders</a></td></tr>
@@ -644,16 +672,17 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th
<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-tile_002dproperties"><code>tile-properties</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-tile_003f"><code>tile?</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-tileset_002datlas"><code>tileset-atlas</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
+<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-tileset_002dcolumns"><code>tileset-columns</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-tileset_002dfirst_002dgid"><code>tileset-first-gid</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-tileset_002dname"><code>tileset-name</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-tileset_002dproperties"><code>tileset-properties</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
+<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-tileset_002drows"><code>tileset-rows</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-tileset_002dsize"><code>tileset-size</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-tileset_002dtile_002dheight"><code>tileset-tile-height</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-tileset_002dtile_002dwidth"><code>tileset-tile-width</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-tileset_002dtiles"><code>tileset-tiles</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
<tr><td></td><td valign="top"><a href="Tile-Maps.html#index-tileset_003f"><code>tileset?</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tile-Maps.html">Tile Maps</a></td></tr>
<tr><td></td><td valign="top"><a href="Vector-Paths.html#index-transform"><code>transform</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Vector-Paths.html">Vector Paths</a></td></tr>
-<tr><td></td><td valign="top"><a href="Matrices.html#index-transform_0021"><code>transform!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
<tr><td></td><td valign="top"><a href="Vector-Paths.html#index-translate"><code>translate</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Vector-Paths.html">Vector Paths</a></td></tr>
<tr><td></td><td valign="top"><a href="Colors.html#index-transparency"><code>transparency</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Colors.html">Colors</a></td></tr>
<tr><td></td><td valign="top"><a href="Tweening.html#index-tween"><code>tween</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Tweening.html">Tweening</a></td></tr>
diff --git a/manuals/chickadee/Math.html b/manuals/chickadee/Math.html
index f2b48fd..cc2203e 100644
--- a/manuals/chickadee/Math.html
+++ b/manuals/chickadee/Math.html
@@ -99,17 +99,17 @@ detection.
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Rectangles.html" accesskey="3">Rectangles</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Axis-aligned bounding boxes.
</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="Grid.html" accesskey="4">Grid</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Spatial partitioning for bounding boxes.
+<tr><td align="left" valign="top">&bull; <a href="Matrices.html" accesskey="4">Matrices</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Transformation matrices.
</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="Matrices.html" accesskey="5">Matrices</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Transformation matrices.
+<tr><td align="left" valign="top">&bull; <a href="Quaternions.html" accesskey="5">Quaternions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Rotations about an arbitrary axis.
</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="Quaternions.html" accesskey="6">Quaternions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Rotations about an arbitrary axis.
+<tr><td align="left" valign="top">&bull; <a href="Easings.html" accesskey="6">Easings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Easing functions for interesting animations.
</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="Easings.html" accesskey="7">Easings</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Easing functions for interesting animations.
+<tr><td align="left" valign="top">&bull; <a href="Bezier-Curves.html" accesskey="7">Bezier Curves</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Cubic Bezier curves and paths in 2D space.
</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="Bezier-Curves.html" accesskey="8">Bezier Curves</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Cubic Bezier curves and paths in 2D space.
+<tr><td align="left" valign="top">&bull; <a href="Path-Finding.html" accesskey="8">Path Finding</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Generic A* path finding.
</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="Path-Finding.html" accesskey="9">Path Finding</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Generic A* path finding.
+<tr><td align="left" valign="top">&bull; <a href="Grid.html" accesskey="9">Grid</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Spatial partitioning for bounding boxes.
</td></tr>
</table>
diff --git a/manuals/chickadee/Matrices.html b/manuals/chickadee/Matrices.html
index 367c3b6..d616fa8 100644
--- a/manuals/chickadee/Matrices.html
+++ b/manuals/chickadee/Matrices.html
@@ -33,7 +33,7 @@ http://www.texinfo.org/ (GNU Texinfo).
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Math.html" rel="up" title="Math">
<link href="Quaternions.html" rel="next" title="Quaternions">
-<link href="Grid.html" rel="prev" title="Grid">
+<link href="Rectangles.html" rel="prev" title="Rectangles">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
@@ -82,24 +82,126 @@ ul.no-bullet {list-style: none}
<body lang="en">
<span id="Matrices"></span><div class="header">
<p>
-Next: <a href="Quaternions.html" accesskey="n" rel="next">Quaternions</a>, Previous: <a href="Grid.html" accesskey="p" rel="prev">Grid</a>, Up: <a href="Math.html" accesskey="u" rel="up">Math</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+Next: <a href="Quaternions.html" accesskey="n" rel="next">Quaternions</a>, Previous: <a href="Rectangles.html" accesskey="p" rel="prev">Rectangles</a>, Up: <a href="Math.html" accesskey="u" rel="up">Math</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
-<span id="Matrices-1"></span><h4 class="subsection">2.2.5 Matrices</h4>
+<span id="Matrices-1"></span><h4 class="subsection">2.2.4 Matrices</h4>
<p>The <code>(chickadee math matrix)</code> module provides an interface for
working with the most common type of matrices in game development: 4x4
transformation matrices.
</p>
-<span id="Another-Note-About-Performance"></span><h4 class="subsubsection">2.2.5.1 Another Note About Performance</h4>
-
+<p><em>Another Note About Performance</em>
+</p>
<p>Much like the vector API, the matrix API is commonly used in
performance critical code paths. In order to reduce the amount of
garbage generated and improve matrix multiplication performance, there
are many procedures that perform in-place modifications of matrix
objects.
</p>
-<span id="Matrix-Operations"></span><h4 class="subsubsection">2.2.5.2 Matrix Operations</h4>
+<span id="g_t3x3-Matrices"></span><h4 class="subsubsection">2.2.4.1 3x3 Matrices</h4>
+
+<dl>
+<dt id="index-make_002dmatrix3">Procedure: <strong>make-matrix3</strong> <em>aa ab ac ba bb bc ca cb cc</em></dt>
+<dd><p>Return a new 3x3 initialized with the given 9 values in column-major
+format.
+</p></dd></dl>
+
+<dl>
+<dt id="index-make_002dnull_002dmatrix3">Procedure: <strong>make-null-matrix3</strong></dt>
+<dd><p>Return a new 3x3 matrix with all values initialized to 0.
+</p></dd></dl>
+
+<dl>
+<dt id="index-make_002didentity_002dmatrix3">Procedure: <strong>make-identity-matrix3</strong></dt>
+<dd><p>Return a new 3x3 identity matrix. Any matrix multiplied by the
+identity matrix yields the original matrix. This procedure is
+equivalent to the following code:
+</p>
+<div class="example">
+<pre class="example">(make-matrix3 1 0 0
+ 0 1 0
+ 0 0 1)
+</pre></div>
+
+</dd></dl>
+
+<dl>
+<dt id="index-matrix3_003f">Procedure: <strong>matrix3?</strong> <em>obj</em></dt>
+<dd><p>Return <code>#t</code> if <var>obj</var> is a 3x3 matrix.
+</p></dd></dl>
+
+<dl>
+<dt id="index-matrix3_002a">Procedure: <strong>matrix3*</strong> <em>. matrices</em></dt>
+<dd><p>Return a new 3x3 matrix containing the product of multiplying all of
+the given <var>matrices</var>.
+</p>
+<p>Note: Remember that matrix multiplication is <strong>not</strong> commutative!
+</p></dd></dl>
+
+<dl>
+<dt id="index-matrix3_002dtranslate">Procedure: <strong>matrix3-translate</strong> <em>v</em></dt>
+<dd><p>Return a new 3x3 matrix that represents a translation by <var>v</var>, a 2D
+vector.
+</p></dd></dl>
+
+<dl>
+<dt id="index-matrix3_002dscale">Procedure: <strong>matrix3-scale</strong> <em>s</em></dt>
+<dd><p>Return a new 3x3 matrix that represents a scaling along the x and y
+axes by the scaling factor <var>s</var>, a number or 2D vector.
+</p></dd></dl>
+
+<dl>
+<dt id="index-matrix3_002drotate">Procedure: <strong>matrix3-rotate</strong> <em>angle</em></dt>
+<dd><p>Return a new 3x3 matrix that represents a rotation by <var>angle</var>
+radians.
+</p></dd></dl>
+
+<dl>
+<dt id="index-matrix3_002dtransform">Procedure: <strong>matrix3-transform</strong> <em>matrix v</em></dt>
+<dd><p>Return a new 2D vector that is <var>v</var> as transformed by the 3x3
+matrix <var>matrix</var>.
+</p></dd></dl>
+
+<p>The following procedures perform in-place, destructive updates to 3x3
+matrix objects:
+</p>
+<dl>
+<dt id="index-matrix3_002didentity_0021">Procedure: <strong>matrix3-identity!</strong> <em>matrix</em></dt>
+<dd><p>Modify <var>matrix</var> in-place to contain the identity matrix.
+</p></dd></dl>
+
+<dl>
+<dt id="index-matrix3_002dmult_0021">Procedure: <strong>matrix3-mult!</strong> <em>dest a b</em></dt>
+<dd><p>Multiply the 3x3 matrix <var>a</var> by the 3x3 matrix <var>b</var> and store
+the result in the 3x3 matrix <var>dest</var>.
+</p></dd></dl>
+
+<dl>
+<dt id="index-matrix3_002dtranslate_0021">Procedure: <strong>matrix3-translate!</strong> <em>matrix v</em></dt>
+<dd><p>Modify <var>matrix</var> in-place to contain a translation by <var>v</var>, a 2D
+vector.
+</p></dd></dl>
+
+<dl>
+<dt id="index-matrix3_002dscale_0021">Procedure: <strong>matrix3-scale!</strong> <em>matrix s</em></dt>
+<dd><p>Modify <var>matrix</var> in-place to contain a scaling along the x and y
+axes by the scaling factor <var>s</var>, a number or 2D vector.
+</p></dd></dl>
+
+<dl>
+<dt id="index-matrix3_002drotate_0021">Procedure: <strong>matrix3-rotate!</strong> <em>matrix angle</em></dt>
+<dd><p>Modify <var>matrix</var> in-place to contain a rotation by <var>angle</var>
+radians.
+</p></dd></dl>
+
+<dl>
+<dt id="index-matrix3_002dtransform_0021">Procedure: <strong>matrix3-transform!</strong> <em>matrix v</em></dt>
+<dd><p>Modify the 2D vector <var>v</var> in-place to contain <var>v</var> as
+transformed by the 3x3 matrix <var>matrix</var>.
+</p></dd></dl>
+
+<span id="g_t4x4-Matrices"></span><h4 class="subsubsection">2.2.4.2 4x4 Matrices</h4>
<dl>
<dt id="index-make_002dmatrix4">Procedure: <strong>make-matrix4</strong> <em>aa ab ac ad ba bb bc bd ca cb cc cd da db dc dd</em></dt>
@@ -232,7 +334,7 @@ particular transformation will not be included in the result.
</p></dd></dl>
<dl>
-<dt id="index-transform_0021">Procedure: <strong>transform!</strong> <em>matrix v</em></dt>
+<dt id="index-matrix4_002dtransform_0021">Procedure: <strong>matrix4-transform!</strong> <em>matrix v</em></dt>
<dd><p>Modify the 2D vector <var>v</var> in-place by multiplying it by the 4x4
matrix <var>matrix</var>.
</p></dd></dl>
@@ -240,7 +342,7 @@ matrix <var>matrix</var>.
<hr>
<div class="header">
<p>
-Next: <a href="Quaternions.html" accesskey="n" rel="next">Quaternions</a>, Previous: <a href="Grid.html" accesskey="p" rel="prev">Grid</a>, Up: <a href="Math.html" accesskey="u" rel="up">Math</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+Next: <a href="Quaternions.html" accesskey="n" rel="next">Quaternions</a>, Previous: <a href="Rectangles.html" accesskey="p" rel="prev">Rectangles</a>, Up: <a href="Math.html" accesskey="u" rel="up">Math</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
diff --git a/manuals/chickadee/Particles.html b/manuals/chickadee/Particles.html
index 1874dfd..d058996 100644
--- a/manuals/chickadee/Particles.html
+++ b/manuals/chickadee/Particles.html
@@ -32,8 +32,8 @@ http://www.texinfo.org/ (GNU Texinfo).
<link href="Index.html" rel="index" title="Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Graphics.html" rel="up" title="Graphics">
-<link href="3D-Models.html" rel="next" title="3D Models">
-<link href="Fonts.html" rel="prev" title="Fonts">
+<link href="Tile-Maps.html" rel="next" title="Tile Maps">
+<link href="Vector-Paths.html" rel="prev" title="Vector Paths">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
@@ -82,7 +82,7 @@ ul.no-bullet {list-style: none}
<body lang="en">
<span id="Particles"></span><div class="header">
<p>
-Next: <a href="3D-Models.html" accesskey="n" rel="next">3D Models</a>, Previous: <a href="Fonts.html" accesskey="p" rel="prev">Fonts</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+Next: <a href="Tile-Maps.html" accesskey="n" rel="next">Tile Maps</a>, Previous: <a href="Vector-Paths.html" accesskey="p" rel="prev">Vector Paths</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<span id="Particles-1"></span><h4 class="subsection">2.3.7 Particles</h4>
@@ -113,21 +113,21 @@ how many of them to spawn, and for how long they should do it.
at the coordinates <code>(320, 240)</code>:
</p>
<div class="example">
-<pre class="example">(use-modules (chickadee math vector))
-(define emitter (make-particle-emitter (vec2 320.0 240.0) 16))
+<pre class="example">(use-modules (chickadee math rect))
+(define emitter (make-particle-emitter (make-rect 0.0 0.0 320.0 240.0) 16))
(add-particle-emitter particles emitter)
</pre></div>
<p>To see all of the tweakable knobs and switches, read on!
</p>
<dl>
-<dt id="index-make_002dparticles">Procedure: <strong>make-particles</strong> <em>capacity [#:blend-mode <code>alpha</code>] [#:color white] [#:end-color transparent] [#:texture] [#:animation-rows 1] [#:animation-columns 1] [#:width] [#:height] [#:speed-range (vec2 0.1 1.0)] [#:acceleration-range (vec2 0.0 0.1)] [#:direction-range (vec2 0 (* 2 pi))] [#:lifetime 30] [#:sort]</em></dt>
+<dt id="index-make_002dparticles">Procedure: <strong>make-particles</strong> <em>capacity [#:blend-mode] [#:color white] [#:end-color transparent] [#:texture] [#:animation-rows 1] [#:animation-columns 1] [#:width] [#:height] [#:speed-range (vec2 0.1 1.0)] [#:acceleration-range (vec2 0.0 0.1)] [#:direction-range (vec2 0 (* 2 pi))] [#:lifetime 30] [#:sort]</em></dt>
<dd>
<p>Return a new particle system that may contain up to <var>capacity</var>
particles. Achieving the desired particle effect involves tweaking
the following keyword arguments as needed:
</p>
-<p>- <var>blend-mode</var>: Pixel blending mode. <code>alpha</code> by default.
+<p>- <var>blend-mode</var>: Pixel blending mode. Alpha blending is used by default.
(see <a href="Blending.html">Blending</a> for more about blend modes).
</p>
<p>- <var>start-color</var>: The tint color of the particle at the beginning of its
@@ -243,7 +243,7 @@ frame.
<hr>
<div class="header">
<p>
-Next: <a href="3D-Models.html" accesskey="n" rel="next">3D Models</a>, Previous: <a href="Fonts.html" accesskey="p" rel="prev">Fonts</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+Next: <a href="Tile-Maps.html" accesskey="n" rel="next">Tile Maps</a>, Previous: <a href="Vector-Paths.html" accesskey="p" rel="prev">Vector Paths</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
diff --git a/manuals/chickadee/Path-Finding.html b/manuals/chickadee/Path-Finding.html
index ff5fa4c..d423b36 100644
--- a/manuals/chickadee/Path-Finding.html
+++ b/manuals/chickadee/Path-Finding.html
@@ -32,7 +32,7 @@ http://www.texinfo.org/ (GNU Texinfo).
<link href="Index.html" rel="index" title="Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Math.html" rel="up" title="Math">
-<link href="Graphics.html" rel="next" title="Graphics">
+<link href="Grid.html" rel="next" title="Grid">
<link href="Bezier-Curves.html" rel="prev" title="Bezier Curves">
<style type="text/css">
<!--
@@ -82,10 +82,10 @@ ul.no-bullet {list-style: none}
<body lang="en">
<span id="Path-Finding"></span><div class="header">
<p>
-Previous: <a href="Bezier-Curves.html" accesskey="p" rel="prev">Bezier Curves</a>, Up: <a href="Math.html" accesskey="u" rel="up">Math</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+Next: <a href="Grid.html" accesskey="n" rel="next">Grid</a>, Previous: <a href="Bezier-Curves.html" accesskey="p" rel="prev">Bezier Curves</a>, Up: <a href="Math.html" accesskey="u" rel="up">Math</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
-<span id="Path-Finding-1"></span><h4 class="subsection">2.2.9 Path Finding</h4>
+<span id="Path-Finding-1"></span><h4 class="subsection">2.2.8 Path Finding</h4>
<p>Most game worlds have maps. Often, these games have a need to move
non-player characters around in an unscripted fashion. For example,
@@ -162,7 +162,7 @@ returns an approximate distance between them.
<hr>
<div class="header">
<p>
-Previous: <a href="Bezier-Curves.html" accesskey="p" rel="prev">Bezier Curves</a>, Up: <a href="Math.html" accesskey="u" rel="up">Math</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+Next: <a href="Grid.html" accesskey="n" rel="next">Grid</a>, Previous: <a href="Bezier-Curves.html" accesskey="p" rel="prev">Bezier Curves</a>, Up: <a href="Math.html" accesskey="u" rel="up">Math</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
diff --git a/manuals/chickadee/Quaternions.html b/manuals/chickadee/Quaternions.html
index ba11fb5..aaf3187 100644
--- a/manuals/chickadee/Quaternions.html
+++ b/manuals/chickadee/Quaternions.html
@@ -85,7 +85,7 @@ ul.no-bullet {list-style: none}
Next: <a href="Easings.html" accesskey="n" rel="next">Easings</a>, Previous: <a href="Matrices.html" accesskey="p" rel="prev">Matrices</a>, Up: <a href="Math.html" accesskey="u" rel="up">Math</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
-<span id="Quaternions-1"></span><h4 class="subsection">2.2.6 Quaternions</h4>
+<span id="Quaternions-1"></span><h4 class="subsection">2.2.5 Quaternions</h4>
<p>In game development, the quaternion is most often used to represent
rotations. Why not use a matrix for that, you may ask. Unlike
diff --git a/manuals/chickadee/Rectangles.html b/manuals/chickadee/Rectangles.html
index 7057a5f..3dde39d 100644
--- a/manuals/chickadee/Rectangles.html
+++ b/manuals/chickadee/Rectangles.html
@@ -32,7 +32,7 @@ http://www.texinfo.org/ (GNU Texinfo).
<link href="Index.html" rel="index" title="Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Math.html" rel="up" title="Math">
-<link href="Grid.html" rel="next" title="Grid">
+<link href="Matrices.html" rel="next" title="Matrices">
<link href="Vectors.html" rel="prev" title="Vectors">
<style type="text/css">
<!--
@@ -82,7 +82,7 @@ ul.no-bullet {list-style: none}
<body lang="en">
<span id="Rectangles"></span><div class="header">
<p>
-Next: <a href="Grid.html" accesskey="n" rel="next">Grid</a>, Previous: <a href="Vectors.html" accesskey="p" rel="prev">Vectors</a>, Up: <a href="Math.html" accesskey="u" rel="up">Math</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+Next: <a href="Matrices.html" accesskey="n" rel="next">Matrices</a>, Previous: <a href="Vectors.html" accesskey="p" rel="prev">Vectors</a>, Up: <a href="Math.html" accesskey="u" rel="up">Math</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<span id="Rectangles-1"></span><h4 class="subsection">2.2.3 Rectangles</h4>
@@ -321,7 +321,7 @@ within the bounds of <var>rect</var>. <var>v</var> is modified in-place.
<hr>
<div class="header">
<p>
-Next: <a href="Grid.html" accesskey="n" rel="next">Grid</a>, Previous: <a href="Vectors.html" accesskey="p" rel="prev">Vectors</a>, Up: <a href="Math.html" accesskey="u" rel="up">Math</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+Next: <a href="Matrices.html" accesskey="n" rel="next">Matrices</a>, Previous: <a href="Vectors.html" accesskey="p" rel="prev">Vectors</a>, Up: <a href="Math.html" accesskey="u" rel="up">Math</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
diff --git a/manuals/chickadee/Rendering-Engine.html b/manuals/chickadee/Rendering-Engine.html
index 7c02082..bdc2444 100644
--- a/manuals/chickadee/Rendering-Engine.html
+++ b/manuals/chickadee/Rendering-Engine.html
@@ -85,7 +85,7 @@ ul.no-bullet {list-style: none}
Next: <a href="Buffers.html" accesskey="n" rel="next">Buffers</a>, Previous: <a href="Viewports.html" accesskey="p" rel="prev">Viewports</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
-<span id="Rendering-Engine-1"></span><h4 class="subsection">2.3.12 Rendering Engine</h4>
+<span id="Rendering-Engine-1"></span><h4 class="subsection">2.3.13 Rendering Engine</h4>
<p>Chickadee defines rendering using a metaphor familiar to Scheme
programmers: procedure application. A shader (see <a href="Shaders.html">Shaders</a>) is
@@ -93,31 +93,31 @@ like a procedure for the GPU to apply. Shaders are passed arguments:
A vertex array containing the geometry to render (see <a href="Buffers.html">Buffers</a>) and
zero or more keyword arguments that the shader understands. Similar
to how Scheme has <code>apply</code> for calling procedures, Chickadee
-provides <code>gpu-apply</code> for calling shaders.
+provides <code>shader-apply</code> for calling shaders.
</p>
<p>Additionally, there is some dynamic state that effects how
-<code>gpu-apply</code> will behave. Things like the current viewport,
+<code>shader-apply</code> will behave. Things like the current viewport,
framebuffer, and blend mode are stored as dynamic state because it
would be tedious to have to have to specify them each time
-<code>gpu-apply</code> is called.
+<code>shader-apply</code> is called.
</p>
<p>The following procedures and syntax can be found in the
<code>(chickadee graphics)</code> module.
</p>
<dl>
-<dt id="index-gpu_002dapply">Syntax: <strong>gpu-apply</strong> <em>shader vertex-array [#:uniform-key uniform-value &hellip;]</em></dt>
-<dt id="index-gpu_002dapply_002a">Syntax: <strong>gpu-apply*</strong> <em>shader vertex-array count [#:uniform-key uniform-value &hellip;]</em></dt>
+<dt id="index-shader_002dapply">Syntax: <strong>shader-apply</strong> <em>shader vertex-array [#:uniform-key uniform-value &hellip;]</em></dt>
+<dt id="index-shader_002dapply_002a">Syntax: <strong>shader-apply*</strong> <em>shader vertex-array count [#:uniform-key uniform-value &hellip;]</em></dt>
<dd>
<p>Render <var>vertex-array</var> using <var>shader</var> with the uniform values
specified in the following keyword arguments.
</p>
-<p>While <code>gpu-apply</code> will draw every vertex in <var>vertex-array</var>,
-<code>gpu-apply*</code> will only draw <var>count</var> vertices.
+<p>While <code>shader-apply</code> will draw every vertex in <var>vertex-array</var>,
+<code>shader-apply*</code> will only draw <var>count</var> vertices.
</p></dd></dl>
<dl>
-<dt id="index-gpu_002dapply_002finstanced">Syntax: <strong>gpu-apply/instanced</strong> <em>shader vertex-array n [#:uniform-key uniform-value &hellip;]</em></dt>
-<dt id="index-gpu_002dapply_002finstanced-1">Syntax: <strong>gpu-apply/instanced</strong> <em>shader vertex-array count n [#:uniform-key uniform-value &hellip;]</em></dt>
+<dt id="index-shader_002dapply_002finstanced">Syntax: <strong>shader-apply/instanced</strong> <em>shader vertex-array n [#:uniform-key uniform-value &hellip;]</em></dt>
+<dt id="index-shader_002dapply_002finstanced-1">Syntax: <strong>shader-apply/instanced</strong> <em>shader vertex-array count n [#:uniform-key uniform-value &hellip;]</em></dt>
<dd>
<p>Render <var>vertex-array</var> <var>n</var> times using <var>shader</var> with the
uniform values specified in the following keyword arguments.
@@ -126,8 +126,8 @@ uniform values specified in the following keyword arguments.
many times with only small differences for each one. For example, the
particle effects described in <a href="Particles.html">Particles</a> use instanced rendering.
</p>
-<p>While <code>gpu-apply/instanced</code> will draw every vertex in
-<var>vertex-array</var>, <code>gpu-apply*</code> will only draw <var>count</var>
+<p>While <code>shader-apply/instanced</code> will draw every vertex in
+<var>vertex-array</var>, <code>shader-apply*</code> will only draw <var>count</var>
vertices.
</p></dd></dl>
diff --git a/manuals/chickadee/Shaders.html b/manuals/chickadee/Shaders.html
index 8d4fcec..aed0f49 100644
--- a/manuals/chickadee/Shaders.html
+++ b/manuals/chickadee/Shaders.html
@@ -85,7 +85,7 @@ ul.no-bullet {list-style: none}
Previous: <a href="Buffers.html" accesskey="p" rel="prev">Buffers</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
-<span id="Shaders-1"></span><h4 class="subsection">2.3.14 Shaders</h4>
+<span id="Shaders-1"></span><h4 class="subsection">2.3.15 Shaders</h4>
<p>Shaders are programs that the GPU can evaluate that allow the
programmer to completely customized the final output of a GPU draw
@@ -142,10 +142,10 @@ arguments), and some &ldquo;uniforms&rdquo; (keyword arguments).
<div class="example">
<pre class="example">(define my-shader (load-shader &quot;vert.glsl&quot; &quot;frag.glsl&quot;))
(define vertices (make-vertex-array &hellip;))
-(gpu-apply my-shader vertices #:color red)
+(shader-apply my-shader vertices #:color red)
</pre></div>
-<p>See <a href="Rendering-Engine.html">Rendering Engine</a> for more details about the <code>gpu-apply</code>
+<p>See <a href="Rendering-Engine.html">Rendering Engine</a> for more details about the <code>shader-apply</code>
procedure.
</p>
<p>Shaders are incredibly powerful tools, and there&rsquo;s more information
@@ -201,7 +201,7 @@ compile them into a GPU shader program.
<dt id="index-shader_002duniform_002dset_0021">Procedure: <strong>shader-uniform-set!</strong> <em>shader uniform value</em></dt>
</dl>
-<span id="Attributes"></span><h4 class="subsubsection">2.3.14.1 Attributes</h4>
+<span id="Attributes"></span><h4 class="subsubsection">2.3.15.1 Attributes</h4>
<dl>
<dt id="index-attribute_003f">Procedure: <strong>attribute?</strong> <em>obj</em></dt>
@@ -223,7 +223,7 @@ compile them into a GPU shader program.
<dd><p>Return the data type of <var>attribute</var>.
</p></dd></dl>
-<span id="Uniforms"></span><h4 class="subsubsection">2.3.14.2 Uniforms</h4>
+<span id="Uniforms"></span><h4 class="subsubsection">2.3.15.2 Uniforms</h4>
<dl>
<dt id="index-uniform_003f">Procedure: <strong>uniform?</strong> <em>obj</em></dt>
@@ -245,7 +245,7 @@ compile them into a GPU shader program.
<dd><p>Return the current value of <var>uniform</var>.
</p></dd></dl>
-<span id="User_002dDefined-Shader-Types"></span><h4 class="subsubsection">2.3.14.3 User-Defined Shader Types</h4>
+<span id="User_002dDefined-Shader-Types"></span><h4 class="subsubsection">2.3.15.3 User-Defined Shader Types</h4>
<p>The shader examples in this manual thus far have only shown uniforms
defined using primitive types. However, GLSL shaders support
diff --git a/manuals/chickadee/Sprites.html b/manuals/chickadee/Sprites.html
index 269a041..93a0967 100644
--- a/manuals/chickadee/Sprites.html
+++ b/manuals/chickadee/Sprites.html
@@ -32,7 +32,7 @@ http://www.texinfo.org/ (GNU Texinfo).
<link href="Index.html" rel="index" title="Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Graphics.html" rel="up" title="Graphics">
-<link href="Tile-Maps.html" rel="next" title="Tile Maps">
+<link href="9_002dPatches.html" rel="next" title="9-Patches">
<link href="Textures.html" rel="prev" title="Textures">
<style type="text/css">
<!--
@@ -82,7 +82,7 @@ ul.no-bullet {list-style: none}
<body lang="en">
<span id="Sprites"></span><div class="header">
<p>
-Next: <a href="Tile-Maps.html" accesskey="n" rel="next">Tile Maps</a>, Previous: <a href="Textures.html" accesskey="p" rel="prev">Textures</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+Next: <a href="9_002dPatches.html" accesskey="n" rel="next">9-Patches</a>, Previous: <a href="Textures.html" accesskey="p" rel="prev">Textures</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<span id="Sprites-1"></span><h4 class="subsection">2.3.3 Sprites</h4>
@@ -98,7 +98,7 @@ interface for working with sprites. Bitmaps are stored in textures
<code>draw-sprite</code> procedure.
</p>
<dl>
-<dt id="index-draw_002dsprite">Procedure: <strong>draw-sprite</strong> <em>texture position [#:tint white] [#:origin] [#:scale] [#:rotation] [#:blend-mode alpha] [#:rect]</em></dt>
+<dt id="index-draw_002dsprite">Procedure: <strong>draw-sprite</strong> <em>texture position [#:tint white] [#:origin] [#:scale] [#:rotation] [#:blend-mode] [#:rect]</em></dt>
<dd>
<p>Draw <var>texture</var> at <var>position</var>.
</p>
@@ -173,52 +173,15 @@ parent is the batch texture may be specified as <var>texture-region</var>.
</p></dd></dl>
<dl>
-<dt id="index-draw_002dsprite_002dbatch">Procedure: <strong>draw-sprite-batch</strong> <em>batch [#:blend-mode <code>alpha</code>]</em></dt>
+<dt id="index-draw_002dsprite_002dbatch">Procedure: <strong>draw-sprite-batch</strong> <em>batch [#:blend-mode]</em></dt>
<dd><p>Render <var>batch</var> using <var>blend-mode</var>. Alpha blending is used by
default.
</p></dd></dl>
-<p>With a basic sprite abstraction in place, it&rsquo;s possible to build other
-abstractions on top of it. One such example is the &ldquo;nine patch&rdquo;. A
-nine patch is a sprite that can be rendered at various sizes without
-becoming distorted. This is achieved by dividing up the sprite into
-nine regions:
-</p>
-<ul>
-<li> the center, which can be scaled horizontally and vertically
-</li><li> the four corners, which can never be scaled
-</li><li> the left and right sides, which can be scaled vertically
-</li><li> the top and bottom sides, which can be scaled horizontally
-</li></ul>
-
-<p>The one caveat is that the bitmap regions must be designed in such a
-way so that they are not distorted when stretched along the affected
-axes. For example, that means that the top and bottom sides could
-have varying colored pixels vertically, but not horizontally.
-</p>
-<p>The most common application of this technique is for graphical user
-interface widgets like buttons and dialog boxes. By using a nine
-patch, they can be rendered at any size without unappealing scaling
-artifacts.
-</p>
-<dl>
-<dt id="index-draw_002dnine_002dpatch">Procedure: <strong>draw-nine-patch</strong> <em>texture rect [#:margin 0] [#:top-margin margin] [#:bottom-margin margin] [#:left-margin margin] [#:right-margin margin] [#:origin] [#:scale] [#:rotation] [#:blend-mode alpha] [#:tint white]</em></dt>
-<dd>
-<p>Draw a nine patch sprite. A nine patch sprite renders <var>texture</var>
-as a <var>width</var> x <var>height</var> rectangle whose stretchable areas are
-defined by the given margin measurements <var>top-margin</var>,
-<var>bottom-margin</var>, <var>left-margin</var>, and <var>right-margin</var>. The
-<var>margin</var> argument may be used to configure all four margins at
-once.
-</p>
-<p>Refer to <code>draw-sprite</code> (see <a href="#Sprites">Sprites</a>) for information about
-the other arguments.
-</p></dd></dl>
-
<hr>
<div class="header">
<p>
-Next: <a href="Tile-Maps.html" accesskey="n" rel="next">Tile Maps</a>, Previous: <a href="Textures.html" accesskey="p" rel="prev">Textures</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+Next: <a href="9_002dPatches.html" accesskey="n" rel="next">9-Patches</a>, Previous: <a href="Textures.html" accesskey="p" rel="prev">Textures</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
diff --git a/manuals/chickadee/The-Game-Loop.html b/manuals/chickadee/The-Game-Loop.html
index a562c8b..1cb6e48 100644
--- a/manuals/chickadee/The-Game-Loop.html
+++ b/manuals/chickadee/The-Game-Loop.html
@@ -99,14 +99,15 @@ styles of game loops. The appropriately named <code>run-game</code> and
Chickadee game loop.
</p>
<dl>
-<dt id="index-run_002dgame">Procedure: <strong>run-game</strong> <em>[#:window-title &quot;Chickadee!&quot;] [#:window-width 640] [#:window-height 480] [#:window-fullscreen? <code>#f</code>] [#:update-hz 60] [#:load] [#:update] [#:draw] [#:quit] [#:key-press] [#:key-release] [#:text-input] [#:mouse-press] [#:mouse-release] [#:mouse-move] [#:controller-add] [#:controller-remove] [#:controller-press] [#:controller-release] [#:controller-move] [#:error]</em></dt>
+<dt id="index-run_002dgame">Procedure: <strong>run-game</strong> <em>[#:window-title &quot;Chickadee!&quot;] [#:window-width 640] [#:window-height 480] [#:window-fullscreen? <code>#f</code>] [#:window-resizable? <code>#f</code>] [#:update-hz 60] [#:load] [#:update] [#:draw] [#:quit] [#:key-press] [#:key-release] [#:text-input] [#:mouse-press] [#:mouse-release] [#:mouse-move] [#:controller-add] [#:controller-remove] [#:controller-press] [#:controller-release] [#:controller-move] [#:error]</em></dt>
<dd>
<p>Run the Chickadee game loop.
</p>
<p>A new graphical window will be opened with <var>window-width</var> x
<var>window-height</var> as its dimensions, <var>window-title</var> as its
title, and in fullscreen mode if <var>window-fullscreen?</var> is
-<code>#t</code>.
+<code>#t</code>. If <var>window-resizable?</var> is <code>#t</code> then the window
+can be resized by the user.
</p>
<ul>
<li> <var>load</var>: Called with zero arguments when the game window has opened
@@ -119,7 +120,7 @@ argument: The amount of time to advance the game simulation.
</li><li> <var>draw</var>: Called each time a frame should be rendered with a single
argument known as the <code>alpha</code> value. See the documentation for
-<code>run-game</code> for an explanation of this value.
+<code>run-game*</code> for an explanation of this value.
</li><li> <var>quit</var>: Called with zero arguments when the user tries to close
the game window. The default behavior is to exit the game.
@@ -328,8 +329,8 @@ animation appear rough or &ldquo;choppy&rdquo;. To counter this, the
moving object between its current position and its previous position.
This odd trick has the pleasing result of making the animation look
smooth again, but requires keeping track of previous state.
-</li><li> <var>time</var>: Called to get the current time in milliseconds. This
-procedure is called with no arguments.
+</li><li> <var>time</var>: Called to get the current time in seconds. This procedure
+is called with no arguments.
</li><li> <var>error</var>: Called when an error from the <var>update</var> or
<var>render</var> procedures reaches the game loop. This procedure is
called with three arguments: The call stack, the error key, and the
@@ -341,8 +342,7 @@ behavior is to simply re-throw the error.
<dl>
<dt id="index-elapsed_002dtime">Procedure: <strong>elapsed-time</strong></dt>
-<dd><p>Return the number of milliseconds that have passed since the game loop
-was started.
+<dd><p>Return the current value of the system timer in seconds.
</p></dd></dl>
<hr>
diff --git a/manuals/chickadee/Tile-Maps.html b/manuals/chickadee/Tile-Maps.html
index 6d9d31a..64bb890 100644
--- a/manuals/chickadee/Tile-Maps.html
+++ b/manuals/chickadee/Tile-Maps.html
@@ -32,8 +32,8 @@ http://www.texinfo.org/ (GNU Texinfo).
<link href="Index.html" rel="index" title="Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Graphics.html" rel="up" title="Graphics">
-<link href="Vector-Paths.html" rel="next" title="Vector Paths">
-<link href="Sprites.html" rel="prev" title="Sprites">
+<link href="3D-Models.html" rel="next" title="3D Models">
+<link href="Particles.html" rel="prev" title="Particles">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
@@ -82,16 +82,16 @@ ul.no-bullet {list-style: none}
<body lang="en">
<span id="Tile-Maps"></span><div class="header">
<p>
-Next: <a href="Vector-Paths.html" accesskey="n" rel="next">Vector Paths</a>, Previous: <a href="Sprites.html" accesskey="p" rel="prev">Sprites</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+Next: <a href="3D-Models.html" accesskey="n" rel="next">3D Models</a>, Previous: <a href="Particles.html" accesskey="p" rel="prev">Particles</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
-<span id="Tile-Maps-1"></span><h4 class="subsection">2.3.4 Tile Maps</h4>
+<span id="Tile-Maps-1"></span><h4 class="subsection">2.3.8 Tile Maps</h4>
<p>A tile map is a scene created by composing lots of small sprites,
called &ldquo;tiles&rdquo;, into a larger image. One program for editing such
maps is called <a href="http://mapeditor.org">Tiled</a>. Chickadee has native
support for loading and rendering Tiled maps in the <code>(chickadee
-graphics tiled)</code> module.
+graphics tile-map)</code> module.
</p>
<dl>
<dt id="index-load_002dtile_002dmap">Procedure: <strong>load-tile-map</strong> <em>file-name</em></dt>
@@ -151,7 +151,7 @@ coordinates.
</p></dd></dl>
<dl>
-<dt id="index-draw_002dtile_002dmap">Procedure: <strong>draw-tile-map</strong> <em>tile-map [#:layers] [#:camera] [#:origin] [#:position] [#:scale] [#:rotation]</em></dt>
+<dt id="index-draw_002dtile_002dmap">Procedure: <strong>draw-tile-map</strong> <em>tile-map [#:layers] [#:camera] [#:origin] [#:position] [#:scale] [#:rotation] [#:blend-mode] [#:tint] [#:time] [#:chunk-size]</em></dt>
<dd>
<p>Draw the layers of <var>tile-map</var> as viewed from <var>camera</var>, a 2D
vector offset. By default, all layers are drawn. To draw a subset of
@@ -200,6 +200,16 @@ keyword argument.
</p></dd></dl>
<dl>
+<dt id="index-tileset_002drows">Procedure: <strong>tileset-rows</strong> <em>tileset</em></dt>
+<dd><p>Return the number of rows in <var>tileset</var>.
+</p></dd></dl>
+
+<dl>
+<dt id="index-tileset_002dcolumns">Procedure: <strong>tileset-columns</strong> <em>tileset</em></dt>
+<dd><p>Return the number of columns in <var>tileset</var>.
+</p></dd></dl>
+
+<dl>
<dt id="index-tileset_002dproperties">Procedure: <strong>tileset-properties</strong> <em>tileset</em></dt>
<dd><p>Return the custom properties of <var>tileset</var>.
</p></dd></dl>
@@ -225,6 +235,21 @@ keyword argument.
</p></dd></dl>
<dl>
+<dt id="index-animation_003f">Procedure: <strong>animation?</strong> <em>obj</em></dt>
+<dd><p>Return <code>#t</code> if <var>obj</var> is an animation.
+</p></dd></dl>
+
+<dl>
+<dt id="index-animation_002dframes">Procedure: <strong>animation-frames</strong> <em>animation</em></dt>
+<dd><p>Return a vector of frames in <var>animation</var>.
+</p></dd></dl>
+
+<dl>
+<dt id="index-animation_002dduration">Procedure: <strong>animation-duration</strong> <em>animation</em></dt>
+<dd><p>Return the duration of <var>animation</var>.
+</p></dd></dl>
+
+<dl>
<dt id="index-animation_002dframe_003f">Procedure: <strong>animation-frame?</strong> <em>obj</em></dt>
<dd><p>Return <code>#t</code> if <var>obj</var> is an animation frame.
</p></dd></dl>
@@ -332,7 +357,7 @@ keyword argument.
<hr>
<div class="header">
<p>
-Next: <a href="Vector-Paths.html" accesskey="n" rel="next">Vector Paths</a>, Previous: <a href="Sprites.html" accesskey="p" rel="prev">Sprites</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+Next: <a href="3D-Models.html" accesskey="n" rel="next">3D Models</a>, Previous: <a href="Particles.html" accesskey="p" rel="prev">Particles</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
diff --git a/manuals/chickadee/Vector-Paths.html b/manuals/chickadee/Vector-Paths.html
index e83d849..6f8987b 100644
--- a/manuals/chickadee/Vector-Paths.html
+++ b/manuals/chickadee/Vector-Paths.html
@@ -32,8 +32,8 @@ http://www.texinfo.org/ (GNU Texinfo).
<link href="Index.html" rel="index" title="Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Graphics.html" rel="up" title="Graphics">
-<link href="Fonts.html" rel="next" title="Fonts">
-<link href="Tile-Maps.html" rel="prev" title="Tile Maps">
+<link href="Particles.html" rel="next" title="Particles">
+<link href="Fonts.html" rel="prev" title="Fonts">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
@@ -82,10 +82,10 @@ ul.no-bullet {list-style: none}
<body lang="en">
<span id="Vector-Paths"></span><div class="header">
<p>
-Next: <a href="Fonts.html" accesskey="n" rel="next">Fonts</a>, Previous: <a href="Tile-Maps.html" accesskey="p" rel="prev">Tile Maps</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+Next: <a href="Particles.html" accesskey="n" rel="next">Particles</a>, Previous: <a href="Fonts.html" accesskey="p" rel="prev">Fonts</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
-<span id="Vector-Paths-1"></span><h4 class="subsection">2.3.5 Vector Paths</h4>
+<span id="Vector-Paths-1"></span><h4 class="subsection">2.3.6 Vector Paths</h4>
<p>The <code>(chickadee graphics path)</code> module can be used to draw lines,
curves, circles, rectangles, and more in a scalable, resolution
@@ -330,7 +330,7 @@ the image, should a painter later be associated with this canvas.
<hr>
<div class="header">
<p>
-Next: <a href="Fonts.html" accesskey="n" rel="next">Fonts</a>, Previous: <a href="Tile-Maps.html" accesskey="p" rel="prev">Tile Maps</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
+Next: <a href="Particles.html" accesskey="n" rel="next">Particles</a>, Previous: <a href="Fonts.html" accesskey="p" rel="prev">Fonts</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
diff --git a/manuals/chickadee/Vectors.html b/manuals/chickadee/Vectors.html
index a6eb7ec..ff07e2f 100644
--- a/manuals/chickadee/Vectors.html
+++ b/manuals/chickadee/Vectors.html
@@ -107,8 +107,8 @@ used to cut down on typing:
<pre class="example">(define v (vec2+ #v(1 2) #v(3 4)))
</pre></div>
-<span id="A-Note-About-Performance"></span><h4 class="subsubsection">2.2.2.1 A Note About Performance</h4>
-
+<p><em>A Note About Performance</em>
+</p>
<p>A lot of time has been spent making Chickadee&rsquo;s vector operations
perform relatively efficiently in critical code paths where excessive
garbage generation will cause major performance issues. The general
@@ -119,7 +119,7 @@ order to take advantage of optimizations relating to floating point
math operations. The downside is that since these are not pure
functions, they do not compose well and create more verbose code.
</p>
-<span id="g_t2D-Vectors"></span><h4 class="subsubsection">2.2.2.2 2D Vectors</h4>
+<span id="g_t2D-Vectors"></span><h4 class="subsubsection">2.2.2.1 2D Vectors</h4>
<dl>
<dt id="index-vec2">Procedure: <strong>vec2</strong> <em>x y</em></dt>
@@ -225,7 +225,7 @@ subtracting <var>x</var>, a 2D vector or a scalar.
multiplying it by <var>x</var>, a 2D vector or a scalar.
</p></dd></dl>
-<span id="g_t3D-Vectors"></span><h4 class="subsubsection">2.2.2.3 3D Vectors</h4>
+<span id="g_t3D-Vectors"></span><h4 class="subsubsection">2.2.2.2 3D Vectors</h4>
<dl>
<dt id="index-vec3">Procedure: <strong>vec3</strong> <em>x y</em></dt>
diff --git a/manuals/chickadee/Viewports.html b/manuals/chickadee/Viewports.html
index de13756..a55e5c3 100644
--- a/manuals/chickadee/Viewports.html
+++ b/manuals/chickadee/Viewports.html
@@ -85,7 +85,7 @@ ul.no-bullet {list-style: none}
Next: <a href="Rendering-Engine.html" accesskey="n" rel="next">Rendering Engine</a>, Previous: <a href="Framebuffers.html" accesskey="p" rel="prev">Framebuffers</a>, Up: <a href="Graphics.html" accesskey="u" rel="up">Graphics</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
-<span id="Viewports-1"></span><h4 class="subsection">2.3.11 Viewports</h4>
+<span id="Viewports-1"></span><h4 class="subsection">2.3.12 Viewports</h4>
<p>A viewport represents a subset of the screen (or framebuffer). When
rendering a frame, the resulting image will only appear within that
diff --git a/manuals/chickadee/index.html b/manuals/chickadee/index.html
index f0d3ec2..8daf152 100644
--- a/manuals/chickadee/index.html
+++ b/manuals/chickadee/index.html
@@ -105,21 +105,20 @@ ul.no-bullet {list-style: none}
<li><a id="toc-Basics-1" href="Basics.html#Basics">2.2.1 Basics</a></li>
<li><a id="toc-Vectors-1" href="Vectors.html#Vectors">2.2.2 Vectors</a>
<ul class="no-bullet">
- <li><a id="toc-A-Note-About-Performance" href="Vectors.html#A-Note-About-Performance">2.2.2.1 A Note About Performance</a></li>
- <li><a id="toc-2D-Vectors" href="Vectors.html#g_t2D-Vectors">2.2.2.2 2D Vectors</a></li>
- <li><a id="toc-3D-Vectors" href="Vectors.html#g_t3D-Vectors">2.2.2.3 3D Vectors</a></li>
+ <li><a id="toc-2D-Vectors" href="Vectors.html#g_t2D-Vectors">2.2.2.1 2D Vectors</a></li>
+ <li><a id="toc-3D-Vectors" href="Vectors.html#g_t3D-Vectors">2.2.2.2 3D Vectors</a></li>
</ul></li>
<li><a id="toc-Rectangles-1" href="Rectangles.html#Rectangles">2.2.3 Rectangles</a></li>
- <li><a id="toc-Grid-1" href="Grid.html#Grid">2.2.4 Grid</a></li>
- <li><a id="toc-Matrices-1" href="Matrices.html#Matrices">2.2.5 Matrices</a>
+ <li><a id="toc-Matrices-1" href="Matrices.html#Matrices">2.2.4 Matrices</a>
<ul class="no-bullet">
- <li><a id="toc-Another-Note-About-Performance" href="Matrices.html#Another-Note-About-Performance">2.2.5.1 Another Note About Performance</a></li>
- <li><a id="toc-Matrix-Operations" href="Matrices.html#Matrix-Operations">2.2.5.2 Matrix Operations</a></li>
+ <li><a id="toc-3x3-Matrices" href="Matrices.html#g_t3x3-Matrices">2.2.4.1 3x3 Matrices</a></li>
+ <li><a id="toc-4x4-Matrices" href="Matrices.html#g_t4x4-Matrices">2.2.4.2 4x4 Matrices</a></li>
</ul></li>
- <li><a id="toc-Quaternions-1" href="Quaternions.html#Quaternions">2.2.6 Quaternions</a></li>
- <li><a id="toc-Easings-1" href="Easings.html#Easings">2.2.7 Easings</a></li>
- <li><a id="toc-Bezier-Curves-1" href="Bezier-Curves.html#Bezier-Curves">2.2.8 Bezier Curves</a></li>
- <li><a id="toc-Path-Finding-1" href="Path-Finding.html#Path-Finding">2.2.9 Path Finding</a></li>
+ <li><a id="toc-Quaternions-1" href="Quaternions.html#Quaternions">2.2.5 Quaternions</a></li>
+ <li><a id="toc-Easings-1" href="Easings.html#Easings">2.2.6 Easings</a></li>
+ <li><a id="toc-Bezier-Curves-1" href="Bezier-Curves.html#Bezier-Curves">2.2.7 Bezier Curves</a></li>
+ <li><a id="toc-Path-Finding-1" href="Path-Finding.html#Path-Finding">2.2.8 Path Finding</a></li>
+ <li><a id="toc-Grid-1" href="Grid.html#Grid">2.2.9 Grid</a></li>
</ul></li>
<li><a id="toc-Graphics-1" href="Graphics.html#Graphics">2.3 Graphics</a>
<ul class="no-bullet">
@@ -129,21 +128,22 @@ ul.no-bullet {list-style: none}
</ul></li>
<li><a id="toc-Textures-1" href="Textures.html#Textures">2.3.2 Textures</a></li>
<li><a id="toc-Sprites-1" href="Sprites.html#Sprites">2.3.3 Sprites</a></li>
- <li><a id="toc-Tile-Maps-1" href="Tile-Maps.html#Tile-Maps">2.3.4 Tile Maps</a></li>
- <li><a id="toc-Vector-Paths-1" href="Vector-Paths.html#Vector-Paths">2.3.5 Vector Paths</a></li>
- <li><a id="toc-Fonts-1" href="Fonts.html#Fonts">2.3.6 Fonts</a></li>
+ <li><a id="toc-9_002dPatches-1" href="9_002dPatches.html#g_t9_002dPatches">2.3.4 9-Patches</a></li>
+ <li><a id="toc-Fonts-1" href="Fonts.html#Fonts">2.3.5 Fonts</a></li>
+ <li><a id="toc-Vector-Paths-1" href="Vector-Paths.html#Vector-Paths">2.3.6 Vector Paths</a></li>
<li><a id="toc-Particles-1" href="Particles.html#Particles">2.3.7 Particles</a></li>
- <li><a id="toc-3D-Models-1" href="3D-Models.html#g_t3D-Models">2.3.8 3D Models</a></li>
- <li><a id="toc-Blending-1" href="Blending.html#Blending">2.3.9 Blending</a></li>
- <li><a id="toc-Framebuffers-1" href="Framebuffers.html#Framebuffers">2.3.10 Framebuffers</a></li>
- <li><a id="toc-Viewports-1" href="Viewports.html#Viewports">2.3.11 Viewports</a></li>
- <li><a id="toc-Rendering-Engine-1" href="Rendering-Engine.html#Rendering-Engine">2.3.12 Rendering Engine</a></li>
- <li><a id="toc-Buffers-1" href="Buffers.html#Buffers">2.3.13 Buffers</a></li>
- <li><a id="toc-Shaders-1" href="Shaders.html#Shaders">2.3.14 Shaders</a>
+ <li><a id="toc-Tile-Maps-1" href="Tile-Maps.html#Tile-Maps">2.3.8 Tile Maps</a></li>
+ <li><a id="toc-3D-Models-1" href="3D-Models.html#g_t3D-Models">2.3.9 3D Models</a></li>
+ <li><a id="toc-Blending-1" href="Blending.html#Blending">2.3.10 Blending</a></li>
+ <li><a id="toc-Framebuffers-1" href="Framebuffers.html#Framebuffers">2.3.11 Framebuffers</a></li>
+ <li><a id="toc-Viewports-1" href="Viewports.html#Viewports">2.3.12 Viewports</a></li>
+ <li><a id="toc-Rendering-Engine-1" href="Rendering-Engine.html#Rendering-Engine">2.3.13 Rendering Engine</a></li>
+ <li><a id="toc-Buffers-1" href="Buffers.html#Buffers">2.3.14 Buffers</a></li>
+ <li><a id="toc-Shaders-1" href="Shaders.html#Shaders">2.3.15 Shaders</a>
<ul class="no-bullet">
- <li><a id="toc-Attributes" href="Shaders.html#Attributes">2.3.14.1 Attributes</a></li>
- <li><a id="toc-Uniforms" href="Shaders.html#Uniforms">2.3.14.2 Uniforms</a></li>
- <li><a id="toc-User_002dDefined-Shader-Types" href="Shaders.html#User_002dDefined-Shader-Types">2.3.14.3 User-Defined Shader Types</a></li>
+ <li><a id="toc-Attributes" href="Shaders.html#Attributes">2.3.15.1 Attributes</a></li>
+ <li><a id="toc-Uniforms" href="Shaders.html#Uniforms">2.3.15.2 Uniforms</a></li>
+ <li><a id="toc-User_002dDefined-Shader-Types" href="Shaders.html#User_002dDefined-Shader-Types">2.3.15.3 User-Defined Shader Types</a></li>
</ul></li>
</ul></li>
<li><a id="toc-Audio-1" href="Audio.html#Audio">2.4 Audio</a>