summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add 'sly' CLI program.David Thompson2016-08-116-2/+144
| | | | | | | | * scripts/sly.in: New file. * sly/cli.scm: New file. * Makefile.am (SOURCES): Add it. * configure.ac: Process scripts/sly.in to produce sly executable. * pre-inst-env.in: Fix $PATH to include scripts directory.
* window: Tweak the responsibilities of init-window and open-window.David Thompson2016-08-111-2/+2
| | | | | * sly/window.scm (init-window): Initialize SDL. (open-window): Don't call init-window and don't initialize SDL.
* window: Change default title to "Untitled".David Thompson2016-08-111-1/+1
| | | | * sly/window.scm (make-window): Change default title to "Untitled".
* Add declarative game specification type.David Thompson2016-08-111-1/+18
| | | | | * sly/game.scm (<game>): New record type. (game, %game, game?, game-window, game-scene): New procedures.
* guix: Use local-file for building the git checkout as a Guix package.David Thompson2016-07-301-9/+3
|
* render: particles: Allow finer control over particle emission.David Thompson2016-06-202-32/+42
| | | | | | | | | * sly/render/particles.scm (<particle-system>)[emit-rate]: Delete. [emit-interval, emit-count]: New fields. (make-particle-system): Delete emit-rate argument. Add emit-interval and emit-count arguments. (render-particles): Rewrite to use emit-rate and emit-count. * examples/particles.scm: Update example to use new API.
* doc: Make it clear that the rendering API is unstable.David Thompson2016-06-011-0/+5
|
* Update TODO list.David Thompson2016-05-281-6/+10
|
* render: Add particle effects.David Thompson2016-05-283-0/+165
| | | | | | * sly/render/particles.scm: New file. * Makefile.am (SOURCES): Add it. * examples/particles.scm: New file.
* Update TODO list.David Thompson2016-05-271-4/+11
|
* render: Add 9-patch implementation.David Thompson2016-05-274-0/+162
| | | | | | | * sly/render/nine-patch: New file. * Makefile.am (SOURCES): Add it. * examples/images/dialog.png: New file. * examples/nine-patch.scm: New file.
* vector: Factorize anchor function.David Thompson2016-05-272-21/+30
| | | | | | * sly/math/vector.scm (anchor-vector): New procedure. * sly/render/texture.scm (anchor-texture): Define in terms of anchor-vector.
* Update TODO list.David Thompson2016-05-181-22/+46
|
* render: Fix set-mesh.David Thompson2016-05-181-1/+1
| | | | | * sly/render.scm (set-mesh): Lift set-graphics-mesh!, not set-graphics-shader! -_-
* guix: Update explanatory comment.David Thompson2016-05-151-3/+1
| | | | * guix.scm: Remove outdated configure flags.
* audio: Ignore errors when playing samples.David Thompson2016-05-091-1/+3
| | | | * sly/audio.scm (play-sample): Ignore exceptions.
* actor: Fix action-effect-lift.David Thompson2016-05-071-1/+2
| | | | | | We were clobbering the effects list every time, rather than consing. * sly/actor.scm (action-effect-lift): Cons not clobber.
* build: Fix Scheme install location for Guile 2.2.David Thompson2016-04-291-2/+2
|
* render: Use separate model, view, and projection matrices.David Thompson2016-04-255-77/+118
| | | | | | | | | | | | | | | * sly/render.scm: Replace 'model-view' procedures with separate 'model' and 'view' procedures. (<graphics>)[model-view]: Delete field. [model, view]: New fields. * sly/render/camera.scm (with-camera): Use separate model/view matrices. * sly/render/shader.scm (%default-shader): Specify model, view, and projection uniforms. * sly/render/sprite-batch.scm (sprite-batch-flush!): Use new model, view, and projection uniforms. * data/shaders/default-vertex.glsl (model, view, projection): New uniforms. (mvp): Delete.
* actor: Add apply-effects procedure.David Thompson2016-04-252-0/+15
| | | | | * sly/actor.scm (apply-effects): New procedure. * doc/api/scripting.texi (Actors): Document it.
* actor: Fix effect handling in 'both'.David Thompson2016-04-251-3/+3
| | | | | Bug: If action B was completed then the effects it returned were discarded.
* actor: Add action-effect-lift.David Thompson2016-04-242-0/+35
| | | | | * sly/actor.scm (action-effect-lift): New procedure. * doc/api/scripting.texi (Actions): Document it.
* math: vector: Add polar2 procedure.David Thompson2016-04-242-0/+12
| | | | | * sly/math/vector.scm (polar2): New procedure. * doc/api/math.texi (Vectors): Document it.
* Update TODO list.David Thompson2016-04-241-8/+15
|
* Add actor module.David Thompson2016-04-186-1/+440
| | | | | | | | | * sly/actor.scm: New file. * Makefile.am (SOURCES): Add it. * doc/api/scripting.texi: New file. * doc/Makefile.am (sly_TEXINFOS): Add it. * doc/sly.texi: Include scripting section. * .dir-locals.el: Add identing rule for call-with-actor.
* doc: Remove obsolete texinfo files.David Thompson2016-04-1810-604/+0
|
* math: vector: Fix export issue.David Thompson2016-04-171-1/+2
| | | | | * sly/math/vector.scm: Replace the 'magnitude' symbol in the default Guile namespace.
* 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.