summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* live-reload: Do not load asset until the game has started.David Thompson2016-03-311-3/+4
| | | | | * sly/live-reload.scm (watch-files): Wait for the game to start before loading the asset for the first time.
* examples: Add another missing audio sample.David Thompson2016-03-271-0/+0
| | | | * examples/sounds/hit.wav: New file.
* examples: Add missing sound file.David Thompson2016-03-271-0/+0
| | | | * examples/sounds/jump.wav: New file.
* signal: Fix signal-sample.David Thompson2016-03-211-5/+9
| | | | | | | | | | | | signal-sample had a nasty nondeterministic bug where the newly created signal might actually be GC'd before it could be returned to the caller. This was able to happen because no reference to the signal was help between creating the signal and returning it. Reported-By: David Hashe <david.hashe@dhashe.com> * sly/signal.scm (signal-sample): Ensure that the garbage collector cannot reclaim the new signal before it is returned.
* signal: Add docstring for signal-if.David Thompson2016-02-271-0/+3
| | | | * sly/signal.scm (signal-if): Add docstring.
* doc: Spruce things up a bit.David Thompson2016-02-273-31/+39
|
* doc: Remove unused signals.texi file.David Thompson2016-02-271-225/+0
| | | | * doc/api/signals.texi: Delete.
* Don't export (sly agenda) symbols in (sly) module.David Thompson2016-02-271-2/+1
| | | | | | | | | The agenda is really more of a private interface to keep the game moving behind the scenes, so it's best to not present it to the user by default. * sly.scm: Remove (sly agenda) from list of modules to export public symbols from.
* utils: Remove unused 'forever' procedure.David Thompson2016-02-271-4/+0
| | | | * sly/utils.scm (forever): Delete.
* examples: Replace schedule-interval with a signal hook.David Thompson2016-02-271-4/+4
| | | | | * examples/common.scm: Use add-signal-hook! instead of schedule-interval for receiving FPS events.
* TODO: Move completed tasks into archive section.David Thompson2016-02-272-100/+225
|
* TODO: Move DONE items below TODOs.David Thompson2016-02-271-108/+108
|
* Add new TODO items and set priority on existing items.David Thompson2016-02-271-89/+107
|
* render: sprite-batch: Clean up sprite-batch-add!David Thompson2016-02-271-105/+63
| | | | | * sly/render/sprite-batch.scm (sprite-batch-add!): Take better advantage of local variables to reduce lookups, add a comment, and reformat.
* Update TODO list.David Thompson2016-02-231-17/+13
|
* render: sprite-batch: Implement in terms of a mesh.David Thompson2016-02-231-16/+5
| | | | | | | * sly/render/sprite-batch.scm (<sprite-batch>): Replace 'vao' field with 'mesh' field. (make-sprite-batch): Use 'make-mesh'. (sprite-batch-flush!): Use 'set-graphics-mesh!'
* render: vbo: Use cached buffer length when computing index length.David Thompson2016-02-231-1/+1
| | | | | * sly/render/mesh.scm (vertex-buffer-element-length): Use the cached length of the buffer bytevector.
* render: texture: Remove unused texture vertex code.David Thompson2016-02-231-50/+5
| | | | | * sly/render/texture.scm (texture-vertex, pack-texture-vertices, draw-texture-vertices): Delete.
* guix: Allow building package with Guile 2.2 pre-release.David Thompson2016-02-231-40/+56
|
* build: Change the order in which some modules are compiled.David Thompson2016-02-151-4/+4
| | | | | This prevents some duplicated compilation when modules include other Sly modules that haven't been compiled yet.
* TODO: Mark guardian improvement as DONE.David Thompson2016-02-151-1/+1
|
* Use a single foreign object guardian.David Thompson2016-02-156-38/+109
| | | | | | | | | | | | | | | | | | | | | | Rather than each foreign resource type creating its own guardian, let's just use one instead so that there is only a single guardian to talk to each frame. * sly/guardian.scm: New file. * Makefile.am (SOURCES): Add it. * sly/game.scm (run-game-loop): Start guardian worker. * sly/render/mesh.scm (mesh-guardian): Delete. (free-mesh): New procedure. (make-mesh): Guard newly created meshes. * sly/render/shader.scm (shader-stage-guardian): Delete. (free-shader-stage): New procedure. (make-shader-stage): Guard newly created shader stages. (shader-guardian): Delete. (free-shader): New procedure. (make-shader): Guard newly created shaders. * sly/render/texture.scm (texture-guardian): Delete. (free-texture): New procedure. (make-texture): Guard newly created textures.
* examples: Add sprite batch example.David Thompson2016-02-131-0/+62
| | | | * examples/sprite-batch.scm: New file.
* Remove unused sly-init procedure.David Thompson2016-02-111-11/+1
| | | | * sly.scm (sly-init): Delete.
* Update README.David Thompson2016-02-111-14/+13
|
* TODO: Mark 4x4 matrix multiplication as DONE.David Thompson2016-02-111-1/+1
|
* Remove dead modules.David Thompson2016-02-113-287/+0
| | | | | | | | | These modules haven't been used in a long time, but were never deleted. Oops! * sly/render/model.scm: Delete. * sly/render/scene.scm: Delete. * Makefile.am (SOURCES): Remove them.
* Remove GSL dependency.David Thompson2016-02-114-86/+1
| | | | | | | * sly/config.scm.in (%libgslcblas): Delete. * sly/wrappers/gsl.scm: Delete. * Makefile.am (WRAPPER_SOURCES): Remove it. * configure.ac: Remove GSL configuration.
* math: transform: Perform matrix multiplication in Scheme.David Thompson2016-02-111-8/+136
| | | | | | | | No more GSL dependency! Thanks Andy Wingo, for unboxed floating point operations! * sly/math/transform.scm (matrix-ref, matrix-set!): Allow inlining. (transform*!): Reimplement in pure Scheme, no FFI call to GSL.
* TODO: Mark item as DONE.David Thompson2016-02-101-1/+1
|
* Update .dir-locals.el.David Thompson2016-02-101-1/+3
|
* examples: Update everything to use deferred GL resource loading.David Thompson2016-02-1010-293/+410
|
* signal: Add signal-map-maybe.David Thompson2016-02-101-1/+12
| | | | * sly/signal.scm (signal-map-maybe): New procedure.
* signal: Add signal-if.David Thompson2016-02-101-0/+4
| | | | * sly/signal.scm (signal-if): New syntax.
* game: Add on-start procedure.David Thompson2016-02-101-0/+11
| | | | * sly/game.scm (on-start): New procedure.
* render: framebuffer: Use the null texture within the null framebuffer.David Thompson2016-02-101-1/+2
| | | | | * sly/render/framebuffer.scm (null-framebuffer): Set texture to the null texture, rather than #f.
* render: framebuffer: Add framebuffer-null?David Thompson2016-02-101-0/+5
| | | | * sly/render/framebuffer.scm (framebuffer-null?): New procedure.
* audio: Adjust name of argument to load-sample.David Thompson2016-02-101-3/+3
| | | | * sly/audio.scm (load-sample): s/filename/file/
* Update TODO list.David Thompson2016-02-101-23/+88
|
* window: Initialize SDL window before opening.David Thompson2016-02-051-0/+2
| | | | | * sly/window.scm (open-window): Initialize SDL2 and the window before modifying it.
* guix: Update guile-sdl2 snapshot.David Thompson2016-02-051-2/+2
|
* render: font: Remove unused module imports.David Thompson2016-02-051-2/+0
|
* render: font: Add docstring for enable-fonts.David Thompson2016-02-051-3/+4
| | | | * sly/render/font.scm (enable-fonts): Add docstring.
* live-reload: Don't load anything if the game hasn't started.David Thompson2016-02-051-0/+3
| | | | | * sly/live-reload (with-live-reload): Ignore poll when game has not yet started.
* game: Add game started hook.David Thompson2016-01-271-2/+16
| | | | | * sly/game.scm (game-start-hook, game-started?): New variables. (run-game-loop): Run game-start-hook before loop starts.
* sprite: Add null-sprite.David Thompson2016-01-241-0/+4
| | | | * sly/render/sprite.scm (null-sprite): New variable.
* signal: Run newly added hooks immediately.David Thompson2016-01-121-2/+6
| | | | * sly/signal.scm (add-signal-hook!): Apply 'proc' immediately.
* window: Configure various OpenGL parameters.David Thompson2016-01-121-1/+6
| | | | | * sly/window.scm (init-window): Set OpenGL version to 3.2, explicitly set double buffering and vsync, and configure depth buffer size.
* window: Respect fullscreen setting.David Thompson2016-01-121-0/+1
| | | | | | | Rather than, you know, ignoring it completely. * sly/window.scm (open-window): Set the window to fullscreen mode, if requested.
* audio: Add #:loop? argument to play-music.David Thompson2016-01-121-2/+2
| | | | * sly/audio.scm (play-music): Add #:loop? keyword argument.