| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Due to the declarative modules feature of Guile 2.9.4+, the existing
technique of using one top-level variable per GL state was very broken
because the initial values got cached at all call sites and state
updates were being silently ignored and thus the game window was
always a black screen. Not good! By replacing all of the state
variables with a single "context" object and poking at fields inside,
things work again and it's arguably the better design anyhow.
|
| |
|
|
|
|
|
|
| |
* chickadee/render/particles.scm (update-particles): Use a dedicated
bytevector for storing the state of the particles and copy it over
to the GPU at the end.
|
| |
|
| |
|
|
|
|
|
|
| |
* chickadee/render/tiled.scm (point->tile): New procedure.
* doc/api.texi (Tiled): Document it.
* examples/tiled.scm: Render tile coordinates in bottom-left corner.
|
| |
|
| |
|
|
|
|
| |
* doc/api.texi (Live Coding): New subsection.
|
|
|
|
| |
* doc/api.texi (Tile Maps): Add more procedure documentation.
|
| |
|
|
|
|
|
| |
* examples/game-controller.scm: Use new sprite batch API.
* examples/grid.scm: Ditto.
|
|
|
|
|
| |
* chickadee/render/sprite.scm (draw-sprite-batch*): New procedure.
(draw-sprite-batch): Rewrite in terms of 'draw-sprite-batch*'.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
* chickadee/render/asset.scm: s/typed-buffer/buffer-view/
* chickadee/render/particles.scm: Same.
|
|
|
|
|
| |
* doc/api.texi (Agendas): Rewrite example code that used obsolete hook
API.
|
|
|
|
|
|
|
| |
* chickadee/render/buffer.scm: s/typed-buffer/buffer-view/
* chickadee/render/shapes.scm: Same.
* chickadee/render/sprite.scm: Same.
* doc/api.texi: Same.
|
|
|
|
|
| |
* chickadee/render/texture.scm (list->texture-atlas): Tweak docstring.
* doc/api.texi (Textures): Document more procedures.
|
|
|
|
| |
* chickadee/render/texture.scm: Remove texture-id from exports list.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This new version performs better and has a better API. It closely
resembles Love2D's sprite batch API.
* chickadee/render/sprite.scm (with-batched-sprites,
sprite-batch-reset!, sprite-batch-begin!,
draw-sprite-batched, *batch?*, %batch): Delete.
(draw-sprite-unbatched): Rename to 'draw-sprite*'.
(<sprite-batch>)[index-buffer, position-buffer, texture-buffer]:
Delete fields.
[vertex-buffer]: New field.
(init-sprite-batch, double-sprite-batch-size!, sprite-batch-add!,
sprite-batch-flush!): Rewrite.
(make-sprite-batch): Add 'capacity' and 'blend-mode' arguments.
(draw-sprite-batch): New procedure.
(draw-nine-patch*): Stop using sprite batches for now.
* chickadee/render/font.scm: (<font>)[sprite-batches]: New field.
(load-tile-font, load-font): Create a sprite batch for each texture
loaded.
(draw-text*): Use sprite batches.
* chickadee/render/tiled.scm: (<tile>)[batch]: New field.
(<tileset>)[batch]: New field.
(load-tile-map): Create a sprite batch for each tileset.
(draw-tile-layer): Use new sprite batch API.
(draw-tile-map*): Remove reference to deleted macro.
|
|
|
|
| |
* chickadee/render/buffer.scm (map-buffer!): Add optional 'mode' argument.
|
|
|
|
|
| |
* chickadee/render/buffer.scm (map-buffer!): Compare symbols to
symbols for checking stream usage. -__-
|
|
|
|
|
| |
* chickadee/render/buffer (map-buffer!): Do nothing if buffer is
already mapped to avoid throwing an error.
|
|
|
|
| |
* chickadee/render/buffer.scm (buffer-mapped?): New procedure.
|
|
|
|
|
| |
* chickadee/render/font.scm (draw-text*): Advance to the next line on
screen when \n is encountered.
|
|
|
|
|
| |
* chickadee/render/tiled.scm (load-tile-map): Parse out the 3 flip
bits from each tile id.
|
| |
|
|
|
|
|
| |
* chickadee/render/texture.scm (split-texture): Use ceiling instead of
floor when computing number of rows and columns.
|
|
|
|
|
| |
* chickadee.scm (run-game): Remove initial iteration over game
controller hash table.
|
|
|
|
|
|
| |
* chickadee/render/sprite.scm (draw-nine-patch*, draw-nine-patch): Add
tint keyword argument.
* doc/api.texi (Sprites): Document new argument.
|
|
|
|
|
|
| |
* examples/sprite-batch.scm: New file.
* examples/images/shot.png: New file.
* Makefile.am (EXTRA_DIST): Add them.
|
|
|
|
|
|
|
|
|
| |
This will allow for lots of controllers to be automatically mapped
correctly without the user having to do anything.
* data/gamecontrollerdb.txt: New file.
* Makefile.am (dist_pkgdata_DATA): Add it.
* chickadee.scm (run-game): Load game controller db file.
|
| |
|
|
|
|
| |
Add support for tinting and simplify batch rendering.
|
|
|
|
|
|
|
|
|
| |
* chickadee/render/color.scm (<color>): Use a single field for storing
bytevector.
(make-color): Wrap f32vector.
(color-r, color-g, color-b, color-a): Fetch channel values from
f32vector.
(color): New procedure.
|
|
|
|
| |
* chickadee/math/matrix.scm (transform-x, transform-y): New procedures.
|
|
|
|
|
|
| |
* examples/game-controller.scm: New file.
* examples/images/controller-buttons.png: New file.
* Makefile.am (EXTRA_DIST): Add them.
|
|
|
|
|
|
|
|
|
| |
I thought this was necessary to process controllers that were already
connected to the computer before a Chickadee-using program was
launched, but that doesn't seem to be the case.
* chickadee.scm (open-all-controllers): Delete.
(run-game): Remove call to open-all-controllers.
|
|
|
|
| |
* chickadee.scm (controller-name): New procedure.
|
|
|
|
|
| |
* chickadee.scm (controller-axis): Fix math so that axis values are
actually in the range [0, 1].
|
|
|
|
|
|
|
|
|
|
| |
The split-texture procedure would throw an exception in the event that
the image width/height could not be divided by tile width/height with
0 remainder.
* chickadee/render/texture.scm (split-texture): Floor the results of
dividing image dimensions by tile dimensions and ensure they are exact
integers.
|