| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
* 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.
|
| |
|
| |
|
|
|
|
| |
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.
|