| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
|
|
|
|
|
| |
* chickadee/math/vector.scm (read-vec): New procedure. Extend reader.
* examples/lines.scm: Use new vector read syntax.
* examples/nine-patch.scm: Ditto.
* examples/sprite.scm: Ditto.
* examples/text.scm: Ditto.
* examples/tiled.scm: Ditto.
|
|
|
|
| |
* chickadee/window.scm: Export close-window! for real this time.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is really cool! Now users can plug in whatever backend they'd
like and are not forced to use SDL and OpenGL. Thanks to Chris Webber
for showing me the Lux library for Racket that does exactly this.
* chickadee.scm (run-game): Remove all SDL/OpenGL code, replace with
generic render/update keyword arguments.
(run-game/sdl): New procedure.
* examples/lines.scm: Update for API breakage.
* examples/nine-patch.scm: Ditto.
* examples/sprite.scm: Ditto.
* examples/text.scm: Ditto.
* examples/tiled.scm: Ditto.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
SRFI-88 introduces a problematic global reader macro that I didn't
know about until Ricardo Wurmus reported some strange behavior that
was traced back to this SRFI. Thanks to Ludovic Courtes for pointing
it out.
* chickadee/render.scm: Remove (srfi srfi-88) import.
(keyword->string): New procedure.
|
| |
|
| |
|
|
|
|
| |
Accidentally removed the wrong buffer.scm!
|
|
|
|
|
|
|
|
|
|
|
| |
Trying to force certain GL versions and other attributes has only
caused problems for potential users thus far. Let's see how far we
get by just removing this stuff.
* chickadee/window.scm (open-window): Remove OpenGL settings.
* chickadee/render/shapes.scm (draw-filled-rect, draw-line): Drop
shader version from 330 to 130.
* chickadee/render/sprite.scm (default-shader): Same.
|
| |
|
|
|
|
| |
* doc/api.texi (Framebuffers): Add basic API documentation.
|
|
|
|
|
| |
* chickadee.scm (call-with-error-handling): Do not catch errors when
the error hook has nothing in it.
|
|
|
|
|
| |
* chickadee/render/tiled.scm (load-tile-map): Handle both internal and
external tilesets.
|
| |
|
|
|
|
|
| |
* chickadee.scm (call-with-error-handling): Run hook with error key
and args.
|
|
|
|
|
|
|
| |
* chickadee.scm (error-hook): New variable.
(display-game-loop-error, call-with-error-handling): New procedures.
(run-hook*): New syntax.
(run-game): Wrap all hooks with error handling.
|
|
|
|
|
|
| |
* chickadee/render/font.scm (draw-text*, draw-text): Add start and end
arguments.
* doc/api.texi (Fonts): Document new arguments.
|
|
|
|
| |
* chickadee/render/tiled.scm: Export draw-tile-map*.
|
|
|
|
|
| |
* chickadee/render/tiled.scm (load-tile-map): Invert Y coordinate for
objects.
|
|
|
|
| |
* chickadee/render/tiled.scm (tile-map-layer-ref): New procedure.
|
|
|
|
|
| |
* chickadee/render/font.scm (font-line-width): Fix addition of number
with vector, use X coordinate instead.
|
|
|
|
|
|
|
| |
Reported-By: Christopher Howard <christopher.howard@qlfiles.net>
* chickadee.scm (run-game): Invert the Y coordinate received from
SDL's mouse motion event.
|
|
|
|
| |
* chickadee/render/font.scm (font-line-width): New procedure.
|
|
|
|
|
| |
* chickadee/render/font.scm (draw-text*): Default to "?" character
when the desired character isn't present in the font.
|
| |
|
|
|
|
|
|
|
|
| |
* examples/images/tiles.png: New file.
* examples/map/example.tmx: New file.
* examples/tiled.scm: New file.
* Makefile.am (EXTRA_DIST): Add them.
* examples/images/AUTHORS: Credit the author of the tileset.
|
|
|
|
|
|
| |
* chickadee/render/tiled.scm: New file.
* Makefile.am (SOURCES): Add it.
* doc/api.texi (Tile Maps): New subsection.
|
|
|
|
| |
* chickadee/render/texture.scm (display-texture): New procedure.
|
|
|
|
| |
2.2.3 has a bad performance regression. :(
|
|
|
|
|
|
|
|
|
| |
A lot better than crashing, I'd say. :)
Reported-By: Christopher Howard <christopher.howard@qlfiles.net>
* chickadee/window.scm (open-window): Catch errors thrown by
set-gl-swap-interval! and emit warning.
|
|
|
|
| |
* chickadee/math/matrix.scm (matrix4-2d-transform!): Fix bad typos!
|
|
|
|
|
|
|
|
|
|
| |
Easier to calculate it once and hang onto it than to generate it each
time draw-sprite is called.
* chickadee/render/texture.scm (<texture>)[rect]: Delete field.
[x y width height gl-tex-rect]: New fields.
* chickadee/render/sprite.scm (draw-sprite*, draw-sprite,
draw-nine-patch*): Use proper accessors for texture rects.
|
|
|
|
|
| |
* chickadee/render/font.scm (%null-vec): Rename to...
(%null-vec2): ...this.
|
|
|
|
|
|
|
|
|
|
| |
The texture-rect procedure contains the pixel location of the texture
region, so if you use that rect to render a sprite the result is a
sprite offset by its location in the greater texture, which is very
very very wrong.
* chickadee/render/sprite.scm (draw-sprite): Dynamically configure
rendering rect based on the texture region's width and height.
|
|
|
|
|
| |
* chickadee/render/texture.scm (split-texture): Width and height
variables need to contain exact numbers.
|
|
|
|
| |
This reverts commit 8cbb7eed56c4b5edd780c2d51aaa0a4c3eab7350.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* chickadee/render/texture.scm (<texture-region>): Delete type.
(<texture>)[width, height, gl-size]: Delete fields.
[parent, rect, gl-rect]: Add fields.
(texture-region?): Rewrite.
(make-texture, null-texture): Use new texture constructor.
(make-texture-region): Rewrite in terms of <texture> type.
(list->texture-atlas, split-texture): Use new texture region
constructor.
* chickadee/render/sprite.scm (draw-sprite*): New procedure.
(draw-sprite): Rewrite in terms of draw-sprite*.
(draw-nine-patch*): New procedure.
(draw-nine-patch): Rewrite in terms of draw-nine-patch*.
* chickadee/render/font.scm (draw-text*): New procedure.
(draw-text): Rewrite in terms of draw-text*.
* doc/api.texi: Update draw-sprite, draw-nine-patch, and draw-text
docs.
|
|
|
|
| |
* chickadee/math/matrix.scm (matrix4-2d-transform): New procedure.
|
|
|
|
|
|
| |
* chickadee.scm (error-handler): New procedure.
(with-error-handling): New syntax.
(run-game): Handle errors caught when running hooks.
|
|
|
|
| |
* chickadee.scm (run-game): window-height is not a procedure!
|
|
|
|
|
|
|
| |
Hide the weird SDL usage of 0 to 128.
* chickadee/audio.scm (set-sample-volume!, music-volume,
set-music-volume!): Translate to/from SDL's volume range.
|
|
|
|
| |
* chickadee/render/shapes.scm (draw-filled-rect): New procedure.
|
|
|
|
| |
* chickadee/render/color.scm (color-lerp): New procedure.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* chickadee/render/sprite.scm (draw-sprite-unbatched,
draw-sprite-batched): Replace 'scale' and 'rotation' arguments with a
'matrix' argument.
(sprite-batch-add!): Ditto. Also, correctly transform sprite
vertices. This was previously not handling rotations properly.
(%default-offset): New variable.
(draw-sprite, draw-nine-patch): Change default values for 'rotation'
and 'scale'. Add 'matrix' and 'offset' arguments.
* chickadee/render/font.scm (%default-offset): New variable.
(draw-text): Change default values for 'rotation' and 'scale'. Add
'offset' and 'matrix' arguments.
|
|
|
|
| |
* chickadee.scm (run-game): Invert all Y coordinates received from SDL.
|
|
|
|
| |
* chickadee/math/matrix.scm (matrix4-translate!): Add rect support.
|
| |
|
|
|
|
|
|
|
|
| |
I found that the 'framebuffer-srgb-capable' setting does not work with
Mesa 17.2.1. Best to just get rid of it.
* chickadee/window.scm (open-window): Remove setting for
'framebuffer-srgb-capable'.
|