summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* bleh.wip-fast-vectorsDavid Thompson2016-02-271-13/+19
|
* fixup packed record typeDavid Thompson2016-02-271-2/+7
|
* math: Rewrite rect to use packed f64 bytevectors.David Thompson2016-02-272-49/+42
|
* math: Rewrite vector math library to use packed f64 bytevectors.David Thompson2016-02-279-172/+339
| | | | | | | | | | | | | | | | | | | | The big consequence of this change to the rest of the codebase is that we can no longer use record destructuring when pattern matching, so I had to rewrite every place where pattern matching was used. It was probably a bad idea to expose the record type descriptors publicly in the first place. * sly/math/vector.scm: Reimplement everything in terms of an f64 packed bytevector record type. Do not expose record type descriptors. * sly/game.scm (run-game-loop): Convert viewport width/height to exact numbers. * sly/window.scm (open-window): Likewise. * sly/input/mouse.scm (mouse-position): Rewrite pattern matching. * sly/math/quaternion (make-quaternion, vector->quaternion): Likewise. * sly/math/rect.scm (rect-clamp): Likewise. * sly/math/transform.scm (translate!, translate, scale): Likewise. * sly/render/mesh.scm (vertices-bytevector): Likewise. * examples/mines/mines.scm: Likewise.
* Add packed record type hack.David Thompson2016-02-271-1/+40
| | | | | | This should work well enough until Guile is able to unbox struct fields. * sly/records.scm (define-packaged-f64-record-type): New syntax.
* 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.