From 25c5eac5e6ca1035db1eddd7bea9ac78531da57e Mon Sep 17 00:00:00 2001 From: David Thompson Date: Thu, 28 Dec 2023 11:23:49 -0500 Subject: Delete manuals! Good riddance! These are hosted on files.dthompson.us now! --- manuals/sly/API-Reference.html | 96 ---- manuals/sly/Agendas.html | 163 ------- manuals/sly/Booting.html | 88 ---- manuals/sly/Cameras.html | 81 ---- manuals/sly/Colors.html | 81 ---- manuals/sly/Contributing.html | 89 ---- manuals/sly/Copying-This-Manual.html | 86 ---- manuals/sly/Coroutines.html | 134 ------ manuals/sly/Development-Environment.html | 91 ---- manuals/sly/Easings.html | 129 ------ manuals/sly/Examples.html | 94 ---- manuals/sly/Fonts.html | 81 ---- manuals/sly/Framebuffers.html | 81 ---- manuals/sly/GNU-Free-Documentation-License.html | 554 ------------------------ manuals/sly/Getting-Started.html | 82 ---- manuals/sly/Index.html | 475 -------------------- manuals/sly/Input.html | 94 ---- manuals/sly/Installation.html | 98 ----- manuals/sly/Introduction.html | 120 ----- manuals/sly/Joystick.html | 188 -------- manuals/sly/Keyboard.html | 137 ------ manuals/sly/Live-Reloading.html | 101 ----- manuals/sly/Math.html | 101 ----- manuals/sly/Miscellaneous.html | 189 -------- manuals/sly/Miscellaneous_002dUtilities.html | 147 ------- manuals/sly/Mouse.html | 138 ------ manuals/sly/Quaternions.html | 185 -------- manuals/sly/REPL.html | 107 ----- manuals/sly/Rectangles.html | 262 ----------- manuals/sly/Render-Combinators.html | 84 ---- manuals/sly/Rendering.html | 108 ----- manuals/sly/Requirements.html | 91 ---- manuals/sly/Shaders.html | 80 ---- manuals/sly/Shapes.html | 81 ---- manuals/sly/Signals.html | 332 -------------- manuals/sly/Sprites.html | 116 ----- manuals/sly/Textures.html | 81 ---- manuals/sly/The-Game-Loop.html | 114 ----- manuals/sly/Time.html | 105 ----- manuals/sly/Transforms.html | 236 ---------- manuals/sly/Tweening.html | 101 ----- manuals/sly/Tweens.html | 99 ----- manuals/sly/Utilities.html | 90 ---- manuals/sly/Vectors.html | 220 ---------- manuals/sly/Window-Creation.html | 177 -------- manuals/sly/index.html | 201 --------- 46 files changed, 6588 deletions(-) delete mode 100644 manuals/sly/API-Reference.html delete mode 100644 manuals/sly/Agendas.html delete mode 100644 manuals/sly/Booting.html delete mode 100644 manuals/sly/Cameras.html delete mode 100644 manuals/sly/Colors.html delete mode 100644 manuals/sly/Contributing.html delete mode 100644 manuals/sly/Copying-This-Manual.html delete mode 100644 manuals/sly/Coroutines.html delete mode 100644 manuals/sly/Development-Environment.html delete mode 100644 manuals/sly/Easings.html delete mode 100644 manuals/sly/Examples.html delete mode 100644 manuals/sly/Fonts.html delete mode 100644 manuals/sly/Framebuffers.html delete mode 100644 manuals/sly/GNU-Free-Documentation-License.html delete mode 100644 manuals/sly/Getting-Started.html delete mode 100644 manuals/sly/Index.html delete mode 100644 manuals/sly/Input.html delete mode 100644 manuals/sly/Installation.html delete mode 100644 manuals/sly/Introduction.html delete mode 100644 manuals/sly/Joystick.html delete mode 100644 manuals/sly/Keyboard.html delete mode 100644 manuals/sly/Live-Reloading.html delete mode 100644 manuals/sly/Math.html delete mode 100644 manuals/sly/Miscellaneous.html delete mode 100644 manuals/sly/Miscellaneous_002dUtilities.html delete mode 100644 manuals/sly/Mouse.html delete mode 100644 manuals/sly/Quaternions.html delete mode 100644 manuals/sly/REPL.html delete mode 100644 manuals/sly/Rectangles.html delete mode 100644 manuals/sly/Render-Combinators.html delete mode 100644 manuals/sly/Rendering.html delete mode 100644 manuals/sly/Requirements.html delete mode 100644 manuals/sly/Shaders.html delete mode 100644 manuals/sly/Shapes.html delete mode 100644 manuals/sly/Signals.html delete mode 100644 manuals/sly/Sprites.html delete mode 100644 manuals/sly/Textures.html delete mode 100644 manuals/sly/The-Game-Loop.html delete mode 100644 manuals/sly/Time.html delete mode 100644 manuals/sly/Transforms.html delete mode 100644 manuals/sly/Tweening.html delete mode 100644 manuals/sly/Tweens.html delete mode 100644 manuals/sly/Utilities.html delete mode 100644 manuals/sly/Vectors.html delete mode 100644 manuals/sly/Window-Creation.html delete mode 100644 manuals/sly/index.html (limited to 'manuals/sly') diff --git a/manuals/sly/API-Reference.html b/manuals/sly/API-Reference.html deleted file mode 100644 index 323ebfe..0000000 --- a/manuals/sly/API-Reference.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - -Sly: API Reference - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Top   [Contents][Index]

-
-
- -

4 API Reference

- - - - - - - - - - - - - - - diff --git a/manuals/sly/Agendas.html b/manuals/sly/Agendas.html deleted file mode 100644 index b30aa98..0000000 --- a/manuals/sly/Agendas.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - -Sly: Agendas - - - - - - - - - - - - - - - - - - - - -
-

-Previous: , Up: Time   [Contents][Index]

-
-
- -

4.3.3 Agendas

- -
-
(use-modules (sly agenda))
-
- -

Agendas are used to schedule procedures to be called at distinct -points in time. One agenda, stored in the current-agenda -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 REPL for one such case), the parameter can be -rebound using parameterize or with-agenda form. -

-
-
Scheme Procedure: make-agenda
-

Create a new, empty agenda. -

- -
-
Scheme Syntax: agenda? obj
-

Return #t if obj is an agenda. -

- -
-
Scheme Variable: current-agenda
-

A parameter containing the current, dynamically scoped agenda object. -

- -
-
Scheme Procedure: agenda-time
-

Return the time of the current agenda. -

- -
-
Scheme Syntax: with-agenda agenda body
-

Evaluate body with current-agenda bound to agenda. -

- -
-
Scheme Procedure: agenda-tick!
-

Increment time by 1 for the current agenda and run scheduled -procedures. -

- -
-
Scheme Procedure: agenda-clear!
-

Remove all scheduled procedures from the current agenda. -

- -
-
Scheme Procedure: schedule thunk [delay]
-

Schedule thunk to be applied after delay ticks of the -current agenda. The default delay is one tick. -

- -
-
Scheme Procedure: schedule-interval thunk interval
-

Schedule thunk to be applied every interval ticks of the -current agenda, forever. -

- -
-
Scheme Procedure: schedule-each thunk
-

Schedule thunk to be applied upon every tick of the current -agenda, forever. -

- -

Coroutines 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 wait -procedure, algorithms that span multiple ticks of game time can be -written in a straightforward, natural way. -

-
-
Scheme Procedure: wait delay
-

Abort the current coroutine prompt and schedule the continuation to be -run after delay ticks of the current agenda. -

-
-
-

-Previous: , Up: Time   [Contents][Index]

-
- - - - - diff --git a/manuals/sly/Booting.html b/manuals/sly/Booting.html deleted file mode 100644 index b74cec8..0000000 --- a/manuals/sly/Booting.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - -Sly: Booting - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Up: API Reference   [Contents][Index]

-
-
- -

4.1 Booting

- - - - - - - - - - - diff --git a/manuals/sly/Cameras.html b/manuals/sly/Cameras.html deleted file mode 100644 index 7985f90..0000000 --- a/manuals/sly/Cameras.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - -Sly: Cameras - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Rendering   [Contents][Index]

-
-
- -

4.5.6 Cameras

- - - - - - diff --git a/manuals/sly/Colors.html b/manuals/sly/Colors.html deleted file mode 100644 index 507eefe..0000000 --- a/manuals/sly/Colors.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - -Sly: Colors - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Rendering   [Contents][Index]

-
-
- -

4.5.7 Colors

- - - - - - diff --git a/manuals/sly/Contributing.html b/manuals/sly/Contributing.html deleted file mode 100644 index 68e20dd..0000000 --- a/manuals/sly/Contributing.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - -Sly: Contributing - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Top   [Contents][Index]

-
-
- -

5 Contributing

- -

This project is a cooperative effort, and we need your help to make it -grow! Please get in touch with us on #sly on the Freenode IRC -network. We welcome ideas, bug reports, patches, and anything that -may be helpful to the project. -

-

The git source code repository can be found at -https://git.dthompson.us/sly.git. -

- - - - - diff --git a/manuals/sly/Copying-This-Manual.html b/manuals/sly/Copying-This-Manual.html deleted file mode 100644 index 8c113ce..0000000 --- a/manuals/sly/Copying-This-Manual.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - -Sly: Copying This Manual - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Top   [Contents][Index]

-
-
- -

Appendix A Copying This Manual

- - - - - - - - - - diff --git a/manuals/sly/Coroutines.html b/manuals/sly/Coroutines.html deleted file mode 100644 index 26e5c73..0000000 --- a/manuals/sly/Coroutines.html +++ /dev/null @@ -1,134 +0,0 @@ - - - - - -Sly: Coroutines - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Time   [Contents][Index]

-
-
- -

4.3.2 Coroutines

- -
-
(use-modules (sly coroutine))
-
- -

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. -

-

To run a procedure as a coroutine, use the call-with-coroutine -procedure. Once inside the coroutine prompt, the yield -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. -

-

Coroutines are particularly useful in conjunction with Agendas. -

-
-
Scheme Procedure: call-with-coroutine thunk
-

Apply thunk within a coroutine prompt. -

- -
-
Scheme Syntax: coroutine body
-

Evaluate body within a coroutine prompt. -

- -
-
Scheme Syntax: colambda args body
-

Syntacic sugar for a lambda expression whose body is run -within a coroutine prompt. -

- -
-
Scheme Syntax: codefine (name formals …) body
-

Syntacic sugar for defining a procedure called name with formal -arguments formals whose body is run within a coroutine -prompt. -

- -
-
Scheme Syntax: codefine* (name formals …) body
-

Syntacic sugar for defining a procedure called name with -optional and keyword arguments formals whose body is run -within a coroutine prompt. -

- -
-
Scheme Procedure: yield callback
-

Yield continuation to the procedure callback. -

- - - - - - diff --git a/manuals/sly/Development-Environment.html b/manuals/sly/Development-Environment.html deleted file mode 100644 index 190c124..0000000 --- a/manuals/sly/Development-Environment.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - -Sly: Development Environment - - - - - - - - - - - - - - - - - - - - -
-

-Previous: , Up: Installation   [Contents][Index]

-
-
- -

2.3 Development Environment

- -

The ideal tools to use for developing Sly applications are: -

- - -

See their respective home pages for installation and usage instructions. -

- - - - - diff --git a/manuals/sly/Easings.html b/manuals/sly/Easings.html deleted file mode 100644 index c73eebf..0000000 --- a/manuals/sly/Easings.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - -Sly: Easings - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Up: Tweens   [Contents][Index]

-
-
- -

4.2.4.1 Easings

- -

Easing procedures specify the rate of change of a value alpha -over time. Easings may be composed to form complex animation. -

-

The following procedures are used to control repitition by clamping -alpha to the range [0, 1] in different ways. -

-
-
Scnheme Procedure: ease-loop alpha
-

When alpha reaches 1, start over from 0. -

- -
-
Scheme Procedure: ease-reflect alpha
-

When alpha reaches 1, work backwards to 0. When alpha -reaches 0, work forwards to 1. -

- -

The following easing functions control the rate of change of an -animation: -

-
-
Scheme Procedure: ease-linear alpha
-
- -
-
Scheme Procedure: ease-in-sine alpha
-
- -
-
Scheme Procedure: ease-out-sine alpha
-
- -
-
Scheme Procedure: ease-in-out-sine alpha
-
- -
-
Scheme Procedure: ease-in-quad alpha
-
- -
-
Scheme Procedure: ease-out-quad alpha
-
- -
-
Scheme Procedure: ease-in-out-quad alpha
-
- - - - - - diff --git a/manuals/sly/Examples.html b/manuals/sly/Examples.html deleted file mode 100644 index b2a06fc..0000000 --- a/manuals/sly/Examples.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - -Sly: Examples - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Installation   [Contents][Index]

-
-
- -

2.2 Examples

- -

To test your Sly installation, try running some of the included -example programs. Examples can be found in the -share/sly/examples directory, relative to the installation -prefix. -

-

To run an example, invoke Guile with the relevant file, such as: -guile simple.scm. If successful, a window with a sprite in the -center will open. -

-

A more complex example can further test your installation and show off -what Sly can do. Try running the “2048” example in -share/sly/examples/2048 with guile 2048.scm. -

- - - - - diff --git a/manuals/sly/Fonts.html b/manuals/sly/Fonts.html deleted file mode 100644 index decef4d..0000000 --- a/manuals/sly/Fonts.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - -Sly: Fonts - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Rendering   [Contents][Index]

-
-
- -

4.5.4 Fonts

- - - - - - diff --git a/manuals/sly/Framebuffers.html b/manuals/sly/Framebuffers.html deleted file mode 100644 index 1f5e894..0000000 --- a/manuals/sly/Framebuffers.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - -Sly: Framebuffers - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Rendering   [Contents][Index]

-
-
- -

4.5.8 Framebuffers

- - - - - - diff --git a/manuals/sly/GNU-Free-Documentation-License.html b/manuals/sly/GNU-Free-Documentation-License.html deleted file mode 100644 index a95838f..0000000 --- a/manuals/sly/GNU-Free-Documentation-License.html +++ /dev/null @@ -1,554 +0,0 @@ - - - - - -Sly: GNU Free Documentation License - - - - - - - - - - - - - - - - - - - - -
-

-Up: Copying This Manual   [Contents][Index]

-
-
- -

A.1 GNU Free Documentation License

-
Version 1.3, 3 November 2008 -
- -
-
Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-http://fsf.org/
-
-Everyone is permitted to copy and distribute verbatim copies
-of this license document, but changing it is not allowed.
-
- -
    -
  1. PREAMBLE - -

    The purpose of this License is to make a manual, textbook, or other -functional and useful document free 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. -

    -

    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. -

    -

    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. -

    -
  2. APPLICABILITY AND DEFINITIONS - -

    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. -

    -

    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. -

    -

    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. -

    -

    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. -

    -

    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. -

    -

    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”. -

    -

    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. -

    -

    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. -

    -

    The “publisher” means any person or entity that distributes copies -of the Document to the public. -

    -

    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. -

    -

    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. -

    -
  3. VERBATIM COPYING - -

    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. -

    -

    You may also lend copies, under the same conditions stated above, and -you may publicly display copies. -

    -
  4. COPYING IN QUANTITY - -

    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. -

    -

    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. -

    -

    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. -

    -

    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. -

    -
  5. MODIFICATIONS - -

    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: -

    -
      -
    1. 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. - -
    2. 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. - -
    3. State on the Title page the name of the publisher of the -Modified Version, as the publisher. - -
    4. Preserve all the copyright notices of the Document. - -
    5. Add an appropriate copyright notice for your modifications -adjacent to the other copyright notices. - -
    6. 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. - -
    7. Preserve in that license notice the full lists of Invariant Sections -and required Cover Texts given in the Document’s license notice. - -
    8. Include an unaltered copy of this License. - -
    9. 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. - -
    10. 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. - -
    11. 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. - -
    12. 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. - -
    13. Delete any section Entitled “Endorsements”. Such a section -may not be included in the Modified Version. - -
    14. Do not retitle any existing section to be Entitled “Endorsements” or -to conflict in title with any Invariant Section. - -
    15. Preserve any Warranty Disclaimers. -
    - -

    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. -

    -

    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. -

    -

    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. -

    -

    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. -

    -
  6. COMBINING DOCUMENTS - -

    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. -

    -

    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. -

    -

    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.” -

    -
  7. COLLECTIONS OF DOCUMENTS - -

    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. -

    -

    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. -

    -
  8. AGGREGATION WITH INDEPENDENT WORKS - -

    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. -

    -

    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. -

    -
  9. TRANSLATION - -

    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. -

    -

    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. -

    -
  10. TERMINATION - -

    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. -

    -

    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. -

    -

    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. -

    -

    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. -

    -
  11. FUTURE REVISIONS OF THIS LICENSE - -

    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 -http://www.gnu.org/copyleft/. -

    -

    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. -

    -
  12. RELICENSING - -

    “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. -

    -

    “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. -

    -

    “Incorporate” means to publish or republish a Document, in whole or -in part, as part of another Document. -

    -

    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. -

    -

    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. -

    -
- - -

ADDENDUM: How to use this License for your documents

- -

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: -

-
-
  Copyright (C)  year  your name.
-  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''.
-
- -

If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, -replace the “with…Texts.” line with this: -

-
-
    with the Invariant Sections being list their titles, with
-    the Front-Cover Texts being list, and with the Back-Cover Texts
-    being list.
-
- -

If you have Invariant Sections without Cover Texts, or some other -combination of the three, merge those two alternatives to suit the -situation. -

-

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. -

- -
-
-

-Up: Copying This Manual   [Contents][Index]

-
- - - - - diff --git a/manuals/sly/Getting-Started.html b/manuals/sly/Getting-Started.html deleted file mode 100644 index ab235ec..0000000 --- a/manuals/sly/Getting-Started.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - -Sly: Getting Started - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Top   [Contents][Index]

-
-
- -

3 Getting Started

- - - - - - - diff --git a/manuals/sly/Index.html b/manuals/sly/Index.html deleted file mode 100644 index e44f08d..0000000 --- a/manuals/sly/Index.html +++ /dev/null @@ -1,475 +0,0 @@ - - - - - -Sly: Index - - - - - - - - - - - - - - - - - - - -
-

-Previous: , Up: Top   [Contents][Index]

-
-
- -

Index

- -
Jump to:   2 -   -< -   -
-A -   -B -   -C -   -D -   -E -   -F -   -H -   -I -   -J -   -K -   -L -   -M -   -N -   -O -   -P -   -Q -   -R -   -S -   -T -   -V -   -W -   -Y -   -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Index Entry  Section

2
2pi: Miscellaneous

<
<quaternion>: Quaternions
<rect>: Rectangles
<vector2>: Vectors
<vector3>: Vectors
<vector4>: Vectors

A
after-game-loop-error-hook: The Game Loop
agenda-clear!: Agendas
agenda-tick!: Agendas
agenda-time: Agendas
agenda?: Agendas
atan-degrees: Miscellaneous
axis-scale: Joystick
axis-value: Joystick
axis-value-raw: Joystick

B
build-transform: Transforms
button-down?: Joystick

C
call-with-coroutine: Coroutines
chain: Miscellaneous-Utilities
chain*: Miscellaneous-Utilities
clamp: Miscellaneous
close-window: Window Creation
codefine: Coroutines
codefine*: Coroutines
colambda: Coroutines
coroutine: Coroutines
cos-degrees: Miscellaneous
cotan: Miscellaneous
current-agenda: Agendas

D
define-guardian: Miscellaneous-Utilities
define-signal: Signals
degrees->radians: Miscellaneous
draw-hook: The Game Loop

E
ease-in-out-quad: Easings
ease-in-out-sine: Easings
ease-in-quad: Easings
ease-in-sine: Easings
ease-linear: Easings
ease-loop: Easings
ease-out-quad: Easings
ease-out-sine: Easings
ease-reflect: Easings
enable-joystick: Joystick

F
forever: Miscellaneous-Utilities

H
half: Miscellaneous
hook->signal: Signals

I
identity-quaternion: Quaternions
identity-transform: Transforms

J
joystick-axis-hook: Joystick
joystick-button-press-hook: Joystick
joystick-button-release-hook: Joystick
joystick-name: Joystick
joystick-num-axes: Joystick
joystick-num-buttons: Joystick

K
key-arrows: Keyboard
key-directions: Keyboard
key-down?: Keyboard
key-last-down: Keyboard
key-last-up: Keyboard
key-press-hook: Keyboard
key-release-hook: Keyboard
key-wasd: Keyboard

L
lerp: Miscellaneous
linear-scale: Miscellaneous
list->vlist*: Miscellaneous-Utilities
list->vlist*: Miscellaneous-Utilities
live-reload: Live Reloading
load-sprite: Sprites
look-at: Transforms

M
magnitude: Vectors
make-agenda: Agendas
make-directional-signal: Joystick
make-directional-signal-raw: Joystick
make-lerp: Miscellaneous
make-quaternion: Quaternions
make-quaternion: Quaternions
make-rect: Rectangles
make-signal: Signals
make-sprite: Sprites
make-transform: Transforms
make-window: Window Creation
memoize: Miscellaneous-Utilities
modulo*: Miscellaneous
mouse-click-hook: Mouse
mouse-down?: Mouse
mouse-last-down: Mouse
mouse-last-up: Mouse
mouse-move-hook: Mouse
mouse-position: Mouse
mouse-press-hook: Mouse
mouse-x: Mouse
mouse-y: Mouse

N
normalize: Vectors
null-quaternion: Quaternions
null-rect: Rectangles
null-transform: Transforms
num-joysticks: Joystick

O
open-window: Window Creation
orthographic-projection: Transforms

P
perspective-projection: Transforms
pi: Miscellaneous
pi/2: Miscellaneous

Q
quaternion: Quaternions
quaternion: Quaternions
quaternion*: Quaternions
quaternion->vector: Quaternions
quaternion-magnitude: Quaternions
quaternion-normalize: Quaternions
quaternion-slerp: Quaternions
quaternion-w: Quaternions
quaternion-x: Quaternions
quaternion-y: Quaternions
quaternion-z: Quaternions
quaternion?: Quaternions

R
radians->degrees: Miscellaneous
raw-axis-max: Joystick
raw-axis-min: Joystick
rect-bottom: Rectangles
rect-bottom-left: Rectangles
rect-bottom-right: Rectangles
rect-center: Rectangles
rect-center-x: Rectangles
rect-center-y: Rectangles
rect-clamp: Rectangles
rect-clip: Rectangles
rect-contains?: Rectangles
rect-contains?: Rectangles
rect-half-height: Rectangles
rect-half-width: Rectangles
rect-height: Rectangles
rect-inflate: Rectangles
rect-inflate: Rectangles
rect-intersects?: Rectangles
rect-left: Rectangles
rect-move: Rectangles
rect-move: Rectangles
rect-position: Rectangles
rect-right: Rectangles
rect-size: Rectangles
rect-top: Rectangles
rect-top-left: Rectangles
rect-top-right: Rectangles
rect-union: Rectangles
rect-width: Rectangles
rect-within?: Rectangles
rect-x: Rectangles
rect-y: Rectangles
rect?: Rectangles
render-sprite: Sprites
resume-game-loop: REPL
rotate: Transforms
rotate-x: Transforms
rotate-y: Transforms
rotate-z: Transforms
run-game-loop: The Game Loop

S
scale: Transforms
scale: Transforms
schedule: Agendas
schedule-each: Agendas
schedule-interval: Agendas
signal-constant: Signals
signal-count: Signals
signal-delay: Signals
signal-drop: Signals
signal-drop-repeats: Signals
signal-every: Signals
signal-filter: Signals
signal-fold: Signals
signal-generator: Signals
signal-let: Signals
signal-let*: Signals
signal-map: Signals
signal-merge: Signals
signal-negate: Signals
signal-ref: Signals
signal-ref-maybe: Signals
signal-sample: Signals
signal-sample-on: Signals
signal-set!: Signals
signal-since: Signals
signal-switch: Signals
signal-tap: Signals
signal-throttle: Signals
signal-time: Signals
signal-timestamp: Signals
signal-zip: Signals
signal?: Signals
sin-degrees: Miscellaneous
sprite-mesh: Sprites
sprite-texture: Sprites
sprite?: Sprites
square: Miscellaneous
start-sly-repl: REPL
stop-game-loop: The Game Loop

T
tan-degrees: Miscellaneous
trampoline: Miscellaneous-Utilities
transform*: Transforms
transform*!: Transforms
transform+: Transforms
transform-matrix: Transforms
transform-position: Transforms
transform-vector2: Transforms
transform?: Transforms
translate: Transforms
transpose: Transforms
tween: Tweening

V
v*: Vectors
v+: Vectors
v-: Vectors
vcross: Vectors
vdot: Vectors
vector->quaternion: Quaternions
vector2: Vectors
vector2?: Vectors
vector3: Vectors
vector3?: Vectors
vector4: Vectors
vector4?: Vectors
vlerp: Vectors
vmap: Vectors
vw: Vectors
vx: Vectors
vy: Vectors
vz: Vectors

W
wait: Agendas
window-close-hook: Window Creation
window-fullscreen?: Window Creation
window-height: Window Creation
window-resize-hook: Window Creation
window-resolution: Window Creation
window-size: Window Creation
window-title: Window Creation
window-width: Window Creation
window?: Window Creation
with-agenda: Agendas
with-window: Window Creation

Y
yield: Coroutines

-
Jump to:   2 -   -< -   -
-A -   -B -   -C -   -D -   -E -   -F -   -H -   -I -   -J -   -K -   -L -   -M -   -N -   -O -   -P -   -Q -   -R -   -S -   -T -   -V -   -W -   -Y -   -
- -
-
-

-Previous: , Up: Top   [Contents][Index]

-
- - - - - diff --git a/manuals/sly/Input.html b/manuals/sly/Input.html deleted file mode 100644 index 6eb4aea..0000000 --- a/manuals/sly/Input.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - -Sly: Input - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: API Reference   [Contents][Index]

-
-
- -

4.4 Input

- -

Sly can handle user input from a keyboard, mouse, or joystick. The -input modules expose signals that represent various input -events (see Signals). -

- - - - - - - - - - - diff --git a/manuals/sly/Installation.html b/manuals/sly/Installation.html deleted file mode 100644 index 24f3045..0000000 --- a/manuals/sly/Installation.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - -Sly: Installation - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Top   [Contents][Index]

-
-
- -

2 Installation

- -

Sly is available for download from its website at -sly.dthompson.us. This section describes the software -requirements of Sly, as well as how to install it. -

-

The build procedure for Sly is the same as for GNU software packages, -and is not covered here. Please see the files README.org and -INSTALL.org for additional details. -

- - - - - - - - - - - diff --git a/manuals/sly/Introduction.html b/manuals/sly/Introduction.html deleted file mode 100644 index c4eabcc..0000000 --- a/manuals/sly/Introduction.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - -Sly: Introduction - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Top   [Contents][Index]

-
-
- -

1 Introduction

- -

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. -

-

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. -

-

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 what -the state of the world should be like at any given time, rather than -how to get there. -

-
-
-

-Next: , Previous: , Up: Top   [Contents][Index]

-
- - - - - diff --git a/manuals/sly/Joystick.html b/manuals/sly/Joystick.html deleted file mode 100644 index 68748c3..0000000 --- a/manuals/sly/Joystick.html +++ /dev/null @@ -1,188 +0,0 @@ - - - - - -Sly: Joystick - - - - - - - - - - - - - - - - - - - - -
-

-Previous: , Up: Input   [Contents][Index]

-
-
- -

4.4.3 Joystick

- -
-
(use-modules (sly input joystick))
-
- -

Joystick hooks, signals, and procedures. -

-

Before using joystick procedures, you must first call the -initialization procedure enable-joystick. -

-
-
Scheme Procedure: enable-joystick
-

Initialize joystick module. -

- -
-
Scheme Procedure: joystick-num-axes idx
-

Get number of axes of joystick at idx. -

- -
-
Scheme Procedure: joystick-num-buttons idx
-

Get number of buttons of joystick at idx. -

- -
-
Scheme Variable: joystick-axis-hook
-

This hook is run whenever a joystick motion occurs. Procedures added -to this hook should accept three arguments: which, the joystick -ID; axis, the axis ID; and value, the motion coordinate. -

- -
-
Scheme Variable: joystick-button-press-hook
-

This hook is run whenever a joystick button is pressed. Procedures -added to this hook should accept two arguments: which, the -joystick ID; button, the button ID. -

- -
-
Scheme Variable: joystick-button-release-hook
-

This hook is run whenever a joystick button is released. Procedures -added to this hook should accept two arguments: which, the -joystick ID; button, the button ID. -

- -
-
Scheme Variable: raw-axis-min
-

-32768 -

- -
-
Scheme Variable: raw-axis-max
-

32767 -

- -
-
Scheme Procedure: axis-value-raw idx axis
-

Create a signal on the axis at axis of the joystick at -idx; joystick axis values are stored in a signed 16 bit integer -and so, values range from [raw-axis-min, raw-axis-max]. -

- -
-
Scheme Procedure: axis-value idx axis
-

Create a signal for the value of axis on joystick idx; -values are scaled to the range [-1,1]. -

- -
-
Scheme Procedure: button-down? idx n
-

Create a signal for the state of button n on joystick at -idx. -

- -
-
Scheme Procedure: make-directional-signal idx x-axis y-axis
-

Create a signal for a directional pad or analog stick with x -and y axes. Values are scaled to the range [-1,1]. -

- -
-
Scheme Procedure: make-directional-signal-raw idx x-axis y-axis
-

Create a signal for a directional pad or analog stick with x -and y axes. Values range from [raw-axis-min, -raw-axis-max]. -

- -
-
Scheme Procedure: axis-scale raw-value
-

Map raw-value in the range [raw-axis-min, -raw-axis-max] to a value in the range [-1, 1]. -

- -
-
Scheme Procedure: joystick-name joystick
-

Return the name of joystick. -

- -
-
Scheme Procedure: num-joysticks
-

Return the number of joysticks available. -

-
-
-

-Previous: , Up: Input   [Contents][Index]

-
- - - - - diff --git a/manuals/sly/Keyboard.html b/manuals/sly/Keyboard.html deleted file mode 100644 index b0de8f3..0000000 --- a/manuals/sly/Keyboard.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - -Sly: Keyboard - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Up: Input   [Contents][Index]

-
-
- -

4.4.1 Keyboard

- -
-
(use-modules (sly input keyboard))
-
- -

Keyboard hooks, signals, and procedures. -

-
-
Scheme Variable: key-press-hook
-

This hook is run whenever a key is pressed down. Procedures added to -this hook should accept two arguments: key, a symbol, and -char, a unicode character. -

- -
-
Scheme Variable: key-release-hook
-

This hook is run whenever a key is released. Procedures added to this -hook should accept two arguments: key, a symbol, and -char, a unicode character. -

- -
-
Scheme Signal: key-last-down
-

The last key pressed. -

- -
-
Scheme Signal: key-last-up
-

The last key released. -

- -
-
Scheme Procedure: key-down? key
-

Create a signal for the state of key. The signal value is -#t when key is pressed and #f otherwise. -

- -

A lot of games use directional keys to control the player. The below -procedure and signals make this style of movement easy to use. -

-
-
Scheme Procedure: key-directions up down left right
-

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: up, down, left, right. -

- -
-
Scheme Signal: key-arrows
-

A 2D directional vector based on the state of the arrow keys. -

- -
-
Scheme Signal: key-wasd
-

A 2D directional vector based on the state of the WASD keys. -

- - - - - - diff --git a/manuals/sly/Live-Reloading.html b/manuals/sly/Live-Reloading.html deleted file mode 100644 index e4ebf96..0000000 --- a/manuals/sly/Live-Reloading.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - -Sly: Live Reloading - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Utilities   [Contents][Index]

-
-
- -

4.6.2 Live Reloading

- -
-
(use-modules (sly utils live-reload))
-
- -

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. -

-
-
Function: live-reload proc [polling-interval]
-

Return a new procedure that re-applies proc whenever the -associated file is modified. The new procedure returns a signal -(see Signals) that contains the return value of proc. The -first argument to proc must be a file name string. -

-

A simple polling method is used to test for updates. Files are polled -every polling-interval ticks (120 by default). -

- - - - - - diff --git a/manuals/sly/Math.html b/manuals/sly/Math.html deleted file mode 100644 index 989d205..0000000 --- a/manuals/sly/Math.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - -Sly: Math - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: API Reference   [Contents][Index]

-
-
- -

4.2 Math

- -

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. -

- - - - - - - - - - - - - - diff --git a/manuals/sly/Miscellaneous.html b/manuals/sly/Miscellaneous.html deleted file mode 100644 index d94bed8..0000000 --- a/manuals/sly/Miscellaneous.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - - -Sly: Miscellaneous - - - - - - - - - - - - - - - - - - - - -
-

-Previous: , Up: Math   [Contents][Index]

-
-
- -

4.2.6 Miscellaneous

- -
-
(use-modules (sly math))
-
- -

A grab bag of commonly used math functions and constants. -

-
-
Scheme Variable: pi
-

An approximation of \pi, the ratio of a circle’s circumference to its -diameter. -

- -
-
Scheme Variable: 2pi
-

2\pi -

- -
-
Scheme Variable: pi/2
-

\pi/2 -

- -
-
Scheme Procedure: degrees->radians angle
-

Convert angle from degrees to radians. -

- -
-
Scheme Procedure: radians->degrees angle
-

Convert angle from radians to degrees. -

- -
-
Scheme Procedure: sin-degrees angle
-

Return the sine of angle, where angle is measured in -degrees. -

- -
-
Scheme Procedure: cos-degrees angle
-

Return the cosine of angle, where angle is measured in -degrees. -

- -
-
Scheme Procedure: tan-degrees angle
-

Return the tangent of angle, where angle is measured in -degrees. -

- -
-
Scheme Procedure: atan-degrees y x
-

Return the arctangent of y and x, where y and -x are measured in degrees. -

- -
-
Scheme Procedure: cotan z
-

Return the cotangent of z. -

- -
-
Scheme Procedure: clamp min max x
-

Restrict x to the range [min, max], assuming that -min is actually less than max. -

- -
-
Scheme Procedure: linear-scale min max a b n
-

Map n in the range [min, max] to the range [a, b]. -

- -
-
Scheme Procedure: half x
-

Return x / 2. -

- -
-
Scheme Procedure: square x
-

Return x^2. -

- -
-
Scheme Procedure: make-lerp + *
-

Return a new procedure that accepts three arguments: start, -end, and alpha. The returned procedure uses the -procedures + and * to linearly interpolate a value between -start and end. alpha should always be in the range -[0, 1]. -

- -
-
Scheme Procedure: lerp start end alpha
-

Return the linear interpolation between the numbers start and -end with scalar factor alpha. -

- -
-
Scheme Procedure: modulo* x y
-

Return the remainder of x / y. Works like regular -modulo, except that x and y may be rational numbers -or inexact numbers. -

-
-
-

-Previous: , Up: Math   [Contents][Index]

-
- - - - - diff --git a/manuals/sly/Miscellaneous_002dUtilities.html b/manuals/sly/Miscellaneous_002dUtilities.html deleted file mode 100644 index 7d160f4..0000000 --- a/manuals/sly/Miscellaneous_002dUtilities.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - -Sly: Miscellaneous-Utilities - - - - - - - - - - - - - - - - - - - - -
-

-Previous: , Up: Utilities   [Contents][Index]

-
-
- -

4.6.3 Miscellaneous

- -
-
(use-modules (sly utils))
-
- -

Miscellaneous helpful procedures. -

-
-
Scheme Syntax: define-guardian name reaper
-

Define a new guardian called name and call reaper when -an object within the guardian is GC’d. Reaping is ensured to happen -from the same thread that is running the game loop. -

- -
-
Scheme Procedure: memoize proc
-

Return a memoizing version of proc. -

- -
-
Scheme Syntax: forever body
-

Evaluate body in an unbounded loop. Useful in coroutines that -have no end. -

- -
-
Scheme Syntax: trampoline proc-name
-

Create a new procedure that applies the procedure bound to -proc-name with all given arguments. -

- -
-
Scheme Syntax: chain* args (proc …) . rest
-

Handy macro for flattening nested procedure calls where the output of -an inner call is the last argument to the outer call. -

-
-
(chain* (list '(1 2) '(3 4))
-  (map +)
-  (fold + 0)) ;; => 10
-
- -
- -
-
Scheme Syntax: chain arg (proc …) . rest
-

Like chain* but for a single argument. -

-
-
(chain '(1 2 3 4)
-  (map 1+)
-  (fold + 0)) ;; => 14
-
- -
- -
-
Scheme Procedure: list->vlist* lst
-

Convert lst and all sub-lists within to vlists. -

- -
-
Scheme Procedure: list->vlist* lst index […]
-

Return the element at index index … in the nested vlist -structure vlist. -

- - - - - - diff --git a/manuals/sly/Mouse.html b/manuals/sly/Mouse.html deleted file mode 100644 index accf8f7..0000000 --- a/manuals/sly/Mouse.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - -Sly: Mouse - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Input   [Contents][Index]

-
-
- -

4.4.2 Mouse

- -
-
(use-modules (sly input mouse))
-
- -

Mouse hooks, signals, and procedures. -

-
-
Scheme Variable: mouse-move-hook
-

This hook is run whenever the mouse is moved. Procedures added to -this hook should accept two arguments: Numbers x and y. -

- -
-
Scheme Variable: mouse-press-hook
-

This hook is run whenever a mouse button is pressed. Procedures added -to this hook should accept three arguments: Symbol button and -numbers x and y. -

- -
-
Scheme Variable: mouse-click-hook
-

This hook is run whenever a mouse button is clicked. Procedures added -to this hook should accept three arguments: Symbol button and -numbers x and y. -

- -
-
Scheme Signal: mouse-x
-

The mouse X coordinate. -

- -
-
Scheme Signal: mouse-y
-

The mouse Y coordinate. -

- -
-
Scheme Signal: mouse-position
-

The mouse position as a 2D vector. -

- -
-
Scheme Signal: mouse-last-down
-

The last mouse button pressed. -

- -
-
Scheme Signal: mouse-last-up
-

The last mouse button clicked. -

- -
-
Scheme Procedure: mouse-down? button
-

Create a signal for the state of button. Value is #t when mouse button -is pressed or #f otherwise. -

- - - - - - diff --git a/manuals/sly/Quaternions.html b/manuals/sly/Quaternions.html deleted file mode 100644 index bde3992..0000000 --- a/manuals/sly/Quaternions.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - - -Sly: Quaternions - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Math   [Contents][Index]

-
-
- -

4.2.5 Quaternions

- -
-
(use-modules (sly math quaternion))
-
- -

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. -

-

Quaternions can be used in rotation transformations -(see Transforms), as well as converted to and from Vectors. -

-
-
Record Type: <quaternion>
-

Data type with 4 fields: w, x, y, z, in -that order. This type descriptor has been exposed for destructuring -via Guile’s (ice-9 match) module. -

- -
-
Scheme Procedure: make-quaternion v theta
-
Scheme Procedure: make-quaternion w x y z
-

Create a new quaternion from an axis angle (a 3D vector v plus -an angle theta) or from individual coordinates w, x, -y, and z. -

- -
-
Scheme Procedure: quaternion v theta
-
Scheme Procedure: quaternion w x y z
-

Alternate spelling of make-quaternion. -

- -
-
Scheme Syntax: quaternion? obj
-

Return #t if obj is a quaternion. -

- -
-
Scheme Syntax: quaternion-w q
-

Return the w coordinate of the quaternion q. -

- -
-
Scheme Syntax: quaternion-x q
-

Return the x coordinate of the quaternion q. -

- -
-
Scheme Syntax: quaternion-y q
-

Return the y coordinate of the quaternion q. -

- -
-
Scheme Syntax: quaternion-z q
-

Return the z coordinate of the quaternion q. -

- -
-
Scheme Variable: identity-quaternion
-

The multiplicative identity quaternion. -

- -
-
Scheme Variable: null-quaternion
-

A quaternion with all fields set to zero. -

- -
-
Scheme Procedure: quaternion* . quaternions
-

Return the product of all quaternions. Return -identity-quaternion if called without arguments. -

- -
-
Scheme Procedure: quaternion-slerp q1 q2 delta
-

Perform a spherical linear interpolation of the quaternions q1 -and q2 and blending factor delta. -

- -
-
Scheme Procedure: quaternion-magnitude q
-

Return the magnitude of the quaternion q. -

- -
-
Scheme Procedure: quaternion-normalize q
-

Return the normalized form of the quaternion q. -

- -
-
Scheme Procedure: vector->quaternion v
-

Convert the 4D vector v to a quaternion. -

- -
-
Scheme Procedure: quaternion->vector q
-

Convert the quaternion q to a 4D vector. -

- -
-
-

-Next: , Previous: , Up: Math   [Contents][Index]

-
- - - - - diff --git a/manuals/sly/REPL.html b/manuals/sly/REPL.html deleted file mode 100644 index 0811888..0000000 --- a/manuals/sly/REPL.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - - -Sly: REPL - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Up: Utilities   [Contents][Index]

-
-
- -

4.6.1 REPL

- -
-
(use-modules (sly utils repl))
-
- -

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 Geiser extension for GNU Emacs. -

-
-
Scheme Procedure: start-sly-repl [port]
-

Start a cooperative REPL server that listens on the given port. -By default, this port is 37146. Additionally, a process is scheduled -to poll the REPL server upon every tick of the game loop. -

- -

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 -resume-game-loop procedure will hand control back to the game -loop. -

-
-
Scheme Procedure: resume-game-loop
-

Abort from the error handling loop prompt and resume the game loop. -

- - - - - - diff --git a/manuals/sly/Rectangles.html b/manuals/sly/Rectangles.html deleted file mode 100644 index 7a1fb4f..0000000 --- a/manuals/sly/Rectangles.html +++ /dev/null @@ -1,262 +0,0 @@ - - - - - -Sly: Rectangles - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Math   [Contents][Index]

-
-
- -

4.2.2 Rectangles

- -
-
(use-modules (sly math rect))
-
- -

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. -

-

The <rect> type descriptor has been exposed for use with -Guile’s (ice-9 match) pattern matching module. -

-
-
Scheme Variable: <rect>
-

Rectangle data type with fields x, y, width, -height, in that order. -

- -
-
Scheme Procedure: make-rect x y width height
-

Create a new rectangle with position (x, y), and -dimensions (width, height). -

- -
-
Scheme Variable: null-rect
-

Rectangle with x, y, width, and height of 0. -

- -
-
Scheme Syntax: rect? obj
-

Return #t if obj is a rectangle. -

- -
-
Scheme Syntax: rect-x rect
-

Return the x coordinate of rect. -

- -
-
Scheme Syntax: rect-y rect
-

Return the x coordinate of rect. -

- -
-
Scheme Syntax: rect-width rect
-

Return the width of rect. -

- -
-
Scheme Syntax: rect-height rect
-

Return the height of rect. -

- -
-
Scheme Procedure: rect-left rect
-

Return the left-hand x coordinate of rect. -

- -
-
Scheme Procedure: rect-right rect
-

Return the right-hand x coordinate of rect. -

- -
-
Scheme Procedure: rect-top rect
-

Return the top y coordinate of rect -

- -
-
Scheme Procedure: rect-bottom rect
-

Return the bottom y coordinate of rect. -

- -
-
Scheme Procedure: rect-top-left rect
-

Return the top-left corner of rect. -

- -
-
Scheme Procedure: rect-top-right rect
-

Return the top-right corner of rect. -

- -
-
Scheme Procedure: rect-bottom-left rect
-
Scheme Procedure: rect-position rect
-

Return the bottom-left corner of rect -

- -
-
Scheme Procedure: rect-bottom-right rect
-

Return the bottom-right corner of rect. -

- -
-
Scheme Procedure: rect-center-x rect
-

Return the center x coordinate of rect. -

- -
-
Scheme Procedure: rect-center-y rect
-

Return the center y coordinate of rect. -

- -
-
Scheme Procedure: rect-center rect
-

Return the center of rect. -

- -
-
Scheme Procedure: rect-half-width rect
-

Return the half width of rect. -

- -
-
Scheme Procedure: rect-half-height rect
-

Return the half height of rect. -

- -
-
Scheme Procedure: rect-size rect
-

Return the size of rect. -

- -
-
Scheme Procedure: rect-move rect v
-
Scheme Procedure: rect-move rect x y
-

Create a new rectangle by moving rect by the given 2D vector -offset v, or the coordinates x and y. -

- -
-
Scheme Procedure: rect-inflate rect size
-
Scheme Procedure: rect-inflate rect width height
-

Create a new rectangle by growing rect by the 2D vector -size (or width and height) without changing the -center point. -

- -
-
Scheme Procedure: rect-union rect1 rect2
-

Create a new rectangle that covers the area of both rect1 and -rect2. -

- -
-
Scheme Procedure: rect-clip rect1 rect2
-

Create a new rectangle that is the overlapping region of rect1 -and rect2. If the rects do not overlap, a rect of size 0 is -returned. -

- -
-
Scheme Procedure: rect-clamp rect v
-

Return a new 2D vector by constraining v to the bounds of -rect. -

- -
-
Scheme Procedure: rect-within? rect1 rect2
-

Return #t if rect2 is completely within rect1. -

- -
-
Scheme Procedure: rect-intersects? rect1 rect2
-

Return #t if rect2 overlaps rect1. -

- -
-
Scheme Procedure: rect-contains? rect v
-
Scheme Procedure: rect-contains? rect x y
-

Return #t if the 2D vector v (or the coordinates x -and y) is within rect. -

- -
-
-

-Next: , Previous: , Up: Math   [Contents][Index]

-
- - - - - diff --git a/manuals/sly/Render-Combinators.html b/manuals/sly/Render-Combinators.html deleted file mode 100644 index 9d33800..0000000 --- a/manuals/sly/Render-Combinators.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - -Sly: Render Combinators - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Up: Rendering   [Contents][Index]

-
-
- -

4.5.1 Render Combinators

- -

Render combinators provide a purely functional interface to the OpenGL -state machine. -

- - - - - diff --git a/manuals/sly/Rendering.html b/manuals/sly/Rendering.html deleted file mode 100644 index 48d44f7..0000000 --- a/manuals/sly/Rendering.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - -Sly: Rendering - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: API Reference   [Contents][Index]

-
-
- -

4.5 Rendering

- -

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. -

- - - - - - - - - - - - - - - - - diff --git a/manuals/sly/Requirements.html b/manuals/sly/Requirements.html deleted file mode 100644 index 0ba35fc..0000000 --- a/manuals/sly/Requirements.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - -Sly: Requirements - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Up: Installation   [Contents][Index]

-
-
- -

2.1 Requirements

- -

Sly depends on the following packages: -

- - - - - - - diff --git a/manuals/sly/Shaders.html b/manuals/sly/Shaders.html deleted file mode 100644 index 9a2ab3d..0000000 --- a/manuals/sly/Shaders.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - -Sly: Shaders - - - - - - - - - - - - - - - - - - - - -
-

-Previous: , Up: Rendering   [Contents][Index]

-
-
- -

4.5.9 Shaders

- - - - - diff --git a/manuals/sly/Shapes.html b/manuals/sly/Shapes.html deleted file mode 100644 index 452067d..0000000 --- a/manuals/sly/Shapes.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - -Sly: Shapes - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Rendering   [Contents][Index]

-
-
- -

4.5.5 Shapes

- - - - - - diff --git a/manuals/sly/Signals.html b/manuals/sly/Signals.html deleted file mode 100644 index b24283b..0000000 --- a/manuals/sly/Signals.html +++ /dev/null @@ -1,332 +0,0 @@ - - - - - -Sly: Signals - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Up: Time   [Contents][Index]

-
-
- -

4.3.1 Signals

- -
-
(use-modules (sly signal))
-
- -

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. -

-

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. -

-
-
(define-signal position
-  (signal-fold v+ (vector2 320 240)
-               (signal-map (lambda (v) (v* v 4))
-                           (signal-sample 1 key-arrows))))
-
- -

This signal describes a relationship between the arrow keys on the -keyboard and the position of the player. signal-sample is used -to trigger a signal update upon every game tick that provides the -current state of the arrow keys. key-arrows 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 signal-fold. 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. -

-
-
Scheme Procedure: signal? obj
-

Return #t if obj is a signal. -

- -
-
Scheme Procedure: make-signal value
-

Wrap value in a signal. -

- -
-
Scheme Syntax: define-signal name value
-

Create a top-level signal variable called name. 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 make-signal. -

-

define-signal is particularly useful when working at the REPL. -A top-level signal variable defined by define-signal can be -redefined at runtime, and the signals that depended on the old signal -will continue to work with the new signal. -

- -
-
Scheme Procedure: signal-ref signal
-

Return the value stored within signal. -

- -
-
Scheme Procedure: signal-ref-maybe object
-

Return the value stored within object if object is a -signal. Otherwise, return object. -

- -
-
Scheme Syntax: signal-let ((var signal) …) body
-

Evaluate body in the context of the local bindings defined by -the two-element lists ((var signal) …). -signal-let works like regular let, except that it -derefences signal before binding to var. -

- -
-
Scheme Syntax: signal-let* ((var signal) …) body
-

Similar to signal-let, 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. -

- -
-
Scheme Procedure: signal-set! signal-box value
-

Change the contents of signal to value. This procedure -should almost never be used, except to bootstrap a root node of a -signal graph. -

- -
-
Scheme Procedure: hook->signal hook init proc
-

Create a new signal whose initial value is init and whose future -values are calculated by applying proc to the arguments passed -when hook is run. -

- -
-
Scheme Procedure: signal-merge signal1 signal2 . rest
-

Create a new signal whose value is the that of the most recently -updated signal in signal1, signal2, etc. The initial -value is that of signal1. -

- -
-
Scheme Procedure: signal-zip . signals
-

Create a new signal whose value is a list of the values stored in -signals. -

- -
-
Scheme Procedure: signal-map proc signal . rest
-

Create a new signal that applies proc to the values of -SIGNAL. More than one input signal may be specified, in which -case proc must accept as many arguments as there are input -signals. -

- -
-
Scheme Procedure: signal-sample-on value-signal sample-signal
-

Create a new signal that takes on the value of value-signal -whenever sample-signal receives a new value. -

- -
-
Scheme Procedure: signal-negate signal
-

Create a new signal whose value is the negation of signal by -applying not to each value received. -

- -
-
Scheme Procedure: signal-fold proc init signal . rest
-

Create a new signal that applies proc with the value received -from signal and the past value of itself, starting with -init. Like signal-map, more than one input signal may be -given. -

- -
-
Scheme Procedure: signal-filter predicate default signal
-

Create a new signal that takes on the value received from signal -when it satisfies the procedure predicate. The value of the -signal is default in the case that the predicate is never -satisfied. -

- -
-
Scheme Procedure: signal-drop predicate default signal
-

Create a new signal that takes on the value received from signal -when it does not satisfy the procedure predicate. The -value of the signal is default in the case that the predicate is -never satisfied. -

- -
-
Scheme Procedure: signal-drop-repeats signal [equal?]
-

Create a new signal that drops the value received from signal -when it is equivalent to the current value. By default, equal? -is used for testing equivalence. -

- -
-
Scheme Procedure: signal-switch predicate on off
-

Create a new signal whose value is that of the signal on when -the signal predicate is true, or the value of the signal -off otherwise. -

- -
-
Scheme Procedure: signal-constant constant signal
-

Create a new signal whose value is always constant no matter the -value received from signal. -

- -
-
Scheme Procedure: signal-count signal [start] [step]
-

Create a new signal that increments a counter by step when a -value from signal is received, starting from start. By -default, start is 0 and step is 1. -

- -
-
Scheme Procedure: signal-tap proc signal
-

Create a new signal that applies proc for side-effects when a -value from signal is received. The value of the new signal will -always be the value of signal. 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. -

- -
-
Scheme Procedure: signal-timestamp signal
-

Create a new signal whose value is a pair, the car of which is the -time that the value of signal was received and the cdr of which -is the received value. -

- -
-
Scheme Procedure: signal-time signal
-

Create a new signal whose value is the time that the value of -signal was received. -

- -
-
Scheme Procedure: signal-sample step signal
-

Create a new signal that takes on the value of signal every -step ticks. -

- -
-
Scheme Procedure: signal-every step
-

Create a new signal that emits step every step ticks. -

- -
-
Scheme Procedure: signal-since step signal
-

Create a new signal that emits the time since signal was updated -ever step ticks. -

- -
-
Scheme Procedure: signal-delay delay signal
-

Create a new signal that delays propagation of signal by -delay ticks.. -

- -
-
Scheme Procedure: signal-throttle delay signal
-

Create a new signal that propagates signal at most once every -delay ticks. -

- -
-
Scheme Syntax: signal-generator body
-

Create a new signal whose value is the most recently yielded value of -the coroutine defined by body. A special yield syntax is -available within body to specify which values are passed to the -signal. -

- -
-
-

-Next: , Up: Time   [Contents][Index]

-
- - - - - diff --git a/manuals/sly/Sprites.html b/manuals/sly/Sprites.html deleted file mode 100644 index 0ea943d..0000000 --- a/manuals/sly/Sprites.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - -Sly: Sprites - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Rendering   [Contents][Index]

-
-
- -

4.5.2 Sprites

- -
-
Scheme Procedure: make-sprite texture [#:anchor]
-

Create a sprite that displays the image in texture. The size of -the mesh is the size of texture in pixels. anchor defines -the origin of the sprite. By default, the anchor is center, -which puts the origin in the middle of the sprite. See -’anchor-texture’ for more anchoring options. -

- -
-
Scheme Procedure: load-sprite file [#:anchor]
-

Create a sprite from the texture in file whose origin is defined -by anchor. The default anchor is center. -

- -
-
Scheme Syntax: sprite? obj
-

Return #t if obj is a sprite. -

- -
-
Scheme Syntax: sprite-texture sprite
-

Return the texture for sprite. -

- -
-
Scheme Syntax: sprite-mesh mesh
-

Return the mesh for sprite. -

- -
-
Scheme Procedure: render-sprite sprite
-

Create a renderer for sprite. -

- - - - - - diff --git a/manuals/sly/Textures.html b/manuals/sly/Textures.html deleted file mode 100644 index b55a4b8..0000000 --- a/manuals/sly/Textures.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - -Sly: Textures - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Rendering   [Contents][Index]

-
-
- -

4.5.3 Textures

- - - - - - diff --git a/manuals/sly/The-Game-Loop.html b/manuals/sly/The-Game-Loop.html deleted file mode 100644 index f8a685d..0000000 --- a/manuals/sly/The-Game-Loop.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - - -Sly: The Game Loop - - - - - - - - - - - - - - - - - - - - -
-

-Previous: , Up: Booting   [Contents][Index]

-
-
- -

4.1.2 The Game Loop

- -
-
Scheme Variable: draw-hook
-

This hook is run every time the game loop wants to render. Procedures -added to this hook should accept two arguments: dt, the time in -seconds since the last render call; and alpha, 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 alpha value is important -for smoothing animated values to avoid the “temporal aliasing” -effect that causes choppy looking animations. -

- -
-
Scheme Variable: after-game-loop-error-hook
-

This hook is run every time the game loop catches an error. -Procedures added to this hook should accept no arguments. -

- -
-
Scheme Procedure: run-game-loop [#:frame-rate] [#:tick-rate] [#:max-ticks-per-frame]
-

Start the game loop. frame-rate specifies the optimal number -of frames to draw per second. tick-rate specifies the optimal -game logic updates per second. Both frame-rate and -tick-rate are 60 by default. max-ticks-per-frame 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. -

- -
-
Scheme Procedure: stop-game-loop
-

Abort the game loop. -

- - - - - diff --git a/manuals/sly/Time.html b/manuals/sly/Time.html deleted file mode 100644 index ca2986d..0000000 --- a/manuals/sly/Time.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - -Sly: Time - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: API Reference   [Contents][Index]

-
-
- -

4.3 Time

- -

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. -

-

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. -

-

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. -

- - - - - - - - - - - diff --git a/manuals/sly/Transforms.html b/manuals/sly/Transforms.html deleted file mode 100644 index 3fd0b3d..0000000 --- a/manuals/sly/Transforms.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - -Sly: Transforms - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Math   [Contents][Index]

-
-
- -

4.2.3 Transforms

- -
-
(use-modules (sly math transform))
-
- -

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 transform* -procedure. -

-

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 transform*! for performance reasons. -

-
-
Scheme Procedure: make-transform aa ab ac ad ba bb bc bd ca cb cc cd da db dc dd
-

Create a new transform initialized with the given 16 values in -column-major format. -

- -
-
Scheme Variable: null-transform
-

A transform composed entirely of zeroes. -

- -
-
Scheme Variable: identity-transform
-

The multiplicative identity transform. -

- -
-
Scheme Syntax: transform? obj
-

Return #t if obj is a transform. -

- -
-
Scheme Syntax: transform-matrix transform
-

Return the underlying 4x4 floating point array for transform. -

- -
-
Scheme Procedure: transpose transform
-

Return a transform that is the transpose of transform. -

- -
-
Scheme Procedure: transform-vector2 transform v
-

Apply transform to the 2D vector v. -

- -
-
Scheme Procedure: transform-position transform
-

Return a 3D vector containing the positional data stored in -transform. -

- -
-
Scheme Procedure: transform+ . transforms
-

Return the sum of transforms. Return null-transform if -called without any arguments. -

- -
-
Scheme Procedure: transform* . transforms
-

Return the product of transforms. Return identity-transform if -called without any arguments. -

- -
-
Scheme Procedure: transform*! dest a b
-

Multiply a and b, storing the result in dest. -

- -
-
Scheme Procedure: translate v
-

Create a new transform that translates by the 2D or 3D vector v. -

- -
-
Scheme Procedure: scale v
-
Scheme Procedure: scale scalar
-

Create a new transform that scales by the 2D or 3D vector v, or -by scalar to scale evenly in all dimensions. -

- -
-
Scheme Procedure: rotate-x angle
-

Create a new transform that rotates the x axis by angle radians. -

- -
-
Scheme Procedure: rotate-y angle
-

Create a new transform that rotates the y axis by angle radians. -

- -
-
Scheme Procedure: rotate-z angle
-

Create a new transform that rotates the z axis by angle radians. -

- -
-
Scheme Procedure: rotate q
-

Convert the quaternion q into a rotation transform. -See Quaternions for more information. -

- -

One of the most common composite transformations is a translation -multiplied by a scale multiplied by a rotation. The -build-transform procedure is a convenience procedure for this -case. -

-
-
Scheme Procedure: build-transform [#:position=(vector3 0 0 0)] [#:scale=1] [#:rotation=null-quaternion]
-

Build a transform by multiplying the following transforms: -

-
    -
  • translation by position -
  • rotation by rotation -
  • scaling by scale -
- -
- -

The procedures below are useful for creating projection and view -matrices for cameras. See Cameras for more details. -

-
-
Scheme Procedure: orthographic-projection left right top bottom near far
-

Create a new transform that represents an orthographic projection for -the vertical clipping plane left and right, the horizontal -clipping plane top and bottom, and the depth clipping -plane near and far. -

- -
-
Scheme Procedure: perspective-projection field-of-vision aspect-ratio near far
-

Create a new transform that represents a perspective projection with a -field-of-vision in degrees, the desired aspect-ratio, and -the depth clipping plane near and far. -

- -
-
Scheme Procedure: look-at eye center [up=(vector3 0 1 0)]
-

Create a view transform that looks from 3D vector eye at the 3D -vector center, with the 3D vector up indicating which -direction points up. -

- -
-
-

-Next: , Previous: , Up: Math   [Contents][Index]

-
- - - - - diff --git a/manuals/sly/Tweening.html b/manuals/sly/Tweening.html deleted file mode 100644 index 9b0b741..0000000 --- a/manuals/sly/Tweening.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - -Sly: Tweening - - - - - - - - - - - - - - - - - - - - -
-

-Previous: , Up: Tweens   [Contents][Index]

-
-
- -

4.2.4.2 Tweening

- -

The tween 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. -

-
-
(define t (tween vlerp ease-linear (vector2 0 0) (vector2 10 0) 10))
-
-(t 5) ;; => (vector2 5 5)
-
- -
-
Scheme Procedure: tween interpolator ease start end duration
-

Return a procedure that interpolates from start to end in -duration ticks. The value returned for a given time is -determined by applying ease with the time ratio to acquire an -alpha value, and then applying interpolator with -start, end, and alpha. alpha is a rational -number in the range [0, 1]. -

- - - - - - diff --git a/manuals/sly/Tweens.html b/manuals/sly/Tweens.html deleted file mode 100644 index 35634d1..0000000 --- a/manuals/sly/Tweens.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - -Sly: Tweens - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Previous: , Up: Math   [Contents][Index]

-
-
- -

4.2.4 Tweens

- -
-
(use-modules (sly math tween))
-
- -

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. -

-

When tween functions are combined with Signals, the result is -animation! -

- - - - - - - - - - diff --git a/manuals/sly/Utilities.html b/manuals/sly/Utilities.html deleted file mode 100644 index 7b5fcbe..0000000 --- a/manuals/sly/Utilities.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - -Sly: Utilities - - - - - - - - - - - - - - - - - - - - -
-

-Previous: , Up: API Reference   [Contents][Index]

-
-
- -

4.6 Utilities

- - - - - - - - - - - - diff --git a/manuals/sly/Vectors.html b/manuals/sly/Vectors.html deleted file mode 100644 index 14d2b91..0000000 --- a/manuals/sly/Vectors.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - - -Sly: Vectors - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Up: Math   [Contents][Index]

-
-
- -

4.2.1 Vectors

- -
-
(use-modules (sly math vector))
-
- -

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 -v+, v-, and v*, scalar values may be passed as -well. -

-

The <vector2>, <vector3>, and <vector4> type -descriptors have been exposed for use with Guile’s (ice-9 -match) pattern matching module. -

-
-
Record Type: <vector2>
-

2D vector data type with fields x and y, in that order. -

- -
-
Record Type: <vector3>
-

3D vector data type with fields x, y, and z, in -that order. -

- -
-
Record Type: <vector4>
-

4D vector data type with fields x, y, z and -w, in that order. -

- -
-
Scheme Syntax: vector2 x y
-

Create a new 2D vector with coordinates (x, y). -

- -
-
Scheme Syntax: vector3 x y z
-

Create a new 3D vector with coordinates (x, y, z). -

- -
-
Scheme Syntax: vector4 x y z w
-

Create a new 4D vector with coordinates (x, y, z, -w). -

- -
-
Scheme Syntax: vector2? v
-

Return #t if v is a 2D vector. -

- -
-
Scheme Syntax: vector3? v
-

Return #t if v is a 3D vector. -

- -
-
Scheme Syntax: vector4? v
-

Return #t if v is a 4D vector. -

- -
-
Scheme Procedure: vx v
-

Return the x coordinate of the 2D, 3D, or 4D vector v. -

- -
-
Scheme Procedure: vy v
-

Return the y coordinate of the 2D, 3D, or 4D vector v. -

- -
-
Scheme Procedure: vz v
-

Return the z coordinate of the 3D or 4D vector v. -

- -
-
Scheme Procedure: vw v
-

Return the w coordinate of the 4D vector v. -

- -
-
Scheme Procedure: vmap proc v
-

Return a new vector that is the result of applying proc to each -element of the 2D, 3D, or 4D vector v. -

- -
-
Scheme Procedure: v+ . vectors
-

Return the sum of all vectors. vectors may contain scalar -values, but it may not contain vectors of mixed dimensions. -

- -
-
Scheme Procedure: v- . vectors
-

Return the difference of all vectors. vectors may contain scalar -values, but it may not contain vectors of mixed dimensions. -

- -
-
Scheme Procedure: v* . vectors
-

Return the product of all vectors. vectors may contain -scalar values, but it may not contain vectors of mixed dimensions. -

- -
-
Scheme Procedure: vdot v1 v2
-

Return the dot product of v1 and v2. Both vectors must be -of the same dimensionality. -

- -
-
Scheme Procedure: vcross v1 v2
-

Return the cross product of the 3D vectors v1 and v2. -

- -
-
Scheme Procedure: magnitude v
-

Return the magnitude of the vector v. -

- -
-
Scheme Procedure: normalize v
-

Return the normalized form of the vector v. -

- -
-
Scheme Procedure: vlerp v1 v2 alpha
-

Return the linear interpolation of v1 and v2 by the scalar -alpha. alpha is expected to be in the range [0, 1]. -

- -
-
-

-Next: , Up: Math   [Contents][Index]

-
- - - - - diff --git a/manuals/sly/Window-Creation.html b/manuals/sly/Window-Creation.html deleted file mode 100644 index 5e6dfc7..0000000 --- a/manuals/sly/Window-Creation.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - -Sly: Window Creation - - - - - - - - - - - - - - - - - - - - -
-

-Next: , Up: Booting   [Contents][Index]

-
-
- -

4.1.1 Window Creation

- -
-
(use-modules (sly window))
-
- -

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. -

-

The window data structure: -

-
-
Scheme Procedure: make-window [#:title] [#:resolution] [#:fullscreen?]
-

Create a new window object. title is a string to display in -the window’s title bar. resolution is a 2D vector that -specifies the dimensions of the window in pixels. fullscreen? -is a boolean that toggles fullscreen mode. -

- -
-
Scheme Procedure: window? obj
-

Return #t if obj is a window. -

- -
-
Scheme Procedure: window-title window
-

Return the title of window. -

- -
-
Scheme Procedure: window-resolution window
-

Return the resolution of window. -

- -
-
Scheme Procedure: window-fullscreen? window
-

Return #t if window is set to fullscreen mode. -

- -

The following signals hold the state of the current window: -

-
-
Scheme Signal: window-width
-

The width of the current window. -

- -
-
Scheme Signal: window-height
-

The height of the current window. -

- -
-
Scheme Signal: window-size
-

The size of the current window as a 2D vector. -

- -

In addition to signals, the following hooks are triggered upon certain -changes to window state: -

-
-
Scheme Variable: window-resize-hook
-

This hook is run when the current window is resized. Procedures added -to this hook should accept two arguments: Numbers width and -height, the new dimensions of the window in pixels. -

- -
-
Scheme Variable: window-close-hook
-

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. -

- -

The following procedures are used to open/close windows: -

-
-
Scheme Procedure: open-window [window]
-

Open the game window using the settings in window. -

- -
-
Scheme Procedure: close-window
-

Close the currently open window. -

- -
-
Scheme Syntax: with-window window body
-

Evaluate body in the context of window. window -is opened before evaluating body, and closed afterwards. -

- -
-
-

-Next: , Up: Booting   [Contents][Index]

-
- - - - - diff --git a/manuals/sly/index.html b/manuals/sly/index.html deleted file mode 100644 index 90adb63..0000000 --- a/manuals/sly/index.html +++ /dev/null @@ -1,201 +0,0 @@ - - - - - -Sly: Top - - - - - - - - - - - - - - - - - - -

Sly

- - - -

Table of Contents

- -
- - -
- - - -
-

-Next: , Up: (dir)   [Contents][Index]

-
-
- -

Sly

- -

Copyright © 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 -GNU Texinfo. -

- - - - - - - - - - - - - -
-
-

-Next: , Up: (dir)   [Contents][Index]

-
- - - - - -- cgit v1.2.3