Unify scaling factor names

This commit is contained in:
Ebu
2025-12-04 10:09:00 +01:00
parent d158acd752
commit ea10ce208a
3 changed files with 22 additions and 22 deletions

View File

@@ -6,7 +6,7 @@ use nih_plug::prelude::AtomicF32;
use crate::{Rect, ScaledRect}; use crate::{Rect, ScaledRect};
pub struct SpriteSheet { pub struct SpriteSheet {
scale_factor: Arc<AtomicF32>, scaling_factor: Arc<AtomicF32>,
image: Result<ImageId, String>, image: Result<ImageId, String>,
width: usize, width: usize,
height: usize, height: usize,
@@ -18,7 +18,7 @@ pub struct SpriteSheet {
impl SpriteSheet { impl SpriteSheet {
pub fn empty() -> Self { pub fn empty() -> Self {
Self { Self {
scale_factor: Arc::new(AtomicF32::new(1.0)), scaling_factor: Arc::new(AtomicF32::new(1.0)),
image: Err("No image loaded".to_owned()), image: Err("No image loaded".to_owned()),
width: 0, width: 0,
height: 0, height: 0,
@@ -30,7 +30,7 @@ impl SpriteSheet {
pub fn new( pub fn new(
canvas: &mut Canvas<OpenGl>, canvas: &mut Canvas<OpenGl>,
data: &[u8], data: &[u8],
scale_factor: Arc<AtomicF32>, scaling_factor: Arc<AtomicF32>,
frame_width: usize, frame_width: usize,
frame_height: usize, frame_height: usize,
) -> Self { ) -> Self {
@@ -40,7 +40,7 @@ impl SpriteSheet {
if let Ok(image) = image { if let Ok(image) = image {
let (width, height) = canvas.image_size(image).unwrap_or_default(); let (width, height) = canvas.image_size(image).unwrap_or_default();
Self { Self {
scale_factor, scaling_factor,
image: Ok(image), image: Ok(image),
width, width,
height, height,
@@ -50,7 +50,7 @@ impl SpriteSheet {
} }
} else { } else {
Self { Self {
scale_factor, scaling_factor,
image, image,
width: 0, width: 0,
height: 0, height: 0,
@@ -61,7 +61,7 @@ impl SpriteSheet {
} }
} }
pub fn draw(&self, canvas: &mut Canvas<OpenGl>, x: f32, y: f32, frame: usize) { pub fn draw(&self, canvas: &mut Canvas<OpenGl>, x: f32, y: f32, frame: usize) {
let factor = self.scale_factor.load(Ordering::Relaxed); let factor = self.scaling_factor.load(Ordering::Relaxed);
let frame_x = frame % self.frames_x; let frame_x = frame % self.frames_x;
let frame_y = frame / self.frames_x; let frame_y = frame / self.frames_x;
@@ -103,14 +103,14 @@ impl SpriteSheet {
} }
pub fn screen_bounds(&self, x: f32, y: f32) -> ScaledRect { pub fn screen_bounds(&self, x: f32, y: f32) -> ScaledRect {
ScaledRect::new_from( ScaledRect::new_from(
self.scale_factor.clone(), self.scaling_factor.clone(),
(x, y, self.frame_width as f32, self.frame_height as f32), (x, y, self.frame_width as f32, self.frame_height as f32),
) )
} }
} }
pub struct Sprite { pub struct Sprite {
scale_factor: Arc<AtomicF32>, scaling_factor: Arc<AtomicF32>,
image: Result<ImageId, String>, image: Result<ImageId, String>,
width: usize, width: usize,
height: usize, height: usize,
@@ -118,27 +118,27 @@ pub struct Sprite {
impl Sprite { impl Sprite {
pub fn empty() -> Self { pub fn empty() -> Self {
Self { Self {
scale_factor: Arc::new(AtomicF32::new(1.0)), scaling_factor: Arc::new(AtomicF32::new(1.0)),
image: Err("No image loaded".to_owned()), image: Err("No image loaded".to_owned()),
width: 0, width: 0,
height: 0, height: 0,
} }
} }
pub fn new(canvas: &mut Canvas<OpenGl>, data: &[u8], scale_factor: Arc<AtomicF32>) -> Self { pub fn new(canvas: &mut Canvas<OpenGl>, data: &[u8], scaling_factor: Arc<AtomicF32>) -> Self {
let image = canvas let image = canvas
.load_image_mem(data, ImageFlags::empty()) .load_image_mem(data, ImageFlags::empty())
.map_err(|e| format!("{e:?}")); .map_err(|e| format!("{e:?}"));
if let Ok(image) = image { if let Ok(image) = image {
let (width, height) = canvas.image_size(image).unwrap_or_default(); let (width, height) = canvas.image_size(image).unwrap_or_default();
Self { Self {
scale_factor, scaling_factor,
image: Ok(image), image: Ok(image),
width, width,
height, height,
} }
} else { } else {
Self { Self {
scale_factor, scaling_factor,
image, image,
width: 0, width: 0,
height: 0, height: 0,
@@ -146,7 +146,7 @@ impl Sprite {
} }
} }
pub fn draw(&self, canvas: &mut Canvas<OpenGl>, x: f32, y: f32, alpha: f32) { pub fn draw(&self, canvas: &mut Canvas<OpenGl>, x: f32, y: f32, alpha: f32) {
let factor = self.scale_factor.load(Ordering::Relaxed); let factor = self.scaling_factor.load(Ordering::Relaxed);
let screen_rect = Rect { let screen_rect = Rect {
x: x * factor, x: x * factor,
@@ -179,7 +179,7 @@ impl Sprite {
} }
pub fn screen_bounds(&self, x: f32, y: f32) -> ScaledRect { pub fn screen_bounds(&self, x: f32, y: f32) -> ScaledRect {
ScaledRect::new_from( ScaledRect::new_from(
self.scale_factor.clone(), self.scaling_factor.clone(),
(x, y, self.width as f32, self.height as f32), (x, y, self.width as f32, self.height as f32),
) )
} }

View File

@@ -12,7 +12,7 @@ use crate::window::EditorWindow;
#[derive(Debug, Serialize, Deserialize)] #[derive(Debug, Serialize, Deserialize)]
pub struct EditorState { pub struct EditorState {
/// The window's size in logical pixels before applying `scale_factor`. /// The window's size in logical pixels before applying `scaling_factor`.
#[serde(with = "nih_plug::params::persist::serialize_atomic_cell")] #[serde(with = "nih_plug::params::persist::serialize_atomic_cell")]
pub size: AtomicCell<(u32, u32)>, pub size: AtomicCell<(u32, u32)>,
/// Whether the editor's window is currently open. /// Whether the editor's window is currently open.

View File

@@ -41,13 +41,13 @@ pub struct PluginGui {
fn create_canvas( fn create_canvas(
context: &GlContext, context: &GlContext,
params: &PluginParams, params: &PluginParams,
scaling_factor: &AtomicF32, scaling_factor: f32,
) -> Result<Canvas<OpenGl>, &'static str> { ) -> Result<Canvas<OpenGl>, &'static str> {
let renderer = unsafe { OpenGl::new_from_function(|s| context.get_proc_address(s)) } let renderer = unsafe { OpenGl::new_from_function(|s| context.get_proc_address(s)) }
.map_err(|_| "Failed to create OpenGL renderer")?; .map_err(|_| "Failed to create OpenGL renderer")?;
let mut canvas = Canvas::new(renderer).map_err(|_| "Failed to create femtovg canvas")?; let mut canvas = Canvas::new(renderer).map_err(|_| "Failed to create femtovg canvas")?;
let (width, height) = params.editor_state.size(); let (width, height) = params.editor_state.size();
canvas.set_size(width, height, scaling_factor.load(Ordering::Relaxed)); canvas.set_size(width, height, scaling_factor);
Ok(canvas) Ok(canvas)
} }
@@ -79,7 +79,7 @@ impl PluginGui {
unsafe { unsafe {
context.make_current(); context.make_current();
} }
if let Ok(mut canvas) = create_canvas(context, &params, &scaling_factor) { if let Ok(mut canvas) = create_canvas(context, &params, scaling_factor.load(Ordering::Acquire)) {
this.font = canvas this.font = canvas
.add_font_mem(DROID_SANS_FONT) .add_font_mem(DROID_SANS_FONT)
.map_err(|err| format!("{:?}", err)); .map_err(|err| format!("{:?}", err));
@@ -130,7 +130,7 @@ impl WindowHandler for PluginGui {
if self.canvas.is_none() { if self.canvas.is_none() {
return; return;
} }
let scaling_factor = self.scaling_factor.load(Ordering::Relaxed); let scaling_factor = self.scaling_factor.load(Ordering::Acquire);
let canvas = self.canvas.as_mut().unwrap(); let canvas = self.canvas.as_mut().unwrap();
if !self.dirty { if !self.dirty {
@@ -223,12 +223,12 @@ impl WindowHandler for PluginGui {
if let Some(canvas) = self.canvas.as_mut() { if let Some(canvas) = self.canvas.as_mut() {
let canvas_width = canvas.width(); let canvas_width = canvas.width();
let editor_width = self.params.editor_state.size.load().0; let editor_width = self.params.editor_state.size.load().0;
let new_scale_factor = canvas_width as f32 / editor_width as f32; let new_scaling_factor = canvas_width as f32 / editor_width as f32;
self.scaling_factor self.scaling_factor
.store(new_scale_factor, Ordering::Release); .store(new_scaling_factor, Ordering::Release);
canvas.set_size(phys_size.width, phys_size.height, new_scale_factor); canvas.set_size(phys_size.width, phys_size.height, new_scaling_factor);
} }
self.dirty = true; self.dirty = true;
} }