summaryrefslogtreecommitdiff
path: root/2d
Commit message (Collapse)AuthorAgeFilesLines
* Delete draw-texture.David Thompson2014-02-161-24/+0
| | | | * 2d/texture.scm (draw-texture): Delete it.
* Use GLSL shaders for sprites.David Thompson2014-02-161-278/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 2d/sprite.scm: (sprite-vertex): Remove color vertex. (r-offset): Delete it. (pack-sprite-vertices): Remove logic moved to shader. (draw-sprite-vertices): Remove color vertex array rendering. (sprite-shader): New variable. (<sprite>): Remove dirty field and adjust setters. (make-anchor): New procedure. (update-sprite-vertices!): Use new 'pack-sprite-vertices'. (make-sprite): Use 'make-anchor' and 'update-sprite-vertices!'. (dirty-sprite-setter): Delete it. (load-sprite): Formatting. (sprite-animation-texture): Delete it. (drawable-texture): New procedure. (sprite-texture): Extract body to 'drawable-texture'. (sprite-anchor-vector): Delete it. (set-sprite-anchor!): Reimplemented. (update-sprite-animator!): Update vertices. (draw-sprite): Use shader program. (<sprite-batch>, make-sprite-batch, sprite-batch?, sprite-batch-max-size, sprite-batch-size, set-sprite-batch-size!, sprite-batch-texture, set-sprite-batch-texture!, sprite-batch-vertices, sprite-batch-draw, with-sprite-batch): Delete all sprite batch code. * data/Makefile.am (shadersdir, shaders_DATA): New variables. * data/shaders/sprite-fragment.glsl: New shader. * data/shaders/sprite-vertex.glsl: New shader.
* Throw error if shader file does not exist.David Thompson2014-02-161-1/+3
| | | | * 2d/shader.scm (load-shader): Add exception handling.
* Use vec2 instead of vec4 for vector2 uniforms.David Thompson2014-02-161-4/+1
| | | | | * 2d/shader.scm: Use vec2 instead of vec4 when setting a vector2 uniform value.
* Remove calls that change OpenGL matrix mode.David Thompson2014-02-161-6/+1
| | | | * 2d/game.scm (draw): Remove matrix mode calls.
* Don't load default font upon module import.David Thompson2014-02-151-3/+3
| | | | | * 2d/font.scm (default-font): Delete variable. (load-default-font): New procedure.
* Fix schedule-interval.David Thompson2014-02-151-1/+2
| | | | * 2d/agenda.scm (schedule-interval): Actually use the 'delay' parameter.
* Add window-projection signal.David Thompson2014-02-151-0/+8
| | | | * 2d/window.scm (window-projection): New variable.
* Add 4x4 transformation matrix module.David Thompson2014-02-152-0/+178
| | | | | | * 2d/transform.scm: New module. * 2d/shader.scm: Add uniform setter for transforms. * Makefile.am (SOURCES): Add '2d/transform.scm'.
* Add a convenient default font.David Thompson2014-02-111-1/+6
| | | | | | | | | * data/fonts/DejaVuSans.ttf: New file. * data/fonts/AUTHORS: New file. * data/Makefile.am: New file. * configure.ac (AC_CONFIG_FILES): Add 'data/Makefile'. * Makefile.am (SUBDIRS): Add 'data'. * 2d/font.scm (default-font): New variable.
* Add build-time configuration module.David Thompson2014-02-101-0/+27
| | | | | | | * 2d/config.scm.in: New file. * Makefile.am (2d/config.scm): New rule. (SOURCES): Add 2d/config.scm. * .gitignore: Ignore 2d/config.scm.
* Add shader module.David Thompson2014-02-091-0/+268
| | | | | | | | * 2d/shader.scm: New module. * Makefile.am: Add 2d/shader.scm to SOURCES. * examples/shader.scm: New example. * examples/shaders/fragment-shader.glsl: New shader. * examples/shaders/vertex-shader.glsl: New shader.
* Remove silly circular import.David Thompson2014-02-091-1/+0
| | | | * 2d/game.scm: Don't import (2d game), silly.
* Add define-guardian macro.David Thompson2014-02-092-17/+30
| | | | | | * 2d/helpers.scm (define-guardian): New macro. * 2d/texture.scm (reap-textures): Delete it. (texture-guardian): Defined using define-guardian.
* Add new coroutine macro.David Thompson2014-02-061-6/+12
| | | | | | | | * 2d/coroutine.scm (call-with-coroutine): New name for coroutine. (coroutine): New macro. (colambda, codefine, codefine*): Use call-with-coroutine. * examples/coroutine.scm: Use coroutine macro. * README.org: Update coroutine and agenda examples.
* Remove dynamic scoping of agendas.David Thompson2014-02-065-87/+58
| | | | | | | | | | | | | | | | * 2d/agenda.scm: (*global-agenda*, current-agenda, with-agenda): Delete. (agenda?, agenda-time): Export. (schedule-every, schedule-each): Rename schedule-every to schedule-each. (schedule-next): Delete. * 2d/game.scm: (game-agenda): New variable. (update): Tick game-agenda. * 2d/repl.scm: Use new agenda API. * 2d/sprite.scm: Use new agenda API. * 2d/time.scm: (time-every, time-each, time-delay): Change signature and use new agenda API. * examples/coroutine.scm: Use new agenda API. * examples/particles.scm: Use new agenda API.
* Add window-close-hook.David Thompson2014-01-261-1/+9
| | | | * 2d/window.scm: New hook.
* Remove unused import declarations.David Thompson2014-01-261-2/+0
| | | | * 2d/game.scm: Remove (2d coroutine) and (2d vector2) imports.
* Move OpenGL viewport settings to game module.David Thompson2014-01-262-7/+9
| | | | | | * 2d/window.scm (open-window): Remove viewport config. * 2d/game.scm (draw): Add viewport config.
* Move SDL event handling to a separate module.David Thompson2014-01-265-28/+51
| | | | | | | | | | | | * 2d/event.scm: New module. * 2d/game.scm: Remove event handling code. * 2d/keyboard.scm: Import (2d event) instead of (2d game). * 2d/mouse.scm: Import (2d event) instead of (2d game). * 2d/window.scm: Import (2d event) instead of (2d game).
* Add window-resize-hook.David Thompson2014-01-261-1/+6
| | | | * 2d/window.scm (window-resize-hook): New hook.
* Don't export font-ftgl-font procedure.David Thompson2014-01-261-1/+0
| | | | * 2d/font.scm: Remove font-ftgl-font from export list.
* Return unspecified value for void audio functions.David Thompson2014-01-231-31/+55
| | | | | | | * 2d/audio.scm (ignore-value): New macro. (set-sample-volume, play-sample, pause-music, resume-music) (rewind-music, stop-music): Ignore return value. (music-playing?, music-paused?): Add docstrings.
* Clean up audio API a bit.David Thompson2014-01-221-31/+31
| | | | * 2d/audio.scm: Clean up procedures.
* Initialize audio in audio module instead of window module.David Thompson2014-01-222-2/+2
| | | | | | | * 2d/window.scm (open-window, close-window): Remove open/close audio calls. * 2d/audio.scm: Open audio when module is imported.
* Remove commented code.David Thompson2014-01-131-4/+0
| | | | * 2d/texture.scm: Remove commented code.
* Fix docstring.David Thompson2014-01-131-2/+2
| | | | * 2d/repl/repl.scm (add-to-repl-mvar): Fix.
* Run REPL metacommands in the main thread, too.David Thompson2014-01-131-1/+7
| | | | * 2d/repl/repl.scm: Fix bug.
* Clean up module definition.David Thompson2014-01-121-3/+1
| | | | * 2d/wrappers/gl.scm: Remove unused cruft.
* Replace obsolete procedure call with the correct one.David Thompson2014-01-121-4/+8
| | | | * 2d/texture.scm (draw-texture): Use color module.
* Clean up custom REPL code.David Thompson2014-01-121-15/+12
| | | | * 2d/repl/repl.scm (add-to-repl-mvar, run-repl): Cleanup.
* Remove unused export.David Thompson2014-01-121-2/+1
| | | | * 2d/helpers.scm (rgba->gl-color): Remove export.
* Change tick-agenda! and clear-agenda! to take agenda as arg.David Thompson2014-01-102-13/+4
| | | | | | * 2d/agenda.scm (tick-agenda!, clear-agenda!): Add agenda param. * 2d/game.scm (update, tick): Update usage of tick-agenda!.
* Add mouse move/press/click hooks.David Thompson2014-01-091-3/+20
| | | | | * 2d/mouse.scm (mouse-move-hook, mouse-press-hook) (mouse-click-hook): New hooks.
* Add key press/release hooks.David Thompson2014-01-091-1/+11
| | | | * 2d/keyboard.scm (key-press-hook, key-release-hook): New hooks.
* Fix crash when handling an SDL event.David Thompson2014-01-091-1/+1
| | | | * 2d/game.scm (handle-event): Fix bug.
* Run REPL even when game is paused.David Thompson2014-01-091-17/+20
| | | | | | * 2d/repl/repl.scm (add-to-repl-mvar): New procedure. (poll-interval): New variable. (flush-repl): Schedule in paused-agenda.
* Add paused-agenda.David Thompson2014-01-091-1/+7
| | | | | * 2d/game.scm (paused-agenda): New variable. (tick): Tick paused-agenda.
* Factor REPL out of main loop.David Thompson2014-01-092-34/+34
| | | | | | | | | * 2d/game.scm (start-game-loop): Don't spawn REPL. (update-and-render, tick): Don't run REPL. (run-repl-thunk, run-repl): Move. * 2d/repl/repl.scm: (run-repl-thunk, flush-repl): Add. (flush-repl): Schedule REPL to be run within main loop.
* Forgot to add fps.scm.David Thompson2014-01-091-0/+48
|
* Move FPS to a module and add accumulator parameter.David Thompson2014-01-091-57/+30
| | | | | | | | | * 2d/game.scm (accumulator): New parameter. (draw-hook): Change to arity 2. (current-fps, accumulate-fps!, game-fps): Delete. (game-loop, update-and-render): Drop accumulator formal parameter. * 2d/fps.scm: New module.
* Tweak SDL event handling.David Thompson2014-01-071-11/+10
| | | | | | * 2d/game.scm (handle-events, read-input): Rename it. (event-handlers, register-event-handler, handle-event): Use a hash table instead of an alist.
* Make game loop status parameter.David Thompson2014-01-071-9/+9
| | | | | | | | * 2d/game.scm (%state): Replace with game-loop-status. (game-loop-status): New parameter. (run-game-loop): Set status to running. (game-running?, game-paused?, pause-game, resume-game, quit-game): Use parameter.
* Make tick-interval a parameter.David Thompson2014-01-071-11/+13
| | | | | * 2d/game.scm (run-game-loop): Compute tick-interval. (update, update-and-render, tick): Use tick-interval parameter.
* Add draw-hook.David Thompson2014-01-071-13/+6
| | | | | | | * 2d/game.scm (run-game, run-game-loop): Rename and remove draw callback parameter. (draw-hook): New hook. (draw): Run draw hook.
* Update docstrings.David Thompson2014-01-071-3/+3
| | | | * 2d/agenda.scm (make-time-segment, wait): Change docstrings.
* Use SRFI-26 in agenda module.David Thompson2014-01-071-2/+3
| | | | * 2d/agenda.scm (make-time-segment, wait): Use cut.
* Rename agenda procedures.David Thompson2014-01-071-5/+5
| | | | | * 2d/agenda.scm (update-agenda, tick-agenda!): Rename. (clear-agenda, clear-agenda!): Rename.
* Export agenda variables.David Thompson2014-01-071-0/+2
| | | | * 2d/agenda.scm: Export *global-agenda* and current-agenda.
* Add new scheduling procedures and rename existing ones.David Thompson2014-01-073-14/+25
| | | | | | | | * 2d/agenda.scm (agenda-schedule, schedule): Rename. (agenda-schedule-interval, schedule-interval): Rename. (schedule-next, schedule-every): New procedures. * 2d/sprite.scm: Use schedule-every. * 2d/time.scm (time-every): Use schedule-interval.