summaryrefslogtreecommitdiff
path: root/manuals
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2022-10-25 07:25:01 -0400
committerDavid Thompson <dthompson2@worcester.edu>2022-10-25 07:26:05 -0400
commitd54995cad9ddf652cd2f7abb128d5d251f9454f1 (patch)
tree34c7b4676b4e3615a2a66980868b4d767c6867b6 /manuals
parentbb44696ee1d8263b58976fec1bcd8e030f97f8e4 (diff)
projects: Update chickadee for 0.9.0 release.
Diffstat (limited to 'manuals')
-rw-r--r--manuals/chickadee/Array-Lists.html2
-rw-r--r--manuals/chickadee/Index.html15
-rw-r--r--manuals/chickadee/Invoking-chickadee-play.html41
-rw-r--r--manuals/chickadee/Matrices.html51
-rw-r--r--manuals/chickadee/Scripts.html5
-rw-r--r--manuals/chickadee/Sprites.html11
-rw-r--r--manuals/chickadee/The-Game-Loop.html10
7 files changed, 117 insertions, 18 deletions
diff --git a/manuals/chickadee/Array-Lists.html b/manuals/chickadee/Array-Lists.html
index 28e1835..0aa5eb4 100644
--- a/manuals/chickadee/Array-Lists.html
+++ b/manuals/chickadee/Array-Lists.html
@@ -157,7 +157,7 @@ takes linear time in the worst case. If <var>fast?</var> is <code>#t</code> the
<dl>
<dt id="index-array_002dlist_002dfor_002deach">Procedure: <strong>array-list-for-each</strong> <em>proc array-list</em></dt>
-<dd><p>Apply PROC with each item in <var>array-list</var>.
+<dd><p>Apply <var>proc</var> with each item in <var>array-list</var>.
</p></dd></dl>
<dl>
diff --git a/manuals/chickadee/Index.html b/manuals/chickadee/Index.html
index 99a7806..bc184bd 100644
--- a/manuals/chickadee/Index.html
+++ b/manuals/chickadee/Index.html
@@ -107,6 +107,8 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-I"><b>I</b></a>
&nbsp;
+<a class="summary-letter" href="#Index_fn_letter-J"><b>J</b></a>
+ &nbsp;
<a class="summary-letter" href="#Index_fn_letter-K"><b>K</b></a>
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-L"><b>L</b></a>
@@ -380,6 +382,9 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th
<tr><td></td><td valign="top"><a href="Buffers.html#index-index_002dbuffer_003f"><code>index-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="Shaders.html#index-int"><code>int</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Shaders.html">Shaders</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
+<tr><th id="Index_fn_letter-J">J</th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="Scripts.html#index-join"><code>join</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Scripts.html">Scripts</a></td></tr>
+<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Index_fn_letter-K">K</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="Input-Devices.html#index-key_002dpressed_003f"><code>key-pressed?</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Input-Devices.html">Input Devices</a></td></tr>
<tr><td></td><td valign="top"><a href="Input-Devices.html#index-key_002dreleased_003f"><code>key-released?</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Input-Devices.html">Input Devices</a></td></tr>
@@ -487,6 +492,8 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th
<tr><td></td><td valign="top"><a href="Meshes.html#index-material_002dtexture_002d4"><code>material-texture-4</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Meshes.html">Meshes</a></td></tr>
<tr><td></td><td valign="top"><a href="Meshes.html#index-material_003f"><code>material?</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Meshes.html">Meshes</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_002dcopy"><code>matrix3-copy</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_002dcopy_0021"><code>matrix3-copy!</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_002dinverse"><code>matrix3-inverse</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_002dinverse_0021"><code>matrix3-inverse!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
@@ -499,10 +506,15 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th
<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_003d"><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_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_002dcopy"><code>matrix4-copy</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_002dcopy_0021"><code>matrix4-copy!</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>
+<tr><td></td><td valign="top"><a href="Matrices.html#index-matrix4_002dinverse"><code>matrix4-inverse</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_002dinverse_0021"><code>matrix4-inverse!</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_002dmult_0021"><code>matrix4-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-matrix4_002drotate"><code>matrix4-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-matrix4_002drotate_0021"><code>matrix4-rotate!</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Matrices.html">Matrices</a></td></tr>
@@ -513,6 +525,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_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_003d"><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_003f"><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="Window-Manipulation.html#index-maximize_002dwindow_0021"><code>maximize-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="Meshes.html#index-mesh_002dname"><code>mesh-name</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="Meshes.html">Meshes</a></td></tr>
@@ -977,6 +990,8 @@ Previous: <a href="Copying-This-Manual.html" accesskey="p" rel="prev">Copying Th
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-I"><b>I</b></a>
&nbsp;
+<a class="summary-letter" href="#Index_fn_letter-J"><b>J</b></a>
+ &nbsp;
<a class="summary-letter" href="#Index_fn_letter-K"><b>K</b></a>
&nbsp;
<a class="summary-letter" href="#Index_fn_letter-L"><b>L</b></a>
diff --git a/manuals/chickadee/Invoking-chickadee-play.html b/manuals/chickadee/Invoking-chickadee-play.html
index 0c9c065..2841c18 100644
--- a/manuals/chickadee/Invoking-chickadee-play.html
+++ b/manuals/chickadee/Invoking-chickadee-play.html
@@ -98,8 +98,7 @@ the Chickadee game contained within a Scheme source file.
events from the game loop:
</p>
<ul>
-<li> load-game
-</li><li> quit-game
+<li> quit-game
</li><li> draw
</li><li> update
</li><li> key-press
@@ -170,8 +169,8 @@ controlled via the following options:
<dt><code>--repl</code></dt>
<dd>
<p>Launch a REPL in the terminal. This will allow the game environment
-to debugged and modified without having to stop and restart the game
-after each change.
+to be debugged and modified without having to stop and restart the
+game after each change.
</p>
</dd>
<dt><code>--repl-server[=<var>port</var>]</code></dt>
@@ -184,6 +183,40 @@ REPL with Guile. Use <code>M-x connect-to-guile</code> to connect to the
REPL server.
</p>
</dd>
+<dt><code>--language=<var>language</var></code></dt>
+<dd>
+<p>Process the input program using <var>language</var>, the identifier of a
+language within Guile&rsquo;s language tower. By default, unsurprisingly,
+Scheme is used.
+</p>
+<p>For example, to use the neat
+<a href="https://www.draketo.de/software/wisp">Wisp</a> language as an
+alternative to Scheme&rsquo;s parenthetical syntax, pass
+<code>--language=wisp</code>. Wisp is not included with Guile and must be
+installed separately.
+</p>
+</dd>
+<dt><code>-x <var>extension</var></code></dt>
+<dd>
+<p>Add <var>extension</var> to the list of file extensions that Guile will
+load.
+</p>
+<p>For example, Wisp files canonically use the <samp>.w</samp> extension.
+Here&rsquo;s what a &ldquo;hello, world&rdquo; Chickadee program looks like in Wisp:
+</p>
+<div class="example">
+<pre class="example">define : draw alpha
+ draw-text &quot;Hello, world!&quot; : vec2 260.0 240.0
+</pre></div>
+
+<p>Assuming the above code is saved to a <samp>hello.w</samp> file,
+<code>chickadee play</code> be invoked as follows:
+</p>
+<div class="example">
+<pre class="example">chickadee play --language=wisp -x .w hello.w
+</pre></div>
+
+</dd>
</dl>
<hr>
diff --git a/manuals/chickadee/Matrices.html b/manuals/chickadee/Matrices.html
index 551664d..354a9ef 100644
--- a/manuals/chickadee/Matrices.html
+++ b/manuals/chickadee/Matrices.html
@@ -132,6 +132,16 @@ equivalent to the following code:
</p></dd></dl>
<dl>
+<dt id="index-matrix3_003d">Procedure: <strong>matrix3=</strong> <em>m1 m2</em></dt>
+<dd><p>Return <code>#t</code> if <var>m1</var> is the same matrix as <var>m2</var>.
+</p></dd></dl>
+
+<dl>
+<dt id="index-matrix3_002dcopy">Procedure: <strong>matrix3-copy</strong> <em>matrix</em></dt>
+<dd><p>Return a new 3x3 matrix that is a copy of <var>matrix</var>.
+</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>.
@@ -172,6 +182,11 @@ matrix <var>matrix</var>.
matrix objects:
</p>
<dl>
+<dt id="index-matrix3_002dcopy_0021">Procedure: <strong>matrix3-copy!</strong> <em>src dest</em></dt>
+<dd><p>Copy the contents of matrix <var>src</var> to <var>dest</var>.
+</p></dd></dl>
+
+<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>
@@ -247,6 +262,16 @@ equivalent to the following code:
</p></dd></dl>
<dl>
+<dt id="index-matrix4_003d">Procedure: <strong>matrix4=</strong> <em>m1 m2</em></dt>
+<dd><p>Return <code>#t</code> if <var>m1</var> is the same matrix as <var>m2</var>.
+</p></dd></dl>
+
+<dl>
+<dt id="index-matrix4_002dcopy">Procedure: <strong>matrix4-copy</strong> <em>matrix</em></dt>
+<dd><p>Return a new 4x4 matrix that is a copy of <var>matrix</var>.
+</p></dd></dl>
+
+<dl>
<dt id="index-matrix4_002a">Procedure: <strong>matrix4*</strong> <em>. matrices</em></dt>
<dd><p>Return a new 4x4 matrix containing the product of multiplying all of
the given <var>matrices</var>.
@@ -255,6 +280,14 @@ the given <var>matrices</var>.
</p></dd></dl>
<dl>
+<dt id="index-matrix4_002dinverse">Procedure: <strong>matrix4-inverse</strong> <em>matrix</em></dt>
+<dd><p>Return the inverse of <var>matrix</var>.
+</p>
+<p>A matrix multiplied by its inverse is the identity matrix, thought not
+always exactly due to the nature of floating point numbers.
+</p></dd></dl>
+
+<dl>
<dt id="index-orthographic_002dprojection">Procedure: <strong>orthographic-projection</strong> <em>left right top bottom near far</em></dt>
<dd>
<p>Return a new 4x4 matrix that represents an orthographic (2D)
@@ -297,6 +330,14 @@ axis defined by the quaternion <var>q</var>.
<var>theta</var> radians.
</p></dd></dl>
+<p>The following procedures perform in-place, destructive updates to 4x4
+matrix objects:
+</p>
+<dl>
+<dt id="index-matrix4_002dcopy_0021">Procedure: <strong>matrix4-copy!</strong> <em>src dest</em></dt>
+<dd><p>Copy the contents of matrix <var>src</var> to <var>dest</var>.
+</p></dd></dl>
+
<dl>
<dt id="index-matrix4_002didentity_0021">Procedure: <strong>matrix4-identity!</strong> <em>matrix</em></dt>
<dd><p>Modify <var>matrix</var> in-place to contain the identity matrix.
@@ -309,6 +350,12 @@ the result in the 4x4 matrix <var>dest</var>.
</p></dd></dl>
<dl>
+<dt id="index-matrix4_002dinverse_0021">Procedure: <strong>matrix4-inverse!</strong> <em>matrix target</em></dt>
+<dd><p>Compute the inverse of <var>matrix</var> and store the result in
+<var>target</var>.
+</p></dd></dl>
+
+<dl>
<dt id="index-matrix4_002dtranslate_0021">Procedure: <strong>matrix4-translate!</strong> <em>matrix x</em></dt>
<dd><p>Modify <var>matrix</var> in-place to contain a translation by <var>x</var>, a 2D
vector, a 3D vector, or a rectangle (in which case the bottom-left
@@ -334,12 +381,12 @@ axis defined by the quaternion <var>q</var>.
</p></dd></dl>
<dl>
-<dt id="index-matrix4_002d2d_002dtransform_0021">Procedure: <strong>matrix4-2d-transform!</strong> <em>matrix [#:origin] [#:position] [#:rotation] [#:scale] [#:skew]</em></dt>
+<dt id="index-matrix4_002d2d_002dtransform_0021">Procedure: <strong>matrix4-2d-transform!</strong> <em>matrix [#:origin] [#:position] [#:rotation] [#:scale] [#:shear]</em></dt>
<dd>
<p>Modify <var>matrix</var> in-place to contain the transformation described
by <var>position</var>, a 2D vector or rectangle, <var>rotation</var>, a scalar
representing a rotation about the Z axis, <var>scale</var>, a 2D vector,
-and <var>skew</var>, a 2D vector. The transformation happens with respect
+and <var>shear</var>, a 2D vector. The transformation happens with respect
to <var>origin</var>, a 2D vector. If an argument is not provided, that
particular transformation will not be included in the result.
</p></dd></dl>
diff --git a/manuals/chickadee/Scripts.html b/manuals/chickadee/Scripts.html
index d9b0b32..bc82c5f 100644
--- a/manuals/chickadee/Scripts.html
+++ b/manuals/chickadee/Scripts.html
@@ -174,6 +174,11 @@ procedure <var>handler</var>.
</p></dd></dl>
<dl>
+<dt id="index-join">Procedure: <strong>join</strong> <em>script</em></dt>
+<dd><p>Suspend the current script until <var>script</var> has terminated.
+</p></dd></dl>
+
+<dl>
<dt id="index-sleep">Procedure: <strong>sleep</strong> <em>duration</em></dt>
<dd><p>Wait <var>duration</var> before resuming the current script.
</p></dd></dl>
diff --git a/manuals/chickadee/Sprites.html b/manuals/chickadee/Sprites.html
index 2575e87..6069f8f 100644
--- a/manuals/chickadee/Sprites.html
+++ b/manuals/chickadee/Sprites.html
@@ -98,15 +98,16 @@ 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] [#:rect]</em></dt>
+<dt id="index-draw_002dsprite">Procedure: <strong>draw-sprite</strong> <em>texture position [#:blend-mode] [#:origin] [#:rect] [#:rotation] [#:scale] [#:shear] [#:tint white]</em></dt>
<dd>
<p>Draw <var>texture</var> at <var>position</var>.
</p>
<p>Optionally, other transformations may be applied to the sprite.
<var>rotation</var> specifies the angle to rotate the sprite, in radians.
-<var>scale</var> specifies the scaling factor as a 2D vector. All
-transformations are applied relative to <var>origin</var>, a 2D vector,
-which defaults to the lower-left corner.
+<var>scale</var> specifies the scaling factor as a 2D vector. <var>shear</var>
+specifies the shearing factor as a 2D vector. All transformations are
+applied relative to <var>origin</var>, a 2D vector, which defaults to the
+lower-left corner.
</p>
<p><var>tint</var> specifies the color to multiply against all the sprite&rsquo;s
pixels. By default white is used, which does no tinting at all.
@@ -159,7 +160,7 @@ are full to accomodate as many sprites as necessary.
</p></dd></dl>
<dl>
-<dt id="index-sprite_002dbatch_002dadd_0021">Procedure: <strong>sprite-batch-add!</strong> <em>batch position [#:origin] [#:scale] [:rotation] [#:tint <code>white</code>] [#:texture-region]</em></dt>
+<dt id="index-sprite_002dbatch_002dadd_0021">Procedure: <strong>sprite-batch-add!</strong> <em>batch position [#:origin] [:rotation] [#:scale] [#:shear] [#:texture-region] [#:tint <code>white</code>]</em></dt>
<dd>
<p>Add sprite located at <var>position</var> to <var>batch</var>.
</p>
diff --git a/manuals/chickadee/The-Game-Loop.html b/manuals/chickadee/The-Game-Loop.html
index d18ad0d..7d7acfb 100644
--- a/manuals/chickadee/The-Game-Loop.html
+++ b/manuals/chickadee/The-Game-Loop.html
@@ -277,18 +277,16 @@ values are:
</li></ol>
-</li><li> <var>error</var>: Called with three arguments when an error occurs:
+</li><li> <var>error</var>: Called with two arguments when an error occurs:
<ol>
-<li> <var>stack</var>: The call stack at the point of error.
+<li> <var>exception</var>: The exception object.
-</li><li> <var>key</var>: The exception key.
-
-</li><li> <var>args</var>: The arguments thrown with the exception.
+</li><li> <var>stack</var>: The call stack at the point of the exception.
</li></ol>
-<p>The default behavior is to re-throw the error.
+<p>If no error handler is specified, exceptions will simply be re-raised.
</p>
</li></ul>