summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* shader: Cache locations of uniforms/attributes at shader compile-time.David Thompson2014-09-222-54/+88
| | | | | | | | | | | | | | | * sly/shader.scm (<uniform>, <attribute>): New data types. (make-uniform, uniform?, uniform-name, uniform-location, make-attribute, attribute?, attribute-name, attribute-location, shader-program-uniforms, shader-program-attributes, shader-program-uniform-location, shader-program-attribute-location): New procedures. (%display-linking-error, %shader-program-linked, uniform-location, attribute-location): Delete procedures. (make-shader-program): Look up locations of uniforms/attributes. (load-shader-program): Add uniforms and attributes parameters. (load-default-shader): Specify uniforms and attributes. (uniform-set!): Use shader-program-uniform-location.
* TODO: Add new item.David Thompson2014-09-221-0/+4
| | | | * TODO.org (Shaders): New item.
* Update sandbox.David Thompson2014-09-221-3/+7
| | | | * sandbox: Update.
* examples: Update 2048.David Thompson2014-09-221-109/+109
| | | | * examples/2048/2048: Update.
* examples: Update simple example.David Thompson2014-09-221-6/+24
| | | | * examples/simple.scm: Update.
* examples: Update tilemap example.David Thompson2014-09-101-52/+54
| | | | * examples/tilemap.scm: Update it.
* examples: Update scene-graph example.David Thompson2014-09-071-58/+62
| | | | * examples/scene-graph.scm: Update to use new scene-node DSL.
* scene: Add simple DSL for creating scene nodes.David Thompson2014-09-071-2/+4
| | | | | * sly/scene.scm (scene-root): Use make-scene-node instead of scene-node. (scene-node): Create a more pleasant syntax for defining scene nodes.
* mesh: Allow uniform values to be signals.David Thompson2014-09-061-1/+3
| | | | * sly/mesh.scm (draw-mesh): Deference uniform values that are signals.
* color: Add transparent color.David Thompson2014-09-061-0/+2
| | | | * sly/color.scm (transparent): New variable.
* sandbox: Make it work again.David Thompson2014-09-061-1/+14
| | | | * sandbox: Fix it.
* examples: Add crate texture.David Thompson2014-09-061-0/+0
| | | | * examples/images/crate.png: New file.
* examples: Update scene graph example.David Thompson2014-09-061-54/+74
|
* shader: Add color uniform to default fragment shader.David Thompson2014-09-061-1/+2
| | | | * data/shaders/default-fragment.glsl: Add color uniform.
* scene: Use GLSL uniforms in scene nodes.David Thompson2014-09-061-3/+6
| | | | | * (draw-scene-node): Add uniforms parameter and use the uniforms when rendering a mesh.
* font: Define labels in terms of sprites.David Thompson2014-09-061-20/+2
| | | | * sly/font.scm (make-label): Create sprite mesh.
* sprite: Add anchor and color parameters to make-sprite.David Thompson2014-09-061-7/+15
| | | | | * sly/sprite.scm (make-sprite): Add anchor and color keyword parameters. Color is currently unused.
* camera: Add before/after draw handlers.David Thompson2014-09-062-22/+39
| | | | | | | | | | | * sly/camera.scm (camera-before-draw-handler, camera-after-draw-handler): New procedures. (make-camera): Add before-draw and after-draw keyword parameters. (orthographic-camera): Use #:allow-other-keys. (run-handler): New procedure. (draw-camera): Enable/disable GL features before/after drawing and run handlers. * sly/window.scm (open-window): Remove calls to GL procedures.
* game: Accept one camera object as well as a list in start-game-loop.David Thompson2014-09-011-14/+20
| | | | | * sly/game.scm (start-game-loop): Support rendering a single camera object instead of just a list of cameras.
* camera: Add orthographic-camera procedure.David Thompson2014-09-011-0/+20
| | | | * sly/camera (orthographic-camera): New procedure.
* scene: Use dirty checking to improve rendering speed for static nodes.David Thompson2014-08-291-13/+38
| | | | | | | * sly/scene.scm (<scene-node>): Add transform field. (make-scene-node): Initialize transform. (scene-node-dirty?, recompute-transform!): New procedures. (draw-scene-node): Don't generate new transform if node isn't dirty.
* scene: Use quaternions for rotations.David Thompson2014-08-281-2/+3
| | | | | | * sly/scene.scm (make-scene-node): Default rotation to identity-quaternion. (draw-scene-node): Convert quaternion to transformation matrix.
* math: Add square procedure.David Thompson2014-08-281-1/+4
| | | | * sly/math.scm (square): New procedure.
* transition: Add quaternion support.David Thompson2014-08-281-0/+3
| | | | * sly/transition.scm (guess-interpolator): Use slerp for quaternions.
* Add quaternion module.David Thompson2014-08-282-0/+132
| | | | | * Makefile.am (SOURCES): Add 'sly/quaternion.scm'. * sly/quaternion.scm: New file.
* Fixup.David Thompson2014-08-281-1/+1
|
* transition: Rewrite in terms of signal-generator.David Thompson2014-08-281-10/+9
| | | | * sly/transition.scm (transition): Use signal-generator.
* signal: Add signal-timestamp.David Thompson2014-08-271-0/+7
|
* signal: Add signal-negate.David Thompson2014-08-271-0/+6
| | | | * sly/signal.scm (signal-negate): New procedure.
* camera: Use signal-let.David Thompson2014-08-271-5/+4
| | | | * sly/camera.scm (draw-camera): Use signal-let.
* signal: Allow non-signal values to be bound in signal-let.David Thompson2014-08-271-1/+1
| | | | * sly/signal.scm (signal-let): Use signal-ref-maybe instead of signal-ref.
* scene: Use signal-let instead of define/signal-ref.David Thompson2014-08-271-33/+27
| | | | | | | | * sly/scene.scm (scene-node-position, scene-node-scale, scene-node-rotation, scene-node-uniforms, scene-node-children): Do not unbox signal value. (define/signal-ref): Delete it. (update-scene-node, draw-scene-node): Use signal-let.
* sprite: Add docstring for make-sprite.David Thompson2014-08-271-0/+3
| | | | * sly/sprite.scm (make-sprite): Add docstring.
* sprite: Add load-sprite procedure.David Thompson2014-08-271-0/+6
| | | | * sly/sprite.scm (load-sprite): New procedure.
* transform: Use pattern matching in translate and scale procedures.David Thompson2014-08-261-33/+23
| | | | * sly/transform.scm (translate, scale): Use match.
* Rewrite anchor-texture to use pattern matching.David Thompson2014-08-251-22/+24
| | | | * sly/texture.scm (anchor-texture): Use match.
* Add linear texture scaling support.David Thompson2014-08-251-7/+16
| | | | | * sly/texture.scm (bitmap->texture, load-texture): Add min-filter and mag-filter parameters.
* Run draw-hook each time a frame is drawn.David Thompson2014-08-251-0/+1
|
* Update scene graph example.David Thompson2014-08-251-28/+57
| | | | * examples/scene-graph: Update.
* Allow meshes to be scene nodes.David Thompson2014-08-251-28/+25
| | | | | | | * sly/scene.scm (%scene-node-mesh, scene-node-mesh): Delete. (make-scene-node): Remove mesh parameter. (update-scene-node): Skip over mesh nodes. (draw-scene-node): Draw mesh nodes.
* Add make-animated-sprite procedure.David Thompson2014-08-251-3/+26
| | | | * sly/sprite.scm (make-animated-sprite): New procedure.
* Add forever macro.David Thompson2014-08-251-1/+5
| | | | * sly/helpers.scm (forever): New macro.
* Add signal-generator macro.David Thompson2014-08-251-1/+25
| | | | | * sly/signal.scm (yield): New variable. (signal-generator): New macro.
* Update shader files in Makefile.David Thompson2014-08-251-4/+2
| | | | * data/Makefile.am (shaders_DATA): Remove old shaders and add new ones.
* Add scene graph example.David Thompson2014-08-251-0/+128
| | | | * examples/scene-graph.scm: New file.
* Fix texture vertices in cube primitive.David Thompson2014-08-251-32/+32
| | | | * sly/shape.scm (make-cube): Fix texture vertices.
* Export uniform-set!David Thompson2014-08-252-3/+2
| | | | | * sly/mesh.scm (draw-mesh): Use the public uniform-set! * sly/shader.scm: Export uniform-set!
* Use a single default shader for all meshes.David Thompson2014-08-2510-118/+65
| | | | | | | | | | | | | | | | | * data/shaders/default-fragment.glsl: New file. * data/shaders/default-vertex.glsl: New file. * data/shaders/font-fragment.glsl: Delete. * data/shaders/font-vertex.glsl: Delete. * data/shaders/sprite-fragment.glsl: Delete. * data/shaders/sprite-vertex.glsl: Delete. * examples/common.scm: Remove call to enable-sprites. * sly/font.scm (font-shader): Delete. (enable-fonts): Remove shader loading. (make-label): Use default shader. * sly/shape.scm (make-cube): Make texture and shader optional keyword arguments. * sly/sprite.scm (sprite-shader, enable-sprites): Delete. (make-sprite): Make shader an optional keyword argument.
* Add load-default-shader procedure.David Thompson2014-08-251-0/+15
| | | | * sly/shader.scm (load-default-shader): New procedure.
* Support meshes with no texture.David Thompson2014-08-251-5/+9
| | | | * sly/mesh.scm (draw-mesh): Don't bind texture if there isn't one.