| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
* 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.
|
| |
|
|
|
|
| |
* Makefile.am (godir): Use "site-ccache", not "ccache".
|
|
|
|
|
| |
* chickadee/render/font.scm (default-font): Change from variable to
procedure.
|
| |
|
| |
|
|
|
|
|
|
| |
* examples/images/explosion.png: New file.
* examples/particles.scm: New file.
* Makefile.am (EXTRA_DIST): Add them.
|
|
|
|
|
| |
Forgot to prefix imported procedures since I define procedures with
the same names.
|
| |
|
|
|
|
|
|
|
| |
Not ready to document them at this time since I have not done full
tests with a USB controller yet.
* chickadee.scm (controller-button-pressed?, controller-axis): New procedures.
|
|
|
|
|
| |
* chickadee.scm (mouse-x, mouse-y, mouse-button-pressed?,
mouse-button-released?): New procedures.
|
|
|
|
|
| |
* chickadee.scm (key-pressed?, key-released?): New procedures.
* examples/grid.scm: Remove (sdl2 input keyboard) import.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
* chickadee/render/sprite.scm (draw-sprite-unbatched): Combine
vertices and texcoords into a single packed buffer.
|
|
|
|
|
|
|
|
|
|
|
| |
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/api.texi (Rectangles): Document 'rect' procedure.
|
|
|
|
| |
* chickadee/math/rect.scm (rect): New procedure.
|
|
|
|
| |
* chickadee/render/font.scm (draw-text*): Use new set-vec2! procedure.
|
|
|
|
|
| |
* chickadee/render/sprite (sprite-batch-add!): Use new set-vec2!
procedure.
|
|
|
|
|
| |
* chickadee/math/vector.scm (set-vec2!, set-vec3!): New procedures.
* doc/api.texi (Vectors): Document them.
|
| |
|
| |
|