| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
* chickadee/math/matrix.scm: Fix mistakes in docstrings.
|
|
|
|
|
| |
* chickadee/render/texture.scm (make-texture): Don't flip texture
horizontally, only vertically.
|
|
|
|
|
| |
* chickadee/render/framebuffer.scm (make-framebuffer): Flip the
texture now that the texture origin is top-left.
|
|
|
|
| |
* chickadee/render/texture.scm (make-texture): Add #:flip? keyword argument.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
* chickadee/math/vector.scm (vec2*, vec2+, vec2-): New procedures.
|
|
|
|
| |
Chickadee doesn't support them yet.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
* chickadee/render/asset.scm (read-gltf): Parse and load all textures
referenced by materials.
|
|
|
|
|
|
|
|
|
| |
* chickadee/render/scene.scm (draw-primitive): Set base color texture
and send base color factor as uniform to shader.
* data/shaders/pbr/pbr-vert.glsl (texcoord_0): New input attribute.
(frag_tex): New output attribute.
* data/shaders/pbr/pbr-frag.glsl (frag_tex): New input attribute.
(base_color_factor, base_color_texture): New uniforms.
|
|
|
|
|
| |
* chickadee/render/scene.scm (<metallic-roughness>): Delete. Merge all
fields into <material>.
|
| |
|
|
|
|
| |
* chickadee/render/gl.scm: Export gl-uniform3fv.
|
|
|
|
|
|
|
|
|
|
|
| |
* chickadee/render/scene.scm (<primitive>): Add matrix field.
(make-primitive): Call %make-primitive with additional matrix arg.
(<scene-node>): Add world-matrix field.
(make-scene-node): Call %make-scene-node with additional matrix arg.
(modelview): Delete.
(draw-primitive): Perform matrix multiplication without allocating.
(draw-scene-node): Likewise.
(draw-scene): Pass pre-built matrix rather than allocating.
|
|
|
|
|
| |
They don't *anything* related to PBR, but they allow me to test glTF
asset loading as I work towards full PBR support.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This one was a doozy. Took me days to figure out why something wasn't
rendering properly and this was the culprit! The last argument, the
"pointer" argument, to glVertexAttribPointer is supposed to point to
the byte offset to start reading data from the VBO. I thought this
meant that I could pass a pointer to an integer that contained the
offset. WRONG! The pointer value itself must encode that offset.
You can see in the diff that I knew this code didn't work when the
offset was 0, but somehow a null pointer worked and I just made that
case work while leaving every other offset broken. The more I know!
* chickadee/render/buffer.scm (apply-typed-buffer): Pass a pointer
whose address is the byte offset of the buffer, rather than a
pointer whose dereferenced value is an integer representing the byte
offset.
|
|
|
|
|
| |
* chickadee/render/buffer.scm (render-vertices): Use the index buffer
type rather than assuming it is always unsigned-int.
|
|
|
|
|
| |
* chickadee/render/buffer.scm (make-buffer): Remove unnecessary call
to glBufferSubData and just use glBufferData to do it all.
|
|
|
|
|
|
| |
* chickadee/render/buffer.scm (num-elements): New procedure.
(make-typed-buffer): Default 'length' to the correct value in
elements, not bytes, when a custom length is not specified.
|
|
|
|
|
| |
* chickdaee/render/buffer.scm (map-buffer!): Orphan buffer data only
when the buffer usage is 'stream'.
|
|
|
|
|
| |
* chickadee/render/scene.scm (display-primitive, display-mesh,
display-scene-node): New procedures.
|
|
|
|
| |
* chickadee/render/gl.scm (gl-point-size): New procedure alias.
|
|
|
|
|
|
|
| |
* chickadee/math/grid.scm: New file.
* examples/grid.scm: New file.
* Makefile.am (SOURCES): Add grid module.
(EXTRA_DIST): Add grid example.
|
|
|
|
|
|
|
|
| |
* chickadee.scm (default-error-handler): Delete.
(call-with-error-handling): Don't catch errors if no handler is
specified.
(run-game): Default 'error' arg to #f.
* chickadee/sdl.scm: (run-game/sdl): Likewise.
|
|
|
|
|
| |
* chickadee/render/shapes.scm (draw-bezier-curve, draw-bezier-path):
New procedures.
|
|
|
|
|
| |
* chickadee/math/bezier.scm: New file.
* Makefile.am (SOURCES): Add it.
|
|
|
|
| |
* chickadee/render/shapes.scm (draw-line): Add matrix argument.
|
|
|
|
| |
* chickadee/scripting.scm (repeat): New syntax.
|
|
|
|
|
|
|
| |
* chickadee.scm (call-with-error-handling): Call the correct error
handler. Return #t if an error occurred, #f otherwise.
(run-game): Reset current-time and buffer after recovering from an
error.
|
|
|
|
|
| |
Always printing a backtrace caused double backtraces to be printed
when using the default error handler that just re-throws the error.
|
| |
|
| |
|
|
|
|
|
|
|
| |
* chickadee.scm (default-error-handler): New procedure.
(run-game): Set default value for 'error' arg to
'default-error-handler'.
* chickadee/sdl.scm (run-game/sdl): Ditto.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* 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.
|