| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
* chickadee/render/framebuffer.scm (<framebuffer>)[projection]: New
field.
(make-framebuffer): Use an orthographic projection the same size as
the framebuffer as the default projection matrix.
* chickadee/render.scm (with-framebuffer): Apply default projection
matrix.
|
| |
|
|
|
|
|
| |
* chickadee/math/grid.scm (slide): Simplify formula for setting new
goal coordinates.
|
|
|
|
|
|
| |
* chickadee/render/particles.scm: New file.
* Makefile.am (SOURCES): Add it.
* doc/api.texi (Particles): New subsection.
|
|
|
|
|
| |
* chickadee/render/buffer.scm (component-type-size,
typed-buffer-type-gl): Add int and double cases.
|
|
|
|
| |
* doc/api.texi (Sprites): s/diving/dividing/
|
|
|
|
|
| |
* chickadee/render/blend.scm (apply-blend-mode): Use the correct
destination blending factor (one, not zero!) for additive blending.
|
|
|
|
|
|
|
| |
* chickadee/math/grid.scm (make-grid): Set a high minimum bucket size
to avoid rehashing.
(grid-move): Use memoized inexact->exact procedure. Fix return value
of check procedure being ignored.
|
|
|
|
|
|
|
|
| |
There's still a lot of work needed to make the collision grid scale to
any reasonable number of moving objects, but this is a first step.
* chickadee/math/grid.scm: Big ol' refactor that I can't be bothered
to list all the changes for.
|
| |
|
|
|
|
|
|
| |
* chickadee/scripting/channel.scm (channel-get!, channel-put!): New
procedures.
* doc/api.texi [Channels]: Add docs.
|
|
|
|
| |
* chickadee/queue.scm (queue-length): New procedure.
|
|
|
|
|
| |
* chickadee/scripting/channel.scm: Remove (ice-9 format) and
(srfi srfi-11) imports.
|
| |
|
|
|
|
| |
* chickadee/render.scm (gpu-apply/instanced*, gpu-apply/instanced): New syntax.
|
|
|
|
| |
* chickadee/render/buffer.scm (render-vertices/instanced): New procedure.
|
|
|
|
|
|
|
| |
* chickadee/render/buffer.scm (<typed-buffer>)[divisor]: New field.
(typed-buffer-divisor): New procedure.
(make-typed-buffer, make-streaming-typed-buffer): Add #:divisor argument.
(apply-typed-buffer): Setup vertex attribute divisor if there is one.
|
|
|
|
| |
* chickadee/render/gl.scm (gl-draw-elements-instanced): New procedure.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
* 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.
|