| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
* sly/quaternion.scm (%make-quaternion, quaternion): New procedures.
(axis-angle->quaternion): Delete procedure.
(make-quaternion): Support building from axis angle.
(rotate): Remove axis angle special-case.
|
|
|
|
|
|
| |
* sly/wrappers/gl.scm (gl-current-texture): New procedure.
(with-gl-bind-texture): Don't bind texture if already bound. Restore
the previously bound texture after evaluating the body.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* sly/scene.scm (scene-node-positin, scene-node-scale,
scene-node-rotation, interpolate): Delete.
(with-texture-maybe): New macro.
(draw-scene-node): Remove interpolation logic. Add texture binding.
* sly/mesh.scm (mesh-texture): Delete.
(make-mesh): Remove texture parameter.
(draw-mesh): Remove texture binding.
* sly/shape.scm (make-cube): Wrap mesh in a scene node.
* sly/sprite.scm (make-sprite): Likewise.
|
|
|
|
|
| |
* sly/quaternion.scm (axis-angle->quaternion, quaternion->vector,
vector->quaternion): Use match-lambda and record destructuring.
|
|
|
|
|
| |
* sly/quaternion.scm (quaternion->transform): Remove.
(rotate): New procedure.
|
|
|
|
|
|
|
|
|
| |
* sly/color.scm (color-lerp): New procedure.
* sly/math.scm (make-lerp, lerp): New procedures.
* sly/math/vector.scm (vlerp): New procedure.
* sly/transition.scm (interpolator, number-interpolate,
vector-interpolate, color-interpolate): Delete procedures.
(guess-interpolator): Rewrite with 'match-lambda*'.
|
|
|
|
|
|
|
| |
* sly/color.scm (color*): Use pattern matching and allow colors to be
multiplied by scalars.
(color-scale): Delete it.
(color+, color-, color-inverse): Use pattern matching.
|
|
|
|
|
|
|
| |
* sly/match/vector.scm: Export <vector2>, <vector3> and <vector4>.
(vx, vy, vz): Use 'match' more wisely.
* sly/mesh.scm (vertices-bytevector): Destructure vectors.
* sly/transform.scm (translate, scale): Ditto.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* .gitignore: Ignore '*.log' files.
* sly/vector.scm: Delete file.
* sly/math/vector.scm: New file.
* tests/math/vector.scm: New file.
* Makefile.am: Add new file and remove the old one.
* sly/font.scm: Remove import.
* sly/game.scm: Change import.
* sly/joystick.scm (make-directional-signal-raw, make-directional): Use
'vector2'.
* sly/keyboard.scm (key-directions): Use 'vector2'.
* sly/mesh.scm (vertices-bytevector): Use new vector procedures.
* sly/mouse.scm (mouse-position): Use 'vector2'.
* sly/quaternion.scm (axis-angle->quaternion, quaternion->vector,
vector->quaternion): Use new vector procedures.
* sly/rect.scm (rect-position, rect-top-right, rect-bottom-left,
rect-bottom-right, rect-center, rect-size): Use 'vector2'.
* sly/scene.scm (make-scene-node): Use 'vector2'.
* sly/shader.scm: Change import.
* sly/shape.scm (make-cube): Use new vector procedures.
* sly/sprite.scm (make-sprite): Use new vector procedures.
* sly/texture.scm (anchor-texture): Use 'vector2'.
* sly/transform.scm (transform-vector2): Use 'vector2'.
(translate, scale): Use new vector procedures.
* sly/transition.scm (guess-interpolator): Use new vector procedures.
* sly/window.scm (make-window, window-size, open-window): Use 'vector2'.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* sly/game.scm (run-game-loop): Remove scene updating step.
* sly/scene.scm (scene-node-prev-position,
set-scene-node-prev-position!, scene-node-prev-scale,
set-scene-node-prev-scale!, scene-node-prev-rotation,
set-scene-node-prev-rotation!, scene-node-transform,
set-scene-node-transform!, scene-node-dirty?, update-scene-node,
recompute-transform!): Delete procedures.
(make-scene-node): Remove transform caching.
(draw-scene-node): Re-calculate transforms every frame.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* sly/camera.scm (make-camera, orthographic-camera): Remove 'scene'
parameter.
(draw-camera): Delete.
(call-with-camera): New procedure.
* sly/game.scm (start-game-loop): Replace 'camera' parameter with
'scene'.
* sly/scene.scm (make-scene, scene?, update-scene, draw-scene): New
procedures.
(scene-root): Replace.
|
| |
|
|
|
|
| |
* sly/math.scm (2pi): New variable.
|
|
|
|
| |
* sly/sprite.scm (load-sprite): Add 'anchor' and 'color' parameters.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.org (Shaders): New item.
|
|
|
|
| |
* sandbox: Update.
|
|
|
|
| |
* examples/2048/2048: Update.
|
|
|
|
| |
* examples/simple.scm: Update.
|
|
|
|
| |
* examples/tilemap.scm: Update it.
|
|
|
|
| |
* examples/scene-graph.scm: Update to use new scene-node DSL.
|
|
|
|
|
| |
* sly/scene.scm (scene-root): Use make-scene-node instead of scene-node.
(scene-node): Create a more pleasant syntax for defining scene nodes.
|
|
|
|
| |
* sly/mesh.scm (draw-mesh): Deference uniform values that are signals.
|
|
|
|
| |
* sly/color.scm (transparent): New variable.
|
|
|
|
| |
* sandbox: Fix it.
|
|
|
|
| |
* examples/images/crate.png: New file.
|
| |
|
|
|
|
| |
* data/shaders/default-fragment.glsl: Add color uniform.
|
|
|
|
|
| |
* (draw-scene-node): Add uniforms parameter and use the uniforms when
rendering a mesh.
|
|
|
|
| |
* sly/font.scm (make-label): Create sprite mesh.
|
|
|
|
|
| |
* sly/sprite.scm (make-sprite): Add anchor and color keyword
parameters. Color is currently unused.
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
* sly/game.scm (start-game-loop): Support rendering a single camera
object instead of just a list of cameras.
|
|
|
|
| |
* sly/camera (orthographic-camera): New procedure.
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
| |
* sly/scene.scm (make-scene-node): Default rotation to
identity-quaternion.
(draw-scene-node): Convert quaternion to transformation matrix.
|
|
|
|
| |
* sly/math.scm (square): New procedure.
|
|
|
|
| |
* sly/transition.scm (guess-interpolator): Use slerp for quaternions.
|
|
|
|
|
| |
* Makefile.am (SOURCES): Add 'sly/quaternion.scm'.
* sly/quaternion.scm: New file.
|
| |
|
|
|
|
| |
* sly/transition.scm (transition): Use signal-generator.
|
| |
|
|
|
|
| |
* sly/signal.scm (signal-negate): New procedure.
|
|
|
|
| |
* sly/camera.scm (draw-camera): Use signal-let.
|
|
|
|
| |
* sly/signal.scm (signal-let): Use signal-ref-maybe instead of signal-ref.
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
* sly/sprite.scm (make-sprite): Add docstring.
|
|
|
|
| |
* sly/sprite.scm (load-sprite): New procedure.
|
|
|
|
| |
* sly/transform.scm (translate, scale): Use match.
|
|
|
|
| |
* sly/texture.scm (anchor-texture): Use match.
|