summaryrefslogtreecommitdiff
path: root/sly/render
Commit message (Collapse)AuthorAgeFilesLines
* render: sprite: Remove make-animated-sprite.David Thompson2014-12-061-23/+1
| | | | * sly/render/sprite.scm (make-animated-sprite): Delete.
* render: group: Properly reset render context before rendering.David Thompson2014-12-061-8/+9
| | | | * sly/render/group.scm (draw-group): Use with-render-context macro.
* render: sprite: Floor anchor coordinates to prevent fuzzy images.David Thompson2014-12-061-2/+2
| | | | * sly/render/sprite.scm (make-sprite): Floor anchor vector.
* render: group: Work on groups, not lists of children.David Thompson2014-11-301-6/+14
| | | | | * sly/render/group.scm (group-move, group-place, group-show): Replace children parameter with group.
* render: sprite: Alias make-sprite to sprite.David Thompson2014-11-301-2/+3
| | | | * sly/render/sprite.scm (sprite): New procedure.
* render: Prefix group and model procedures.David Thompson2014-11-302-7/+7
| | | | | | | * sly/render/group.scm (move, place, show): Delete. (group-move, group-place, group-show): New procedures. * sly/render/model.scm (paint, blend): Delete. (model-paint, model-blend): New procedures.
* render: group: Make context optional when drawing.David Thompson2014-11-301-10/+12
| | | | * sly/render/group (draw-group): Use global context by default.
* render: texture: Reverse top/bottom in anchor-texture.David Thompson2014-11-301-6/+6
| | | | | * sly/render/texture.scm (anchor-texture): Reverse y coordinates between top and bottom anchors.
* render: sprite: Turn off depth test by default.David Thompson2014-11-301-1/+2
| | | | * sly/render/sprite.scm (make-sprite): Disable depth test.
* render: font: Alias 'make-label' to 'label'.David Thompson2014-11-301-3/+5
| | | | * sly/render/font.scm (label): New procedure.
* render: mesh: Add a finalizer to reclaim memory used by OpenGL.David Thompson2014-11-301-6/+18
| | | | | | | * sly/render/mesh.scm (<mesh>) [mesh-vbos]: New field. (mesh-guardian): New guardian. (make-mesh): Add new meshes to guardian. * sly/wrappers/gl.scm (glDeleteVertexArrays): New procedure.
* render: texture: Factorize bytevector to texture conversion.David Thompson2014-11-302-39/+21
| | | | | | * sly/render/texture.scm (bytevector->texture): New procedure. (bitmap->texture): Define in terms of 'bytevector->texture'. * sly/render/font.scm (render-text): Likewise.
* render: texture: Remove unneeded protection from texture guardian.David Thompson2014-11-301-4/+1
| | | | * sly/render/texture (texture-guardian): Remove 'false-if-exception'.
* render: camera: Fix orthographic camera such that the y-axis points up.David Thompson2014-11-301-1/+1
| | | | * sly/render/camera.scm (orthographic-camera): Reverse y-axis.
* render: Rename vertex-array to mesh.David Thompson2014-11-297-307/+258
| | | | | | | | | | | | | * sly/render/vertex-array.scm: Delete. * Makefile.am (SOURCES): Delete it. * sly/render/mesh.scm: Move vertex-array code and rename to mesh. * sly/render/model.scm (draw-model): s/vertex-array/mesh/ * sly/render/context.scm: Likewise. * sly/render/shape.scm (make-cube): Return a model object. * sly/render/font.scm (make-label): Likewise. * sly/render/sprite.scm (make-sprite): Likewise. Remove 'color' parameter. (load-sprite): Likewise.
* render: color: Add transparency.David Thompson2014-11-291-1/+6
| | | | * sly/render/color.scm (transparency): New procedure.
* render: Delete renderer module.David Thompson2014-11-291-128/+0
| | | | | * sly/render/renderer.scm: Delete. * Makefile.am (SOURCES): Delete it.
* render: Delete scene module.David Thompson2014-11-291-91/+0
| | | | | * sly/render/scene.scm: Delete. * Makefile.am (SOURCES): Delete it.
* render: Define mesh in terms of model.David Thompson2014-11-291-25/+4
| | | | | | * sly/render/mesh.scm (<mesh>, %make-mesh, mesh?, mesh-vao, mesh-shader, mesh-texture): Delete. (make-mesh): Create a model object.
* render: Add transform stack to render context.David Thompson2014-11-291-5/+29
| | | | | | | | * sly/render/context.scm (<render-context) [transform-stack]: New field. (render-context-transform-stack): New accessor. (make-null-transform, make-transform-stack): New procedures. (make-render-context): Add 'transform-stack-size' parameter. (with-temp-transform): New syntax.
* render: Add group and model modules.David Thompson2014-11-292-0/+252
| | | | | | * sly/render/model.scm: New file. * sly/render/group.scm: New file. * Makefile.am (SOURCES): Add them.
* render: Draw methods now accept a 'transform' parameter.David Thompson2014-11-233-11/+3
| | | | | | * sly/render/renderer.scm (transform-render-op): Delete. * sly/render/scene.scm (scene->renderer): Update usage of 'draw' method. * sly/render/mesh.scm (draw): Add 'transform' parameter.
* scene: Drawable objects are now leaf nodes of the graph.David Thompson2014-11-231-17/+13
| | | | | | * sly/render/scene.scm (scene-node-object): Delete. (make-scene-node): Remove 'object' parameter. (scene->renderer): Transform drawables to render ops.
* scene: Remove code that should never have been committed.David Thompson2014-11-231-26/+0
|
* 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.
* 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.
* render: Move font module to sly/render directory.David Thompson2014-11-081-0/+122
| | | | | | | | * 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-087-6/+177
| | | | | | | | | | | | | | | | | | * 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.
* math: Move rect module to sly/math directory.David Thompson2014-11-081-1/+1
| | | | | | | | * 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-085-5/+5
| | | | | | | | | | | | | * 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.
* render: Move scene module to sly/render directory.David Thompson2014-11-081-0/+121
| | | | | | | | * 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-081-0/+89
| | | | | | | | * 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-081-0/+116
| | | | | | * 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-082-1/+66
| | | | | | | | | * 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-075-4/+399
| | | | | | | | | | | | | * 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-071-0/+105
| | | | | | | | | | | | | | | * 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-074-3/+249
| | | | | | | | | | | | | | | | | | | | * 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.
* Rename (sly helpers) module to (sly utils).David Thompson2014-11-071-1/+1
| | | | | | | | | | | | | * 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-073-33/+136
| | | | | | | | | | | | | | | | | * 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.
* scene: Decouple draw method from scene graph.David Thompson2014-10-301-0/+10
| | | | | | | * 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-291-16/+8
| | | | | | | | | | | * 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.
* render: Add framebuffer module.David Thompson2014-10-281-0/+118
| | | | | * sly/render/framebuffer.scm: New file. * Makefile.am (SOURCES): Add it.
* camera: Rewrite module.David Thompson2014-10-262-1/+107
| | | | | | | * 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.