summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add mouse query procedures.David Thompson2018-12-131-2/+23
| | | | | * chickadee.scm (mouse-x, mouse-y, mouse-button-pressed?, mouse-button-released?): New procedures.
* Re-add key-pressed? and key-released? procedures.David Thompson2018-12-132-3/+13
| | | | | * chickadee.scm (key-pressed?, key-released?): New procedures. * examples/grid.scm: Remove (sdl2 input keyboard) import.
* Re-hide SDL2 details.David Thompson2018-12-1311-318/+313
| | | | | | | | | | | | | | | | | | | | | I know I'm backpedaling here, but I think it was a mistake to expose SDL2 as much as I have here. I think it's better for people just getting started to not have to wonder what SDL means. Making things as usable as possible for beginners is an important goal, and abstracting SDL2 + OpenGL things from the core game loop implementation shouldn't require sacrificing that goal. * chickadee.scm: Switch code with... * chickadee/game-loop.scm: ...this! Which is copied straight from... * chickadee/sdl.scm: ...this! Which is now deleted. * Makefile.am (SOURCES): Add game-loop.scm, remove sdl.scm. * examples/grid.scm: Update due to API breakage. * examples/lines.scm: Ditto. * examples/nine-patch.scm: Ditto. * examples/sprite.scm: Ditto. * examples/text.scm: Ditto. * examples/tiled.scm: Ditto. * doc/api.texi (Kernel): Update.
* examples: Simplify text example.David Thompson2018-12-131-8/+2
|
* Fix automake warning.David Thompson2018-12-131-1/+1
|
* render: font: Include a default font for convenience.David Thompson2018-12-1312-277/+274
| | | | | | | | | | | | | | | | | | | * data/fonts/good-neighbors.fnt: New file. * data/fonts/good-neighbors.png: New file. * data/CREDITS: New file. * examples/fonts/AUTHORS: Delete. * examples/fonts/good_neighbors_starling.png: Delete. * examples/fonts/good_neighbors_starling.xml: Delete. * Makefile.am (dist_pkgdata_DATA, fontsdir, dist_fonts_DATA): New variables. (EXTRA_DIST): Remove examples/fonts files. * chickadee/render/font.scm (draw-text): Make font an optional keyword argument. * doc/api.texi (Fonts): Document it. * examples/grid.scm: Update to use new draw-text API. * examples/nine-patch.scm: Ditto. * examples/text.scm: Ditto. squash! render: font: Include a default font for convenience.
* render: sprite: Use a single buffer for unbatched sprite mesh.David Thompson2018-12-131-36/+46
| | | | | * chickadee/render/sprite.scm (draw-sprite-unbatched): Combine vertices and texcoords into a single packed buffer.
* render: sprite: batch: Combine vertices and texcoords into one buffer.David Thompson2018-12-131-31/+36
| | | | | | | | | | | Not sure how much of a gain this is, but it's one less buffer to map each frame. * chickadee/render/sprite.scm (init-sprite-batch): Create combined vertex/texcoord buffer. (double-sprite-batch-size!): Map and copy only a single buffer. (sprite-batch-begin!): Map just one buffer. (sprite-batch-add!): Use new packed buffer layout.
* doc: Mention 'rect' in manual.David Thompson2018-12-131-1/+2
| | | | * doc/api.texi (Rectangles): Document 'rect' procedure.
* math: rect: Add make-rect alias.David Thompson2018-12-131-2/+4
| | | | * chickadee/math/rect.scm (rect): New procedure.
* render: font: Use set-vec2! where convenient.David Thompson2018-12-131-2/+1
| | | | * chickadee/render/font.scm (draw-text*): Use new set-vec2! procedure.
* render: sprite: Use set-vec2! where convenient.David Thompson2018-12-131-8/+4
| | | | | * chickadee/render/sprite (sprite-batch-add!): Use new set-vec2! procedure.
* math: vector: Add set-vec2! and set-vec3! procedures.David Thompson2018-12-132-5/+21
| | | | | * chickadee/math/vector.scm (set-vec2!, set-vec3!): New procedures. * doc/api.texi (Vectors): Document them.
* doc: Fix typos.David Thompson2018-12-121-6/+6
|
* doc: Rename "GPU Buffers" section to "Buffers".David Thompson2018-12-111-7/+7
|
* doc: Rename "Blending and Depth Testing" section to just "Blending".David Thompson2018-12-111-10/+8
|
* doc: Greatly expand public API documentation.David Thompson2018-12-111-101/+693
|
* render: shader: Change shader variable naming convention to camel case.David Thompson2018-12-111-5/+5
|
* render: shader: Improve docstrings.David Thompson2018-12-111-0/+9
|
* render: buffer: Improve docstrings.David Thompson2018-12-111-7/+64
|
* Bump to version 0.4.0.David Thompson2018-12-101-1/+1
|
* render: framebuffer: Add default projection matrix for convenience.David Thompson2018-12-102-12/+20
| | | | | | | | | * chickadee/render/framebuffer.scm (<framebuffer>)[projection]: New field. (make-framebuffer): Use an orthographic projection the same size as the framebuffer as the default projection matrix. * chickadee/render.scm (with-framebuffer): Apply default projection matrix.
* game-loop: Sleep thread a bit to avoid 100% CPU usage.David Thompson2018-12-091-1/+3
|
* math: grid: Simplify a formula.David Thompson2018-12-091-2/+2
| | | | | * chickadee/math/grid.scm (slide): Simplify formula for setting new goal coordinates.
* Add particle rendering module.David Thompson2018-12-073-0/+626
| | | | | | * chickadee/render/particles.scm: New file. * Makefile.am (SOURCES): Add it. * doc/api.texi (Particles): New subsection.
* render: buffer: Add support for int and double component types.David Thompson2018-12-051-2/+6
| | | | | * chickadee/render/buffer.scm (component-type-size, typed-buffer-type-gl): Add int and double cases.
* doc: Fix typo.David Thompson2018-12-051-1/+1
| | | | * doc/api.texi (Sprites): s/diving/dividing/
* render: blend: Fix additive blending mode.David Thompson2018-12-031-1/+1
| | | | | * chickadee/render/blend.scm (apply-blend-mode): Use the correct destination blending factor (one, not zero!) for additive blending.
* math: grid: A couple more optimizations.David Thompson2018-12-021-4/+3
| | | | | | | * chickadee/math/grid.scm (make-grid): Set a high minimum bucket size to avoid rehashing. (grid-move): Use memoized inexact->exact procedure. Fix return value of check procedure being ignored.
* math: grid: Refactor to improve performance a little bit.David Thompson2018-12-021-173/+163
| | | | | | | | There's still a lot of work needed to make the collision grid scale to any reasonable number of moving objects, but this is a first step. * chickadee/math/grid.scm: Big ol' refactor that I can't be bothered to list all the changes for.
* scripting: channel: Update copyright year.David Thompson2018-11-291-1/+1
|
* scripting: channel: Add channel-get! and channel-put! procedures.David Thompson2018-11-292-8/+31
| | | | | | * chickadee/scripting/channel.scm (channel-get!, channel-put!): New procedures. * doc/api.texi [Channels]: Add docs.
* queue: Add queue-length procedure.David Thompson2018-11-291-6/+9
| | | | * chickadee/queue.scm (queue-length): New procedure.
* scripting: channel: Remove unncessary module imports.David Thompson2018-11-291-2/+0
| | | | | * chickadee/scripting/channel.scm: Remove (ice-9 format) and (srfi srfi-11) imports.
* guix: Update development environment to use Guile 2.9.1.David Thompson2018-10-251-6/+39
|
* render: Add gpu-apply/instanced syntax.David Thompson2018-10-251-3/+19
| | | | * chickadee/render.scm (gpu-apply/instanced*, gpu-apply/instanced): New syntax.
* render: buffer: Add render-vertices/instanced procedure.David Thompson2018-10-251-1/+12
| | | | * chickadee/render/buffer.scm (render-vertices/instanced): New procedure.
* render: buffer: Add divisor field to typed buffers.David Thompson2018-10-251-8/+18
| | | | | | | * chickadee/render/buffer.scm (<typed-buffer>)[divisor]: New field. (typed-buffer-divisor): New procedure. (make-typed-buffer, make-streaming-typed-buffer): Add #:divisor argument. (apply-typed-buffer): Setup vertex attribute divisor if there is one.
* render: gl: Add glDrawElementsInstanced binding.David Thompson2018-10-251-3/+12
| | | | * chickadee/render/gl.scm (gl-draw-elements-instanced): New procedure.
* configure: Accept Guile 3.0.v0.3.0David Thompson2018-10-031-1/+1
|
* doc: Document the path finding API.David Thompson2018-10-031-1/+75
|
* Move pathfinding module to math directory.David Thompson2018-10-032-7/+7
|
* doc: Document collision grid API.David Thompson2018-10-021-0/+107
|
* math: grid: Fix docstring in grid-move.David Thompson2018-10-021-1/+1
|
* doc: Document bezier curve API.David Thompson2018-10-021-0/+97
|
* doc: Document the rectangle API.David Thompson2018-09-281-5/+195
|
* doc: Document vector and matrix math APIs.David Thompson2018-09-271-0/+338
|
* math: matrix: Fix a few docstrings.David Thompson2018-09-271-3/+3
| | | | * chickadee/math/matrix.scm: Fix mistakes in docstrings.
* render: texture: Fix bug in framebuffer texture coordinates.David Thompson2018-09-101-1/+1
| | | | | * chickadee/render/texture.scm (make-texture): Don't flip texture horizontally, only vertically.
* render: framebuffer: Flip UV coordinates.David Thompson2018-09-101-0/+1
| | | | | * chickadee/render/framebuffer.scm (make-framebuffer): Flip the texture now that the texture origin is top-left.