[bug fix] assume pixels_per_point=1 if nothing is ever set
This commit is contained in:
parent
bc0d6baefb
commit
23d99b07c8
2 changed files with 14 additions and 8 deletions
|
@ -132,12 +132,13 @@ impl Context {
|
|||
}
|
||||
|
||||
pub fn pixels_per_point(&self) -> f32 {
|
||||
self.input.pixels_per_point
|
||||
self.input.pixels_per_point()
|
||||
}
|
||||
|
||||
/// Useful for pixel-perfect rendering
|
||||
pub fn round_to_pixel(&self, point: f32) -> f32 {
|
||||
(point * self.input.pixels_per_point).round() / self.input.pixels_per_point
|
||||
let pixels_per_point = self.pixels_per_point();
|
||||
(point * pixels_per_point).round() / pixels_per_point
|
||||
}
|
||||
|
||||
/// Useful for pixel-perfect rendering
|
||||
|
@ -176,7 +177,7 @@ impl Context {
|
|||
|
||||
self.input = std::mem::take(&mut self.input).begin_frame(new_raw_input);
|
||||
let mut font_definitions = self.font_definitions.lock();
|
||||
font_definitions.pixels_per_point = self.input.pixels_per_point;
|
||||
font_definitions.pixels_per_point = self.input.pixels_per_point();
|
||||
if self.fonts.is_none() || *self.fonts.as_ref().unwrap().definitions() != *font_definitions
|
||||
{
|
||||
self.fonts = Some(Arc::new(Fonts::from_definitions(font_definitions.clone())));
|
||||
|
@ -535,7 +536,7 @@ impl Context {
|
|||
|
||||
ui.collapsing("Stats", |ui| {
|
||||
ui.add(label!(
|
||||
"Screen size: {} x {} points, pixels_per_point: {}",
|
||||
"Screen size: {} x {} points, pixels_per_point: {:?}",
|
||||
ui.input().screen_size.x,
|
||||
ui.input().screen_size.y,
|
||||
ui.input().pixels_per_point,
|
||||
|
|
|
@ -70,7 +70,7 @@ pub struct InputState {
|
|||
pub screen_size: Vec2,
|
||||
|
||||
/// Also known as device pixel ratio, > 1 for HDPI screens.
|
||||
pub pixels_per_point: f32,
|
||||
pub pixels_per_point: Option<f32>,
|
||||
|
||||
/// Time in seconds. Relative to whatever. Used for animation.
|
||||
pub time: f64,
|
||||
|
@ -205,7 +205,7 @@ impl InputState {
|
|||
mouse,
|
||||
scroll_delta: new.scroll_delta,
|
||||
screen_size: new.screen_size,
|
||||
pixels_per_point: new.pixels_per_point.unwrap_or(self.pixels_per_point),
|
||||
pixels_per_point: new.pixels_per_point.or(self.pixels_per_point),
|
||||
time: new.time,
|
||||
unstable_dt,
|
||||
predicted_dt: 1.0 / 60.0, // TODO: remove this hack
|
||||
|
@ -249,9 +249,14 @@ impl InputState {
|
|||
})
|
||||
}
|
||||
|
||||
/// Also known as device pixel ratio, > 1 for HDPI screens.
|
||||
pub fn pixels_per_point(&self) -> f32 {
|
||||
self.pixels_per_point.unwrap_or(1.0)
|
||||
}
|
||||
|
||||
/// Size of a physical pixel in logical gui coordinates (points).
|
||||
pub fn physical_pixel_size(&self) -> f32 {
|
||||
1.0 / self.pixels_per_point
|
||||
1.0 / self.pixels_per_point()
|
||||
}
|
||||
|
||||
/// How imprecise do we expect the mouse/touch input to be?
|
||||
|
@ -370,7 +375,7 @@ impl InputState {
|
|||
ui.add(label!("scroll_delta: {:?} points", self.scroll_delta));
|
||||
ui.add(label!("screen_size: {:?} points", self.screen_size));
|
||||
ui.add(label!(
|
||||
"{} points for each physical pixel (HDPI factor)",
|
||||
"{:?} points for each physical pixel (HDPI factor)",
|
||||
self.pixels_per_point
|
||||
));
|
||||
ui.add(label!("time: {:.3} s", self.time));
|
||||
|
|
Loading…
Reference in a new issue