diff --git a/src/window.rs b/src/window.rs index ac52ed75..00174d3d 100644 --- a/src/window.rs +++ b/src/window.rs @@ -300,10 +300,39 @@ impl Window { /// To get the dimensions of the frame buffer when calling `glViewport`, multiply with hidpi factor. /// /// Returns `None` if the window no longer exists. + /// + /// DEPRECATED #[inline] pub fn get_inner_size(&self) -> Option<(u32, u32)> { self.window.get_inner_size() } + + /// Returns the size in points of the client area of the window. + /// + /// The client area is the content of the window, excluding the title bar and borders. + /// To get the dimensions of the frame buffer when calling `glViewport`, multiply with hidpi factor. + /// + /// Returns `None` if the window no longer exists. + #[inline] + pub fn get_inner_size_points(&self) -> Option<(u32, u32)> { + self.window.get_inner_size() + } + + + /// Returns the size in pixels of the client area of the window. + /// + /// The client area is the content of the window, excluding the title bar and borders. + /// These are the dimensions of the frame buffer, and the dimensions that you should use + /// when you call `glViewport`. + /// + /// Returns `None` if the window no longer exists. + #[inline] + pub fn get_inner_size_pixels(&self) -> Option<(u32, u32)> { + self.window.get_inner_size().map(|(x, y)| { + let hidpi = self.hidpi_factor(); + ((x as f32 * hidpi) as u32, (y as f32 * hidpi) as u32) + }) + } /// Returns the size in pixels of the window. ///