From 4ab1d8922b54fe2945dcdb6b3272c52c71f28957 Mon Sep 17 00:00:00 2001 From: Cristobal Sciutto Date: Fri, 27 Oct 2023 18:00:12 -0400 Subject: scale as param --- virtual-programs/display/image.folk | 8 ++++---- virtual-programs/images.folk | 8 ++++++-- 2 files changed, 10 insertions(+), 6 deletions(-) (limited to 'virtual-programs') 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 +} -- cgit v1.2.3