diff options
| author | Cristobal Sciutto <cristobal.sciutto@gmail.com> | 2023-10-27 22:00:12 +0000 |
|---|---|---|
| committer | Cristobal Sciutto <cristobal.sciutto@gmail.com> | 2023-10-27 22:02:43 +0000 |
| commit | 4ab1d8922b54fe2945dcdb6b3272c52c71f28957 (patch) | |
| tree | 73b5fbe23c34658f8e5741b67483911e41582cc6 /virtual-programs | |
| parent | neighbor callback (diff) | |
| download | folk-4ab1d8922b54fe2945dcdb6b3272c52c71f28957.tar.gz folk-4ab1d8922b54fe2945dcdb6b3272c52c71f28957.zip | |
scale as param
Diffstat (limited to 'virtual-programs')
| -rw-r--r-- | virtual-programs/display/image.folk | 8 | ||||
| -rw-r--r-- | virtual-programs/images.folk | 8 |
2 files changed, 10 insertions, 6 deletions
diff --git a/virtual-programs/display/image.folk b/virtual-programs/display/image.folk index 23246d45..55a283e0 100644 --- a/virtual-programs/display/image.folk +++ b/virtual-programs/display/image.folk @@ -5,10 +5,10 @@ On process "display" { dict set ::pipelines "image" [Gpu::pipeline {sampler2D image vec2 imageSize vec2 pos float radians float scale fn rotate} { - vec2 a = pos + rotate(-imageSize/2, -radians); - vec2 b = pos + rotate(vec2(imageSize.x, -imageSize.y)/2, -radians); - vec2 c = pos + rotate(imageSize/2, -radians); - vec2 d = pos + rotate(vec2(-imageSize.x, imageSize.y)/2, -radians); + vec2 a = scale * (pos + rotate(-imageSize/2, -radians)); + vec2 b = scale * (pos + rotate(vec2(imageSize.x, -imageSize.y)/2, -radians)); + vec2 c = scale * (pos + rotate(imageSize/2, -radians)); + vec2 d = scale * (pos + rotate(vec2(-imageSize.x, imageSize.y)/2, -radians)); vec2 vertices[4] = vec2[4](a, b, d, c); return vertices[gl_VertexIndex]; } {fn invBilinear fn rotate} { diff --git a/virtual-programs/images.folk b/virtual-programs/images.folk index d8bcaf55..1be51424 100644 --- a/virtual-programs/images.folk +++ b/virtual-programs/images.folk @@ -343,7 +343,7 @@ When /someone/ wishes /p/ displays camera slice /slice/ & /p/ has region /r/ { Wish to draw an image with center $center image $slice radians 0 scale 1 } -When /someone/ wishes /p/ displays image /im/ { +When /someone/ wishes /p/ displays image /im/ with scale /s/ { set im [image load $im] When $p has region /r/ { # Compute a scale for im that will fit in the region width/height @@ -354,10 +354,14 @@ When /someone/ wishes /p/ displays image /im/ { # set scale [expr {min($width / [image width $im], # $height / [image height $im])}] # Wish $p is labelled $im - Wish to draw an image with center $center image $im radians [region angle $r] + Wish to draw an image with center $center image $im radians [region angle $r] scale $s } # On unmatch { # # HACK: Leaves time for the display to finish trying to display this. # after 5000 [list image freeJpeg $im] # } } + +When /someone/ wishes /p/ displays image /im/ { + Wish $p displays image $im with scale 1 +} |
