summaryrefslogtreecommitdiff
path: root/strigoform/canvas.scm
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2024-04-10 14:49:03 -0400
committerDavid Thompson <dthompson2@worcester.edu>2024-04-10 14:49:03 -0400
commit6696a0b5fcb1b17895285d80d9636defb2df3f9d (patch)
tree2cce306afcd7776925f725a382ae1a834513636c /strigoform/canvas.scm
parent20b4e7c566cd268f8fafd3e2d3846513e31949e7 (diff)
Sloppily refactor into modules.
Diffstat (limited to 'strigoform/canvas.scm')
-rw-r--r--strigoform/canvas.scm48
1 files changed, 48 insertions, 0 deletions
diff --git a/strigoform/canvas.scm b/strigoform/canvas.scm
new file mode 100644
index 0000000..f5565ef
--- /dev/null
+++ b/strigoform/canvas.scm
@@ -0,0 +1,48 @@
+(library (strigoform canvas)
+ (export get-context
+ set-fill-color!
+ set-font!
+ set-text-align!
+ clear-rect
+ fill-rect
+ fill-text
+ draw-image
+ set-scale!
+ set-transform!
+ set-image-smoothing-enabled!)
+ (import (scheme base)
+ (hoot ffi))
+
+ (define-foreign get-context
+ "canvas" "getContext"
+ (ref null extern) (ref string) -> (ref null extern))
+ (define-foreign set-fill-color!
+ "canvas" "setFillColor"
+ (ref null extern) (ref string) -> none)
+ (define-foreign set-font!
+ "canvas" "setFont"
+ (ref null extern) (ref string) -> none)
+ (define-foreign set-text-align!
+ "canvas" "setTextAlign"
+ (ref null extern) (ref string) -> none)
+ (define-foreign clear-rect
+ "canvas" "clearRect"
+ (ref null extern) f64 f64 f64 f64 -> none)
+ (define-foreign fill-rect
+ "canvas" "fillRect"
+ (ref null extern) f64 f64 f64 f64 -> none)
+ (define-foreign fill-text
+ "canvas" "fillText"
+ (ref null extern) (ref string) f64 f64 -> none)
+ (define-foreign draw-image
+ "canvas" "drawImage"
+ (ref null extern) (ref null extern) f64 f64 f64 f64 f64 f64 f64 f64 -> none)
+ (define-foreign set-scale!
+ "canvas" "setScale"
+ (ref null extern) f64 f64 -> none)
+ (define-foreign set-transform!
+ "canvas" "setTransform"
+ (ref null extern) f64 f64 f64 f64 f64 f64 -> none)
+ (define-foreign set-image-smoothing-enabled!
+ "canvas" "setImageSmoothingEnabled"
+ (ref null extern) i32 -> none))