summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* 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.
* game-loop: Process input events before each agenda tick.David Thompson2016-01-121-1/+1
| | | | | | | | In practice this wasn't very noticeable, but it is a bad idea to lock input event processing with the frame rate. * sly/game.scm (run-game-loop): Process input events before each call to 'agenda-tick!'.
* render: font: Add support for non-blended font rendering.David Thompson2016-01-121-4/+8
| | | | | * sly/render/font.scm (render-text): Add 'blended?' argument. (make-label): Add #:blended? keyword argument.
* Rename (sly record) to (sly records).David Thompson2016-01-122-2/+2
| | | | | | * sly/record.scm: Delete. * sly/records.scm: New file. * Makefile.am (SOURCES): Remove deleted file. Add new file.
* render: Add alpha value to render context.David Thompson2016-01-122-2/+7
| | | | | | | | | Necessary for interpolating moving objects to avoid temporal aliasing. * sly/render.scm (<graphics>)[alpha]: New field. (graphics-alpha, set-graphics-alpha!): New procedure. * sly/game.scm (run-game-loop): Set the frame's alpha value before each render call.
* examples: mines: Add missing tileset.David Thompson2016-01-101-0/+0
|
* render: sprite-batch: Unbind VAO *before* mapping buffers.David Thompson2016-01-021-27/+29
| | | | | | * sly/render/sprite-batch.scm (sprite-batch-flush): Don't worry about VAOs here. (with-sprite-batch): Unbind VAO before mapping vertex buffers.
* render: Add render/signal macro.David Thompson2016-01-022-2/+11
| | | | * sly/render.scm (render/signal): New syntax.
* signal: Add hook API for side-effects.David Thompson2016-01-011-6/+30
| | | | | | | | | * sly/signal.scm (<signal>)[hook]: New field. (signal-hook): New selector. (add-signal-hook, remove-signal-hook, clear-signal-hook!): New procedures. (%make-signal): Create hook for the signal. (signal-propagate!): Run hook.
* Update examples to use sprite batch.David Thompson2016-01-012-100/+90
|
* render: Add sprite batch.David Thompson2016-01-013-0/+262
| | | | | | | Finally, we can have decent sprite rendering performance! * sly/render/sprite-batch.scm: New file. * Makefile.am (SOURCES): Add it.
* render: mesh: Add support for streaming vertex buffers.David Thompson2016-01-011-13/+56
| | | | | | | | | | | * sly/render/mesh.scm (<vertex-buffer>)[length]: New field. (vertex-buffer-length): Now return the length in bytes. (vertex-buffer-element-length, make-streaming-vertex-buffer) (map-vertex-buffer!, unmap-vertex-buffer!): New procedures. (init-vertex-buffer-data!): Delete. (bytevector->vertex-buffer): Move body of 'init-vertex-buffer-data!' within. (make-mesh): Use 'vertex-buffer-element-length'.
* build: Improve Guile version check.David Thompson2016-01-011-1/+3
|
* math: rect: Fix rect-inflate implementation.David Thompson2016-01-011-2/+2
| | | | | * sly/math/rect.scm (%rect-inflate): Subtract, not add, the half width. D'oh!
* Update Guix recipe.David Thompson2015-12-221-2/+8
|
* build: Bump to 0.2.0.David Thompson2015-12-221-1/+1
|
* Upgrade to SDL2!David Thompson2015-12-2222-663/+266
| | | | | | This commit is massive and crazy and I'm not going to do the usual GNU ChangeLog thing because it's just too much. Let's just be happy that the port is completed!
* doc: Fix another typo.David Thompson2015-12-151-2/+2
|
* doc: Fix typo.David Thompson2015-12-151-1/+1
|
* Reimplement live-reload module.David Thompson2015-11-152-26/+67
| | | | | | | * sly/live-reload.scm (watch-files): New procedure. (live-reload): Rename to... (with-live-reload): This. * doc/api/utils.tex ("Live Reloading"): Update docs.
* signal: Add signal-call.David Thompson2015-11-152-1/+13
| | | | | * sly/signal.scm (signal-call): New procedure. * doc/api/signals.texi: Add docs.
* render: shader: Rename <shader-program> to <shader>.David Thompson2015-11-153-146/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * sly/render.scm * sly/render/model.scm (null-model): Use 'null-shader'. * sly/render/shader.scm (<shader-stage>): Rename to <shader>. (<shader-program>): Rename to <shader>. (vertex-shader?, fragment-shader?): Rename to... (vertex-shader-stage?, fragment-shader-stage?): ...these. (shader-stage-guardian): New variable. (%shader-compiled?, shader-compiled?): Rename to... (%shader-stage-compiled?, shader-stage-compiled?): ...these. (display-compilation-error): Change 'shader' to 'stage'. (compile-shader, set-shader-source, make-shader, make-vertex-shader) (make-fragment-shader, load-shader, load-vertex-shader, load-fragment-shader): Rename to... (compile-shader-stage, set-shader-stage-source, make-shader-stage) (make-vertex-shader-stage, make-fragment-shader-stage) (load-shader-stage, load-vertex-shader-stage) (load-fragment-shader-stage): ...these. (shader-program-uniform-location, shader-program-linked?) (make-shader-program, load-shader-program, null-shader-program) (apply-shader-program): Rename to... (shader-uniform-location, shader-linked?, make-shader, load-shader) (null-shader, apply-shader): ...these. (with-shader): Delete. (uniform-set!): Change 'shader-program' argument to 'shader'. (%default-shader): Use 'load-shader'.
* render: shader: Remove 'attributes' field.David Thompson2015-11-141-32/+26
| | | | | | | | | | | | Attributes are fixed so the field is useless. * sly/render/shader.scm (shader-program-attribute-location): Delete. (<shader-program>): Delete 'attributes' field. (make-shader-program): Remove 'attributes' argument. (load-shader-program): Likewise. Change arguments from positional to keyword. (%default-shader): New variable. (load-default-shader): Reimplement in terms of promises.
* config: Add scope-datdir procedure.David Thompson2015-11-141-0/+5
| | | | * sly/config.scm.in (scope-datadir): New procedure.
* TODO: Mark 0.1 release as DONE!David Thompson2015-11-131-1/+1
|
* guix: Update development snapshot.v0.1David Thompson2015-11-121-2/+2
|
* examples: Install crate.png image.David Thompson2015-11-121-0/+1
|
* build: Fix where compiled Guile modules get installed.David Thompson2015-11-121-1/+1
| | | | * Makefile.am (godir): Set to the same as moddir.
* config: Fix configure script substitution.David Thompson2015-11-122-3/+2
|
* TODO: Add new item.David Thompson2015-11-121-0/+6
|
* config: Fix data directory.David Thompson2015-11-125-11/+16
| | | | | | | | | | | | | | | | | | This was all messed up: - 'pkgdatadir' wasn't something that could be substituted via autoconf - I was still using "GUILE_2D" in the data dir env var name Now it's all better and Sly data should be able to be found from the pre-installation environment *and* the installation prefix. * configure.ac (sly_prefix, sly_datadir): New variables. * pre-inst-env.in: Set SLY_DATADIR. * sly/config.scm.in (%pkgdatadir): Delete. (%datadir): New variable. Use SLY_DATADIR env var or the configured datadir. * sly/render/font.scm (load-default-font): Use %datadir. * sly/render/shader.scm (load-default-shader): Likewise.
* game: Stop the game loop upon SIGINT.David Thompson2015-11-121-0/+5
| | | | | | | Fixes a long standing annoyance that pressing C-c wouldn't kill the application. * sly/game.scm (run-game-loop): Catch SIGINT and call 'stop-game-loop'.
* guix: Update copyright year.David Thompson2015-11-121-1/+1
|
* guix: Add a complete package for development snapshots.David Thompson2015-11-123-29/+69
| | | | | | * guix.scm: Add source code information and necessary build options. * INSTALL.org: Add Guix installation instructions. * README: Add configure flags for Guix dev environments.
* Update TODO list.David Thompson2015-11-121-10/+5
|
* configure: Add FreeImage and GSL prefix/libdir options.David Thompson2015-11-114-5/+61
|
* Rename autogen.sh to bootstrap.David Thompson2015-11-111-0/+0
|
* Update README.David Thompson2015-11-091-16/+11
|
* Rename package.scm to guix.scm.David Thompson2015-11-091-1/+1
|
* Update documentation a bit.David Thompson2015-11-096-61/+88
|
* Add new indentation rule to .dir-locals.el.David Thompson2015-11-091-0/+1
|
* examples: Add shape example.David Thompson2015-11-095-1/+86
| | | | | | | | * examples/shapes.scm: New file. * examples/images/country-sky.png: New file. * examples/images/country-trees.png: New file. * examples/Makefile.am (nobase_dist_examples_DATA): Add them. * examples/images/AUTHORS: Credit ansimuz.
* render: Add more rotation combinators.David Thompson2015-11-091-0/+18
| | | | * sly/render.scm (rotate-x, rotate-y, rotate): New procedures.
* render: Export additional procedures.David Thompson2015-11-091-1/+8
|
* render: mesh: Clean up style a bit.David Thompson2015-11-091-15/+33
|
* render: shape: Fix make-cube.David Thompson2015-11-091-5/+7
| | | | | | Forgot to update this one to the new rendering API. * sly/render/shape.scm (make-cube): Use render combinators.
* render: camera: Add 3d-camera procedure.David Thompson2015-11-091-1/+12
| | | | * sly/render/camera.scm (3d-camera): New procedure.
* examples: Add framebuffer example.David Thompson2015-09-212-0/+65
| | | | | * examples/framebuffer.scm: New file. * examples/Makefile.am (nobase_dist_examples_DATA): Add it.
* render: Reimplement rendering engine using functional combinators.David Thompson2015-09-2120-427/+797
| | | | | | | | | | | Warning: This is a huge commit. I completely gutted the old scene graph and replaced it with a somewhat monadic rendering combinator module instead. The interface remains purely functional, but replaces the <model> data type with procedures in the rendering monad instead. This opens the door for rendering *anything*, not just meshes. Now I can implement particle systems and other non-static things.