From 2e05c82e581364ec3f17bf0c2edf5a996a8344e9 Mon Sep 17 00:00:00 2001 From: Aleksander Date: Sat, 27 Jan 2024 21:09:04 +0100 Subject: [PATCH] Implement interaction_transform for keyboard (#1) --- src/overlays/keyboard.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/overlays/keyboard.rs b/src/overlays/keyboard.rs index 4d5ab9f..ea59f92 100644 --- a/src/overlays/keyboard.rs +++ b/src/overlays/keyboard.rs @@ -15,7 +15,7 @@ use crate::{ hid::{KeyModifier, VirtualKey, KEYS_TO_MODS}, state::AppState, }; -use glam::{vec2, vec3a}; +use glam::{vec2, vec3a, Affine2}; use once_cell::sync::Lazy; use regex::Regex; use rodio::{Decoder, OutputStream, Source}; @@ -106,14 +106,23 @@ where let canvas = canvas.build(); + let width = LAYOUT.row_size * 0.05; + let width_inv = 1.0 / width; + let aspect_ratio = size.x / size.y; + let t_w = width_inv; + let t_h = -(width_inv) * aspect_ratio; + let interaction_transform = + Affine2::from_scale_angle_translation(vec2(t_w, t_h), 0.0, vec2(0.5, 0.5)); + OverlayData { state: OverlayState { name: Arc::from("kbd"), show_hide: true, - width: LAYOUT.row_size * 0.05, + width, size: (size.x as _, size.y as _), grabbable: true, spawn_point: vec3a(0., -0.5, -1.), + interaction_transform, ..Default::default() }, backend: Box::new(canvas),