summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* transform: Dedupe cblas-sgemm call.David Thompson2014-11-221-5/+1
| | | | | * sly/math/transform (transform*): Use 'transform*!' instead of direct 'cblas-sgemm' call.
* render: Reuse some transforms for each render call.David Thompson2014-11-221-30/+44
| | | | | | * sly/render/renderer.scm (apply-render-op): Mutate an existing transform instead of a creating a new one. (render): Likewise.
* render: Enable render context reuse when rendering scene graphs.David Thompson2014-11-222-8/+7
| | | | | | | * sly/render/renderer.scm (%make-renderer): Delete. (make-renderer): Expose record type constructor. * sly/render/scene.scm (scene->renderer): Add 'context' parameter. (draw-scene): Likewise.
* render: Add camera list back to renderer.David Thompson2014-11-222-12/+17
| | | | | | | * sly/render/renderer (apply-render-op): Add 'view' parameter. (%make-renderer, make-renderer): Add 'cameras' parameter. (renderer-cameras): New syntax. (render): Render ops for each camera.
* TODO: Add nine patches to the list.David Thompson2014-11-221-0/+4
| | | | * TODO.org: Add 'Nine patches'.
* Fix Guix environment config.David Thompson2014-11-221-2/+2
| | | | * package.scm: Use LTDL_LIBRARY_PATH instead of LD_LIBRARY_PATH.
* render: Enable blending in render context.David Thompson2014-11-101-1/+3
| | | | | * sly/render/context.scm (set-render-context-blend-mode!): Enable blending before applying a blend mode.
* Add autoconf and automake to guix environment.David Thompson2014-11-081-4/+6
| | | | * package.scm: Add autoconf and automake as inputs.
* Add mesa package to guix environment.David Thompson2014-11-081-1/+2
| | | | * package.scm: Add mesa as input.
* Add guix environment.David Thompson2014-11-082-0/+71
| | | | | * package.scm: New file. * README.org (Developing): New section.
* Delete more unneeded files.David Thompson2014-11-082-239/+0
| | | | | * sly/mode.scm: Delete. * sly/scene-graph.scm: Delete.
* Delete obsolete animation module.David Thompson2014-11-082-120/+0
| | | | | * sly/animation.scm: Delete. * Makefile.am (SOURCES): Remove it.
* render: Move font module to sly/render directory.David Thompson2014-11-084-4/+4
| | | | | | | | * sly/font.scm: Delete. * sly/render/font.scm: New file. * Makefile.am (SOURCES): Add new file. Delete old one. * examples/font.scm: Use (sly render font). * examples/joystick.scm: Likewise.
* render: Move color module to sly/render directory.David Thompson2014-11-0814-14/+14
| | | | | | | | | | | | | | | | | | * sly/color.scm: Delete. * sly/render/color.scm: New file. * Makefile.am (SOURCES): Add new file. Delete old one. * sly/font.scm: Use (sly render color) module. * sly/render/camera.scm: Likewise. * sly/render/mesh.scm: Likewise. * sly/render/shader.scm: Likewise. * sly/render/sprite.scm: Likewise. * sly/render/texture.scm: Likewise. * sly/render/vertex-array.scm: Likewise. * sly/transition.scm: Likewise. * examples/font.scm: Likewise. * examples/simple.scm: Likewise. * examples/tilemap.scm: Likewise. * examples/transition.scm: Likewise.
* input: Move joystick module to sly/input directory.David Thompson2014-11-083-3/+3
| | | | | | | * sly/joystick.scm: Delete. * sly/input/joystick.scm: New file. * Makefile.am (SOURCES): Add new file. Delete old one. * examples/joystick.scm: Use (sly input joystick) module.
* input: Move mouse module to sly/input directory.David Thompson2014-11-083-3/+3
| | | | | | | * sly/mouse.scm: Delete. * sly/input/mouse.scm: New file. * Makefile.am (SOURCES): Add new file. Delete old one. * examples/font.scm: Use (sly input mouse).
* input: Move keyboard module to sly/input directory.David Thompson2014-11-084-4/+4
| | | | | | | | * sly/keyboard.scm: Delete. * sly/input/keyboard.scm: New file. * Makefile.am (SOURCES): Add new file. Delete old file. * examples/common.scm: Use (sly input keyboard). * examples/tilemap.scm: Likewise.
* math: Move rect module to sly/math directory.David Thompson2014-11-085-4/+216
| | | | | | | | * sly/rect.scm: Delete. * sly/math/rect.scm: New file. * Makefile.am (SOURCES): Add new file. Delete old one. * sly/render/camera.scm: Use (sly math rect) module. * examples/simple.scm: Likewise.
* math: Move transform module to sly/math directory.David Thompson2014-11-089-10/+17
| | | | | | | | | | | | | * sly/transform.scm: Delete. * sly/render/transform.scm: New file. * Makefile.am (SOURCES): Add new file. Delete old one. * sly/render/camera.scm: Use (sly math transform). * sly/render/mesh.scm: Likewise. * sly/render/renderer.scm: Likewise. * sly/render/scene.scm: Likewise. * sly/render/shader.scm: Likewise. * sly/window.scm: Likewise. * examples/simple.scm: Likewise.
* math: Move quaternion module to sly/math directory.David Thompson2014-11-084-4/+4
| | | | | | | | * sly/quaternion.scm: Delete. * sly/math/quaternion.scm: New file. * Makefile.am (SOURCES): Add new file. Delete old one. * sly/transform.scm: Use (sly math quaternion). * sly/transition.scm: Likewise.
* render: Move scene module to sly/render directory.David Thompson2014-11-084-4/+31
| | | | | | | | * sly/scene.scm: Delete. * sly/render/scene.scm: New file. * Makefile.am (SOURCES): Add new file. Delete old one. * examples/simple.scm: Use (sly render scene). * examples/tilemap.scm: Likewise.
* render: Move tileset module to sly/render directory.David Thompson2014-11-084-4/+4
| | | | | | | | * sly/tileset.scm: Delete. * sly/render/tileset.scm: New file. * Makefile.am (SOURCES): Add new file. Delete old one. * examples/animation.scm: Use (sly render tileset). * examples/tileset.scm: Likewise.
* render: Move shape module to sly/render directory.David Thompson2014-11-082-2/+2
| | | | | | * sly/shape.scm: Delete. * sly/render/shape.scm: New file. * Makefile.am (SOURCES): Add new file. Delete old one.
* render: Move mesh module to sly/render directory.David Thompson2014-11-085-5/+5
| | | | | | | | | * sly/mesh.scm: Delete. * sly/render/mesh.scm: New file. * Makefile.am (SOURCES): Add new file. Delete old one. * sly/font.scm: Use (sly render mesh). * sly/render/sprite.scm: Likewise. * sly/shape.scm: Likewise.
* render: Move shader module to sly/render directory.David Thompson2014-11-079-9/+9
| | | | | | | | | | | | | * sly/shader.scm: Delete. * sly/render/shader.scm: New file. * Makefile.am (SOURCES): Add new file and delete old one. * sly/font.scm: Use (sly render shader). * sly/mesh.scm: Likewise. * sly/render/context.scm: Likewise. * sly/render/renderer.scm: Likewise. * sly/render/sprite.scm: Likewise. * sly/render/vertex-array.scm: Likewise. * sly/shape.scm: Likewise.
* render: Move sprite module to sly/render directory.David Thompson2014-11-0711-11/+11
| | | | | | | | | | | | | | | * sly/sprite.scm: Delete. * sly/render/sprite.scm: New file. * Makefile.am (SOURCES): Add new file and delete old one. * sly/font.scm: Use (sly render sprite). * examples/animation.scm: Likewise. * examples/common.scm: Likewise. * examples/coroutine.scm: Likewise. * examples/joystick.scm: Likewise. * examples/particles.scm: Likewise. * examples/simple.scm: Likewise. * examples/tilemap.scm: Likewise. * examples/transition.scm: Likewise.
* render: Move texture module to sly/render directory.David Thompson2014-11-0716-16/+16
| | | | | | | | | | | | | | | | | | | | * sly/texture.scm: Delete. * sly/render/texture.scm: New file. * Makefile.am (SOURCES): Add it. * sly/animation.scm: Use (sly render texture). * sly/font.scm: Likewise. * sly/mesh.scm: Likewise. * sly/render/context.scm: Likewise. * sly/render/framebuffer.scm: Likewise. * sly/render/renderer.scm: Likewise. * sly/shape.scm: Likewise. * sly/sprite.scm: Likewise. * sly/tileset.scm: Likewise. * examples/coroutine.scm: Likewise. * examples/joystick.scm: Likewise. * examples/particles.scm: Likewise. * examples/tilemap.scm: Likewise. * examples/transition.scm: Likewise.
* configure: Correct version number.David Thompson2014-11-071-1/+1
| | | | * configure.ac: Change version to 0.1.
* configure: Check for freeimage.David Thompson2014-11-071-2/+5
| | | | * configure.ac: Perform a primitive check for libfreeimage.
* configure: Check for guile-sdl and guile-opengl.David Thompson2014-11-071-3/+5
| | | | | * configure.ac: Check for (sdl sdl), (sdl mixer), (sdl ttf), and (gl) modules.
* configure: Check for Guile >= 2.0.11.David Thompson2014-11-071-9/+2
| | | | * configure.ac: Test for Guile 2.0.11.
* configure: Test for GSL.David Thompson2014-11-071-0/+1
| | | | * configure.ac: Test for gsl pkg-config module.
* Rename (sly helpers) module to (sly utils).David Thompson2014-11-077-7/+7
| | | | | | | | | | | | | * sly/helpers.scm: Delete. * sly/utils.scm: New file. * Makefile.am (SOURCES): Remove old file. Add new one. * sly/render/camera.scm: s/helpers/utils/ * sly/scene.scm: Likewise. * sly/shader.scm: Likewise. * sly/sprite.scm: Likewise. * sly/texture.scm: Likewise. * sly/transform.scm: Likewise. * examples/tilemap.scm: Likewise.
* render: Add rendering context record type.David Thompson2014-11-076-35/+147
| | | | | | | | | | | | | | | | | * sly/render/context.scm: New file. * Makefile.am (SOURCES): Add it. * sly/render/renderer.scm (with-texture-maybe): Delete. (apply-render-op): Use render context. (<renderer>) [context]: New field. (%make-renderer): New syntax. (make-renderer): Was syntax, now a procedure. (render): Use render context. * sly/render/vertex-array.scm (apply-vertex-array): New procedure. (with-vertex-array): Use it. * sly/shader.scm (apply-shader-program): New procedure. (with-shader-program): Use it. * sly/texture.scm (apply-texture): New procedure. (with-texture): Use it.
* transform: Use GSL for much faster matrix multiplication.David Thompson2014-11-071-11/+12
| | | | | * sly/transform (transform->pointer): New procedure. (transform*): Use GSL.
* wrappers: Add GSL wrapper.David Thompson2014-11-072-0/+50
| | | | | * Makefile.am (WRAPPER_SOURCES): Add it. * sly/wrappers/gsl.scm: New file.
* scene: Decouple draw method from scene graph.David Thompson2014-10-303-4/+14
| | | | | | | * sly/render/renderer.scm (transform-render-op): New procedure. * sly/scene.scm (scene->renderer): Don't pass transform to draw method. Instead, transform the resulting render op afterwards. * sly/mesh.scm (draw): Remove 'transform' parameter.
* render: Remove knowledge of cameras from renderer.David Thompson2014-10-292-23/+22
| | | | | | | | | | | * sly/render/renderer.scm (renderer-cameras): Delete. (apply-render-op): Remove 'view' parameter. (make-renderer): Remove 'cameras' parameter. (render): Remove camera logic. * sly/scene.scm (scene->render-list): Renamed. (scene->renderer): New procedure. Return a renderer instead of a list of render ops. (draw-scene): New procedure.
* viewport: Memoize clear-buffer-mask.David Thompson2014-10-281-9/+12
| | | | * sly/render/camera.scm (clear-buffer-mask): Memoize.
* viewport: Define standard clear flags.David Thompson2014-10-281-2/+4
| | | | * sly/render/camera.scm (%standard-clear-flags): New variable.
* renderer: Apply camera viewport before rendering.David Thompson2014-10-281-0/+1
| | | | * sly/render/renderer.scm (render): Apply camera viewports.
* font: Embrace the bottom-left origin.David Thompson2014-10-281-4/+24
| | | | | * sly/font.scm (flip-pixels-vertically): New procedure. (render-text): Flip surface vertically before creating a texture.
* texture: Embrace the bottom-left origin.David Thompson2014-10-281-2/+0
| | | | * sly/texture.scm (load-bitmap): Do not flip y-axis.
* Remove unneeded (sly camera) imports.David Thompson2014-10-282-2/+0
| | | | | * sly/game.scm: Remove (sly camera) import. * sly/scene.scm: Likewise.
* render: Add framebuffer module.David Thompson2014-10-282-0/+119
| | | | | * sly/render/framebuffer.scm: New file. * Makefile.am (SOURCES): Add it.
* gl: Add wrappers for framebuffer/renderbuffer functions.David Thompson2014-10-281-0/+73
| | | | | | | * sly/wrappers/gl.scm (glGenFramebuffers, glDeleteFramebuffers, glBindFramebuffer, glFramebufferTexture2D, glCheckFramebufferStatus, glGenRenderbuffers, glDeleteRenderbuffers, glBindRenderbuffer, glRenderbufferStorage, glFramebufferRenderbuffer): New procedures.
* camera: Rewrite module.David Thompson2014-10-264-142/+108
| | | | | | | * Makefile.am (SOURCES): Update camera module file name. * sly/camera.scm: Delete. * sly/render/renderer.scm: Import new camera module. * sly/render/camera.scm: New file.
* render: Add blend-mode field to render operations.David Thompson2014-10-261-5/+16
| | | | | | * sly/render/renderer.scm (render-op-blend-mode): New syntax. (make-render-op): Add 'blend-mode' parameter. (apply-render-op): Set blending mode.
* render: Add blending data type.David Thompson2014-10-261-1/+58
| | | | | | | | | * sly/render/utils.scm (<blend-mode>): New record type. (make-blend-mode, blend-mode?, blend-mode-source, blend-mode-destination): New syntax. (default-blend-mode): New variable. (source-blend-function, destination-blend-function, apply-blend-mode): New procedures.
* transform: Add transform-position procedure.David Thompson2014-10-261-0/+9
| | | | * sly/transform.scm (transform-position): New procedure.