diff options
author | David Thompson <dthompson2@worcester.edu> | 2016-08-19 20:40:12 -0400 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2016-08-19 20:40:12 -0400 |
commit | 9224412274e1e1a31a959083bb257a7d6ab2b113 (patch) | |
tree | c82ef8b0136037aa1b278957f42ae665188861be /manuals | |
parent | c47d942552568e9a866e9d4887944e0c074dec93 (diff) |
Add Sly manual.
Diffstat (limited to 'manuals')
46 files changed, 6588 insertions, 0 deletions
diff --git a/manuals/sly/API-Reference.html b/manuals/sly/API-Reference.html new file mode 100644 index 0000000..323ebfe --- /dev/null +++ b/manuals/sly/API-Reference.html @@ -0,0 +1,96 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: API Reference</title> + +<meta name="description" content="Sly: API Reference"> +<meta name="keywords" content="Sly: API Reference"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="index.html#Top" rel="up" title="Top"> +<link href="Booting.html#Booting" rel="next" title="Booting"> +<link href="Getting-Started.html#Getting-Started" rel="prev" title="Getting Started"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="API-Reference"></a> +<div class="header"> +<p> +Next: <a href="Contributing.html#Contributing" accesskey="n" rel="next">Contributing</a>, Previous: <a href="Getting-Started.html#Getting-Started" accesskey="p" rel="prev">Getting Started</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="API-Reference-1"></a> +<h2 class="chapter">4 API Reference</h2> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="Booting.html#Booting" accesskey="1">Booting</a>:</td><td> </td><td align="left" valign="top">Opening a window and running the game loop. +</td></tr> +<tr><td align="left" valign="top">• <a href="Math.html#Math" accesskey="2">Math</a>:</td><td> </td><td align="left" valign="top">Vectors, quaternions, matrices, etc. +</td></tr> +<tr><td align="left" valign="top">• <a href="Time.html#Time" accesskey="3">Time</a>:</td><td> </td><td align="left" valign="top">Tick-tock. +</td></tr> +<tr><td align="left" valign="top">• <a href="Input.html#Input" accesskey="4">Input</a>:</td><td> </td><td align="left" valign="top">Keyboard, mouse, and joystick input. +</td></tr> +<tr><td align="left" valign="top">• <a href="Rendering.html#Rendering" accesskey="5">Rendering</a>:</td><td> </td><td align="left" valign="top">Drawing to the screen. +</td></tr> +<tr><td align="left" valign="top">• <a href="Utilities.html#Utilities" accesskey="6">Utilities</a>:</td><td> </td><td align="left" valign="top">Miscellaneous conveniences. +</td></tr> +</table> + + + + +</body> +</html> diff --git a/manuals/sly/Agendas.html b/manuals/sly/Agendas.html new file mode 100644 index 0000000..b30aa98 --- /dev/null +++ b/manuals/sly/Agendas.html @@ -0,0 +1,163 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Agendas</title> + +<meta name="description" content="Sly: Agendas"> +<meta name="keywords" content="Sly: Agendas"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Time.html#Time" rel="up" title="Time"> +<link href="Input.html#Input" rel="next" title="Input"> +<link href="Coroutines.html#Coroutines" rel="prev" title="Coroutines"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Agendass"></a> +<div class="header"> +<p> +Previous: <a href="Coroutines.html#Coroutines" accesskey="p" rel="prev">Coroutines</a>, Up: <a href="Time.html#Time" accesskey="u" rel="up">Time</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Agendas-1"></a> +<h4 class="subsection">4.3.3 Agendas</h4> + +<div class="example"> +<pre class="example">(use-modules (sly agenda)) +</pre></div> + +<p>Agendas are used to schedule procedures to be called at distinct +points in time. One agenda, stored in the <code>current-agenda</code> +parameter, is active at any given time. A global agenda is initially +bound and is sufficient for most needs. When a separate scheduler is +required (see <a href="REPL.html#REPL">REPL</a> for one such case), the parameter can be +rebound using <code>parameterize</code> or <code>with-agenda</code> form. +</p> +<dl> +<dt><a name="index-make_002dagenda"></a>Scheme Procedure: <strong>make-agenda</strong></dt> +<dd><p>Create a new, empty agenda. +</p></dd></dl> + +<dl> +<dt><a name="index-agenda_003f"></a>Scheme Syntax: <strong>agenda?</strong> <em><var>obj</var></em></dt> +<dd><p>Return <code>#t</code> if <var>obj</var> is an agenda. +</p></dd></dl> + +<dl> +<dt><a name="index-current_002dagenda"></a>Scheme Variable: <strong>current-agenda</strong></dt> +<dd><p>A parameter containing the current, dynamically scoped agenda object. +</p></dd></dl> + +<dl> +<dt><a name="index-agenda_002dtime"></a>Scheme Procedure: <strong>agenda-time</strong></dt> +<dd><p>Return the time of the current agenda. +</p></dd></dl> + +<dl> +<dt><a name="index-with_002dagenda"></a>Scheme Syntax: <strong>with-agenda</strong> <em><var>agenda</var> <var>body</var> …</em></dt> +<dd><p>Evaluate <var>body</var> with <code>current-agenda</code> bound to <var>agenda</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-agenda_002dtick_0021"></a>Scheme Procedure: <strong>agenda-tick!</strong></dt> +<dd><p>Increment time by 1 for the current agenda and run scheduled +procedures. +</p></dd></dl> + +<dl> +<dt><a name="index-agenda_002dclear_0021"></a>Scheme Procedure: <strong>agenda-clear!</strong></dt> +<dd><p>Remove all scheduled procedures from the current agenda. +</p></dd></dl> + +<dl> +<dt><a name="index-schedule"></a>Scheme Procedure: <strong>schedule</strong> <em><var>thunk</var> [<var>delay</var>]</em></dt> +<dd><p>Schedule <var>thunk</var> to be applied after <var>delay</var> ticks of the +current agenda. The default <var>delay</var> is one tick. +</p></dd></dl> + +<dl> +<dt><a name="index-schedule_002dinterval"></a>Scheme Procedure: <strong>schedule-interval</strong> <em><var>thunk</var> <var>interval</var></em></dt> +<dd><p>Schedule <var>thunk</var> to be applied every <var>interval</var> ticks of the +current agenda, forever. +</p></dd></dl> + +<dl> +<dt><a name="index-schedule_002deach"></a>Scheme Procedure: <strong>schedule-each</strong> <em><var>thunk</var></em></dt> +<dd><p>Schedule <var>thunk</var> to be applied upon every tick of the current +agenda, forever. +</p></dd></dl> + +<p><a href="Coroutines.html#Coroutines">Coroutines</a> become particularly useful for game programming when +combined with the agenda. For example, a computer controller opponent +could periodically pause its AI algorithm to give the rest of the game +world a chance to do some processing. By using the <code>wait</code> +procedure, algorithms that span multiple ticks of game time can be +written in a straightforward, natural way. +</p> +<dl> +<dt><a name="index-wait"></a>Scheme Procedure: <strong>wait</strong> <em><var>delay</var></em></dt> +<dd><p>Abort the current coroutine prompt and schedule the continuation to be +run after <var>delay</var> ticks of the current agenda. +</p></dd></dl> +<hr> +<div class="header"> +<p> +Previous: <a href="Coroutines.html#Coroutines" accesskey="p" rel="prev">Coroutines</a>, Up: <a href="Time.html#Time" accesskey="u" rel="up">Time</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> + + + +</body> +</html> diff --git a/manuals/sly/Booting.html b/manuals/sly/Booting.html new file mode 100644 index 0000000..b74cec8 --- /dev/null +++ b/manuals/sly/Booting.html @@ -0,0 +1,88 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Booting</title> + +<meta name="description" content="Sly: Booting"> +<meta name="keywords" content="Sly: Booting"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="API-Reference.html#API-Reference" rel="up" title="API Reference"> +<link href="Window-Creation.html#Window-Creation" rel="next" title="Window Creation"> +<link href="API-Reference.html#API-Reference" rel="prev" title="API Reference"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Booting"></a> +<div class="header"> +<p> +Next: <a href="Math.html#Math" accesskey="n" rel="next">Math</a>, Up: <a href="API-Reference.html#API-Reference" accesskey="u" rel="up">API Reference</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Booting-1"></a> +<h3 class="section">4.1 Booting</h3> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="Window-Creation.html#Window-Creation" accesskey="1">Window Creation</a>:</td><td> </td><td align="left" valign="top">Opening a window. +</td></tr> +<tr><td align="left" valign="top">• <a href="The-Game-Loop.html#The-Game-Loop" accesskey="2">The Game Loop</a>:</td><td> </td><td align="left" valign="top">The core of the engine. +</td></tr> +</table> + + + + +</body> +</html> diff --git a/manuals/sly/Cameras.html b/manuals/sly/Cameras.html new file mode 100644 index 0000000..7985f90 --- /dev/null +++ b/manuals/sly/Cameras.html @@ -0,0 +1,81 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Cameras</title> + +<meta name="description" content="Sly: Cameras"> +<meta name="keywords" content="Sly: Cameras"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Rendering.html#Rendering" rel="up" title="Rendering"> +<link href="Colors.html#Colors" rel="next" title="Colors"> +<link href="Shapes.html#Shapes" rel="prev" title="Shapes"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Cameras"></a> +<div class="header"> +<p> +Next: <a href="Colors.html#Colors" accesskey="n" rel="next">Colors</a>, Previous: <a href="Shapes.html#Shapes" accesskey="p" rel="prev">Shapes</a>, Up: <a href="Rendering.html#Rendering" accesskey="u" rel="up">Rendering</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Cameras-1"></a> +<h4 class="subsection">4.5.6 Cameras</h4> + + + + +</body> +</html> diff --git a/manuals/sly/Colors.html b/manuals/sly/Colors.html new file mode 100644 index 0000000..507eefe --- /dev/null +++ b/manuals/sly/Colors.html @@ -0,0 +1,81 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Colors</title> + +<meta name="description" content="Sly: Colors"> +<meta name="keywords" content="Sly: Colors"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Rendering.html#Rendering" rel="up" title="Rendering"> +<link href="Framebuffers.html#Framebuffers" rel="next" title="Framebuffers"> +<link href="Cameras.html#Cameras" rel="prev" title="Cameras"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Colors"></a> +<div class="header"> +<p> +Next: <a href="Framebuffers.html#Framebuffers" accesskey="n" rel="next">Framebuffers</a>, Previous: <a href="Cameras.html#Cameras" accesskey="p" rel="prev">Cameras</a>, Up: <a href="Rendering.html#Rendering" accesskey="u" rel="up">Rendering</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Colors-1"></a> +<h4 class="subsection">4.5.7 Colors</h4> + + + + +</body> +</html> diff --git a/manuals/sly/Contributing.html b/manuals/sly/Contributing.html new file mode 100644 index 0000000..68e20dd --- /dev/null +++ b/manuals/sly/Contributing.html @@ -0,0 +1,89 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Contributing</title> + +<meta name="description" content="Sly: Contributing"> +<meta name="keywords" content="Sly: Contributing"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="index.html#Top" rel="up" title="Top"> +<link href="Copying-This-Manual.html#Copying-This-Manual" rel="next" title="Copying This Manual"> +<link href="Miscellaneous_002dUtilities.html#Miscellaneous_002dUtilities" rel="prev" title="Miscellaneous-Utilities"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Contributing"></a> +<div class="header"> +<p> +Next: <a href="Copying-This-Manual.html#Copying-This-Manual" accesskey="n" rel="next">Copying This Manual</a>, Previous: <a href="API-Reference.html#API-Reference" accesskey="p" rel="prev">API Reference</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Contributing-1"></a> +<h2 class="chapter">5 Contributing</h2> + +<p>This project is a cooperative effort, and we need your help to make it +grow! Please get in touch with us on <code>#sly</code> on the Freenode IRC +network. We welcome ideas, bug reports, patches, and anything that +may be helpful to the project. +</p> +<p>The git source code repository can be found at +<a href="https://git.dthompson.us/sly.git">https://git.dthompson.us/sly.git</a>. +</p> + + + +</body> +</html> diff --git a/manuals/sly/Copying-This-Manual.html b/manuals/sly/Copying-This-Manual.html new file mode 100644 index 0000000..8c113ce --- /dev/null +++ b/manuals/sly/Copying-This-Manual.html @@ -0,0 +1,86 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Copying This Manual</title> + +<meta name="description" content="Sly: Copying This Manual"> +<meta name="keywords" content="Sly: Copying This Manual"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="index.html#Top" rel="up" title="Top"> +<link href="GNU-Free-Documentation-License.html#GNU-Free-Documentation-License" rel="next" title="GNU Free Documentation License"> +<link href="Contributing.html#Contributing" rel="prev" title="Contributing"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Copying-This-Manual"></a> +<div class="header"> +<p> +Next: <a href="Index.html#Index" accesskey="n" rel="next">Index</a>, Previous: <a href="Contributing.html#Contributing" accesskey="p" rel="prev">Contributing</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Copying-This-Manual-1"></a> +<h2 class="appendix">Appendix A Copying This Manual</h2> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="GNU-Free-Documentation-License.html#GNU-Free-Documentation-License" accesskey="1">GNU Free Documentation License</a>:</td><td> </td><td align="left" valign="top">License for copying this manual. +</td></tr> +</table> + + + + +</body> +</html> diff --git a/manuals/sly/Coroutines.html b/manuals/sly/Coroutines.html new file mode 100644 index 0000000..26e5c73 --- /dev/null +++ b/manuals/sly/Coroutines.html @@ -0,0 +1,134 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Coroutines</title> + +<meta name="description" content="Sly: Coroutines"> +<meta name="keywords" content="Sly: Coroutines"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Time.html#Time" rel="up" title="Time"> +<link href="Agendas.html#Agendas" rel="next" title="Agendas"> +<link href="Signals.html#Signals" rel="prev" title="Signals"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Coroutines"></a> +<div class="header"> +<p> +Next: <a href="Agendas.html#Agendas" accesskey="n" rel="next">Agendas</a>, Previous: <a href="Signals.html#Signals" accesskey="p" rel="prev">Signals</a>, Up: <a href="Time.html#Time" accesskey="u" rel="up">Time</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Coroutines-1"></a> +<h4 class="subsection">4.3.2 Coroutines</h4> + +<div class="example"> +<pre class="example">(use-modules (sly coroutine)) +</pre></div> + +<p>Coroutines are the building block for cooperative multitasking. When +used with agendas, they are a powerful mechanism for writing +algorithms that span multiple clock ticks in a straightforward, linear +fashion. Sly’s coroutines are built on top of Guile’s delimited +continuations, called prompts. +</p> +<p>To run a procedure as a coroutine, use the <code>call-with-coroutine</code> +procedure. Once inside the coroutine prompt, the <code>yield</code> +procedure can be used to pause the procedure and pass its continuation +to a callback procedure. The callback may call the continuation at +its convenience, resuming the original procedure. +</p> +<p>Coroutines are particularly useful in conjunction with <a href="Agendas.html#Agendas">Agendas</a>. +</p> +<dl> +<dt><a name="index-call_002dwith_002dcoroutine"></a>Scheme Procedure: <strong>call-with-coroutine</strong> <em><var>thunk</var></em></dt> +<dd><p>Apply <var>thunk</var> within a coroutine prompt. +</p></dd></dl> + +<dl> +<dt><a name="index-coroutine"></a>Scheme Syntax: <strong>coroutine</strong> <em><var>body</var> …</em></dt> +<dd><p>Evaluate <var>body</var> within a coroutine prompt. +</p></dd></dl> + +<dl> +<dt><a name="index-colambda"></a>Scheme Syntax: <strong>colambda</strong> <em><var>args</var> <var>body</var> …</em></dt> +<dd><p>Syntacic sugar for a <code>lambda</code> expression whose <var>body</var> is run +within a coroutine prompt. +</p></dd></dl> + +<dl> +<dt><a name="index-codefine"></a>Scheme Syntax: <strong>codefine</strong> <em>(<var>name</var> <var>formals</var> …) <var>body</var> …</em></dt> +<dd><p>Syntacic sugar for defining a procedure called <var>name</var> with formal +arguments <var>formals</var> whose <var>body</var> is run within a coroutine +prompt. +</p></dd></dl> + +<dl> +<dt><a name="index-codefine_002a"></a>Scheme Syntax: <strong>codefine*</strong> <em>(<var>name</var> <var>formals</var> …) <var>body</var> …</em></dt> +<dd><p>Syntacic sugar for defining a procedure called <var>name</var> with +optional and keyword arguments <var>formals</var> whose <var>body</var> is run +within a coroutine prompt. +</p></dd></dl> + +<dl> +<dt><a name="index-yield"></a>Scheme Procedure: <strong>yield</strong> <em><var>callback</var></em></dt> +<dd><p>Yield continuation to the procedure <var>callback</var>. +</p></dd></dl> + + + + +</body> +</html> diff --git a/manuals/sly/Development-Environment.html b/manuals/sly/Development-Environment.html new file mode 100644 index 0000000..190c124 --- /dev/null +++ b/manuals/sly/Development-Environment.html @@ -0,0 +1,91 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Development Environment</title> + +<meta name="description" content="Sly: Development Environment"> +<meta name="keywords" content="Sly: Development Environment"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Installation.html#Installation" rel="up" title="Installation"> +<link href="Getting-Started.html#Getting-Started" rel="next" title="Getting Started"> +<link href="Examples.html#Examples" rel="prev" title="Examples"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Development-Environment"></a> +<div class="header"> +<p> +Previous: <a href="Examples.html#Examples" accesskey="p" rel="prev">Examples</a>, Up: <a href="Installation.html#Installation" accesskey="u" rel="up">Installation</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Development-Environment-1"></a> +<h3 class="section">2.3 Development Environment</h3> + +<p>The ideal tools to use for developing Sly applications are: +</p> +<ul> +<li> <a href="https://gnu.org/software/emacs">GNU Emacs</a>, version 24 or later +</li><li> <a href="http://mumble.net/~campbell/emacs/paredit/">Paredit</a>, version 23 or later +</li><li> <a href="http://nongnu.org/geiser/">Geiser</a>, version 0.6 or later; +</li></ul> + +<p>See their respective home pages for installation and usage instructions. +</p> + + + +</body> +</html> diff --git a/manuals/sly/Easings.html b/manuals/sly/Easings.html new file mode 100644 index 0000000..c73eebf --- /dev/null +++ b/manuals/sly/Easings.html @@ -0,0 +1,129 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Easings</title> + +<meta name="description" content="Sly: Easings"> +<meta name="keywords" content="Sly: Easings"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Tweens.html#Tweens" rel="up" title="Tweens"> +<link href="Tweening.html#Tweening" rel="next" title="Tweening"> +<link href="Tweens.html#Tweens" rel="prev" title="Tweens"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Easings"></a> +<div class="header"> +<p> +Next: <a href="Tweening.html#Tweening" accesskey="n" rel="next">Tweening</a>, Up: <a href="Tweens.html#Tweens" accesskey="u" rel="up">Tweens</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Easings-1"></a> +<h4 class="subsubsection">4.2.4.1 Easings</h4> + +<p>Easing procedures specify the rate of change of a value <var>alpha</var> +over time. Easings may be composed to form complex animation. +</p> +<p>The following procedures are used to control repitition by clamping +<var>alpha</var> to the range [0, 1] in different ways. +</p> +<dl> +<dt><a name="index-ease_002dloop"></a>Scnheme Procedure: <strong>ease-loop</strong> <em><var>alpha</var></em></dt> +<dd><p>When <var>alpha</var> reaches 1, start over from 0. +</p></dd></dl> + +<dl> +<dt><a name="index-ease_002dreflect"></a>Scheme Procedure: <strong>ease-reflect</strong> <em><var>alpha</var></em></dt> +<dd><p>When <var>alpha</var> reaches 1, work backwards to 0. When <var>alpha</var> +reaches 0, work forwards to 1. +</p></dd></dl> + +<p>The following easing functions control the rate of change of an +animation: +</p> +<dl> +<dt><a name="index-ease_002dlinear"></a>Scheme Procedure: <strong>ease-linear</strong> <em><var>alpha</var></em></dt> +</dl> + +<dl> +<dt><a name="index-ease_002din_002dsine"></a>Scheme Procedure: <strong>ease-in-sine</strong> <em><var>alpha</var></em></dt> +</dl> + +<dl> +<dt><a name="index-ease_002dout_002dsine"></a>Scheme Procedure: <strong>ease-out-sine</strong> <em><var>alpha</var></em></dt> +</dl> + +<dl> +<dt><a name="index-ease_002din_002dout_002dsine"></a>Scheme Procedure: <strong>ease-in-out-sine</strong> <em><var>alpha</var></em></dt> +</dl> + +<dl> +<dt><a name="index-ease_002din_002dquad"></a>Scheme Procedure: <strong>ease-in-quad</strong> <em><var>alpha</var></em></dt> +</dl> + +<dl> +<dt><a name="index-ease_002dout_002dquad"></a>Scheme Procedure: <strong>ease-out-quad</strong> <em><var>alpha</var></em></dt> +</dl> + +<dl> +<dt><a name="index-ease_002din_002dout_002dquad"></a>Scheme Procedure: <strong>ease-in-out-quad</strong> <em><var>alpha</var></em></dt> +</dl> + + + + +</body> +</html> diff --git a/manuals/sly/Examples.html b/manuals/sly/Examples.html new file mode 100644 index 0000000..b2a06fc --- /dev/null +++ b/manuals/sly/Examples.html @@ -0,0 +1,94 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Examples</title> + +<meta name="description" content="Sly: Examples"> +<meta name="keywords" content="Sly: Examples"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Installation.html#Installation" rel="up" title="Installation"> +<link href="Development-Environment.html#Development-Environment" rel="next" title="Development Environment"> +<link href="Requirements.html#Requirements" rel="prev" title="Requirements"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Examples"></a> +<div class="header"> +<p> +Next: <a href="Development-Environment.html#Development-Environment" accesskey="n" rel="next">Development Environment</a>, Previous: <a href="Requirements.html#Requirements" accesskey="p" rel="prev">Requirements</a>, Up: <a href="Installation.html#Installation" accesskey="u" rel="up">Installation</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Examples-1"></a> +<h3 class="section">2.2 Examples</h3> + +<p>To test your Sly installation, try running some of the included +example programs. Examples can be found in the +<samp>share/sly/examples</samp> directory, relative to the installation +prefix. +</p> +<p>To run an example, invoke Guile with the relevant file, such as: +<code>guile simple.scm</code>. If successful, a window with a sprite in the +center will open. +</p> +<p>A more complex example can further test your installation and show off +what Sly can do. Try running the “2048” example in +<samp>share/sly/examples/2048</samp> with <code>guile 2048.scm</code>. +</p> + + + +</body> +</html> diff --git a/manuals/sly/Fonts.html b/manuals/sly/Fonts.html new file mode 100644 index 0000000..decef4d --- /dev/null +++ b/manuals/sly/Fonts.html @@ -0,0 +1,81 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Fonts</title> + +<meta name="description" content="Sly: Fonts"> +<meta name="keywords" content="Sly: Fonts"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Rendering.html#Rendering" rel="up" title="Rendering"> +<link href="Shapes.html#Shapes" rel="next" title="Shapes"> +<link href="Textures.html#Textures" rel="prev" title="Textures"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Fonts"></a> +<div class="header"> +<p> +Next: <a href="Shapes.html#Shapes" accesskey="n" rel="next">Shapes</a>, Previous: <a href="Textures.html#Textures" accesskey="p" rel="prev">Textures</a>, Up: <a href="Rendering.html#Rendering" accesskey="u" rel="up">Rendering</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Fonts-1"></a> +<h4 class="subsection">4.5.4 Fonts</h4> + + + + +</body> +</html> diff --git a/manuals/sly/Framebuffers.html b/manuals/sly/Framebuffers.html new file mode 100644 index 0000000..1f5e894 --- /dev/null +++ b/manuals/sly/Framebuffers.html @@ -0,0 +1,81 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Framebuffers</title> + +<meta name="description" content="Sly: Framebuffers"> +<meta name="keywords" content="Sly: Framebuffers"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Rendering.html#Rendering" rel="up" title="Rendering"> +<link href="Shaders.html#Shaders" rel="next" title="Shaders"> +<link href="Colors.html#Colors" rel="prev" title="Colors"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Framebuffers"></a> +<div class="header"> +<p> +Next: <a href="Shaders.html#Shaders" accesskey="n" rel="next">Shaders</a>, Previous: <a href="Colors.html#Colors" accesskey="p" rel="prev">Colors</a>, Up: <a href="Rendering.html#Rendering" accesskey="u" rel="up">Rendering</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Framebuffers-1"></a> +<h4 class="subsection">4.5.8 Framebuffers</h4> + + + + +</body> +</html> diff --git a/manuals/sly/GNU-Free-Documentation-License.html b/manuals/sly/GNU-Free-Documentation-License.html new file mode 100644 index 0000000..a95838f --- /dev/null +++ b/manuals/sly/GNU-Free-Documentation-License.html @@ -0,0 +1,554 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: GNU Free Documentation License</title> + +<meta name="description" content="Sly: GNU Free Documentation License"> +<meta name="keywords" content="Sly: GNU Free Documentation License"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Copying-This-Manual.html#Copying-This-Manual" rel="up" title="Copying This Manual"> +<link href="Index.html#Index" rel="next" title="Index"> +<link href="Copying-This-Manual.html#Copying-This-Manual" rel="prev" title="Copying This Manual"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="GNU-Free-Documentation-License"></a> +<div class="header"> +<p> +Up: <a href="Copying-This-Manual.html#Copying-This-Manual" accesskey="u" rel="up">Copying This Manual</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="GNU-Free-Documentation-License-1"></a> +<h3 class="section">A.1 GNU Free Documentation License</h3> +<div align="center">Version 1.3, 3 November 2008 +</div> + +<div class="display"> +<pre class="display">Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. +<a href="http://fsf.org/">http://fsf.org/</a> + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. +</pre></div> + +<ol> +<li> PREAMBLE + +<p>The purpose of this License is to make a manual, textbook, or other +functional and useful document <em>free</em> in the sense of freedom: to +assure everyone the effective freedom to copy and redistribute it, +with or without modifying it, either commercially or noncommercially. +Secondarily, this License preserves for the author and publisher a way +to get credit for their work, while not being considered responsible +for modifications made by others. +</p> +<p>This License is a kind of “copyleft”, which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. +</p> +<p>We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. +</p> +</li><li> APPLICABILITY AND DEFINITIONS + +<p>This License applies to any manual or other work, in any medium, that +contains a notice placed by the copyright holder saying it can be +distributed under the terms of this License. Such a notice grants a +world-wide, royalty-free license, unlimited in duration, to use that +work under the conditions stated herein. The “Document”, below, +refers to any such manual or work. Any member of the public is a +licensee, and is addressed as “you”. You accept the license if you +copy, modify or distribute the work in a way requiring permission +under copyright law. +</p> +<p>A “Modified Version” of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. +</p> +<p>A “Secondary Section” is a named appendix or a front-matter section +of the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document’s overall +subject (or to related matters) and contains nothing that could fall +directly within that overall subject. (Thus, if the Document is in +part a textbook of mathematics, a Secondary Section may not explain +any mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. +</p> +<p>The “Invariant Sections” are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License. If a +section does not fit the above definition of Secondary then it is not +allowed to be designated as Invariant. The Document may contain zero +Invariant Sections. If the Document does not identify any Invariant +Sections then there are none. +</p> +<p>The “Cover Texts” are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. A Front-Cover Text may +be at most 5 words, and a Back-Cover Text may be at most 25 words. +</p> +<p>A “Transparent” copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, that is suitable for revising the document +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup, or absence of markup, has been arranged to thwart +or discourage subsequent modification by readers is not Transparent. +An image format is not Transparent if used for any substantial amount +of text. A copy that is not “Transparent” is called “Opaque”. +</p> +<p>Examples of suitable formats for Transparent copies include plain +ASCII without markup, Texinfo input format, LaTeX input +format, SGML or XML using a publicly available +DTD, and standard-conforming simple HTML, +PostScript or PDF designed for human modification. Examples +of transparent image formats include PNG, XCF and +JPG. Opaque formats include proprietary formats that can be +read and edited only by proprietary word processors, SGML or +XML for which the DTD and/or processing tools are +not generally available, and the machine-generated HTML, +PostScript or PDF produced by some word processors for +output purposes only. +</p> +<p>The “Title Page” means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, “Title Page” means +the text near the most prominent appearance of the work’s title, +preceding the beginning of the body of the text. +</p> +<p>The “publisher” means any person or entity that distributes copies +of the Document to the public. +</p> +<p>A section “Entitled XYZ” means a named subunit of the Document whose +title either is precisely XYZ or contains XYZ in parentheses following +text that translates XYZ in another language. (Here XYZ stands for a +specific section name mentioned below, such as “Acknowledgements”, +“Dedications”, “Endorsements”, or “History”.) To “Preserve the Title” +of such a section when you modify the Document means that it remains a +section “Entitled XYZ” according to this definition. +</p> +<p>The Document may include Warranty Disclaimers next to the notice which +states that this License applies to the Document. These Warranty +Disclaimers are considered to be included by reference in this +License, but only as regards disclaiming warranties: any other +implication that these Warranty Disclaimers may have is void and has +no effect on the meaning of this License. +</p> +</li><li> VERBATIM COPYING + +<p>You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no other +conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section 3. +</p> +<p>You may also lend copies, under the same conditions stated above, and +you may publicly display copies. +</p> +</li><li> COPYING IN QUANTITY + +<p>If you publish printed copies (or copies in media that commonly have +printed covers) of the Document, numbering more than 100, and the +Document’s license notice requires Cover Texts, you must enclose the +copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. +</p> +<p>If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. +</p> +<p>If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a computer-network location from which the general network-using +public has access to download using public-standard network protocols +a complete Transparent copy of the Document, free of added material. +If you use the latter option, you must take reasonably prudent steps, +when you begin distribution of Opaque copies in quantity, to ensure +that this Transparent copy will remain thus accessible at the stated +location until at least one year after the last time you distribute an +Opaque copy (directly or through your agents or retailers) of that +edition to the public. +</p> +<p>It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to give +them a chance to provide you with an updated version of the Document. +</p> +</li><li> MODIFICATIONS + +<p>You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version: +</p> +<ol> +<li> Use in the Title Page (and on the covers, if any) a title distinct +from that of the Document, and from those of previous versions +(which should, if there were any, be listed in the History section +of the Document). You may use the same title as a previous version +if the original publisher of that version gives permission. + +</li><li> List on the Title Page, as authors, one or more persons or entities +responsible for authorship of the modifications in the Modified +Version, together with at least five of the principal authors of the +Document (all of its principal authors, if it has fewer than five), +unless they release you from this requirement. + +</li><li> State on the Title page the name of the publisher of the +Modified Version, as the publisher. + +</li><li> Preserve all the copyright notices of the Document. + +</li><li> Add an appropriate copyright notice for your modifications +adjacent to the other copyright notices. + +</li><li> Include, immediately after the copyright notices, a license notice +giving the public permission to use the Modified Version under the +terms of this License, in the form shown in the Addendum below. + +</li><li> Preserve in that license notice the full lists of Invariant Sections +and required Cover Texts given in the Document’s license notice. + +</li><li> Include an unaltered copy of this License. + +</li><li> Preserve the section Entitled “History”, Preserve its Title, and add +to it an item stating at least the title, year, new authors, and +publisher of the Modified Version as given on the Title Page. If +there is no section Entitled “History” in the Document, create one +stating the title, year, authors, and publisher of the Document as +given on its Title Page, then add an item describing the Modified +Version as stated in the previous sentence. + +</li><li> Preserve the network location, if any, given in the Document for +public access to a Transparent copy of the Document, and likewise +the network locations given in the Document for previous versions +it was based on. These may be placed in the “History” section. +You may omit a network location for a work that was published at +least four years before the Document itself, or if the original +publisher of the version it refers to gives permission. + +</li><li> For any section Entitled “Acknowledgements” or “Dedications”, Preserve +the Title of the section, and preserve in the section all the +substance and tone of each of the contributor acknowledgements and/or +dedications given therein. + +</li><li> Preserve all the Invariant Sections of the Document, +unaltered in their text and in their titles. Section numbers +or the equivalent are not considered part of the section titles. + +</li><li> Delete any section Entitled “Endorsements”. Such a section +may not be included in the Modified Version. + +</li><li> Do not retitle any existing section to be Entitled “Endorsements” or +to conflict in title with any Invariant Section. + +</li><li> Preserve any Warranty Disclaimers. +</li></ol> + +<p>If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version’s license notice. +These titles must be distinct from any other section titles. +</p> +<p>You may add a section Entitled “Endorsements”, provided it contains +nothing but endorsements of your Modified Version by various +parties—for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. +</p> +<p>You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. +</p> +<p>The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version. +</p> +</li><li> COMBINING DOCUMENTS + +<p>You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice, and that you preserve all their Warranty Disclaimers. +</p> +<p>The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work. +</p> +<p>In the combination, you must combine any sections Entitled “History” +in the various original documents, forming one section Entitled +“History”; likewise combine any sections Entitled “Acknowledgements”, +and any sections Entitled “Dedications”. You must delete all +sections Entitled “Endorsements.” +</p> +</li><li> COLLECTIONS OF DOCUMENTS + +<p>You may make a collection consisting of the Document and other documents +released under this License, and replace the individual copies of this +License in the various documents with a single copy that is included in +the collection, provided that you follow the rules of this License for +verbatim copying of each of the documents in all other respects. +</p> +<p>You may extract a single document from such a collection, and distribute +it individually under this License, provided you insert a copy of this +License into the extracted document, and follow this License in all +other respects regarding verbatim copying of that document. +</p> +</li><li> AGGREGATION WITH INDEPENDENT WORKS + +<p>A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, is called an “aggregate” if the copyright +resulting from the compilation is not used to limit the legal rights +of the compilation’s users beyond what the individual works permit. +When the Document is included in an aggregate, this License does not +apply to the other works in the aggregate which are not themselves +derivative works of the Document. +</p> +<p>If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one half of +the entire aggregate, the Document’s Cover Texts may be placed on +covers that bracket the Document within the aggregate, or the +electronic equivalent of covers if the Document is in electronic form. +Otherwise they must appear on printed covers that bracket the whole +aggregate. +</p> +</li><li> TRANSLATION + +<p>Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may include a +translation of this License, and all the license notices in the +Document, and any Warranty Disclaimers, provided that you also include +the original English version of this License and the original versions +of those notices and disclaimers. In case of a disagreement between +the translation and the original version of this License or a notice +or disclaimer, the original version will prevail. +</p> +<p>If a section in the Document is Entitled “Acknowledgements”, +“Dedications”, or “History”, the requirement (section 4) to Preserve +its Title (section 1) will typically require changing the actual +title. +</p> +</li><li> TERMINATION + +<p>You may not copy, modify, sublicense, or distribute the Document +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense, or distribute it is void, and +will automatically terminate your rights under this License. +</p> +<p>However, if you cease all violation of this License, then your license +from a particular copyright holder is reinstated (a) provisionally, +unless and until the copyright holder explicitly and finally +terminates your license, and (b) permanently, if the copyright holder +fails to notify you of the violation by some reasonable means prior to +60 days after the cessation. +</p> +<p>Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. +</p> +<p>Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, receipt of a copy of some or all of the same material does +not give you any rights to use it. +</p> +</li><li> FUTURE REVISIONS OF THIS LICENSE + +<p>The Free Software Foundation may publish new, revised versions +of the GNU Free Documentation License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. See +<a href="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</a>. +</p> +<p>Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License “or any later version” applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation. If the Document +specifies that a proxy can decide which future versions of this +License can be used, that proxy’s public statement of acceptance of a +version permanently authorizes you to choose that version for the +Document. +</p> +</li><li> RELICENSING + +<p>“Massive Multiauthor Collaboration Site” (or “MMC Site”) means any +World Wide Web server that publishes copyrightable works and also +provides prominent facilities for anybody to edit those works. A +public wiki that anybody can edit is an example of such a server. A +“Massive Multiauthor Collaboration” (or “MMC”) contained in the +site means any set of copyrightable works thus published on the MMC +site. +</p> +<p>“CC-BY-SA” means the Creative Commons Attribution-Share Alike 3.0 +license published by Creative Commons Corporation, a not-for-profit +corporation with a principal place of business in San Francisco, +California, as well as future copyleft versions of that license +published by that same organization. +</p> +<p>“Incorporate” means to publish or republish a Document, in whole or +in part, as part of another Document. +</p> +<p>An MMC is “eligible for relicensing” if it is licensed under this +License, and if all works that were first published under this License +somewhere other than this MMC, and subsequently incorporated in whole +or in part into the MMC, (1) had no cover texts or invariant sections, +and (2) were thus incorporated prior to November 1, 2008. +</p> +<p>The operator of an MMC Site may republish an MMC contained in the site +under CC-BY-SA on the same site at any time before August 1, 2009, +provided the MMC is eligible for relicensing. +</p> +</li></ol> + +<a name="ADDENDUM_003a-How-to-use-this-License-for-your-documents"></a> +<h3 class="heading">ADDENDUM: How to use this License for your documents</h3> + +<p>To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and +license notices just after the title page: +</p> +<div class="smallexample"> +<pre class="smallexample"> Copyright (C) <var>year</var> <var>your name</var>. + 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''. +</pre></div> + +<p>If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, +replace the “with…Texts.” line with this: +</p> +<div class="smallexample"> +<pre class="smallexample"> with the Invariant Sections being <var>list their titles</var>, with + the Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts + being <var>list</var>. +</pre></div> + +<p>If you have Invariant Sections without Cover Texts, or some other +combination of the three, merge those two alternatives to suit the +situation. +</p> +<p>If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, +to permit their use in free software. +</p> + +<hr> +<div class="header"> +<p> +Up: <a href="Copying-This-Manual.html#Copying-This-Manual" accesskey="u" rel="up">Copying This Manual</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> + + + +</body> +</html> diff --git a/manuals/sly/Getting-Started.html b/manuals/sly/Getting-Started.html new file mode 100644 index 0000000..ab235ec --- /dev/null +++ b/manuals/sly/Getting-Started.html @@ -0,0 +1,82 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Getting Started</title> + +<meta name="description" content="Sly: Getting Started"> +<meta name="keywords" content="Sly: Getting Started"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="index.html#Top" rel="up" title="Top"> +<link href="API-Reference.html#API-Reference" rel="next" title="API Reference"> +<link href="Development-Environment.html#Development-Environment" rel="prev" title="Development Environment"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Getting-Started"></a> +<div class="header"> +<p> +Next: <a href="API-Reference.html#API-Reference" accesskey="n" rel="next">API Reference</a>, Previous: <a href="Installation.html#Installation" accesskey="p" rel="prev">Installation</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Getting-Started-1"></a> +<h2 class="chapter">3 Getting Started</h2> + + + + + +</body> +</html> diff --git a/manuals/sly/Index.html b/manuals/sly/Index.html new file mode 100644 index 0000000..e44f08d --- /dev/null +++ b/manuals/sly/Index.html @@ -0,0 +1,475 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Index</title> + +<meta name="description" content="Sly: Index"> +<meta name="keywords" content="Sly: Index"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="index.html#Top" rel="up" title="Top"> +<link href="GNU-Free-Documentation-License.html#GNU-Free-Documentation-License" rel="prev" title="GNU Free Documentation License"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Index"></a> +<div class="header"> +<p> +Previous: <a href="Copying-This-Manual.html#Copying-This-Manual" accesskey="p" rel="prev">Copying This Manual</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Index-1"></a> +<h2 class="unnumbered">Index</h2> + +<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Index_fn_symbol-1"><b>2</b></a> + +<a class="summary-letter" href="#Index_fn_symbol-2"><b><</b></a> + +<br> +<a class="summary-letter" href="#Index_fn_letter-A"><b>A</b></a> + +<a class="summary-letter" href="#Index_fn_letter-B"><b>B</b></a> + +<a class="summary-letter" href="#Index_fn_letter-C"><b>C</b></a> + +<a class="summary-letter" href="#Index_fn_letter-D"><b>D</b></a> + +<a class="summary-letter" href="#Index_fn_letter-E"><b>E</b></a> + +<a class="summary-letter" href="#Index_fn_letter-F"><b>F</b></a> + +<a class="summary-letter" href="#Index_fn_letter-H"><b>H</b></a> + +<a class="summary-letter" href="#Index_fn_letter-I"><b>I</b></a> + +<a class="summary-letter" href="#Index_fn_letter-J"><b>J</b></a> + +<a class="summary-letter" href="#Index_fn_letter-K"><b>K</b></a> + +<a class="summary-letter" href="#Index_fn_letter-L"><b>L</b></a> + +<a class="summary-letter" href="#Index_fn_letter-M"><b>M</b></a> + +<a class="summary-letter" href="#Index_fn_letter-N"><b>N</b></a> + +<a class="summary-letter" href="#Index_fn_letter-O"><b>O</b></a> + +<a class="summary-letter" href="#Index_fn_letter-P"><b>P</b></a> + +<a class="summary-letter" href="#Index_fn_letter-Q"><b>Q</b></a> + +<a class="summary-letter" href="#Index_fn_letter-R"><b>R</b></a> + +<a class="summary-letter" href="#Index_fn_letter-S"><b>S</b></a> + +<a class="summary-letter" href="#Index_fn_letter-T"><b>T</b></a> + +<a class="summary-letter" href="#Index_fn_letter-V"><b>V</b></a> + +<a class="summary-letter" href="#Index_fn_letter-W"><b>W</b></a> + +<a class="summary-letter" href="#Index_fn_letter-Y"><b>Y</b></a> + +</td></tr></table> +<table class="index-fn" border="0"> +<tr><td></td><th align="left">Index Entry</th><td> </td><th align="left"> Section</th></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_symbol-1">2</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous.html#index-2pi"><code>2pi</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous.html#Miscellaneous">Miscellaneous</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_symbol-2"><</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Quaternions.html#index-_003cquaternion_003e"><code><quaternion></code></a>:</td><td> </td><td valign="top"><a href="Quaternions.html#Quaternions">Quaternions</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-_003crect_003e"><code><rect></code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-_003cvector2_003e"><code><vector2></code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-_003cvector3_003e"><code><vector3></code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-_003cvector4_003e"><code><vector4></code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-A">A</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="The-Game-Loop.html#index-after_002dgame_002dloop_002derror_002dhook"><code>after-game-loop-error-hook</code></a>:</td><td> </td><td valign="top"><a href="The-Game-Loop.html#The-Game-Loop">The Game Loop</a></td></tr> +<tr><td></td><td valign="top"><a href="Agendas.html#index-agenda_002dclear_0021"><code>agenda-clear!</code></a>:</td><td> </td><td valign="top"><a href="Agendas.html#Agendas">Agendas</a></td></tr> +<tr><td></td><td valign="top"><a href="Agendas.html#index-agenda_002dtick_0021"><code>agenda-tick!</code></a>:</td><td> </td><td valign="top"><a href="Agendas.html#Agendas">Agendas</a></td></tr> +<tr><td></td><td valign="top"><a href="Agendas.html#index-agenda_002dtime"><code>agenda-time</code></a>:</td><td> </td><td valign="top"><a href="Agendas.html#Agendas">Agendas</a></td></tr> +<tr><td></td><td valign="top"><a href="Agendas.html#index-agenda_003f"><code>agenda?</code></a>:</td><td> </td><td valign="top"><a href="Agendas.html#Agendas">Agendas</a></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous.html#index-atan_002ddegrees"><code>atan-degrees</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous.html#Miscellaneous">Miscellaneous</a></td></tr> +<tr><td></td><td valign="top"><a href="Joystick.html#index-axis_002dscale"><code>axis-scale</code></a>:</td><td> </td><td valign="top"><a href="Joystick.html#Joystick">Joystick</a></td></tr> +<tr><td></td><td valign="top"><a href="Joystick.html#index-axis_002dvalue"><code>axis-value</code></a>:</td><td> </td><td valign="top"><a href="Joystick.html#Joystick">Joystick</a></td></tr> +<tr><td></td><td valign="top"><a href="Joystick.html#index-axis_002dvalue_002draw"><code>axis-value-raw</code></a>:</td><td> </td><td valign="top"><a href="Joystick.html#Joystick">Joystick</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-B">B</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-build_002dtransform"><code>build-transform</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td></td><td valign="top"><a href="Joystick.html#index-button_002ddown_003f"><code>button-down?</code></a>:</td><td> </td><td valign="top"><a href="Joystick.html#Joystick">Joystick</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-C">C</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Coroutines.html#index-call_002dwith_002dcoroutine"><code>call-with-coroutine</code></a>:</td><td> </td><td valign="top"><a href="Coroutines.html#Coroutines">Coroutines</a></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous_002dUtilities.html#index-chain"><code>chain</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous_002dUtilities.html#Miscellaneous_002dUtilities">Miscellaneous-Utilities</a></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous_002dUtilities.html#index-chain_002a"><code>chain*</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous_002dUtilities.html#Miscellaneous_002dUtilities">Miscellaneous-Utilities</a></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous.html#index-clamp"><code>clamp</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous.html#Miscellaneous">Miscellaneous</a></td></tr> +<tr><td></td><td valign="top"><a href="Window-Creation.html#index-close_002dwindow"><code>close-window</code></a>:</td><td> </td><td valign="top"><a href="Window-Creation.html#Window-Creation">Window Creation</a></td></tr> +<tr><td></td><td valign="top"><a href="Coroutines.html#index-codefine"><code>codefine</code></a>:</td><td> </td><td valign="top"><a href="Coroutines.html#Coroutines">Coroutines</a></td></tr> +<tr><td></td><td valign="top"><a href="Coroutines.html#index-codefine_002a"><code>codefine*</code></a>:</td><td> </td><td valign="top"><a href="Coroutines.html#Coroutines">Coroutines</a></td></tr> +<tr><td></td><td valign="top"><a href="Coroutines.html#index-colambda"><code>colambda</code></a>:</td><td> </td><td valign="top"><a href="Coroutines.html#Coroutines">Coroutines</a></td></tr> +<tr><td></td><td valign="top"><a href="Coroutines.html#index-coroutine"><code>coroutine</code></a>:</td><td> </td><td valign="top"><a href="Coroutines.html#Coroutines">Coroutines</a></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous.html#index-cos_002ddegrees"><code>cos-degrees</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous.html#Miscellaneous">Miscellaneous</a></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous.html#index-cotan"><code>cotan</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous.html#Miscellaneous">Miscellaneous</a></td></tr> +<tr><td></td><td valign="top"><a href="Agendas.html#index-current_002dagenda"><code>current-agenda</code></a>:</td><td> </td><td valign="top"><a href="Agendas.html#Agendas">Agendas</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-D">D</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous_002dUtilities.html#index-define_002dguardian"><code>define-guardian</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous_002dUtilities.html#Miscellaneous_002dUtilities">Miscellaneous-Utilities</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-define_002dsignal"><code>define-signal</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous.html#index-degrees_002d_003eradians"><code>degrees->radians</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous.html#Miscellaneous">Miscellaneous</a></td></tr> +<tr><td></td><td valign="top"><a href="The-Game-Loop.html#index-draw_002dhook"><code>draw-hook</code></a>:</td><td> </td><td valign="top"><a href="The-Game-Loop.html#The-Game-Loop">The Game Loop</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-E">E</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Easings.html#index-ease_002din_002dout_002dquad"><code>ease-in-out-quad</code></a>:</td><td> </td><td valign="top"><a href="Easings.html#Easings">Easings</a></td></tr> +<tr><td></td><td valign="top"><a href="Easings.html#index-ease_002din_002dout_002dsine"><code>ease-in-out-sine</code></a>:</td><td> </td><td valign="top"><a href="Easings.html#Easings">Easings</a></td></tr> +<tr><td></td><td valign="top"><a href="Easings.html#index-ease_002din_002dquad"><code>ease-in-quad</code></a>:</td><td> </td><td valign="top"><a href="Easings.html#Easings">Easings</a></td></tr> +<tr><td></td><td valign="top"><a href="Easings.html#index-ease_002din_002dsine"><code>ease-in-sine</code></a>:</td><td> </td><td valign="top"><a href="Easings.html#Easings">Easings</a></td></tr> +<tr><td></td><td valign="top"><a href="Easings.html#index-ease_002dlinear"><code>ease-linear</code></a>:</td><td> </td><td valign="top"><a href="Easings.html#Easings">Easings</a></td></tr> +<tr><td></td><td valign="top"><a href="Easings.html#index-ease_002dloop"><code>ease-loop</code></a>:</td><td> </td><td valign="top"><a href="Easings.html#Easings">Easings</a></td></tr> +<tr><td></td><td valign="top"><a href="Easings.html#index-ease_002dout_002dquad"><code>ease-out-quad</code></a>:</td><td> </td><td valign="top"><a href="Easings.html#Easings">Easings</a></td></tr> +<tr><td></td><td valign="top"><a href="Easings.html#index-ease_002dout_002dsine"><code>ease-out-sine</code></a>:</td><td> </td><td valign="top"><a href="Easings.html#Easings">Easings</a></td></tr> +<tr><td></td><td valign="top"><a href="Easings.html#index-ease_002dreflect"><code>ease-reflect</code></a>:</td><td> </td><td valign="top"><a href="Easings.html#Easings">Easings</a></td></tr> +<tr><td></td><td valign="top"><a href="Joystick.html#index-enable_002djoystick"><code>enable-joystick</code></a>:</td><td> </td><td valign="top"><a href="Joystick.html#Joystick">Joystick</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-F">F</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous_002dUtilities.html#index-forever"><code>forever</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous_002dUtilities.html#Miscellaneous_002dUtilities">Miscellaneous-Utilities</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-H">H</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous.html#index-half"><code>half</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous.html#Miscellaneous">Miscellaneous</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-hook_002d_003esignal"><code>hook->signal</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-I">I</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Quaternions.html#index-identity_002dquaternion"><code>identity-quaternion</code></a>:</td><td> </td><td valign="top"><a href="Quaternions.html#Quaternions">Quaternions</a></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-identity_002dtransform"><code>identity-transform</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-J">J</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Joystick.html#index-joystick_002daxis_002dhook"><code>joystick-axis-hook</code></a>:</td><td> </td><td valign="top"><a href="Joystick.html#Joystick">Joystick</a></td></tr> +<tr><td></td><td valign="top"><a href="Joystick.html#index-joystick_002dbutton_002dpress_002dhook"><code>joystick-button-press-hook</code></a>:</td><td> </td><td valign="top"><a href="Joystick.html#Joystick">Joystick</a></td></tr> +<tr><td></td><td valign="top"><a href="Joystick.html#index-joystick_002dbutton_002drelease_002dhook"><code>joystick-button-release-hook</code></a>:</td><td> </td><td valign="top"><a href="Joystick.html#Joystick">Joystick</a></td></tr> +<tr><td></td><td valign="top"><a href="Joystick.html#index-joystick_002dname"><code>joystick-name</code></a>:</td><td> </td><td valign="top"><a href="Joystick.html#Joystick">Joystick</a></td></tr> +<tr><td></td><td valign="top"><a href="Joystick.html#index-joystick_002dnum_002daxes"><code>joystick-num-axes</code></a>:</td><td> </td><td valign="top"><a href="Joystick.html#Joystick">Joystick</a></td></tr> +<tr><td></td><td valign="top"><a href="Joystick.html#index-joystick_002dnum_002dbuttons"><code>joystick-num-buttons</code></a>:</td><td> </td><td valign="top"><a href="Joystick.html#Joystick">Joystick</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-K">K</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Keyboard.html#index-key_002darrows"><code>key-arrows</code></a>:</td><td> </td><td valign="top"><a href="Keyboard.html#Keyboard">Keyboard</a></td></tr> +<tr><td></td><td valign="top"><a href="Keyboard.html#index-key_002ddirections"><code>key-directions</code></a>:</td><td> </td><td valign="top"><a href="Keyboard.html#Keyboard">Keyboard</a></td></tr> +<tr><td></td><td valign="top"><a href="Keyboard.html#index-key_002ddown_003f"><code>key-down?</code></a>:</td><td> </td><td valign="top"><a href="Keyboard.html#Keyboard">Keyboard</a></td></tr> +<tr><td></td><td valign="top"><a href="Keyboard.html#index-key_002dlast_002ddown"><code>key-last-down</code></a>:</td><td> </td><td valign="top"><a href="Keyboard.html#Keyboard">Keyboard</a></td></tr> +<tr><td></td><td valign="top"><a href="Keyboard.html#index-key_002dlast_002dup"><code>key-last-up</code></a>:</td><td> </td><td valign="top"><a href="Keyboard.html#Keyboard">Keyboard</a></td></tr> +<tr><td></td><td valign="top"><a href="Keyboard.html#index-key_002dpress_002dhook"><code>key-press-hook</code></a>:</td><td> </td><td valign="top"><a href="Keyboard.html#Keyboard">Keyboard</a></td></tr> +<tr><td></td><td valign="top"><a href="Keyboard.html#index-key_002drelease_002dhook"><code>key-release-hook</code></a>:</td><td> </td><td valign="top"><a href="Keyboard.html#Keyboard">Keyboard</a></td></tr> +<tr><td></td><td valign="top"><a href="Keyboard.html#index-key_002dwasd"><code>key-wasd</code></a>:</td><td> </td><td valign="top"><a href="Keyboard.html#Keyboard">Keyboard</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-L">L</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous.html#index-lerp"><code>lerp</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous.html#Miscellaneous">Miscellaneous</a></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous.html#index-linear_002dscale"><code>linear-scale</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous.html#Miscellaneous">Miscellaneous</a></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous_002dUtilities.html#index-list_002d_003evlist_002a"><code>list->vlist*</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous_002dUtilities.html#Miscellaneous_002dUtilities">Miscellaneous-Utilities</a></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous_002dUtilities.html#index-list_002d_003evlist_002a-1"><code>list->vlist*</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous_002dUtilities.html#Miscellaneous_002dUtilities">Miscellaneous-Utilities</a></td></tr> +<tr><td></td><td valign="top"><a href="Live-Reloading.html#index-live_002dreload"><code>live-reload</code></a>:</td><td> </td><td valign="top"><a href="Live-Reloading.html#Live-Reloading">Live Reloading</a></td></tr> +<tr><td></td><td valign="top"><a href="Sprites.html#index-load_002dsprite"><code>load-sprite</code></a>:</td><td> </td><td valign="top"><a href="Sprites.html#Sprites">Sprites</a></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-look_002dat"><code>look-at</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-M">M</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-magnitude"><code>magnitude</code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="Agendas.html#index-make_002dagenda"><code>make-agenda</code></a>:</td><td> </td><td valign="top"><a href="Agendas.html#Agendas">Agendas</a></td></tr> +<tr><td></td><td valign="top"><a href="Joystick.html#index-make_002ddirectional_002dsignal"><code>make-directional-signal</code></a>:</td><td> </td><td valign="top"><a href="Joystick.html#Joystick">Joystick</a></td></tr> +<tr><td></td><td valign="top"><a href="Joystick.html#index-make_002ddirectional_002dsignal_002draw"><code>make-directional-signal-raw</code></a>:</td><td> </td><td valign="top"><a href="Joystick.html#Joystick">Joystick</a></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous.html#index-make_002dlerp"><code>make-lerp</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous.html#Miscellaneous">Miscellaneous</a></td></tr> +<tr><td></td><td valign="top"><a href="Quaternions.html#index-make_002dquaternion"><code>make-quaternion</code></a>:</td><td> </td><td valign="top"><a href="Quaternions.html#Quaternions">Quaternions</a></td></tr> +<tr><td></td><td valign="top"><a href="Quaternions.html#index-make_002dquaternion-1"><code>make-quaternion</code></a>:</td><td> </td><td valign="top"><a href="Quaternions.html#Quaternions">Quaternions</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-make_002drect"><code>make-rect</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-make_002dsignal"><code>make-signal</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Sprites.html#index-make_002dsprite"><code>make-sprite</code></a>:</td><td> </td><td valign="top"><a href="Sprites.html#Sprites">Sprites</a></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-make_002dtransform"><code>make-transform</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td></td><td valign="top"><a href="Window-Creation.html#index-make_002dwindow"><code>make-window</code></a>:</td><td> </td><td valign="top"><a href="Window-Creation.html#Window-Creation">Window Creation</a></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous_002dUtilities.html#index-memoize"><code>memoize</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous_002dUtilities.html#Miscellaneous_002dUtilities">Miscellaneous-Utilities</a></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous.html#index-modulo_002a"><code>modulo*</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous.html#Miscellaneous">Miscellaneous</a></td></tr> +<tr><td></td><td valign="top"><a href="Mouse.html#index-mouse_002dclick_002dhook"><code>mouse-click-hook</code></a>:</td><td> </td><td valign="top"><a href="Mouse.html#Mouse">Mouse</a></td></tr> +<tr><td></td><td valign="top"><a href="Mouse.html#index-mouse_002ddown_003f"><code>mouse-down?</code></a>:</td><td> </td><td valign="top"><a href="Mouse.html#Mouse">Mouse</a></td></tr> +<tr><td></td><td valign="top"><a href="Mouse.html#index-mouse_002dlast_002ddown"><code>mouse-last-down</code></a>:</td><td> </td><td valign="top"><a href="Mouse.html#Mouse">Mouse</a></td></tr> +<tr><td></td><td valign="top"><a href="Mouse.html#index-mouse_002dlast_002dup"><code>mouse-last-up</code></a>:</td><td> </td><td valign="top"><a href="Mouse.html#Mouse">Mouse</a></td></tr> +<tr><td></td><td valign="top"><a href="Mouse.html#index-mouse_002dmove_002dhook"><code>mouse-move-hook</code></a>:</td><td> </td><td valign="top"><a href="Mouse.html#Mouse">Mouse</a></td></tr> +<tr><td></td><td valign="top"><a href="Mouse.html#index-mouse_002dposition"><code>mouse-position</code></a>:</td><td> </td><td valign="top"><a href="Mouse.html#Mouse">Mouse</a></td></tr> +<tr><td></td><td valign="top"><a href="Mouse.html#index-mouse_002dpress_002dhook"><code>mouse-press-hook</code></a>:</td><td> </td><td valign="top"><a href="Mouse.html#Mouse">Mouse</a></td></tr> +<tr><td></td><td valign="top"><a href="Mouse.html#index-mouse_002dx"><code>mouse-x</code></a>:</td><td> </td><td valign="top"><a href="Mouse.html#Mouse">Mouse</a></td></tr> +<tr><td></td><td valign="top"><a href="Mouse.html#index-mouse_002dy"><code>mouse-y</code></a>:</td><td> </td><td valign="top"><a href="Mouse.html#Mouse">Mouse</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-N">N</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-normalize"><code>normalize</code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="Quaternions.html#index-null_002dquaternion"><code>null-quaternion</code></a>:</td><td> </td><td valign="top"><a href="Quaternions.html#Quaternions">Quaternions</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-null_002drect"><code>null-rect</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-null_002dtransform"><code>null-transform</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td></td><td valign="top"><a href="Joystick.html#index-num_002djoysticks"><code>num-joysticks</code></a>:</td><td> </td><td valign="top"><a href="Joystick.html#Joystick">Joystick</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-O">O</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Window-Creation.html#index-open_002dwindow"><code>open-window</code></a>:</td><td> </td><td valign="top"><a href="Window-Creation.html#Window-Creation">Window Creation</a></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-orthographic_002dprojection"><code>orthographic-projection</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-P">P</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-perspective_002dprojection"><code>perspective-projection</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous.html#index-pi"><code>pi</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous.html#Miscellaneous">Miscellaneous</a></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous.html#index-pi_002f2"><code>pi/2</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous.html#Miscellaneous">Miscellaneous</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-Q">Q</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Quaternions.html#index-quaternion"><code>quaternion</code></a>:</td><td> </td><td valign="top"><a href="Quaternions.html#Quaternions">Quaternions</a></td></tr> +<tr><td></td><td valign="top"><a href="Quaternions.html#index-quaternion-1"><code>quaternion</code></a>:</td><td> </td><td valign="top"><a href="Quaternions.html#Quaternions">Quaternions</a></td></tr> +<tr><td></td><td valign="top"><a href="Quaternions.html#index-quaternion_002a"><code>quaternion*</code></a>:</td><td> </td><td valign="top"><a href="Quaternions.html#Quaternions">Quaternions</a></td></tr> +<tr><td></td><td valign="top"><a href="Quaternions.html#index-quaternion_002d_003evector"><code>quaternion->vector</code></a>:</td><td> </td><td valign="top"><a href="Quaternions.html#Quaternions">Quaternions</a></td></tr> +<tr><td></td><td valign="top"><a href="Quaternions.html#index-quaternion_002dmagnitude"><code>quaternion-magnitude</code></a>:</td><td> </td><td valign="top"><a href="Quaternions.html#Quaternions">Quaternions</a></td></tr> +<tr><td></td><td valign="top"><a href="Quaternions.html#index-quaternion_002dnormalize"><code>quaternion-normalize</code></a>:</td><td> </td><td valign="top"><a href="Quaternions.html#Quaternions">Quaternions</a></td></tr> +<tr><td></td><td valign="top"><a href="Quaternions.html#index-quaternion_002dslerp"><code>quaternion-slerp</code></a>:</td><td> </td><td valign="top"><a href="Quaternions.html#Quaternions">Quaternions</a></td></tr> +<tr><td></td><td valign="top"><a href="Quaternions.html#index-quaternion_002dw"><code>quaternion-w</code></a>:</td><td> </td><td valign="top"><a href="Quaternions.html#Quaternions">Quaternions</a></td></tr> +<tr><td></td><td valign="top"><a href="Quaternions.html#index-quaternion_002dx"><code>quaternion-x</code></a>:</td><td> </td><td valign="top"><a href="Quaternions.html#Quaternions">Quaternions</a></td></tr> +<tr><td></td><td valign="top"><a href="Quaternions.html#index-quaternion_002dy"><code>quaternion-y</code></a>:</td><td> </td><td valign="top"><a href="Quaternions.html#Quaternions">Quaternions</a></td></tr> +<tr><td></td><td valign="top"><a href="Quaternions.html#index-quaternion_002dz"><code>quaternion-z</code></a>:</td><td> </td><td valign="top"><a href="Quaternions.html#Quaternions">Quaternions</a></td></tr> +<tr><td></td><td valign="top"><a href="Quaternions.html#index-quaternion_003f"><code>quaternion?</code></a>:</td><td> </td><td valign="top"><a href="Quaternions.html#Quaternions">Quaternions</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-R">R</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous.html#index-radians_002d_003edegrees"><code>radians->degrees</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous.html#Miscellaneous">Miscellaneous</a></td></tr> +<tr><td></td><td valign="top"><a href="Joystick.html#index-raw_002daxis_002dmax"><code>raw-axis-max</code></a>:</td><td> </td><td valign="top"><a href="Joystick.html#Joystick">Joystick</a></td></tr> +<tr><td></td><td valign="top"><a href="Joystick.html#index-raw_002daxis_002dmin"><code>raw-axis-min</code></a>:</td><td> </td><td valign="top"><a href="Joystick.html#Joystick">Joystick</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dbottom"><code>rect-bottom</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dbottom_002dleft"><code>rect-bottom-left</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dbottom_002dright"><code>rect-bottom-right</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dcenter"><code>rect-center</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dcenter_002dx"><code>rect-center-x</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dcenter_002dy"><code>rect-center-y</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dclamp"><code>rect-clamp</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dclip"><code>rect-clip</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dcontains_003f"><code>rect-contains?</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dcontains_003f-1"><code>rect-contains?</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dhalf_002dheight"><code>rect-half-height</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dhalf_002dwidth"><code>rect-half-width</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dheight"><code>rect-height</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dinflate"><code>rect-inflate</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dinflate-1"><code>rect-inflate</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dintersects_003f"><code>rect-intersects?</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dleft"><code>rect-left</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dmove"><code>rect-move</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dmove-1"><code>rect-move</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dposition"><code>rect-position</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dright"><code>rect-right</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dsize"><code>rect-size</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dtop"><code>rect-top</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dtop_002dleft"><code>rect-top-left</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dtop_002dright"><code>rect-top-right</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dunion"><code>rect-union</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dwidth"><code>rect-width</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dwithin_003f"><code>rect-within?</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dx"><code>rect-x</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_002dy"><code>rect-y</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Rectangles.html#index-rect_003f"><code>rect?</code></a>:</td><td> </td><td valign="top"><a href="Rectangles.html#Rectangles">Rectangles</a></td></tr> +<tr><td></td><td valign="top"><a href="Sprites.html#index-render_002dsprite"><code>render-sprite</code></a>:</td><td> </td><td valign="top"><a href="Sprites.html#Sprites">Sprites</a></td></tr> +<tr><td></td><td valign="top"><a href="REPL.html#index-resume_002dgame_002dloop"><code>resume-game-loop</code></a>:</td><td> </td><td valign="top"><a href="REPL.html#REPL">REPL</a></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-rotate"><code>rotate</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-rotate_002dx"><code>rotate-x</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-rotate_002dy"><code>rotate-y</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-rotate_002dz"><code>rotate-z</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td></td><td valign="top"><a href="The-Game-Loop.html#index-run_002dgame_002dloop"><code>run-game-loop</code></a>:</td><td> </td><td valign="top"><a href="The-Game-Loop.html#The-Game-Loop">The Game Loop</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-S">S</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-scale"><code>scale</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-scale-1"><code>scale</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td></td><td valign="top"><a href="Agendas.html#index-schedule"><code>schedule</code></a>:</td><td> </td><td valign="top"><a href="Agendas.html#Agendas">Agendas</a></td></tr> +<tr><td></td><td valign="top"><a href="Agendas.html#index-schedule_002deach"><code>schedule-each</code></a>:</td><td> </td><td valign="top"><a href="Agendas.html#Agendas">Agendas</a></td></tr> +<tr><td></td><td valign="top"><a href="Agendas.html#index-schedule_002dinterval"><code>schedule-interval</code></a>:</td><td> </td><td valign="top"><a href="Agendas.html#Agendas">Agendas</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dconstant"><code>signal-constant</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dcount"><code>signal-count</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002ddelay"><code>signal-delay</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002ddrop"><code>signal-drop</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002ddrop_002drepeats"><code>signal-drop-repeats</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002devery"><code>signal-every</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dfilter"><code>signal-filter</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dfold"><code>signal-fold</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dgenerator"><code>signal-generator</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dlet"><code>signal-let</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dlet_002a"><code>signal-let*</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dmap"><code>signal-map</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dmerge"><code>signal-merge</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dnegate"><code>signal-negate</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dref"><code>signal-ref</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dref_002dmaybe"><code>signal-ref-maybe</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dsample"><code>signal-sample</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dsample_002don"><code>signal-sample-on</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dset_0021"><code>signal-set!</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dsince"><code>signal-since</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dswitch"><code>signal-switch</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dtap"><code>signal-tap</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dthrottle"><code>signal-throttle</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dtime"><code>signal-time</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dtimestamp"><code>signal-timestamp</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_002dzip"><code>signal-zip</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Signals.html#index-signal_003f"><code>signal?</code></a>:</td><td> </td><td valign="top"><a href="Signals.html#Signals">Signals</a></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous.html#index-sin_002ddegrees"><code>sin-degrees</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous.html#Miscellaneous">Miscellaneous</a></td></tr> +<tr><td></td><td valign="top"><a href="Sprites.html#index-sprite_002dmesh"><code>sprite-mesh</code></a>:</td><td> </td><td valign="top"><a href="Sprites.html#Sprites">Sprites</a></td></tr> +<tr><td></td><td valign="top"><a href="Sprites.html#index-sprite_002dtexture"><code>sprite-texture</code></a>:</td><td> </td><td valign="top"><a href="Sprites.html#Sprites">Sprites</a></td></tr> +<tr><td></td><td valign="top"><a href="Sprites.html#index-sprite_003f"><code>sprite?</code></a>:</td><td> </td><td valign="top"><a href="Sprites.html#Sprites">Sprites</a></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous.html#index-square"><code>square</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous.html#Miscellaneous">Miscellaneous</a></td></tr> +<tr><td></td><td valign="top"><a href="REPL.html#index-start_002dsly_002drepl"><code>start-sly-repl</code></a>:</td><td> </td><td valign="top"><a href="REPL.html#REPL">REPL</a></td></tr> +<tr><td></td><td valign="top"><a href="The-Game-Loop.html#index-stop_002dgame_002dloop"><code>stop-game-loop</code></a>:</td><td> </td><td valign="top"><a href="The-Game-Loop.html#The-Game-Loop">The Game Loop</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-T">T</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous.html#index-tan_002ddegrees"><code>tan-degrees</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous.html#Miscellaneous">Miscellaneous</a></td></tr> +<tr><td></td><td valign="top"><a href="Miscellaneous_002dUtilities.html#index-trampoline"><code>trampoline</code></a>:</td><td> </td><td valign="top"><a href="Miscellaneous_002dUtilities.html#Miscellaneous_002dUtilities">Miscellaneous-Utilities</a></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-transform_002a"><code>transform*</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-transform_002a_0021"><code>transform*!</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-transform_002b"><code>transform+</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-transform_002dmatrix"><code>transform-matrix</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-transform_002dposition"><code>transform-position</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-transform_002dvector2"><code>transform-vector2</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-transform_003f"><code>transform?</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-translate"><code>translate</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td></td><td valign="top"><a href="Transforms.html#index-transpose"><code>transpose</code></a>:</td><td> </td><td valign="top"><a href="Transforms.html#Transforms">Transforms</a></td></tr> +<tr><td></td><td valign="top"><a href="Tweening.html#index-tween"><code>tween</code></a>:</td><td> </td><td valign="top"><a href="Tweening.html#Tweening">Tweening</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-V">V</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-v_002a"><code>v*</code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-v_002b"><code>v+</code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-v_002d"><code>v-</code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-vcross"><code>vcross</code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-vdot"><code>vdot</code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="Quaternions.html#index-vector_002d_003equaternion"><code>vector->quaternion</code></a>:</td><td> </td><td valign="top"><a href="Quaternions.html#Quaternions">Quaternions</a></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-vector2"><code>vector2</code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-vector2_003f"><code>vector2?</code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-vector3"><code>vector3</code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-vector3_003f"><code>vector3?</code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-vector4"><code>vector4</code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-vector4_003f"><code>vector4?</code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-vlerp"><code>vlerp</code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-vmap"><code>vmap</code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-vw"><code>vw</code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-vx"><code>vx</code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-vy"><code>vy</code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td></td><td valign="top"><a href="Vectors.html#index-vz"><code>vz</code></a>:</td><td> </td><td valign="top"><a href="Vectors.html#Vectors">Vectors</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-W">W</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Agendas.html#index-wait"><code>wait</code></a>:</td><td> </td><td valign="top"><a href="Agendas.html#Agendas">Agendas</a></td></tr> +<tr><td></td><td valign="top"><a href="Window-Creation.html#index-window_002dclose_002dhook"><code>window-close-hook</code></a>:</td><td> </td><td valign="top"><a href="Window-Creation.html#Window-Creation">Window Creation</a></td></tr> +<tr><td></td><td valign="top"><a href="Window-Creation.html#index-window_002dfullscreen_003f"><code>window-fullscreen?</code></a>:</td><td> </td><td valign="top"><a href="Window-Creation.html#Window-Creation">Window Creation</a></td></tr> +<tr><td></td><td valign="top"><a href="Window-Creation.html#index-window_002dheight"><code>window-height</code></a>:</td><td> </td><td valign="top"><a href="Window-Creation.html#Window-Creation">Window Creation</a></td></tr> +<tr><td></td><td valign="top"><a href="Window-Creation.html#index-window_002dresize_002dhook"><code>window-resize-hook</code></a>:</td><td> </td><td valign="top"><a href="Window-Creation.html#Window-Creation">Window Creation</a></td></tr> +<tr><td></td><td valign="top"><a href="Window-Creation.html#index-window_002dresolution"><code>window-resolution</code></a>:</td><td> </td><td valign="top"><a href="Window-Creation.html#Window-Creation">Window Creation</a></td></tr> +<tr><td></td><td valign="top"><a href="Window-Creation.html#index-window_002dsize"><code>window-size</code></a>:</td><td> </td><td valign="top"><a href="Window-Creation.html#Window-Creation">Window Creation</a></td></tr> +<tr><td></td><td valign="top"><a href="Window-Creation.html#index-window_002dtitle"><code>window-title</code></a>:</td><td> </td><td valign="top"><a href="Window-Creation.html#Window-Creation">Window Creation</a></td></tr> +<tr><td></td><td valign="top"><a href="Window-Creation.html#index-window_002dwidth"><code>window-width</code></a>:</td><td> </td><td valign="top"><a href="Window-Creation.html#Window-Creation">Window Creation</a></td></tr> +<tr><td></td><td valign="top"><a href="Window-Creation.html#index-window_003f"><code>window?</code></a>:</td><td> </td><td valign="top"><a href="Window-Creation.html#Window-Creation">Window Creation</a></td></tr> +<tr><td></td><td valign="top"><a href="Agendas.html#index-with_002dagenda"><code>with-agenda</code></a>:</td><td> </td><td valign="top"><a href="Agendas.html#Agendas">Agendas</a></td></tr> +<tr><td></td><td valign="top"><a href="Window-Creation.html#index-with_002dwindow"><code>with-window</code></a>:</td><td> </td><td valign="top"><a href="Window-Creation.html#Window-Creation">Window Creation</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +<tr><th><a name="Index_fn_letter-Y">Y</a></th><td></td><td></td></tr> +<tr><td></td><td valign="top"><a href="Coroutines.html#index-yield"><code>yield</code></a>:</td><td> </td><td valign="top"><a href="Coroutines.html#Coroutines">Coroutines</a></td></tr> +<tr><td colspan="4"> <hr></td></tr> +</table> +<table><tr><th valign="top">Jump to: </th><td><a class="summary-letter" href="#Index_fn_symbol-1"><b>2</b></a> + +<a class="summary-letter" href="#Index_fn_symbol-2"><b><</b></a> + +<br> +<a class="summary-letter" href="#Index_fn_letter-A"><b>A</b></a> + +<a class="summary-letter" href="#Index_fn_letter-B"><b>B</b></a> + +<a class="summary-letter" href="#Index_fn_letter-C"><b>C</b></a> + +<a class="summary-letter" href="#Index_fn_letter-D"><b>D</b></a> + +<a class="summary-letter" href="#Index_fn_letter-E"><b>E</b></a> + +<a class="summary-letter" href="#Index_fn_letter-F"><b>F</b></a> + +<a class="summary-letter" href="#Index_fn_letter-H"><b>H</b></a> + +<a class="summary-letter" href="#Index_fn_letter-I"><b>I</b></a> + +<a class="summary-letter" href="#Index_fn_letter-J"><b>J</b></a> + +<a class="summary-letter" href="#Index_fn_letter-K"><b>K</b></a> + +<a class="summary-letter" href="#Index_fn_letter-L"><b>L</b></a> + +<a class="summary-letter" href="#Index_fn_letter-M"><b>M</b></a> + +<a class="summary-letter" href="#Index_fn_letter-N"><b>N</b></a> + +<a class="summary-letter" href="#Index_fn_letter-O"><b>O</b></a> + +<a class="summary-letter" href="#Index_fn_letter-P"><b>P</b></a> + +<a class="summary-letter" href="#Index_fn_letter-Q"><b>Q</b></a> + +<a class="summary-letter" href="#Index_fn_letter-R"><b>R</b></a> + +<a class="summary-letter" href="#Index_fn_letter-S"><b>S</b></a> + +<a class="summary-letter" href="#Index_fn_letter-T"><b>T</b></a> + +<a class="summary-letter" href="#Index_fn_letter-V"><b>V</b></a> + +<a class="summary-letter" href="#Index_fn_letter-W"><b>W</b></a> + +<a class="summary-letter" href="#Index_fn_letter-Y"><b>Y</b></a> + +</td></tr></table> + +<hr> +<div class="header"> +<p> +Previous: <a href="Copying-This-Manual.html#Copying-This-Manual" accesskey="p" rel="prev">Copying This Manual</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Index" title="Index" rel="index">Index</a>]</p> +</div> + + + +</body> +</html> diff --git a/manuals/sly/Input.html b/manuals/sly/Input.html new file mode 100644 index 0000000..6eb4aea --- /dev/null +++ b/manuals/sly/Input.html @@ -0,0 +1,94 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Input</title> + +<meta name="description" content="Sly: Input"> +<meta name="keywords" content="Sly: Input"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="API-Reference.html#API-Reference" rel="up" title="API Reference"> +<link href="Keyboard.html#Keyboard" rel="next" title="Keyboard"> +<link href="Agendas.html#Agendas" rel="prev" title="Agendas"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Input"></a> +<div class="header"> +<p> +Next: <a href="Rendering.html#Rendering" accesskey="n" rel="next">Rendering</a>, Previous: <a href="Time.html#Time" accesskey="p" rel="prev">Time</a>, Up: <a href="API-Reference.html#API-Reference" accesskey="u" rel="up">API Reference</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Input-1"></a> +<h3 class="section">4.4 Input</h3> + +<p>Sly can handle user input from a keyboard, mouse, or joystick. The +input modules expose signals that represent various input +events (see <a href="Signals.html#Signals">Signals</a>). +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="Keyboard.html#Keyboard" accesskey="1">Keyboard</a>:</td><td> </td><td align="left" valign="top">Clack clack. +</td></tr> +<tr><td align="left" valign="top">• <a href="Mouse.html#Mouse" accesskey="2">Mouse</a>:</td><td> </td><td align="left" valign="top">Exercise the rodent. +</td></tr> +<tr><td align="left" valign="top">• <a href="Joystick.html#Joystick" accesskey="3">Joystick</a>:</td><td> </td><td align="left" valign="top">Arcade-style fun. +</td></tr> +</table> + + + + +</body> +</html> diff --git a/manuals/sly/Installation.html b/manuals/sly/Installation.html new file mode 100644 index 0000000..24f3045 --- /dev/null +++ b/manuals/sly/Installation.html @@ -0,0 +1,98 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Installation</title> + +<meta name="description" content="Sly: Installation"> +<meta name="keywords" content="Sly: Installation"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="index.html#Top" rel="up" title="Top"> +<link href="Requirements.html#Requirements" rel="next" title="Requirements"> +<link href="Introduction.html#Introduction" rel="prev" title="Introduction"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Installation"></a> +<div class="header"> +<p> +Next: <a href="Getting-Started.html#Getting-Started" accesskey="n" rel="next">Getting Started</a>, Previous: <a href="Introduction.html#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Installation-1"></a> +<h2 class="chapter">2 Installation</h2> + +<p>Sly is available for download from its website at +<a href="sly.dthompson.us">sly.dthompson.us</a>. This section describes the software +requirements of Sly, as well as how to install it. +</p> +<p>The build procedure for Sly is the same as for GNU software packages, +and is not covered here. Please see the files <samp>README.org</samp> and +<samp>INSTALL.org</samp> for additional details. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="Requirements.html#Requirements" accesskey="1">Requirements</a>:</td><td> </td><td align="left" valign="top">Software needed to build and run Sly. +</td></tr> +<tr><td align="left" valign="top">• <a href="Examples.html#Examples" accesskey="2">Examples</a>:</td><td> </td><td align="left" valign="top">Run example programs. +</td></tr> +<tr><td align="left" valign="top">• <a href="Development-Environment.html#Development-Environment" accesskey="3">Development Environment</a>:</td><td> </td><td align="left" valign="top">The ideal development environment. +</td></tr> +</table> + + + + +</body> +</html> diff --git a/manuals/sly/Introduction.html b/manuals/sly/Introduction.html new file mode 100644 index 0000000..c4eabcc --- /dev/null +++ b/manuals/sly/Introduction.html @@ -0,0 +1,120 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Introduction</title> + +<meta name="description" content="Sly: Introduction"> +<meta name="keywords" content="Sly: Introduction"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="index.html#Top" rel="up" title="Top"> +<link href="Installation.html#Installation" rel="next" title="Installation"> +<link href="index.html#Top" rel="prev" title="Top"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Introduction"></a> +<div class="header"> +<p> +Next: <a href="Installation.html#Installation" accesskey="n" rel="next">Installation</a>, Previous: <a href="index.html#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Introduction-1"></a> +<h2 class="chapter">1 Introduction</h2> + +<p>Sly is a 2D/3D game engine written in the GNU Guile dialect of the +Scheme programming language. With the help of Guile, Sly provides all +of the essential building blocks for making video games, such as: +window management, input even handling, rendering, linear algebra, and +powerful scripting capabilities. Sly differentiates itself from +traditional game engines by providing a dynamic live codinng +environment and a functional API. +</p> +<p>For those unfamiliar with the term, “live coding” is the practice of +improvised interactive programming. Sly provides a suitable +environment for live coding by leveraging Guile’s cooperative REPL +server. When used with a powerful editing tool such as Emacs (with +the fantastic Geiser extension), programmers may evaluate arbitrary +code and see the effects of their modifications in real time. This +tight feedback loop allows for faster prototyping, greater +productivity, and most importantly, more fun. +</p> +<p>Functional reactive programming (FRP) is a technique used to model +time-varying values with pure functions. A pure function is a +function whose return value depends solely upon its arguments. They +also produce no side-effects, such as calling ’set!’ on a variable or +writing to a file on disk. Sly encapsulates time-varying values in +“signals”, a high-level data structure for controlling the flow of +events. Unlike imperative event callbacks, signals can easily be +composed to form new signals. By modeling game state with pure +functions and immutable data, a game can be seen as a function of +time. To play the game is to “fold” (accumulate a result) over +time. Constructing a game this way allows for deterministic behavior +that is easier to reason about and test than the accumulation of +side-effects seen in traditional game engines. The signal interface +is also declarative, meaning that the programmer describes <em>what</em> +the state of the world should be like at any given time, rather than +<em>how</em> to get there. +</p> +<hr> +<div class="header"> +<p> +Next: <a href="Installation.html#Installation" accesskey="n" rel="next">Installation</a>, Previous: <a href="index.html#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> + + + +</body> +</html> diff --git a/manuals/sly/Joystick.html b/manuals/sly/Joystick.html new file mode 100644 index 0000000..68748c3 --- /dev/null +++ b/manuals/sly/Joystick.html @@ -0,0 +1,188 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Joystick</title> + +<meta name="description" content="Sly: Joystick"> +<meta name="keywords" content="Sly: Joystick"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Input.html#Input" rel="up" title="Input"> +<link href="Rendering.html#Rendering" rel="next" title="Rendering"> +<link href="Mouse.html#Mouse" rel="prev" title="Mouse"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Joystick"></a> +<div class="header"> +<p> +Previous: <a href="Mouse.html#Mouse" accesskey="p" rel="prev">Mouse</a>, Up: <a href="Input.html#Input" accesskey="u" rel="up">Input</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Joystick-1"></a> +<h4 class="subsection">4.4.3 Joystick</h4> + +<div class="example"> +<pre class="example">(use-modules (sly input joystick)) +</pre></div> + +<p>Joystick hooks, signals, and procedures. +</p> +<p>Before using joystick procedures, you must first call the +initialization procedure <code>enable-joystick</code>. +</p> +<dl> +<dt><a name="index-enable_002djoystick"></a>Scheme Procedure: <strong>enable-joystick</strong></dt> +<dd><p>Initialize joystick module. +</p></dd></dl> + +<dl> +<dt><a name="index-joystick_002dnum_002daxes"></a>Scheme Procedure: <strong>joystick-num-axes</strong> <em><var>idx</var></em></dt> +<dd><p>Get number of axes of joystick at <code>idx</code>. +</p></dd></dl> + +<dl> +<dt><a name="index-joystick_002dnum_002dbuttons"></a>Scheme Procedure: <strong>joystick-num-buttons</strong> <em><var>idx</var></em></dt> +<dd><p>Get number of buttons of joystick at <code>idx</code>. +</p></dd></dl> + +<dl> +<dt><a name="index-joystick_002daxis_002dhook"></a>Scheme Variable: <strong>joystick-axis-hook</strong></dt> +<dd><p>This hook is run whenever a joystick motion occurs. Procedures added +to this hook should accept three arguments: <code>which</code>, the joystick +ID; <code>axis</code>, the axis ID; and <code>value</code>, the motion coordinate. +</p></dd></dl> + +<dl> +<dt><a name="index-joystick_002dbutton_002dpress_002dhook"></a>Scheme Variable: <strong>joystick-button-press-hook</strong></dt> +<dd><p>This hook is run whenever a joystick button is pressed. Procedures +added to this hook should accept two arguments: <code>which</code>, the +joystick ID; <code>button</code>, the button ID. +</p></dd></dl> + +<dl> +<dt><a name="index-joystick_002dbutton_002drelease_002dhook"></a>Scheme Variable: <strong>joystick-button-release-hook</strong></dt> +<dd><p>This hook is run whenever a joystick button is released. Procedures +added to this hook should accept two arguments: <code>which</code>, the +joystick ID; <code>button</code>, the button ID. +</p></dd></dl> + +<dl> +<dt><a name="index-raw_002daxis_002dmin"></a>Scheme Variable: <strong>raw-axis-min</strong></dt> +<dd><p>-32768 +</p></dd></dl> + +<dl> +<dt><a name="index-raw_002daxis_002dmax"></a>Scheme Variable: <strong>raw-axis-max</strong></dt> +<dd><p>32767 +</p></dd></dl> + +<dl> +<dt><a name="index-axis_002dvalue_002draw"></a>Scheme Procedure: <strong>axis-value-raw</strong> <em><var>idx</var> <var>axis</var></em></dt> +<dd><p>Create a signal on the axis at <code>axis</code> of the joystick at +<var>idx</var>; joystick axis values are stored in a signed 16 bit integer +and so, values range from [<code>raw-axis-min</code>, <code>raw-axis-max</code>]. +</p></dd></dl> + +<dl> +<dt><a name="index-axis_002dvalue"></a>Scheme Procedure: <strong>axis-value</strong> <em><var>idx</var> <var>axis</var></em></dt> +<dd><p>Create a signal for the value of <var>axis</var> on joystick <var>idx</var>; +values are scaled to the range [-1,1]. +</p></dd></dl> + +<dl> +<dt><a name="index-button_002ddown_003f"></a>Scheme Procedure: <strong>button-down?</strong> <em><var>idx</var> <var>n</var></em></dt> +<dd><p>Create a signal for the state of button <code>n</code> on joystick at +<code>idx</code>. +</p></dd></dl> + +<dl> +<dt><a name="index-make_002ddirectional_002dsignal"></a>Scheme Procedure: <strong>make-directional-signal</strong> <em><var>idx</var> <var>x-axis</var> <var>y-axis</var></em></dt> +<dd><p>Create a signal for a directional pad or analog stick with <code>x</code> +and <code>y</code> axes. Values are scaled to the range [-1,1]. +</p></dd></dl> + +<dl> +<dt><a name="index-make_002ddirectional_002dsignal_002draw"></a>Scheme Procedure: <strong>make-directional-signal-raw</strong> <em>idx x-axis y-axis</em></dt> +<dd><p>Create a signal for a directional pad or analog stick with <code>x</code> +and <code>y</code> axes. Values range from [<code>raw-axis-min</code>, +<code>raw-axis-max</code>]. +</p></dd></dl> + +<dl> +<dt><a name="index-axis_002dscale"></a>Scheme Procedure: <strong>axis-scale</strong> <em><var>raw-value</var></em></dt> +<dd><p>Map <code>raw-value</code> in the range [<code>raw-axis-min</code>, +<code>raw-axis-max</code>] to a value in the range [-1, 1]. +</p></dd></dl> + +<dl> +<dt><a name="index-joystick_002dname"></a>Scheme Procedure: <strong>joystick-name</strong> <em><var>joystick</var></em></dt> +<dd><p>Return the name of <code>joystick</code>. +</p></dd></dl> + +<dl> +<dt><a name="index-num_002djoysticks"></a>Scheme Procedure: <strong>num-joysticks</strong></dt> +<dd><p>Return the number of joysticks available. +</p></dd></dl> +<hr> +<div class="header"> +<p> +Previous: <a href="Mouse.html#Mouse" accesskey="p" rel="prev">Mouse</a>, Up: <a href="Input.html#Input" accesskey="u" rel="up">Input</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> + + + +</body> +</html> diff --git a/manuals/sly/Keyboard.html b/manuals/sly/Keyboard.html new file mode 100644 index 0000000..b0de8f3 --- /dev/null +++ b/manuals/sly/Keyboard.html @@ -0,0 +1,137 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Keyboard</title> + +<meta name="description" content="Sly: Keyboard"> +<meta name="keywords" content="Sly: Keyboard"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Input.html#Input" rel="up" title="Input"> +<link href="Mouse.html#Mouse" rel="next" title="Mouse"> +<link href="Input.html#Input" rel="prev" title="Input"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Keyboard"></a> +<div class="header"> +<p> +Next: <a href="Mouse.html#Mouse" accesskey="n" rel="next">Mouse</a>, Up: <a href="Input.html#Input" accesskey="u" rel="up">Input</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Keyboard-1"></a> +<h4 class="subsection">4.4.1 Keyboard</h4> + +<div class="example"> +<pre class="example">(use-modules (sly input keyboard)) +</pre></div> + +<p>Keyboard hooks, signals, and procedures. +</p> +<dl> +<dt><a name="index-key_002dpress_002dhook"></a>Scheme Variable: <strong>key-press-hook</strong></dt> +<dd><p>This hook is run whenever a key is pressed down. Procedures added to +this hook should accept two arguments: <code>key</code>, a symbol, and +<code>char</code>, a unicode character. +</p></dd></dl> + +<dl> +<dt><a name="index-key_002drelease_002dhook"></a>Scheme Variable: <strong>key-release-hook</strong></dt> +<dd><p>This hook is run whenever a key is released. Procedures added to this +hook should accept two arguments: <code>key</code>, a symbol, and +<code>char</code>, a unicode character. +</p></dd></dl> + +<dl> +<dt><a name="index-key_002dlast_002ddown"></a>Scheme Signal: <strong>key-last-down</strong></dt> +<dd><p>The last key pressed. +</p></dd></dl> + +<dl> +<dt><a name="index-key_002dlast_002dup"></a>Scheme Signal: <strong>key-last-up</strong></dt> +<dd><p>The last key released. +</p></dd></dl> + +<dl> +<dt><a name="index-key_002ddown_003f"></a>Scheme Procedure: <strong>key-down?</strong> <em><var>key</var></em></dt> +<dd><p>Create a signal for the state of <code>key</code>. The signal value is +<code>#t</code> when <code>key</code> is pressed and <code>#f</code> otherwise. +</p></dd></dl> + +<p>A lot of games use directional keys to control the player. The below +procedure and signals make this style of movement easy to use. +</p> +<dl> +<dt><a name="index-key_002ddirections"></a>Scheme Procedure: <strong>key-directions</strong> <em><var>up</var> <var>down</var> <var>left</var> <var>right</var></em></dt> +<dd><p>Create a signal whose value is a 2D unit vector that can be used for +8-directional movement. The vector is determined by the state of the +directional keys: <code>up</code>, <code>down</code>, <code>left</code>, <code>right</code>. +</p></dd></dl> + +<dl> +<dt><a name="index-key_002darrows"></a>Scheme Signal: <strong>key-arrows</strong></dt> +<dd><p>A 2D directional vector based on the state of the arrow keys. +</p></dd></dl> + +<dl> +<dt><a name="index-key_002dwasd"></a>Scheme Signal: <strong>key-wasd</strong></dt> +<dd><p>A 2D directional vector based on the state of the WASD keys. +</p></dd></dl> + + + + +</body> +</html> diff --git a/manuals/sly/Live-Reloading.html b/manuals/sly/Live-Reloading.html new file mode 100644 index 0000000..e4ebf96 --- /dev/null +++ b/manuals/sly/Live-Reloading.html @@ -0,0 +1,101 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Live Reloading</title> + +<meta name="description" content="Sly: Live Reloading"> +<meta name="keywords" content="Sly: Live Reloading"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Utilities.html#Utilities" rel="up" title="Utilities"> +<link href="Miscellaneous_002dUtilities.html#Miscellaneous_002dUtilities" rel="next" title="Miscellaneous-Utilities"> +<link href="REPL.html#REPL" rel="prev" title="REPL"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Live-Reloading"></a> +<div class="header"> +<p> +Next: <a href="Miscellaneous_002dUtilities.html#Miscellaneous_002dUtilities" accesskey="n" rel="next">Miscellaneous-Utilities</a>, Previous: <a href="REPL.html#REPL" accesskey="p" rel="prev">REPL</a>, Up: <a href="Utilities.html#Utilities" accesskey="u" rel="up">Utilities</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Live-Reloading-1"></a> +<h4 class="subsection">4.6.2 Live Reloading</h4> + +<div class="example"> +<pre class="example">(use-modules (sly utils live-reload)) +</pre></div> + +<p>The live-reload module enables Sly programs to react to changes in the +file system and reload assets automatically, which is useful when +using external programs such as an image editor or map editor. This +makes it easy to see the changes made to game assets quickly. +</p> +<dl> +<dt><a name="index-live_002dreload"></a>Function: <strong>live-reload</strong> <em><var>proc</var> [<var>polling-interval</var>]</em></dt> +<dd><p>Return a new procedure that re-applies <code>proc</code> whenever the +associated file is modified. The new procedure returns a signal +(see <a href="Signals.html#Signals">Signals</a>) that contains the return value of <code>proc</code>. The +first argument to <code>proc</code> must be a file name string. +</p> +<p>A simple polling method is used to test for updates. Files are polled +every <code>polling-interval</code> ticks (120 by default). +</p></dd></dl> + + + + +</body> +</html> diff --git a/manuals/sly/Math.html b/manuals/sly/Math.html new file mode 100644 index 0000000..989d205 --- /dev/null +++ b/manuals/sly/Math.html @@ -0,0 +1,101 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Math</title> + +<meta name="description" content="Sly: Math"> +<meta name="keywords" content="Sly: Math"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="API-Reference.html#API-Reference" rel="up" title="API Reference"> +<link href="Vectors.html#Vectors" rel="next" title="Vectors"> +<link href="The-Game-Loop.html#The-Game-Loop" rel="prev" title="The Game Loop"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Math"></a> +<div class="header"> +<p> +Next: <a href="Time.html#Time" accesskey="n" rel="next">Time</a>, Previous: <a href="Booting.html#Booting" accesskey="p" rel="prev">Booting</a>, Up: <a href="API-Reference.html#API-Reference" accesskey="u" rel="up">API Reference</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Math-1"></a> +<h3 class="section">4.2 Math</h3> + +<p>Modeling a virtual world requires a good dose of linear algebra, +trigonometry, and calculus. Sly comes with modules for 2D/3D/4D +vector math, trigonometry, axis-aligned bounding boxes, quaternions, +4x4 transformation matrices, and interpolation. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="Vectors.html#Vectors" accesskey="1">Vectors</a>:</td><td> </td><td align="left" valign="top">2D/3D/4D vectors. +</td></tr> +<tr><td align="left" valign="top">• <a href="Rectangles.html#Rectangles" accesskey="2">Rectangles</a>:</td><td> </td><td align="left" valign="top">Axis-aligned bounding boxes. +</td></tr> +<tr><td align="left" valign="top">• <a href="Transforms.html#Transforms" accesskey="3">Transforms</a>:</td><td> </td><td align="left" valign="top">4x4 transformation matrices. +</td></tr> +<tr><td align="left" valign="top">• <a href="Tweens.html#Tweens" accesskey="4">Tweens</a>:</td><td> </td><td align="left" valign="top">Interpolation between two values. +</td></tr> +<tr><td align="left" valign="top">• <a href="Quaternions.html#Quaternions" accesskey="5">Quaternions</a>:</td><td> </td><td align="left" valign="top">Representing rotations. +</td></tr> +<tr><td align="left" valign="top">• <a href="Miscellaneous.html#Miscellaneous" accesskey="6">Miscellaneous</a>:</td><td> </td><td align="left" valign="top">Other useful variables and procedures. +</td></tr> +</table> + + + + +</body> +</html> diff --git a/manuals/sly/Miscellaneous.html b/manuals/sly/Miscellaneous.html new file mode 100644 index 0000000..d94bed8 --- /dev/null +++ b/manuals/sly/Miscellaneous.html @@ -0,0 +1,189 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Miscellaneous</title> + +<meta name="description" content="Sly: Miscellaneous"> +<meta name="keywords" content="Sly: Miscellaneous"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Math.html#Math" rel="up" title="Math"> +<link href="Time.html#Time" rel="next" title="Time"> +<link href="Quaternions.html#Quaternions" rel="prev" title="Quaternions"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Miscellaneous"></a> +<div class="header"> +<p> +Previous: <a href="Quaternions.html#Quaternions" accesskey="p" rel="prev">Quaternions</a>, Up: <a href="Math.html#Math" accesskey="u" rel="up">Math</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Miscellaneous-1"></a> +<h4 class="subsection">4.2.6 Miscellaneous</h4> + +<div class="example"> +<pre class="example">(use-modules (sly math)) +</pre></div> + +<p>A grab bag of commonly used math functions and constants. +</p> +<dl> +<dt><a name="index-pi"></a>Scheme Variable: <strong>pi</strong></dt> +<dd><p>An approximation of \pi, the ratio of a circle’s circumference to its +diameter. +</p></dd></dl> + +<dl> +<dt><a name="index-2pi"></a>Scheme Variable: <strong>2pi</strong></dt> +<dd><p><em>2\pi</em> +</p></dd></dl> + +<dl> +<dt><a name="index-pi_002f2"></a>Scheme Variable: <strong>pi/2</strong></dt> +<dd><p><em>\pi/2</em> +</p></dd></dl> + +<dl> +<dt><a name="index-degrees_002d_003eradians"></a>Scheme Procedure: <strong>degrees->radians</strong> <em><var>angle</var></em></dt> +<dd><p>Convert <var>angle</var> from degrees to radians. +</p></dd></dl> + +<dl> +<dt><a name="index-radians_002d_003edegrees"></a>Scheme Procedure: <strong>radians->degrees</strong> <em><var>angle</var></em></dt> +<dd><p>Convert <var>angle</var> from radians to degrees. +</p></dd></dl> + +<dl> +<dt><a name="index-sin_002ddegrees"></a>Scheme Procedure: <strong>sin-degrees</strong> <em><var>angle</var></em></dt> +<dd><p>Return the sine of <var>angle</var>, where <var>angle</var> is measured in +degrees. +</p></dd></dl> + +<dl> +<dt><a name="index-cos_002ddegrees"></a>Scheme Procedure: <strong>cos-degrees</strong> <em><var>angle</var></em></dt> +<dd><p>Return the cosine of <var>angle</var>, where <var>angle</var> is measured in +degrees. +</p></dd></dl> + +<dl> +<dt><a name="index-tan_002ddegrees"></a>Scheme Procedure: <strong>tan-degrees</strong> <em><var>angle</var></em></dt> +<dd><p>Return the tangent of <var>angle</var>, where <var>angle</var> is measured in +degrees. +</p></dd></dl> + +<dl> +<dt><a name="index-atan_002ddegrees"></a>Scheme Procedure: <strong>atan-degrees</strong> <em><var>y</var> <var>x</var></em></dt> +<dd><p>Return the arctangent of <var>y</var> and <var>x</var>, where <var>y</var> and +<var>x</var> are measured in degrees. +</p></dd></dl> + +<dl> +<dt><a name="index-cotan"></a>Scheme Procedure: <strong>cotan</strong> <em><var>z</var></em></dt> +<dd><p>Return the cotangent of <var>z</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-clamp"></a>Scheme Procedure: <strong>clamp</strong> <em><var>min</var> <var>max</var> <var>x</var></em></dt> +<dd><p>Restrict <var>x</var> to the range [<var>min</var>, <var>max</var>], assuming that +<var>min</var> is actually less than <var>max</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-linear_002dscale"></a>Scheme Procedure: <strong>linear-scale</strong> <em><var>min</var> <var>max</var> <var>a</var> <var>b</var> <var>n</var></em></dt> +<dd><p>Map <var>n</var> in the range [<var>min</var>, <var>max</var>] to the range [<var>a</var>, <var>b</var>]. +</p></dd></dl> + +<dl> +<dt><a name="index-half"></a>Scheme Procedure: <strong>half</strong> <em><var>x</var></em></dt> +<dd><p>Return <em><var>x</var> / 2</em>. +</p></dd></dl> + +<dl> +<dt><a name="index-square"></a>Scheme Procedure: <strong>square</strong> <em><var>x</var></em></dt> +<dd><p>Return <em><var>x</var>^2</em>. +</p></dd></dl> + +<dl> +<dt><a name="index-make_002dlerp"></a>Scheme Procedure: <strong>make-lerp</strong> <em><var>+</var> <var>*</var></em></dt> +<dd><p>Return a new procedure that accepts three arguments: <var>start</var>, +<var>end</var>, and <var>alpha</var>. The returned procedure uses the +procedures <var>+</var> and <var>*</var> to linearly interpolate a value between +<var>start</var> and <var>end</var>. <var>alpha</var> should always be in the range +[0, 1]. +</p></dd></dl> + +<dl> +<dt><a name="index-lerp"></a>Scheme Procedure: <strong>lerp</strong> <em><var>start</var> <var>end</var> <var>alpha</var></em></dt> +<dd><p>Return the linear interpolation between the numbers <var>start</var> and +<var>end</var> with scalar factor <var>alpha</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-modulo_002a"></a>Scheme Procedure: <strong>modulo*</strong> <em><var>x</var> <var>y</var></em></dt> +<dd><p>Return the remainder of <em><var>x</var> / <var>y</var></em>. Works like regular +<code>modulo</code>, except that <var>x</var> and <var>y</var> may be rational numbers +or inexact numbers. +</p></dd></dl> +<hr> +<div class="header"> +<p> +Previous: <a href="Quaternions.html#Quaternions" accesskey="p" rel="prev">Quaternions</a>, Up: <a href="Math.html#Math" accesskey="u" rel="up">Math</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> + + + +</body> +</html> diff --git a/manuals/sly/Miscellaneous_002dUtilities.html b/manuals/sly/Miscellaneous_002dUtilities.html new file mode 100644 index 0000000..7d160f4 --- /dev/null +++ b/manuals/sly/Miscellaneous_002dUtilities.html @@ -0,0 +1,147 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Miscellaneous-Utilities</title> + +<meta name="description" content="Sly: Miscellaneous-Utilities"> +<meta name="keywords" content="Sly: Miscellaneous-Utilities"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Utilities.html#Utilities" rel="up" title="Utilities"> +<link href="Contributing.html#Contributing" rel="next" title="Contributing"> +<link href="Live-Reloading.html#Live-Reloading" rel="prev" title="Live Reloading"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Miscellaneous_002dUtilities"></a> +<div class="header"> +<p> +Previous: <a href="Live-Reloading.html#Live-Reloading" accesskey="p" rel="prev">Live Reloading</a>, Up: <a href="Utilities.html#Utilities" accesskey="u" rel="up">Utilities</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Miscellaneous-2"></a> +<h4 class="subsection">4.6.3 Miscellaneous</h4> + +<div class="example"> +<pre class="example">(use-modules (sly utils)) +</pre></div> + +<p>Miscellaneous helpful procedures. +</p> +<dl> +<dt><a name="index-define_002dguardian"></a>Scheme Syntax: <strong>define-guardian</strong> <em><var>name</var> <var>reaper</var></em></dt> +<dd><p>Define a new guardian called <code>name</code> and call <code>reaper</code> when +an object within the guardian is GC’d. Reaping is ensured to happen +from the same thread that is running the game loop. +</p></dd></dl> + +<dl> +<dt><a name="index-memoize"></a>Scheme Procedure: <strong>memoize</strong> <em><var>proc</var></em></dt> +<dd><p>Return a memoizing version of <code>proc</code>. +</p></dd></dl> + +<dl> +<dt><a name="index-forever"></a>Scheme Syntax: <strong>forever</strong> <em><var>body</var> …</em></dt> +<dd><p>Evaluate <code>body</code> in an unbounded loop. Useful in coroutines that +have no end. +</p></dd></dl> + +<dl> +<dt><a name="index-trampoline"></a>Scheme Syntax: <strong>trampoline</strong> <em><var>proc-name</var></em></dt> +<dd><p>Create a new procedure that applies the procedure bound to +<code>proc-name</code> with all given arguments. +</p></dd></dl> + +<dl> +<dt><a name="index-chain_002a"></a>Scheme Syntax: <strong>chain*</strong> <em><var>args</var> (<var>proc</var> …) . <var>rest</var></em></dt> +<dd><p>Handy macro for flattening nested procedure calls where the output of +an inner call is the last argument to the outer call. +</p> +<div class="example"> +<pre class="example">(chain* (list '(1 2) '(3 4)) + (map +) + (fold + 0)) ;; => 10 +</pre></div> + +</dd></dl> + +<dl> +<dt><a name="index-chain"></a>Scheme Syntax: <strong>chain</strong> <em><var>arg</var> (<var>proc</var> …) . <var>rest</var></em></dt> +<dd><p>Like <code>chain*</code> but for a single argument. +</p> +<div class="example"> +<pre class="example">(chain '(1 2 3 4) + (map 1+) + (fold + 0)) ;; => 14 +</pre></div> + +</dd></dl> + +<dl> +<dt><a name="index-list_002d_003evlist_002a"></a>Scheme Procedure: <strong>list->vlist*</strong> <em><var>lst</var></em></dt> +<dd><p>Convert <code>lst</code> and all sub-lists within to vlists. +</p></dd></dl> + +<dl> +<dt><a name="index-list_002d_003evlist_002a-1"></a>Scheme Procedure: <strong>list->vlist*</strong> <em><var>lst</var> <var>index</var> […]</em></dt> +<dd><p>Return the element at index <code>index …</code> in the nested vlist +structure <code>vlist</code>. +</p></dd></dl> + + + + +</body> +</html> diff --git a/manuals/sly/Mouse.html b/manuals/sly/Mouse.html new file mode 100644 index 0000000..accf8f7 --- /dev/null +++ b/manuals/sly/Mouse.html @@ -0,0 +1,138 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Mouse</title> + +<meta name="description" content="Sly: Mouse"> +<meta name="keywords" content="Sly: Mouse"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Input.html#Input" rel="up" title="Input"> +<link href="Joystick.html#Joystick" rel="next" title="Joystick"> +<link href="Keyboard.html#Keyboard" rel="prev" title="Keyboard"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Mouse"></a> +<div class="header"> +<p> +Next: <a href="Joystick.html#Joystick" accesskey="n" rel="next">Joystick</a>, Previous: <a href="Keyboard.html#Keyboard" accesskey="p" rel="prev">Keyboard</a>, Up: <a href="Input.html#Input" accesskey="u" rel="up">Input</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Mouse-1"></a> +<h4 class="subsection">4.4.2 Mouse</h4> + +<div class="example"> +<pre class="example">(use-modules (sly input mouse)) +</pre></div> + +<p>Mouse hooks, signals, and procedures. +</p> +<dl> +<dt><a name="index-mouse_002dmove_002dhook"></a>Scheme Variable: <strong>mouse-move-hook</strong></dt> +<dd><p>This hook is run whenever the mouse is moved. Procedures added to +this hook should accept two arguments: Numbers <code>x</code> and <code>y</code>. +</p></dd></dl> + +<dl> +<dt><a name="index-mouse_002dpress_002dhook"></a>Scheme Variable: <strong>mouse-press-hook</strong></dt> +<dd><p>This hook is run whenever a mouse button is pressed. Procedures added +to this hook should accept three arguments: Symbol <code>button</code> and +numbers <code>x</code> and <code>y</code>. +</p></dd></dl> + +<dl> +<dt><a name="index-mouse_002dclick_002dhook"></a>Scheme Variable: <strong>mouse-click-hook</strong></dt> +<dd><p>This hook is run whenever a mouse button is clicked. Procedures added +to this hook should accept three arguments: Symbol <code>button</code> and +numbers <code>x</code> and <code>y</code>. +</p></dd></dl> + +<dl> +<dt><a name="index-mouse_002dx"></a>Scheme Signal: <strong>mouse-x</strong></dt> +<dd><p>The mouse X coordinate. +</p></dd></dl> + +<dl> +<dt><a name="index-mouse_002dy"></a>Scheme Signal: <strong>mouse-y</strong></dt> +<dd><p>The mouse Y coordinate. +</p></dd></dl> + +<dl> +<dt><a name="index-mouse_002dposition"></a>Scheme Signal: <strong>mouse-position</strong></dt> +<dd><p>The mouse position as a 2D vector. +</p></dd></dl> + +<dl> +<dt><a name="index-mouse_002dlast_002ddown"></a>Scheme Signal: <strong>mouse-last-down</strong></dt> +<dd><p>The last mouse button pressed. +</p></dd></dl> + +<dl> +<dt><a name="index-mouse_002dlast_002dup"></a>Scheme Signal: <strong>mouse-last-up</strong></dt> +<dd><p>The last mouse button clicked. +</p></dd></dl> + +<dl> +<dt><a name="index-mouse_002ddown_003f"></a>Scheme Procedure: <strong>mouse-down?</strong> <em><var>button</var></em></dt> +<dd><p>Create a signal for the state of <code>button</code>. Value is #t when mouse button +is pressed or #f otherwise. +</p></dd></dl> + + + + +</body> +</html> diff --git a/manuals/sly/Quaternions.html b/manuals/sly/Quaternions.html new file mode 100644 index 0000000..bde3992 --- /dev/null +++ b/manuals/sly/Quaternions.html @@ -0,0 +1,185 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Quaternions</title> + +<meta name="description" content="Sly: Quaternions"> +<meta name="keywords" content="Sly: Quaternions"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Math.html#Math" rel="up" title="Math"> +<link href="Miscellaneous.html#Miscellaneous" rel="next" title="Miscellaneous"> +<link href="Tweening.html#Tweening" rel="prev" title="Tweening"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Quaternions"></a> +<div class="header"> +<p> +Next: <a href="Miscellaneous.html#Miscellaneous" accesskey="n" rel="next">Miscellaneous</a>, Previous: <a href="Tweens.html#Tweens" accesskey="p" rel="prev">Tweens</a>, Up: <a href="Math.html#Math" accesskey="u" rel="up">Math</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Quaternions-1"></a> +<h4 class="subsection">4.2.5 Quaternions</h4> + +<div class="example"> +<pre class="example">(use-modules (sly math quaternion)) +</pre></div> + +<p>Quaternions are used to express rotations about an arbitrary axis in a +way that avoids “gimbal lock” and allows for useful interpolation, +unlike matrices or Euler angles. +</p> +<p>Quaternions can be used in rotation transformations +(see <a href="Transforms.html#Transforms">Transforms</a>), as well as converted to and from <a href="Vectors.html#Vectors">Vectors</a>. +</p> +<dl> +<dt><a name="index-_003cquaternion_003e"></a>Record Type: <strong><quaternion></strong></dt> +<dd><p>Data type with 4 fields: <code>w</code>, <code>x</code>, <code>y</code>, <code>z</code>, in +that order. This type descriptor has been exposed for destructuring +via Guile’s <code>(ice-9 match)</code> module. +</p></dd></dl> + +<dl> +<dt><a name="index-make_002dquaternion"></a>Scheme Procedure: <strong>make-quaternion</strong> <em><var>v</var> <var>theta</var></em></dt> +<dt><a name="index-make_002dquaternion-1"></a>Scheme Procedure: <strong>make-quaternion</strong> <em><var>w</var> <var>x</var> <var>y</var> <var>z</var></em></dt> +<dd><p>Create a new quaternion from an axis angle (a 3D vector <var>v</var> plus +an angle <var>theta</var>) or from individual coordinates <var>w</var>, <var>x</var>, +<var>y</var>, and <var>z</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-quaternion"></a>Scheme Procedure: <strong>quaternion</strong> <em><var>v</var> <var>theta</var></em></dt> +<dt><a name="index-quaternion-1"></a>Scheme Procedure: <strong>quaternion</strong> <em><var>w</var> <var>x</var> <var>y</var> <var>z</var></em></dt> +<dd><p>Alternate spelling of <code>make-quaternion</code>. +</p></dd></dl> + +<dl> +<dt><a name="index-quaternion_003f"></a>Scheme Syntax: <strong>quaternion?</strong> <em><var>obj</var></em></dt> +<dd><p>Return <code>#t</code> if <var>obj</var> is a quaternion. +</p></dd></dl> + +<dl> +<dt><a name="index-quaternion_002dw"></a>Scheme Syntax: <strong>quaternion-w</strong> <em><var>q</var></em></dt> +<dd><p>Return the w coordinate of the quaternion <var>q</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-quaternion_002dx"></a>Scheme Syntax: <strong>quaternion-x</strong> <em><var>q</var></em></dt> +<dd><p>Return the x coordinate of the quaternion <var>q</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-quaternion_002dy"></a>Scheme Syntax: <strong>quaternion-y</strong> <em><var>q</var></em></dt> +<dd><p>Return the y coordinate of the quaternion <var>q</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-quaternion_002dz"></a>Scheme Syntax: <strong>quaternion-z</strong> <em><var>q</var></em></dt> +<dd><p>Return the z coordinate of the quaternion <var>q</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-identity_002dquaternion"></a>Scheme Variable: <strong>identity-quaternion</strong></dt> +<dd><p>The multiplicative identity quaternion. +</p></dd></dl> + +<dl> +<dt><a name="index-null_002dquaternion"></a>Scheme Variable: <strong>null-quaternion</strong></dt> +<dd><p>A quaternion with all fields set to zero. +</p></dd></dl> + +<dl> +<dt><a name="index-quaternion_002a"></a>Scheme Procedure: <strong>quaternion*</strong> <em>. <var>quaternions</var></em></dt> +<dd><p>Return the product of all <var>quaternions</var>. Return +<code>identity-quaternion</code> if called without arguments. +</p></dd></dl> + +<dl> +<dt><a name="index-quaternion_002dslerp"></a>Scheme Procedure: <strong>quaternion-slerp</strong> <em><var>q1</var> <var>q2</var> <var>delta</var></em></dt> +<dd><p>Perform a spherical linear interpolation of the quaternions <var>q1</var> +and <var>q2</var> and blending factor <var>delta</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-quaternion_002dmagnitude"></a>Scheme Procedure: <strong>quaternion-magnitude</strong> <em><var>q</var></em></dt> +<dd><p>Return the magnitude of the quaternion <var>q</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-quaternion_002dnormalize"></a>Scheme Procedure: <strong>quaternion-normalize</strong> <em><var>q</var></em></dt> +<dd><p>Return the normalized form of the quaternion <var>q</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-vector_002d_003equaternion"></a>Scheme Procedure: <strong>vector->quaternion</strong> <em><var>v</var></em></dt> +<dd><p>Convert the 4D vector <var>v</var> to a quaternion. +</p></dd></dl> + +<dl> +<dt><a name="index-quaternion_002d_003evector"></a>Scheme Procedure: <strong>quaternion->vector</strong> <em><var>q</var></em></dt> +<dd><p>Convert the quaternion <var>q</var> to a 4D vector. +</p></dd></dl> + +<hr> +<div class="header"> +<p> +Next: <a href="Miscellaneous.html#Miscellaneous" accesskey="n" rel="next">Miscellaneous</a>, Previous: <a href="Tweens.html#Tweens" accesskey="p" rel="prev">Tweens</a>, Up: <a href="Math.html#Math" accesskey="u" rel="up">Math</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> + + + +</body> +</html> diff --git a/manuals/sly/REPL.html b/manuals/sly/REPL.html new file mode 100644 index 0000000..0811888 --- /dev/null +++ b/manuals/sly/REPL.html @@ -0,0 +1,107 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: REPL</title> + +<meta name="description" content="Sly: REPL"> +<meta name="keywords" content="Sly: REPL"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Utilities.html#Utilities" rel="up" title="Utilities"> +<link href="Live-Reloading.html#Live-Reloading" rel="next" title="Live Reloading"> +<link href="Utilities.html#Utilities" rel="prev" title="Utilities"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="REPL"></a> +<div class="header"> +<p> +Next: <a href="Live-Reloading.html#Live-Reloading" accesskey="n" rel="next">Live Reloading</a>, Up: <a href="Utilities.html#Utilities" accesskey="u" rel="up">Utilities</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="REPL-1"></a> +<h4 class="subsection">4.6.1 REPL</h4> + +<div class="example"> +<pre class="example">(use-modules (sly utils repl)) +</pre></div> + +<p>The Sly REPL is a cooperative REPL server that is integrated into the +game loop. It is the key to live coding games with Sly. To connect +to the REPL server, use the <a href="http://www.nongnu.org/geiser/">Geiser</a> extension for GNU Emacs. +</p> +<dl> +<dt><a name="index-start_002dsly_002drepl"></a>Scheme Procedure: <strong>start-sly-repl</strong> <em>[<var>port</var>]</em></dt> +<dd><p>Start a cooperative REPL server that listens on the given <code>port</code>. +By default, this port is 37146. Additionally, a process is scheduled +to poll the REPL server upon every tick of the game loop. +</p></dd></dl> + +<p>The Sly REPL detects when the game loop throws an error and enters a +special loop for debugging. When in this state, game state will not +be updated or rendered. When the errors have been fixed, calling the +<code>resume-game-loop</code> procedure will hand control back to the game +loop. +</p> +<dl> +<dt><a name="index-resume_002dgame_002dloop"></a>Scheme Procedure: <strong>resume-game-loop</strong></dt> +<dd><p>Abort from the error handling loop prompt and resume the game loop. +</p></dd></dl> + + + + +</body> +</html> diff --git a/manuals/sly/Rectangles.html b/manuals/sly/Rectangles.html new file mode 100644 index 0000000..7a1fb4f --- /dev/null +++ b/manuals/sly/Rectangles.html @@ -0,0 +1,262 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Rectangles</title> + +<meta name="description" content="Sly: Rectangles"> +<meta name="keywords" content="Sly: Rectangles"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Math.html#Math" rel="up" title="Math"> +<link href="Transforms.html#Transforms" rel="next" title="Transforms"> +<link href="Vectors.html#Vectors" rel="prev" title="Vectors"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Rectangles"></a> +<div class="header"> +<p> +Next: <a href="Transforms.html#Transforms" accesskey="n" rel="next">Transforms</a>, Previous: <a href="Vectors.html#Vectors" accesskey="p" rel="prev">Vectors</a>, Up: <a href="Math.html#Math" accesskey="u" rel="up">Math</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Rectangles-1"></a> +<h4 class="subsection">4.2.2 Rectangles</h4> + +<div class="example"> +<pre class="example">(use-modules (sly math rect)) +</pre></div> + +<p>Rects are 2D axis-aligned bounding boxes. They are useful for +defining rectangular regions, such as the hitbox of a game entity, or +the viewport of a camera. Because rects are axis-aligned, they +provide a cheap means to perform simple collision detection. +</p> +<p>The <code><rect></code> type descriptor has been exposed for use with +Guile’s <code>(ice-9 match)</code> pattern matching module. +</p> +<dl> +<dt><a name="index-_003crect_003e"></a>Scheme Variable: <strong><rect></strong></dt> +<dd><p>Rectangle data type with fields <code>x</code>, <code>y</code>, <code>width</code>, +<code>height</code>, in that order. +</p></dd></dl> + +<dl> +<dt><a name="index-make_002drect"></a>Scheme Procedure: <strong>make-rect</strong> <em><var>x</var> <var>y</var> <var>width</var> <var>height</var></em></dt> +<dd><p>Create a new rectangle with position (<var>x</var>, <var>y</var>), and +dimensions (<var>width</var>, <var>height</var>). +</p></dd></dl> + +<dl> +<dt><a name="index-null_002drect"></a>Scheme Variable: <strong>null-rect</strong></dt> +<dd><p>Rectangle with <code>x</code>, <code>y</code>, <code>width</code>, and <code>height</code> of 0. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_003f"></a>Scheme Syntax: <strong>rect?</strong> <em><var>obj</var></em></dt> +<dd><p>Return <code>#t</code> if <var>obj</var> is a rectangle. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dx"></a>Scheme Syntax: <strong>rect-x</strong> <em><var>rect</var></em></dt> +<dd><p>Return the x coordinate of <var>rect</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dy"></a>Scheme Syntax: <strong>rect-y</strong> <em><var>rect</var></em></dt> +<dd><p>Return the x coordinate of <var>rect</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dwidth"></a>Scheme Syntax: <strong>rect-width</strong> <em><var>rect</var></em></dt> +<dd><p>Return the width of <var>rect</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dheight"></a>Scheme Syntax: <strong>rect-height</strong> <em><var>rect</var></em></dt> +<dd><p>Return the height of <var>rect</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dleft"></a>Scheme Procedure: <strong>rect-left</strong> <em><var>rect</var></em></dt> +<dd><p>Return the left-hand x coordinate of <var>rect</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dright"></a>Scheme Procedure: <strong>rect-right</strong> <em><var>rect</var></em></dt> +<dd><p>Return the right-hand x coordinate of <var>rect</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dtop"></a>Scheme Procedure: <strong>rect-top</strong> <em><var>rect</var></em></dt> +<dd><p>Return the top y coordinate of <var>rect</var> +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dbottom"></a>Scheme Procedure: <strong>rect-bottom</strong> <em><var>rect</var></em></dt> +<dd><p>Return the bottom y coordinate of <var>rect</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dtop_002dleft"></a>Scheme Procedure: <strong>rect-top-left</strong> <em><var>rect</var></em></dt> +<dd><p>Return the top-left corner of <var>rect</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dtop_002dright"></a>Scheme Procedure: <strong>rect-top-right</strong> <em><var>rect</var></em></dt> +<dd><p>Return the top-right corner of <var>rect</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dbottom_002dleft"></a>Scheme Procedure: <strong>rect-bottom-left</strong> <em><var>rect</var></em></dt> +<dt><a name="index-rect_002dposition"></a>Scheme Procedure: <strong>rect-position</strong> <em><var>rect</var></em></dt> +<dd><p>Return the bottom-left corner of <var>rect</var> +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dbottom_002dright"></a>Scheme Procedure: <strong>rect-bottom-right</strong> <em><var>rect</var></em></dt> +<dd><p>Return the bottom-right corner of <var>rect</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dcenter_002dx"></a>Scheme Procedure: <strong>rect-center-x</strong> <em><var>rect</var></em></dt> +<dd><p>Return the center x coordinate of <var>rect</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dcenter_002dy"></a>Scheme Procedure: <strong>rect-center-y</strong> <em><var>rect</var></em></dt> +<dd><p>Return the center y coordinate of <var>rect</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dcenter"></a>Scheme Procedure: <strong>rect-center</strong> <em><var>rect</var></em></dt> +<dd><p>Return the center of <var>rect</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dhalf_002dwidth"></a>Scheme Procedure: <strong>rect-half-width</strong> <em><var>rect</var></em></dt> +<dd><p>Return the half width of <var>rect</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dhalf_002dheight"></a>Scheme Procedure: <strong>rect-half-height</strong> <em><var>rect</var></em></dt> +<dd><p>Return the half height of <var>rect</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dsize"></a>Scheme Procedure: <strong>rect-size</strong> <em><var>rect</var></em></dt> +<dd><p>Return the size of <var>rect</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dmove"></a>Scheme Procedure: <strong>rect-move</strong> <em><var>rect</var> <var>v</var></em></dt> +<dt><a name="index-rect_002dmove-1"></a>Scheme Procedure: <strong>rect-move</strong> <em><var>rect</var> <var>x</var> <var>y</var></em></dt> +<dd><p>Create a new rectangle by moving <var>rect</var> by the given 2D vector +offset <var>v</var>, or the coordinates <var>x</var> and <var>y</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dinflate"></a>Scheme Procedure: <strong>rect-inflate</strong> <em><var>rect</var> <var>size</var></em></dt> +<dt><a name="index-rect_002dinflate-1"></a>Scheme Procedure: <strong>rect-inflate</strong> <em><var>rect</var> <var>width</var> <var>height</var></em></dt> +<dd><p>Create a new rectangle by growing <var>rect</var> by the 2D vector +<var>size</var> (or <var>width</var> and <var>height</var>) without changing the +center point. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dunion"></a>Scheme Procedure: <strong>rect-union</strong> <em><var>rect1</var> <var>rect2</var></em></dt> +<dd><p>Create a new rectangle that covers the area of both <var>rect1</var> and +<var>rect2</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dclip"></a>Scheme Procedure: <strong>rect-clip</strong> <em><var>rect1</var> <var>rect2</var></em></dt> +<dd><p>Create a new rectangle that is the overlapping region of <var>rect1</var> +and <var>rect2</var>. If the rects do not overlap, a rect of size 0 is +returned. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dclamp"></a>Scheme Procedure: <strong>rect-clamp</strong> <em><var>rect</var> <var>v</var></em></dt> +<dd><p>Return a new 2D vector by constraining <var>v</var> to the bounds of +<var>rect</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dwithin_003f"></a>Scheme Procedure: <strong>rect-within?</strong> <em><var>rect1</var> <var>rect2</var></em></dt> +<dd><p>Return <code>#t</code> if <var>rect2</var> is completely within <var>rect1</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dintersects_003f"></a>Scheme Procedure: <strong>rect-intersects?</strong> <em><var>rect1</var> <var>rect2</var></em></dt> +<dd><p>Return <code>#t</code> if <var>rect2</var> overlaps <var>rect1</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-rect_002dcontains_003f"></a>Scheme Procedure: <strong>rect-contains?</strong> <em><var>rect</var> <var>v</var></em></dt> +<dt><a name="index-rect_002dcontains_003f-1"></a>Scheme Procedure: <strong>rect-contains?</strong> <em><var>rect</var> <var>x</var> <var>y</var></em></dt> +<dd><p>Return <code>#t</code> if the 2D vector <var>v</var> (or the coordinates <var>x</var> +and <var>y</var>) is within <var>rect</var>. +</p></dd></dl> + +<hr> +<div class="header"> +<p> +Next: <a href="Transforms.html#Transforms" accesskey="n" rel="next">Transforms</a>, Previous: <a href="Vectors.html#Vectors" accesskey="p" rel="prev">Vectors</a>, Up: <a href="Math.html#Math" accesskey="u" rel="up">Math</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> + + + +</body> +</html> diff --git a/manuals/sly/Render-Combinators.html b/manuals/sly/Render-Combinators.html new file mode 100644 index 0000000..9d33800 --- /dev/null +++ b/manuals/sly/Render-Combinators.html @@ -0,0 +1,84 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Render Combinators</title> + +<meta name="description" content="Sly: Render Combinators"> +<meta name="keywords" content="Sly: Render Combinators"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Rendering.html#Rendering" rel="up" title="Rendering"> +<link href="Sprites.html#Sprites" rel="next" title="Sprites"> +<link href="Rendering.html#Rendering" rel="prev" title="Rendering"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Render-Combinators"></a> +<div class="header"> +<p> +Next: <a href="Sprites.html#Sprites" accesskey="n" rel="next">Sprites</a>, Up: <a href="Rendering.html#Rendering" accesskey="u" rel="up">Rendering</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Render-Combinators-1"></a> +<h4 class="subsection">4.5.1 Render Combinators</h4> + +<p>Render combinators provide a purely functional interface to the OpenGL +state machine. +</p> + + + +</body> +</html> diff --git a/manuals/sly/Rendering.html b/manuals/sly/Rendering.html new file mode 100644 index 0000000..48d44f7 --- /dev/null +++ b/manuals/sly/Rendering.html @@ -0,0 +1,108 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Rendering</title> + +<meta name="description" content="Sly: Rendering"> +<meta name="keywords" content="Sly: Rendering"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="API-Reference.html#API-Reference" rel="up" title="API Reference"> +<link href="Render-Combinators.html#Render-Combinators" rel="next" title="Render Combinators"> +<link href="Joystick.html#Joystick" rel="prev" title="Joystick"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Rendering"></a> +<div class="header"> +<p> +Next: <a href="Utilities.html#Utilities" accesskey="n" rel="next">Utilities</a>, Previous: <a href="Input.html#Input" accesskey="p" rel="prev">Input</a>, Up: <a href="API-Reference.html#API-Reference" accesskey="u" rel="up">API Reference</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Rendering-1"></a> +<h3 class="section">4.5 Rendering</h3> + +<p>Keeping with the theme of declarative and functional code, Sly’s +rendering module provide a purely functional interface to the +imperative world of OpenGL. An abstraction on top of OpenGL known as +“render combinators” provide a convenient way to describe and +compose rendering pipelines. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="Render-Combinators.html#Render-Combinators" accesskey="1">Render Combinators</a>:</td><td> </td><td align="left" valign="top">Purely functional rendering API. +</td></tr> +<tr><td align="left" valign="top">• <a href="Sprites.html#Sprites" accesskey="2">Sprites</a>:</td><td> </td><td align="left" valign="top">2D textured rectangles. +</td></tr> +<tr><td align="left" valign="top">• <a href="Textures.html#Textures" accesskey="3">Textures</a>:</td><td> </td><td align="left" valign="top">Pixel arrays. +</td></tr> +<tr><td align="left" valign="top">• <a href="Fonts.html#Fonts" accesskey="4">Fonts</a>:</td><td> </td><td align="left" valign="top">Font loading and text rendering. +</td></tr> +<tr><td align="left" valign="top">• <a href="Shapes.html#Shapes" accesskey="5">Shapes</a>:</td><td> </td><td align="left" valign="top">Primitive 2D/3D shapes. +</td></tr> +<tr><td align="left" valign="top">• <a href="Cameras.html#Cameras" accesskey="6">Cameras</a>:</td><td> </td><td align="left" valign="top">Defining a viewpoint. +</td></tr> +<tr><td align="left" valign="top">• <a href="Colors.html#Colors" accesskey="7">Colors</a>:</td><td> </td><td align="left" valign="top">Pretty colors. +</td></tr> +<tr><td align="left" valign="top">• <a href="Framebuffers.html#Framebuffers" accesskey="8">Framebuffers</a>:</td><td> </td><td align="left" valign="top">Offscreen rendering. +</td></tr> +<tr><td align="left" valign="top">• <a href="Shaders.html#Shaders" accesskey="9">Shaders</a>:</td><td> </td><td align="left" valign="top">Programs that run on the GPU. +</td></tr> +</table> + + + + +</body> +</html> diff --git a/manuals/sly/Requirements.html b/manuals/sly/Requirements.html new file mode 100644 index 0000000..0ba35fc --- /dev/null +++ b/manuals/sly/Requirements.html @@ -0,0 +1,91 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Requirements</title> + +<meta name="description" content="Sly: Requirements"> +<meta name="keywords" content="Sly: Requirements"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Installation.html#Installation" rel="up" title="Installation"> +<link href="Examples.html#Examples" rel="next" title="Examples"> +<link href="Installation.html#Installation" rel="prev" title="Installation"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Requirements"></a> +<div class="header"> +<p> +Next: <a href="Examples.html#Examples" accesskey="n" rel="next">Examples</a>, Up: <a href="Installation.html#Installation" accesskey="u" rel="up">Installation</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Requirements-1"></a> +<h3 class="section">2.1 Requirements</h3> + +<p>Sly depends on the following packages: +</p> +<ul> +<li> <a href="https://gnu.org/software/guile">GNU Guile</a>, version 2.0.11 or later; +</li><li> <a href="https://gnu.org/software/guile-opengl">GNU guile-opengl</a>, version 0.1 or later. +</li><li> <a href="https://gnu.org/software/guile-sdl">GNU guile-sdl</a>, version 0.5.0 or later; +</li><li> <a href="https://gnu.org/software/gsl">GNU Scientific Library</a>, version 1.16 or later; +</li><li> <a href="http://freeimage.sourceforge.net/">FreeImage</a>, version 3 or later +</li></ul> + + + + +</body> +</html> diff --git a/manuals/sly/Shaders.html b/manuals/sly/Shaders.html new file mode 100644 index 0000000..9a2ab3d --- /dev/null +++ b/manuals/sly/Shaders.html @@ -0,0 +1,80 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Shaders</title> + +<meta name="description" content="Sly: Shaders"> +<meta name="keywords" content="Sly: Shaders"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Rendering.html#Rendering" rel="up" title="Rendering"> +<link href="Utilities.html#Utilities" rel="next" title="Utilities"> +<link href="Framebuffers.html#Framebuffers" rel="prev" title="Framebuffers"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Shaders"></a> +<div class="header"> +<p> +Previous: <a href="Framebuffers.html#Framebuffers" accesskey="p" rel="prev">Framebuffers</a>, Up: <a href="Rendering.html#Rendering" accesskey="u" rel="up">Rendering</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Shaders-1"></a> +<h4 class="subsection">4.5.9 Shaders</h4> + + + +</body> +</html> diff --git a/manuals/sly/Shapes.html b/manuals/sly/Shapes.html new file mode 100644 index 0000000..452067d --- /dev/null +++ b/manuals/sly/Shapes.html @@ -0,0 +1,81 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Shapes</title> + +<meta name="description" content="Sly: Shapes"> +<meta name="keywords" content="Sly: Shapes"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Rendering.html#Rendering" rel="up" title="Rendering"> +<link href="Cameras.html#Cameras" rel="next" title="Cameras"> +<link href="Fonts.html#Fonts" rel="prev" title="Fonts"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Shapes"></a> +<div class="header"> +<p> +Next: <a href="Cameras.html#Cameras" accesskey="n" rel="next">Cameras</a>, Previous: <a href="Fonts.html#Fonts" accesskey="p" rel="prev">Fonts</a>, Up: <a href="Rendering.html#Rendering" accesskey="u" rel="up">Rendering</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Shapes-1"></a> +<h4 class="subsection">4.5.5 Shapes</h4> + + + + +</body> +</html> diff --git a/manuals/sly/Signals.html b/manuals/sly/Signals.html new file mode 100644 index 0000000..b24283b --- /dev/null +++ b/manuals/sly/Signals.html @@ -0,0 +1,332 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Signals</title> + +<meta name="description" content="Sly: Signals"> +<meta name="keywords" content="Sly: Signals"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Time.html#Time" rel="up" title="Time"> +<link href="Coroutines.html#Coroutines" rel="next" title="Coroutines"> +<link href="Time.html#Time" rel="prev" title="Time"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Signals"></a> +<div class="header"> +<p> +Next: <a href="Coroutines.html#Coroutines" accesskey="n" rel="next">Coroutines</a>, Up: <a href="Time.html#Time" accesskey="u" rel="up">Time</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Signals-1"></a> +<h4 class="subsection">4.3.1 Signals</h4> + +<div class="example"> +<pre class="example">(use-modules (sly signal)) +</pre></div> + +<p>Game state is a function of time. The player’s score, the current +stage, an enemy’s hit points, etc. all change in response to events +that happen at discrete points in time. Typically, this means that a +number of callback procedures are registered to respond to events +which mutate the relevant data structures. However, this approach, +while simple and effective, comes at the price of readability, +reproducibility, and expression. Instead of explicitly mutating data +and entering “callback hell”, Sly abstracts and formalizes the +process using a functional reactive programming style. +</p> +<p>In Sly, time-varying values are called “signals”, and they are +defined in a declarative and functional manner. Rather than +describing the process of mutation procedurally, one describes the +relationships between signals instead. The result is a “signal +graph”, a directed acyclic graph of event responses. +</p> +<div class="example"> +<pre class="example">(define-signal position + (signal-fold v+ (vector2 320 240) + (signal-map (lambda (v) (v* v 4)) + (signal-sample 1 key-arrows)))) +</pre></div> + +<p>This signal describes a relationship between the arrow keys on the +keyboard and the position of the player. <code>signal-sample</code> is used +to trigger a signal update upon every game tick that provides the +current state of the arrow keys. <code>key-arrows</code> is a 2D vector +that maps to the current state of the arrow keys, allowing for 8 +directional movement. This vector is then scaled 4x to make the +player move faster. Finally, the scaled vector is added to the +previous player position via <code>signal-fold</code>. The player’s +position is at (320, 240) initially. As you can see, there are no +callbacks and explicit mutation needed, and the position seems to +magically change with the passage of time. +</p> +<dl> +<dt><a name="index-signal_003f"></a>Scheme Procedure: <strong>signal?</strong> <em><var>obj</var></em></dt> +<dd><p>Return <code>#t</code> if <var>obj</var> is a signal. +</p></dd></dl> + +<dl> +<dt><a name="index-make_002dsignal"></a>Scheme Procedure: <strong>make-signal</strong> <em><var>value</var></em></dt> +<dd><p>Wrap <var>value</var> in a signal. +</p></dd></dl> + +<dl> +<dt><a name="index-define_002dsignal"></a>Scheme Syntax: <strong>define-signal</strong> <em><var>name</var> <var>value</var></em></dt> +<dd><p>Create a top-level signal variable called <var>name</var>. If the variable +already exists and refers to a signal then its outputs will be spliced +into the new signal. If the given value is not a signal then it will +be put into one via <code>make-signal</code>. +</p> +<p><code>define-signal</code> is particularly useful when working at the REPL. +A top-level signal variable defined by <code>define-signal</code> can be +redefined at runtime, and the signals that depended on the old signal +will continue to work with the new signal. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dref"></a>Scheme Procedure: <strong>signal-ref</strong> <em><var>signal</var></em></dt> +<dd><p>Return the value stored within <var>signal</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dref_002dmaybe"></a>Scheme Procedure: <strong>signal-ref-maybe</strong> <em>object</em></dt> +<dd><p>Return the value stored within <var>object</var> if <var>object</var> is a +signal. Otherwise, return <var>object</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dlet"></a>Scheme Syntax: <strong>signal-let</strong> <em>((<var>var</var> <var>signal</var>) …) <var>body</var> …</em></dt> +<dd><p>Evaluate <var>body</var> in the context of the local bindings defined by +the two-element lists <code>((var signal) …)</code>. +<code>signal-let</code> works like regular <code>let</code>, except that it +derefences <var>signal</var> before binding to <var>var</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dlet_002a"></a>Scheme Syntax: <strong>signal-let*</strong> <em>((<var>var</var> <var>signal</var>) …) <var>body</var> …</em></dt> +<dd><p>Similar to <code>signal-let</code>, but the variable bindings are performed +sequentially. This means that all initialization expressions are +allowed to use the variables defined to the their left in the binding +list. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dset_0021"></a>Scheme Procedure: <strong>signal-set!</strong> <em>signal-box value</em></dt> +<dd><p>Change the contents of <var>signal</var> to <var>value</var>. This procedure +should almost never be used, except to bootstrap a root node of a +signal graph. +</p></dd></dl> + +<dl> +<dt><a name="index-hook_002d_003esignal"></a>Scheme Procedure: <strong>hook->signal</strong> <em><var>hook</var> <var>init</var> <var>proc</var></em></dt> +<dd><p>Create a new signal whose initial value is <var>init</var> and whose future +values are calculated by applying <var>proc</var> to the arguments passed +when <var>hook</var> is run. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dmerge"></a>Scheme Procedure: <strong>signal-merge</strong> <em><var>signal1</var> <var>signal2</var> . <var>rest</var></em></dt> +<dd><p>Create a new signal whose value is the that of the most recently +updated signal in <var>signal1</var>, <var>signal2</var>, etc. The initial +value is that of <var>signal1</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dzip"></a>Scheme Procedure: <strong>signal-zip</strong> <em>. <var>signals</var></em></dt> +<dd><p>Create a new signal whose value is a list of the values stored in +<var>signals</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dmap"></a>Scheme Procedure: <strong>signal-map</strong> <em><var>proc</var> <var>signal</var> . <var>rest</var></em></dt> +<dd><p>Create a new signal that applies <var>proc</var> to the values of +<var>SIGNAL</var>. More than one input signal may be specified, in which +case <var>proc</var> must accept as many arguments as there are input +signals. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dsample_002don"></a>Scheme Procedure: <strong>signal-sample-on</strong> <em><var>value-signal</var> <var>sample-signal</var></em></dt> +<dd><p>Create a new signal that takes on the value of <var>value-signal</var> +whenever <var>sample-signal</var> receives a new value. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dnegate"></a>Scheme Procedure: <strong>signal-negate</strong> <em><var>signal</var></em></dt> +<dd><p>Create a new signal whose value is the negation of <var>signal</var> by +applying <code>not</code> to each value received. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dfold"></a>Scheme Procedure: <strong>signal-fold</strong> <em><var>proc</var> <var>init</var> <var>signal</var> . <var>rest</var></em></dt> +<dd><p>Create a new signal that applies <var>proc</var> with the value received +from <var>signal</var> and the past value of itself, starting with +<var>init</var>. Like <code>signal-map</code>, more than one input signal may be +given. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dfilter"></a>Scheme Procedure: <strong>signal-filter</strong> <em><var>predicate</var> <var>default</var> <var>signal</var></em></dt> +<dd><p>Create a new signal that takes on the value received from <var>signal</var> +when it satisfies the procedure <var>predicate</var>. The value of the +signal is <var>default</var> in the case that the predicate is never +satisfied. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002ddrop"></a>Scheme Procedure: <strong>signal-drop</strong> <em><var>predicate</var> <var>default</var> <var>signal</var></em></dt> +<dd><p>Create a new signal that takes on the value received from <var>signal</var> +when it does <em>not</em> satisfy the procedure <var>predicate</var>. The +value of the signal is <var>default</var> in the case that the predicate is +never satisfied. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002ddrop_002drepeats"></a>Scheme Procedure: <strong>signal-drop-repeats</strong> <em><var>signal</var> [<var>equal?</var>]</em></dt> +<dd><p>Create a new signal that drops the value received from <var>signal</var> +when it is equivalent to the current value. By default, <code>equal?</code> +is used for testing equivalence. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dswitch"></a>Scheme Procedure: <strong>signal-switch</strong> <em><var>predicate</var> <var>on</var> <var>off</var></em></dt> +<dd><p>Create a new signal whose value is that of the signal <var>on</var> when +the signal <var>predicate</var> is true, or the value of the signal +<var>off</var> otherwise. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dconstant"></a>Scheme Procedure: <strong>signal-constant</strong> <em><var>constant</var> <var>signal</var></em></dt> +<dd><p>Create a new signal whose value is always <var>constant</var> no matter the +value received from <var>signal</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dcount"></a>Scheme Procedure: <strong>signal-count</strong> <em><var>signal</var> [<var>start</var>] [<var>step</var>]</em></dt> +<dd><p>Create a new signal that increments a counter by <var>step</var> when a +value from <var>signal</var> is received, starting from <var>start</var>. By +default, <var>start</var> is 0 and <var>step</var> is 1. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dtap"></a>Scheme Procedure: <strong>signal-tap</strong> <em><var>proc</var> <var>signal</var></em></dt> +<dd><p>Create a new signal that applies <var>proc</var> for side-effects when a +value from <var>signal</var> is received. The value of the new signal will +always be the value of <var>signal</var>. This signal is a convenient way +to sneak in a procedure that with a side-effect into a signal graph. +Such a signal might write text to a file, or play a sound. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dtimestamp"></a>Scheme Procedure: <strong>signal-timestamp</strong> <em><var>signal</var></em></dt> +<dd><p>Create a new signal whose value is a pair, the car of which is the +time that the value of <var>signal</var> was received and the cdr of which +is the received value. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dtime"></a>Scheme Procedure: <strong>signal-time</strong> <em><var>signal</var></em></dt> +<dd><p>Create a new signal whose value is the time that the value of +<var>signal</var> was received. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dsample"></a>Scheme Procedure: <strong>signal-sample</strong> <em><var>step</var> <var>signal</var></em></dt> +<dd><p>Create a new signal that takes on the value of <var>signal</var> every +<var>step</var> ticks. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002devery"></a>Scheme Procedure: <strong>signal-every</strong> <em><var>step</var></em></dt> +<dd><p>Create a new signal that emits <var>step</var> every <var>step</var> ticks. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dsince"></a>Scheme Procedure: <strong>signal-since</strong> <em><var>step</var> <var>signal</var></em></dt> +<dd><p>Create a new signal that emits the time since <var>signal</var> was updated +ever <var>step</var> ticks. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002ddelay"></a>Scheme Procedure: <strong>signal-delay</strong> <em><var>delay</var> <var>signal</var></em></dt> +<dd><p>Create a new signal that delays propagation of <var>signal</var> by +<var>delay</var> ticks.. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dthrottle"></a>Scheme Procedure: <strong>signal-throttle</strong> <em>delay signal</em></dt> +<dd><p>Create a new signal that propagates <var>signal</var> at most once every +<var>delay</var> ticks. +</p></dd></dl> + +<dl> +<dt><a name="index-signal_002dgenerator"></a>Scheme Syntax: <strong>signal-generator</strong> <em><var>body</var> …</em></dt> +<dd><p>Create a new signal whose value is the most recently yielded value of +the coroutine defined by <var>body</var>. A special <code>yield</code> syntax is +available within <var>body</var> to specify which values are passed to the +signal. +</p></dd></dl> + +<hr> +<div class="header"> +<p> +Next: <a href="Coroutines.html#Coroutines" accesskey="n" rel="next">Coroutines</a>, Up: <a href="Time.html#Time" accesskey="u" rel="up">Time</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> + + + +</body> +</html> diff --git a/manuals/sly/Sprites.html b/manuals/sly/Sprites.html new file mode 100644 index 0000000..0ea943d --- /dev/null +++ b/manuals/sly/Sprites.html @@ -0,0 +1,116 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Sprites</title> + +<meta name="description" content="Sly: Sprites"> +<meta name="keywords" content="Sly: Sprites"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Rendering.html#Rendering" rel="up" title="Rendering"> +<link href="Textures.html#Textures" rel="next" title="Textures"> +<link href="Render-Combinators.html#Render-Combinators" rel="prev" title="Render Combinators"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Sprites"></a> +<div class="header"> +<p> +Next: <a href="Textures.html#Textures" accesskey="n" rel="next">Textures</a>, Previous: <a href="Render-Combinators.html#Render-Combinators" accesskey="p" rel="prev">Render Combinators</a>, Up: <a href="Rendering.html#Rendering" accesskey="u" rel="up">Rendering</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Sprites-1"></a> +<h4 class="subsection">4.5.2 Sprites</h4> + +<dl> +<dt><a name="index-make_002dsprite"></a>Scheme Procedure: <strong>make-sprite</strong> <em><var>texture</var> [#:anchor]</em></dt> +<dd><p>Create a sprite that displays the image in <var>texture</var>. The size of +the mesh is the size of <var>texture</var> in pixels. <var>anchor</var> defines +the origin of the sprite. By default, the anchor is <code>center</code>, +which puts the origin in the middle of the sprite. See +’anchor-texture’ for more anchoring options. +</p></dd></dl> + +<dl> +<dt><a name="index-load_002dsprite"></a>Scheme Procedure: <strong>load-sprite</strong> <em><var>file</var> [#:anchor]</em></dt> +<dd><p>Create a sprite from the texture in <var>file</var> whose origin is defined +by <var>anchor</var>. The default anchor is <code>center</code>. +</p></dd></dl> + +<dl> +<dt><a name="index-sprite_003f"></a>Scheme Syntax: <strong>sprite?</strong> <em><var>obj</var></em></dt> +<dd><p>Return <code>#t</code> if <var>obj</var> is a sprite. +</p></dd></dl> + +<dl> +<dt><a name="index-sprite_002dtexture"></a>Scheme Syntax: <strong>sprite-texture</strong> <em><var>sprite</var></em></dt> +<dd><p>Return the texture for <var>sprite</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-sprite_002dmesh"></a>Scheme Syntax: <strong>sprite-mesh</strong> <em><var>mesh</var></em></dt> +<dd><p>Return the mesh for <var>sprite</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-render_002dsprite"></a>Scheme Procedure: <strong>render-sprite</strong> <em><var>sprite</var></em></dt> +<dd><p>Create a renderer for <var>sprite</var>. +</p></dd></dl> + + + + +</body> +</html> diff --git a/manuals/sly/Textures.html b/manuals/sly/Textures.html new file mode 100644 index 0000000..b55a4b8 --- /dev/null +++ b/manuals/sly/Textures.html @@ -0,0 +1,81 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Textures</title> + +<meta name="description" content="Sly: Textures"> +<meta name="keywords" content="Sly: Textures"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Rendering.html#Rendering" rel="up" title="Rendering"> +<link href="Fonts.html#Fonts" rel="next" title="Fonts"> +<link href="Sprites.html#Sprites" rel="prev" title="Sprites"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Textures"></a> +<div class="header"> +<p> +Next: <a href="Fonts.html#Fonts" accesskey="n" rel="next">Fonts</a>, Previous: <a href="Sprites.html#Sprites" accesskey="p" rel="prev">Sprites</a>, Up: <a href="Rendering.html#Rendering" accesskey="u" rel="up">Rendering</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Textures-1"></a> +<h4 class="subsection">4.5.3 Textures</h4> + + + + +</body> +</html> diff --git a/manuals/sly/The-Game-Loop.html b/manuals/sly/The-Game-Loop.html new file mode 100644 index 0000000..f8a685d --- /dev/null +++ b/manuals/sly/The-Game-Loop.html @@ -0,0 +1,114 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: The Game Loop</title> + +<meta name="description" content="Sly: The Game Loop"> +<meta name="keywords" content="Sly: The Game Loop"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Booting.html#Booting" rel="up" title="Booting"> +<link href="Math.html#Math" rel="next" title="Math"> +<link href="Window-Creation.html#Window-Creation" rel="prev" title="Window Creation"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="The-Game-Loop"></a> +<div class="header"> +<p> +Previous: <a href="Window-Creation.html#Window-Creation" accesskey="p" rel="prev">Window Creation</a>, Up: <a href="Booting.html#Booting" accesskey="u" rel="up">Booting</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="The-Game-Loop-1"></a> +<h4 class="subsection">4.1.2 The Game Loop</h4> + +<dl> +<dt><a name="index-draw_002dhook"></a>Scheme Variable: <strong>draw-hook</strong></dt> +<dd><p>This hook is run every time the game loop wants to render. Procedures +added to this hook should accept two arguments: <code>dt</code>, the time in +seconds since the last render call; and <code>alpha</code>, a number in the +range [0,1] that indicates how far in between two discrete updates of +the game state the loop is in. The <code>alpha</code> value is important +for smoothing animated values to avoid the “temporal aliasing” +effect that causes choppy looking animations. +</p></dd></dl> + +<dl> +<dt><a name="index-after_002dgame_002dloop_002derror_002dhook"></a>Scheme Variable: <strong>after-game-loop-error-hook</strong></dt> +<dd><p>This hook is run every time the game loop catches an error. +Procedures added to this hook should accept no arguments. +</p></dd></dl> + +<dl> +<dt><a name="index-run_002dgame_002dloop"></a>Scheme Procedure: <strong>run-game-loop</strong> <em>[<var>#:frame-rate</var>] [<var>#:tick-rate</var>] [<var>#:max-ticks-per-frame</var>]</em></dt> +<dd><p>Start the game loop. <code>frame-rate</code> specifies the optimal number +of frames to draw per second. <code>tick-rate</code> specifies the optimal +game logic updates per second. Both <code>frame-rate</code> and +<code>tick-rate</code> are 60 by default. <code>max-ticks-per-frame</code> is the +maximum number of times the game loop will update game state in a +single frame. When this upper bound is reached due to poor +performance, the game will start to slow down instead of becoming +completely unresponsive and possibly crashing. +</p></dd></dl> + +<dl> +<dt><a name="index-stop_002dgame_002dloop"></a>Scheme Procedure: <strong>stop-game-loop</strong></dt> +<dd><p>Abort the game loop. +</p></dd></dl> + + + +</body> +</html> diff --git a/manuals/sly/Time.html b/manuals/sly/Time.html new file mode 100644 index 0000000..ca2986d --- /dev/null +++ b/manuals/sly/Time.html @@ -0,0 +1,105 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Time</title> + +<meta name="description" content="Sly: Time"> +<meta name="keywords" content="Sly: Time"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="API-Reference.html#API-Reference" rel="up" title="API Reference"> +<link href="Signals.html#Signals" rel="next" title="Signals"> +<link href="Miscellaneous.html#Miscellaneous" rel="prev" title="Miscellaneous"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Time"></a> +<div class="header"> +<p> +Next: <a href="Input.html#Input" accesskey="n" rel="next">Input</a>, Previous: <a href="Math.html#Math" accesskey="p" rel="prev">Math</a>, Up: <a href="API-Reference.html#API-Reference" accesskey="u" rel="up">API Reference</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Time-1"></a> +<h3 class="section">4.3 Time</h3> + +<p>In the context of Sly, time is not the seconds that are passing in the +real world, but the virtual clock that is ticking within the game +loop. This manual refers to a “tick” as the smallest unit of time. +There are a user-defined amount of ticks in a real world second, but +by default it is 60. +</p> +<p>Sly includes several useful modules for working with time. Coroutines +are procedures that can be paused and resumed, agendas are procedure +schedulers, and signals built atop both agendas and coroutines to +provide a high-level functional reactive programming API. +</p> +<p>For most use-cases, the signal module should be used exclusively, but +the agenda and coroutine modules are useful for building new +high-level abstractions. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="Signals.html#Signals" accesskey="1">Signals</a>:</td><td> </td><td align="left" valign="top">Functional reactive programming. +</td></tr> +<tr><td align="left" valign="top">• <a href="Coroutines.html#Coroutines" accesskey="2">Coroutines</a>:</td><td> </td><td align="left" valign="top">Cooperative multi-tasking. +</td></tr> +<tr><td align="left" valign="top">• <a href="Agendas.html#Agendas" accesskey="3">Agendas</a>:</td><td> </td><td align="left" valign="top">Deferred procedure scheduling. +</td></tr> +</table> + + + + +</body> +</html> diff --git a/manuals/sly/Transforms.html b/manuals/sly/Transforms.html new file mode 100644 index 0000000..3fd0b3d --- /dev/null +++ b/manuals/sly/Transforms.html @@ -0,0 +1,236 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Transforms</title> + +<meta name="description" content="Sly: Transforms"> +<meta name="keywords" content="Sly: Transforms"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Math.html#Math" rel="up" title="Math"> +<link href="Tweens.html#Tweens" rel="next" title="Tweens"> +<link href="Rectangles.html#Rectangles" rel="prev" title="Rectangles"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Transforms"></a> +<div class="header"> +<p> +Next: <a href="Tweens.html#Tweens" accesskey="n" rel="next">Tweens</a>, Previous: <a href="Rectangles.html#Rectangles" accesskey="p" rel="prev">Rectangles</a>, Up: <a href="Math.html#Math" accesskey="u" rel="up">Math</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Transforms-1"></a> +<h4 class="subsection">4.2.3 Transforms</h4> + +<div class="example"> +<pre class="example">(use-modules (sly math transform)) +</pre></div> + +<p>Transforms are 4x4 transformation matrices. Matrices are the +fundamental structure for modeling affine transformations such as +translation, rotation, and scaling. Complex transformations are +created by composing many simpler ones with the <code>transform*</code> +procedure. +</p> +<p>It’s a good idea to use transforms in a functional manner by treating +them as immutable. This is made easy because almost every procedure +in this module returns a new transform rather than mutating an +existing one. However, in some cases it is necessary to use mutable +transforms via <code>transform*!</code> for performance reasons. +</p> +<dl> +<dt><a name="index-make_002dtransform"></a>Scheme Procedure: <strong>make-transform</strong> <em><var>aa</var> <var>ab</var> <var>ac</var> <var>ad</var> <var>ba</var> <var>bb</var> <var>bc</var> <var>bd</var> <var>ca</var> <var>cb</var> <var>cc</var> <var>cd</var> <var>da</var> <var>db</var> <var>dc</var> <var>dd</var></em></dt> +<dd><p>Create a new transform initialized with the given 16 values in +column-major format. +</p></dd></dl> + +<dl> +<dt><a name="index-null_002dtransform"></a>Scheme Variable: <strong>null-transform</strong></dt> +<dd><p>A transform composed entirely of zeroes. +</p></dd></dl> + +<dl> +<dt><a name="index-identity_002dtransform"></a>Scheme Variable: <strong>identity-transform</strong></dt> +<dd><p>The multiplicative identity transform. +</p></dd></dl> + +<dl> +<dt><a name="index-transform_003f"></a>Scheme Syntax: <strong>transform?</strong> <em><var>obj</var></em></dt> +<dd><p>Return <code>#t</code> if <var>obj</var> is a transform. +</p></dd></dl> + +<dl> +<dt><a name="index-transform_002dmatrix"></a>Scheme Syntax: <strong>transform-matrix</strong> <em><var>transform</var></em></dt> +<dd><p>Return the underlying 4x4 floating point array for <var>transform</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-transpose"></a>Scheme Procedure: <strong>transpose</strong> <em><var>transform</var></em></dt> +<dd><p>Return a transform that is the transpose of <var>transform</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-transform_002dvector2"></a>Scheme Procedure: <strong>transform-vector2</strong> <em><var>transform</var> <var>v</var></em></dt> +<dd><p>Apply <var>transform</var> to the 2D vector <var>v</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-transform_002dposition"></a>Scheme Procedure: <strong>transform-position</strong> <em><var>transform</var></em></dt> +<dd><p>Return a 3D vector containing the positional data stored in +<var>transform</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-transform_002b"></a>Scheme Procedure: <strong>transform+</strong> <em>. <var>transforms</var></em></dt> +<dd><p>Return the sum of <var>transforms</var>. Return <code>null-transform</code> if +called without any arguments. +</p></dd></dl> + +<dl> +<dt><a name="index-transform_002a"></a>Scheme Procedure: <strong>transform*</strong> <em>. <var>transforms</var></em></dt> +<dd><p>Return the product of <var>transforms</var>. Return identity-transform if +called without any arguments. +</p></dd></dl> + +<dl> +<dt><a name="index-transform_002a_0021"></a>Scheme Procedure: <strong>transform*!</strong> <em><var>dest</var> <var>a</var> <var>b</var></em></dt> +<dd><p>Multiply <var>a</var> and <var>b</var>, storing the result in <var>dest</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-translate"></a>Scheme Procedure: <strong>translate</strong> <em><var>v</var></em></dt> +<dd><p>Create a new transform that translates by the 2D or 3D vector <var>v</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-scale"></a>Scheme Procedure: <strong>scale</strong> <em><var>v</var></em></dt> +<dt><a name="index-scale-1"></a>Scheme Procedure: <strong>scale</strong> <em><var>scalar</var></em></dt> +<dd><p>Create a new transform that scales by the 2D or 3D vector <var>v</var>, or +by <var>scalar</var> to scale evenly in all dimensions. +</p></dd></dl> + +<dl> +<dt><a name="index-rotate_002dx"></a>Scheme Procedure: <strong>rotate-x</strong> <em><var>angle</var></em></dt> +<dd><p>Create a new transform that rotates the x axis by <var>angle</var> radians. +</p></dd></dl> + +<dl> +<dt><a name="index-rotate_002dy"></a>Scheme Procedure: <strong>rotate-y</strong> <em><var>angle</var></em></dt> +<dd><p>Create a new transform that rotates the y axis by <var>angle</var> radians. +</p></dd></dl> + +<dl> +<dt><a name="index-rotate_002dz"></a>Scheme Procedure: <strong>rotate-z</strong> <em><var>angle</var></em></dt> +<dd><p>Create a new transform that rotates the z axis by <var>angle</var> radians. +</p></dd></dl> + +<dl> +<dt><a name="index-rotate"></a>Scheme Procedure: <strong>rotate</strong> <em><var>q</var></em></dt> +<dd><p>Convert the quaternion <var>q</var> into a rotation transform. +See <a href="Quaternions.html#Quaternions">Quaternions</a> for more information. +</p></dd></dl> + +<p>One of the most common composite transformations is a translation +multiplied by a scale multiplied by a rotation. The +<code>build-transform</code> procedure is a convenience procedure for this +case. +</p> +<dl> +<dt><a name="index-build_002dtransform"></a>Scheme Procedure: <strong>build-transform</strong> <em><var>[#:position=(vector3 0 0 0)] [#:scale=1] [#:rotation=null-quaternion]</var></em></dt> +<dd><p>Build a transform by multiplying the following transforms: +</p> +<ul> +<li> translation by <var>position</var> +</li><li> rotation by <var>rotation</var> +</li><li> scaling by <var>scale</var> +</li></ul> + +</dd></dl> + +<p>The procedures below are useful for creating projection and view +matrices for cameras. See <a href="Cameras.html#Cameras">Cameras</a> for more details. +</p> +<dl> +<dt><a name="index-orthographic_002dprojection"></a>Scheme Procedure: <strong>orthographic-projection</strong> <em>left right top bottom near far</em></dt> +<dd><p>Create a new transform that represents an orthographic projection for +the vertical clipping plane <var>left</var> and <var>right</var>, the horizontal +clipping plane <var>top</var> and <var>bottom</var>, and the depth clipping +plane <var>near</var> and <var>far</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-perspective_002dprojection"></a>Scheme Procedure: <strong>perspective-projection</strong> <em><var>field-of-vision</var> <var>aspect-ratio</var> <var>near</var> <var>far</var></em></dt> +<dd><p>Create a new transform that represents a perspective projection with a +<var>field-of-vision</var> in degrees, the desired <var>aspect-ratio</var>, and +the depth clipping plane <var>near</var> and <var>far</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-look_002dat"></a>Scheme Procedure: <strong>look-at</strong> <em><var>eye</var> <var>center</var> [<var>up=(vector3 0 1 0)</var>]</em></dt> +<dd><p>Create a view transform that looks from 3D vector <var>eye</var> at the 3D +vector <var>center</var>, with the 3D vector <var>up</var> indicating which +direction points up. +</p></dd></dl> + +<hr> +<div class="header"> +<p> +Next: <a href="Tweens.html#Tweens" accesskey="n" rel="next">Tweens</a>, Previous: <a href="Rectangles.html#Rectangles" accesskey="p" rel="prev">Rectangles</a>, Up: <a href="Math.html#Math" accesskey="u" rel="up">Math</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> + + + +</body> +</html> diff --git a/manuals/sly/Tweening.html b/manuals/sly/Tweening.html new file mode 100644 index 0000000..9b0b741 --- /dev/null +++ b/manuals/sly/Tweening.html @@ -0,0 +1,101 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Tweening</title> + +<meta name="description" content="Sly: Tweening"> +<meta name="keywords" content="Sly: Tweening"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Tweens.html#Tweens" rel="up" title="Tweens"> +<link href="Quaternions.html#Quaternions" rel="next" title="Quaternions"> +<link href="Easings.html#Easings" rel="prev" title="Easings"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Tweening"></a> +<div class="header"> +<p> +Previous: <a href="Easings.html#Easings" accesskey="p" rel="prev">Easings</a>, Up: <a href="Tweens.html#Tweens" accesskey="u" rel="up">Tweens</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Tweening-1"></a> +<h4 class="subsubsection">4.2.4.2 Tweening</h4> + +<p>The <code>tween</code> procedure creates new procedures to be used for +animation. For example, the code below creates a tween procedure that +linearly interpolates (0, 0) to (10, 10) over the course of ten ticks. +</p> +<div class="example"> +<pre class="example">(define t (tween vlerp ease-linear (vector2 0 0) (vector2 10 0) 10)) + +(t 5) ;; => (vector2 5 5) +</pre></div> + +<dl> +<dt><a name="index-tween"></a>Scheme Procedure: <strong>tween</strong> <em><var>interpolator</var> <var>ease</var> <var>start</var> <var>end</var> <var>duration</var></em></dt> +<dd><p>Return a procedure that interpolates from <var>start</var> to <var>end</var> in +<var>duration</var> ticks. The value returned for a given time is +determined by applying <var>ease</var> with the time ratio to acquire an +<var>alpha</var> value, and then applying <var>interpolator</var> with +<var>start</var>, <var>end</var>, and <var>alpha</var>. <var>alpha</var> is a rational +number in the range [0, 1]. +</p></dd></dl> + + + + +</body> +</html> diff --git a/manuals/sly/Tweens.html b/manuals/sly/Tweens.html new file mode 100644 index 0000000..35634d1 --- /dev/null +++ b/manuals/sly/Tweens.html @@ -0,0 +1,99 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Tweens</title> + +<meta name="description" content="Sly: Tweens"> +<meta name="keywords" content="Sly: Tweens"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Math.html#Math" rel="up" title="Math"> +<link href="Easings.html#Easings" rel="next" title="Easings"> +<link href="Transforms.html#Transforms" rel="prev" title="Transforms"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Tweens"></a> +<div class="header"> +<p> +Next: <a href="Quaternions.html#Quaternions" accesskey="n" rel="next">Quaternions</a>, Previous: <a href="Transforms.html#Transforms" accesskey="p" rel="prev">Transforms</a>, Up: <a href="Math.html#Math" accesskey="u" rel="up">Math</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Tweens-1"></a> +<h4 class="subsection">4.2.4 Tweens</h4> + +<div class="example"> +<pre class="example">(use-modules (sly math tween)) +</pre></div> + +<p>Tweening is the process of interpolating between two key values to +create the illusion of smooth animation. There are many different +ways to alter the rate of change, or “ease”, one value to another. +</p> +<p>When tween functions are combined with <a href="Signals.html#Signals">Signals</a>, the result is +animation! +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="Easings.html#Easings" accesskey="1">Easings</a>:</td><td> </td><td align="left" valign="top">Easing procedures. +</td></tr> +<tr><td align="left" valign="top">• <a href="Tweening.html#Tweening" accesskey="2">Tweening</a>:</td><td> </td><td align="left" valign="top">The tween procedure. +</td></tr> +</table> + + + + +</body> +</html> diff --git a/manuals/sly/Utilities.html b/manuals/sly/Utilities.html new file mode 100644 index 0000000..7b5fcbe --- /dev/null +++ b/manuals/sly/Utilities.html @@ -0,0 +1,90 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Utilities</title> + +<meta name="description" content="Sly: Utilities"> +<meta name="keywords" content="Sly: Utilities"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="API-Reference.html#API-Reference" rel="up" title="API Reference"> +<link href="REPL.html#REPL" rel="next" title="REPL"> +<link href="Shaders.html#Shaders" rel="prev" title="Shaders"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Utilities"></a> +<div class="header"> +<p> +Previous: <a href="Rendering.html#Rendering" accesskey="p" rel="prev">Rendering</a>, Up: <a href="API-Reference.html#API-Reference" accesskey="u" rel="up">API Reference</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Utilities-1"></a> +<h3 class="section">4.6 Utilities</h3> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="REPL.html#REPL" accesskey="1">REPL</a>:</td><td> </td><td align="left" valign="top">REPL server integrated with game loop. +</td></tr> +<tr><td align="left" valign="top">• <a href="Live-Reloading.html#Live-Reloading" accesskey="2">Live Reloading</a>:</td><td> </td><td align="left" valign="top">Automatically reload game assets. +</td></tr> +<tr><td align="left" valign="top">• <a href="Miscellaneous_002dUtilities.html#Miscellaneous_002dUtilities" accesskey="3">Miscellaneous-Utilities</a>:</td><td> </td><td align="left" valign="top">Generally useful things. +</td></tr> +</table> + + + + +</body> +</html> diff --git a/manuals/sly/Vectors.html b/manuals/sly/Vectors.html new file mode 100644 index 0000000..14d2b91 --- /dev/null +++ b/manuals/sly/Vectors.html @@ -0,0 +1,220 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Vectors</title> + +<meta name="description" content="Sly: Vectors"> +<meta name="keywords" content="Sly: Vectors"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Math.html#Math" rel="up" title="Math"> +<link href="Rectangles.html#Rectangles" rel="next" title="Rectangles"> +<link href="Math.html#Math" rel="prev" title="Math"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Vectors"></a> +<div class="header"> +<p> +Next: <a href="Rectangles.html#Rectangles" accesskey="n" rel="next">Rectangles</a>, Up: <a href="Math.html#Math" accesskey="u" rel="up">Math</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Vectors-1"></a> +<h4 class="subsection">4.2.1 Vectors</h4> + +<div class="example"> +<pre class="example">(use-modules (sly math vector)) +</pre></div> + +<p>Not to be confused with Guile’s vector data structure, Sly provides +dedicated data types for 2D, 3D, and 4D vectors in the mathematical +sense. Vector procedures are polymorphic, and will work with any +dimensionality that the operation supports. In some cases, such as +<code>v+</code>, <code>v-</code>, and <code>v*</code>, scalar values may be passed as +well. +</p> +<p>The <code><vector2></code>, <code><vector3></code>, and <code><vector4></code> type +descriptors have been exposed for use with Guile’s <code>(ice-9 +match)</code> pattern matching module. +</p> +<dl> +<dt><a name="index-_003cvector2_003e"></a>Record Type: <strong><vector2></strong></dt> +<dd><p>2D vector data type with fields <code>x</code> and <code>y</code>, in that order. +</p></dd></dl> + +<dl> +<dt><a name="index-_003cvector3_003e"></a>Record Type: <strong><vector3></strong></dt> +<dd><p>3D vector data type with fields <code>x</code>, <code>y</code>, and <code>z</code>, in +that order. +</p></dd></dl> + +<dl> +<dt><a name="index-_003cvector4_003e"></a>Record Type: <strong><vector4></strong></dt> +<dd><p>4D vector data type with fields <code>x</code>, <code>y</code>, <code>z</code> and +<code>w</code>, in that order. +</p></dd></dl> + +<dl> +<dt><a name="index-vector2"></a>Scheme Syntax: <strong>vector2</strong> <em><var>x</var> <var>y</var></em></dt> +<dd><p>Create a new 2D vector with coordinates (<var>x</var>, <var>y</var>). +</p></dd></dl> + +<dl> +<dt><a name="index-vector3"></a>Scheme Syntax: <strong>vector3</strong> <em><var>x</var> <var>y</var> <var>z</var></em></dt> +<dd><p>Create a new 3D vector with coordinates (<var>x</var>, <var>y</var>, <var>z</var>). +</p></dd></dl> + +<dl> +<dt><a name="index-vector4"></a>Scheme Syntax: <strong>vector4</strong> <em><var>x</var> <var>y</var> <var>z</var> <var>w</var></em></dt> +<dd><p>Create a new 4D vector with coordinates (<var>x</var>, <var>y</var>, <var>z</var>, +<var>w</var>). +</p></dd></dl> + +<dl> +<dt><a name="index-vector2_003f"></a>Scheme Syntax: <strong>vector2?</strong> <em><var>v</var></em></dt> +<dd><p>Return <code>#t</code> if <code>v</code> is a 2D vector. +</p></dd></dl> + +<dl> +<dt><a name="index-vector3_003f"></a>Scheme Syntax: <strong>vector3?</strong> <em><var>v</var></em></dt> +<dd><p>Return <code>#t</code> if <code>v</code> is a 3D vector. +</p></dd></dl> + +<dl> +<dt><a name="index-vector4_003f"></a>Scheme Syntax: <strong>vector4?</strong> <em><var>v</var></em></dt> +<dd><p>Return <code>#t</code> if <code>v</code> is a 4D vector. +</p></dd></dl> + +<dl> +<dt><a name="index-vx"></a>Scheme Procedure: <strong>vx</strong> <em><var>v</var></em></dt> +<dd><p>Return the x coordinate of the 2D, 3D, or 4D vector <var>v</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-vy"></a>Scheme Procedure: <strong>vy</strong> <em><var>v</var></em></dt> +<dd><p>Return the y coordinate of the 2D, 3D, or 4D vector <var>v</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-vz"></a>Scheme Procedure: <strong>vz</strong> <em><var>v</var></em></dt> +<dd><p>Return the z coordinate of the 3D or 4D vector <var>v</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-vw"></a>Scheme Procedure: <strong>vw</strong> <em><var>v</var></em></dt> +<dd><p>Return the w coordinate of the 4D vector <var>v</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-vmap"></a>Scheme Procedure: <strong>vmap</strong> <em><var>proc</var> <var>v</var></em></dt> +<dd><p>Return a new vector that is the result of applying <var>proc</var> to each +element of the 2D, 3D, or 4D vector <var>v</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-v_002b"></a>Scheme Procedure: <strong>v+</strong> <em>. <var>vectors</var></em></dt> +<dd><p>Return the sum of all <var>vectors</var>. <var>vectors</var> may contain scalar +values, but it may not contain vectors of mixed dimensions. +</p></dd></dl> + +<dl> +<dt><a name="index-v_002d"></a>Scheme Procedure: <strong>v-</strong> <em>. <var>vectors</var></em></dt> +<dd><p>Return the difference of all <var>vectors</var>. <var>vectors</var> may contain scalar +values, but it may not contain vectors of mixed dimensions. +</p></dd></dl> + +<dl> +<dt><a name="index-v_002a"></a>Scheme Procedure: <strong>v*</strong> <em>. <var>vectors</var></em></dt> +<dd><p>Return the product of all <var>vectors</var>. <var>vectors</var> may contain +scalar values, but it may not contain vectors of mixed dimensions. +</p></dd></dl> + +<dl> +<dt><a name="index-vdot"></a>Scheme Procedure: <strong>vdot</strong> <em><var>v1</var> <var>v2</var></em></dt> +<dd><p>Return the dot product of <var>v1</var> and <var>v2</var>. Both vectors must be +of the same dimensionality. +</p></dd></dl> + +<dl> +<dt><a name="index-vcross"></a>Scheme Procedure: <strong>vcross</strong> <em><var>v1</var> <var>v2</var></em></dt> +<dd><p>Return the cross product of the 3D vectors <var>v1</var> and <var>v2</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-magnitude"></a>Scheme Procedure: <strong>magnitude</strong> <em><var>v</var></em></dt> +<dd><p>Return the magnitude of the vector <var>v</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-normalize"></a>Scheme Procedure: <strong>normalize</strong> <em><var>v</var></em></dt> +<dd><p>Return the normalized form of the vector <var>v</var>. +</p></dd></dl> + +<dl> +<dt><a name="index-vlerp"></a>Scheme Procedure: <strong>vlerp</strong> <em><var>v1</var> <var>v2</var> <var>alpha</var></em></dt> +<dd><p>Return the linear interpolation of <var>v1</var> and <var>v2</var> by the scalar +<var>alpha</var>. <var>alpha</var> is expected to be in the range [0, 1]. +</p></dd></dl> + +<hr> +<div class="header"> +<p> +Next: <a href="Rectangles.html#Rectangles" accesskey="n" rel="next">Rectangles</a>, Up: <a href="Math.html#Math" accesskey="u" rel="up">Math</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> + + + +</body> +</html> diff --git a/manuals/sly/Window-Creation.html b/manuals/sly/Window-Creation.html new file mode 100644 index 0000000..5e6dfc7 --- /dev/null +++ b/manuals/sly/Window-Creation.html @@ -0,0 +1,177 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Window Creation</title> + +<meta name="description" content="Sly: Window Creation"> +<meta name="keywords" content="Sly: Window Creation"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Booting.html#Booting" rel="up" title="Booting"> +<link href="The-Game-Loop.html#The-Game-Loop" rel="next" title="The Game Loop"> +<link href="Booting.html#Booting" rel="prev" title="Booting"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<a name="Window-Creation"></a> +<div class="header"> +<p> +Next: <a href="The-Game-Loop.html#The-Game-Loop" accesskey="n" rel="next">The Game Loop</a>, Up: <a href="Booting.html#Booting" accesskey="u" rel="up">Booting</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Window-Creation-1"></a> +<h4 class="subsection">4.1.1 Window Creation</h4> + +<div class="example"> +<pre class="example">(use-modules (sly window)) +</pre></div> + +<p>Sly uses the windowing features of SDL 1.2 under the hood, which +currently restricts Sly applications to using only a single window. +SDL2 support will come in a future release. +</p> +<p>The window data structure: +</p> +<dl> +<dt><a name="index-make_002dwindow"></a>Scheme Procedure: <strong>make-window</strong> <em>[<var>#:title</var>] [<var>#:resolution</var>] [<var>#:fullscreen?</var>]</em></dt> +<dd><p>Create a new window object. <code>title</code> is a string to display in +the window’s title bar. <code>resolution</code> is a 2D vector that +specifies the dimensions of the window in pixels. <code>fullscreen?</code> +is a boolean that toggles fullscreen mode. +</p></dd></dl> + +<dl> +<dt><a name="index-window_003f"></a>Scheme Procedure: <strong>window?</strong> <em><var>obj</var></em></dt> +<dd><p>Return <code>#t</code> if <code>obj</code> is a window. +</p></dd></dl> + +<dl> +<dt><a name="index-window_002dtitle"></a>Scheme Procedure: <strong>window-title</strong> <em><var>window</var></em></dt> +<dd><p>Return the title of <code>window</code>. +</p></dd></dl> + +<dl> +<dt><a name="index-window_002dresolution"></a>Scheme Procedure: <strong>window-resolution</strong> <em><var>window</var></em></dt> +<dd><p>Return the resolution of <code>window</code>. +</p></dd></dl> + +<dl> +<dt><a name="index-window_002dfullscreen_003f"></a>Scheme Procedure: <strong>window-fullscreen?</strong> <em><var>window</var></em></dt> +<dd><p>Return <code>#t</code> if <code>window</code> is set to fullscreen mode. +</p></dd></dl> + +<p>The following signals hold the state of the current window: +</p> +<dl> +<dt><a name="index-window_002dwidth"></a>Scheme Signal: <strong>window-width</strong></dt> +<dd><p>The width of the current window. +</p></dd></dl> + +<dl> +<dt><a name="index-window_002dheight"></a>Scheme Signal: <strong>window-height</strong></dt> +<dd><p>The height of the current window. +</p></dd></dl> + +<dl> +<dt><a name="index-window_002dsize"></a>Scheme Signal: <strong>window-size</strong></dt> +<dd><p>The size of the current window as a 2D vector. +</p></dd></dl> + +<p>In addition to signals, the following hooks are triggered upon certain +changes to window state: +</p> +<dl> +<dt><a name="index-window_002dresize_002dhook"></a>Scheme Variable: <strong>window-resize-hook</strong></dt> +<dd><p>This hook is run when the current window is resized. Procedures added +to this hook should accept two arguments: Numbers <code>width</code> and +<code>height</code>, the new dimensions of the window in pixels. +</p></dd></dl> + +<dl> +<dt><a name="index-window_002dclose_002dhook"></a>Scheme Variable: <strong>window-close-hook</strong></dt> +<dd><p>This hook is run when the close button is clicked. Note that this +event is simply a request from the user to close the window, it does +not mean that the window has actually been closed. Procedures added +to this hook should accept no arguments. +</p></dd></dl> + +<p>The following procedures are used to open/close windows: +</p> +<dl> +<dt><a name="index-open_002dwindow"></a>Scheme Procedure: <strong>open-window</strong> <em>[<var>window</var>]</em></dt> +<dd><p>Open the game window using the settings in <code>window</code>. +</p></dd></dl> + +<dl> +<dt><a name="index-close_002dwindow"></a>Scheme Procedure: <strong>close-window</strong></dt> +<dd><p>Close the currently open window. +</p></dd></dl> + +<dl> +<dt><a name="index-with_002dwindow"></a>Scheme Syntax: <strong>with-window</strong> <em><var>window</var> <var>body</var> …</em></dt> +<dd><p>Evaluate <code>body</code> in the context of <code>window</code>. <code>window</code> +is opened before evaluating <code>body</code>, and closed afterwards. +</p></dd></dl> + +<hr> +<div class="header"> +<p> +Next: <a href="The-Game-Loop.html#The-Game-Loop" accesskey="n" rel="next">The Game Loop</a>, Up: <a href="Booting.html#Booting" accesskey="u" rel="up">Booting</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> + + + +</body> +</html> diff --git a/manuals/sly/index.html b/manuals/sly/index.html new file mode 100644 index 0000000..90adb63 --- /dev/null +++ b/manuals/sly/index.html @@ -0,0 +1,201 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2013, 2014 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. + + +The document was typeset with +http://www.texinfo.org/ (GNU Texinfo). + --> +<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Sly: Top</title> + +<meta name="description" content="Sly: Top"> +<meta name="keywords" content="Sly: Top"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta charset="UTF-8"> +<link href="#Top" rel="start" title="Top"> +<link href="Index.html#Index" rel="index" title="Index"> +<link href="#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="../dir/index.html" rel="up" title="(dir)"> +<link href="Introduction.html#Introduction" rel="next" title="Introduction"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smalllisp {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} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space: nowrap} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: serif; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<h1 class="settitle" align="center">Sly</h1> + + +<a name="SEC_Contents"></a> +<h2 class="contents-heading">Table of Contents</h2> + +<div class="contents"> + +<ul class="no-bullet"> + <li><a name="toc-Introduction-1" href="Introduction.html#Introduction">1 Introduction</a></li> + <li><a name="toc-Installation-1" href="Installation.html#Installation">2 Installation</a> + <ul class="no-bullet"> + <li><a name="toc-Requirements-1" href="Requirements.html#Requirements">2.1 Requirements</a></li> + <li><a name="toc-Examples-1" href="Examples.html#Examples">2.2 Examples</a></li> + <li><a name="toc-Development-Environment-1" href="Development-Environment.html#Development-Environment">2.3 Development Environment</a></li> + </ul></li> + <li><a name="toc-Getting-Started-1" href="Getting-Started.html#Getting-Started">3 Getting Started</a></li> + <li><a name="toc-API-Reference-1" href="API-Reference.html#API-Reference">4 API Reference</a> + <ul class="no-bullet"> + <li><a name="toc-Booting-1" href="Booting.html#Booting">4.1 Booting</a> + <ul class="no-bullet"> + <li><a name="toc-Window-Creation-1" href="Window-Creation.html#Window-Creation">4.1.1 Window Creation</a></li> + <li><a name="toc-The-Game-Loop-1" href="The-Game-Loop.html#The-Game-Loop">4.1.2 The Game Loop</a></li> + </ul></li> + <li><a name="toc-Math-1" href="Math.html#Math">4.2 Math</a> + <ul class="no-bullet"> + <li><a name="toc-Vectors-1" href="Vectors.html#Vectors">4.2.1 Vectors</a></li> + <li><a name="toc-Rectangles-1" href="Rectangles.html#Rectangles">4.2.2 Rectangles</a></li> + <li><a name="toc-Transforms-1" href="Transforms.html#Transforms">4.2.3 Transforms</a></li> + <li><a name="toc-Tweens-1" href="Tweens.html#Tweens">4.2.4 Tweens</a> + <ul class="no-bullet"> + <li><a name="toc-Easings-1" href="Easings.html#Easings">4.2.4.1 Easings</a></li> + <li><a name="toc-Tweening-1" href="Tweening.html#Tweening">4.2.4.2 Tweening</a></li> + </ul></li> + <li><a name="toc-Quaternions-1" href="Quaternions.html#Quaternions">4.2.5 Quaternions</a></li> + <li><a name="toc-Miscellaneous-1" href="Miscellaneous.html#Miscellaneous">4.2.6 Miscellaneous</a></li> + </ul></li> + <li><a name="toc-Time-1" href="Time.html#Time">4.3 Time</a> + <ul class="no-bullet"> + <li><a name="toc-Signals-1" href="Signals.html#Signals">4.3.1 Signals</a></li> + <li><a name="toc-Coroutines-1" href="Coroutines.html#Coroutines">4.3.2 Coroutines</a></li> + <li><a name="toc-Agendas-1" href="Agendas.html#Agendas">4.3.3 Agendas</a></li> + </ul></li> + <li><a name="toc-Input-1" href="Input.html#Input">4.4 Input</a> + <ul class="no-bullet"> + <li><a name="toc-Keyboard-1" href="Keyboard.html#Keyboard">4.4.1 Keyboard</a></li> + <li><a name="toc-Mouse-1" href="Mouse.html#Mouse">4.4.2 Mouse</a></li> + <li><a name="toc-Joystick-1" href="Joystick.html#Joystick">4.4.3 Joystick</a></li> + </ul></li> + <li><a name="toc-Rendering-1" href="Rendering.html#Rendering">4.5 Rendering</a> + <ul class="no-bullet"> + <li><a name="toc-Render-Combinators-1" href="Render-Combinators.html#Render-Combinators">4.5.1 Render Combinators</a></li> + <li><a name="toc-Sprites-1" href="Sprites.html#Sprites">4.5.2 Sprites</a></li> + <li><a name="toc-Textures-1" href="Textures.html#Textures">4.5.3 Textures</a></li> + <li><a name="toc-Fonts-1" href="Fonts.html#Fonts">4.5.4 Fonts</a></li> + <li><a name="toc-Shapes-1" href="Shapes.html#Shapes">4.5.5 Shapes</a></li> + <li><a name="toc-Cameras-1" href="Cameras.html#Cameras">4.5.6 Cameras</a></li> + <li><a name="toc-Colors-1" href="Colors.html#Colors">4.5.7 Colors</a></li> + <li><a name="toc-Framebuffers-1" href="Framebuffers.html#Framebuffers">4.5.8 Framebuffers</a></li> + <li><a name="toc-Shaders-1" href="Shaders.html#Shaders">4.5.9 Shaders</a></li> + </ul></li> + <li><a name="toc-Utilities-1" href="Utilities.html#Utilities">4.6 Utilities</a> + <ul class="no-bullet"> + <li><a name="toc-REPL-1" href="REPL.html#REPL">4.6.1 REPL</a></li> + <li><a name="toc-Live-Reloading-1" href="Live-Reloading.html#Live-Reloading">4.6.2 Live Reloading</a></li> + <li><a name="toc-Miscellaneous-2" href="Miscellaneous_002dUtilities.html#Miscellaneous_002dUtilities">4.6.3 Miscellaneous</a></li> + </ul></li> + </ul></li> + <li><a name="toc-Contributing-1" href="Contributing.html#Contributing">5 Contributing</a></li> + <li><a name="toc-Copying-This-Manual-1" href="Copying-This-Manual.html#Copying-This-Manual">Appendix A Copying This Manual</a> + <ul class="no-bullet"> + <li><a name="toc-GNU-Free-Documentation-License-1" href="GNU-Free-Documentation-License.html#GNU-Free-Documentation-License">A.1 GNU Free Documentation License</a></li> + </ul></li> + <li><a name="toc-Index-1" href="Index.html#Index">Index</a></li> +</ul> +</div> + + +<a name="Top"></a> +<div class="header"> +<p> +Next: <a href="Introduction.html#Introduction" accesskey="n" rel="next">Introduction</a>, Up: <a href="../dir/index.html" accesskey="u" rel="up">(dir)</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> +<hr> +<a name="Sly"></a> +<h1 class="top">Sly</h1> + +<p>Copyright © 2013, 2014 David Thompson <a href="mailto:davet@gnu.org">davet@gnu.org</a> +</p> +<blockquote> +<p>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”. +</p> +<p>A copy of the license is also available from the Free Software +Foundation Web site at <a href="http://www.gnu.org/licenses/fdl.html">http://www.gnu.org/licenses/fdl.html</a>. +</p> +</blockquote> + +<p>The document was typeset with +<a href="http://www.texinfo.org/">GNU Texinfo</a>. +</p> + + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">• <a href="Introduction.html#Introduction" accesskey="1">Introduction</a>:</td><td> </td><td align="left" valign="top">About Sly. +</td></tr> +<tr><td align="left" valign="top">• <a href="Installation.html#Installation" accesskey="2">Installation</a>:</td><td> </td><td align="left" valign="top">Installing Sly. +</td></tr> +<tr><td align="left" valign="top">• <a href="Getting-Started.html#Getting-Started" accesskey="3">Getting Started</a>:</td><td> </td><td align="left" valign="top">Writing your first Sly program. +</td></tr> +<tr><td align="left" valign="top">• <a href="API-Reference.html#API-Reference" accesskey="4">API Reference</a>:</td><td> </td><td align="left" valign="top">Sly programming interface. +</td></tr> +<tr><td align="left" valign="top">• <a href="Contributing.html#Contributing" accesskey="5">Contributing</a>:</td><td> </td><td align="left" valign="top">Help improve Sly! +</td></tr> +<tr><td align="left" valign="top">• <a href="Copying-This-Manual.html#Copying-This-Manual" accesskey="6">Copying This Manual</a>:</td><td> </td><td align="left" valign="top">The license of this manual. +</td></tr> +<tr><td align="left" valign="top">• <a href="Index.html#Index" accesskey="7">Index</a>:</td><td> </td><td align="left" valign="top"> +</td></tr> +</table> + + +<hr> +<div class="header"> +<p> +Next: <a href="Introduction.html#Introduction" accesskey="n" rel="next">Introduction</a>, Up: <a href="../dir/index.html" accesskey="u" rel="up">(dir)</a> [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index" rel="index">Index</a>]</p> +</div> + + + +</body> +</html> |