summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* render: texture: Add flip? argument to make-texture.David Thompson2018-09-101-5/+11
| | | | * chickadee/render/texture.scm (make-texture): Add #:flip? keyword argument.
* render: Change texture origin to top-left.David Thompson2018-09-104-49/+37
| | | | | | | | | | | | | This is a pretty big change, but hopefully for the best as this aligns with graphics programs and the glTF standard that uses a top-left origin. We can keep using a lower-left origin for vertices, though. * chickadee/render/texture.scm (surface->texture): Stop flipping pixel rows. * chickadee/render/sprites.scm (draw-sprite-unbatched, sprite-batch-add!, draw-nine-patch*): Adjust texture y-coordinates. * chickadee/render/font.scm (parse-fnt): Stop inverting y coordinates. * chickadee/render/tiled.scm (load-tile-map): Stop inverting tile ids.
* math: vector: Fix vec2-normalize and vec3-normalize.David Thompson2018-09-101-12/+12
| | | | | | * chickadee/math/vector.scm: Move vec2-normalize and vec3-normalize below the definitions of vec2-normalize! and vec3-normalize! so that inlining doesn't screw things up.
* math: vector: Add vec2*, vec2+, and vec2- procedures.David Thompson2018-09-101-0/+21
| | | | * chickadee/math/vector.scm (vec2*, vec2+, vec2-): New procedures.
* render: asset: Don't use mipmaps for now.David Thompson2018-09-071-4/+6
| | | | Chickadee doesn't support them yet.
* render: asset: Use default sampler index of 0 when loading textures.David Thompson2018-09-071-1/+2
|