diff options
-rw-r--r-- | src/window.rs | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/window.rs b/src/window.rs index ac52ed7..655c54f 100644 --- a/src/window.rs +++ b/src/window.rs @@ -301,10 +301,25 @@ impl Window { /// /// Returns `None` if the window no longer exists. #[inline] - pub fn get_inner_size(&self) -> Option<(u32, u32)> { + 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. /// /// These dimensions include title bar and borders. If you don't want these, you should use |