summaryrefslogtreecommitdiff
path: root/src/window.rs
Commit message (Collapse)AuthorAge
* Fix rendering issueBen Bridle2024-06-09
| | | | | I can't remember exactly what these changes were added to fix, it's been a long time since I wrote them
* Prevent crash when window dimension resizes to zeroBen Bridle2023-12-19
| | | | | | | | | If an application attempted to change either of the window dimensions to zero, the surface would resize to the new dimensions and cause the window definition in the display server to enter an invalid state, causing the display server to crash the application. This change ensures that the window dimensions are always greater than zero.
* Redraw the window when the logical dimensions changeBen Bridle2023-12-19
| | | | | | Previously the window would only be redrawn when the physical dimensions changed, which meant that the effects of a pixel scale change would not be visible until the application requested a re-render.
* Make window rendering code more efficientBen Bridle2023-12-19
| | | | | | | The code to scale the window buffer and draw it to the window surface has been made more efficient through the use of slice::copy_from_within and slice::fill, instead of what was slow pixel-by-pixel iteration over long horizontal strips.
* Use logical position for cursor positionBen Bridle2023-12-19
| | | | | | | Previously the physical cursor position instead of the logical cursor position was being passed to WindowController::on_cursor_move, which meant that the cursor position that the application was receiving would be incorrect when the window scale was greater than 1.
* Use pixel scale as window resize incrementBen Bridle2023-12-19
| | | | | | | | When resizing a window, the window width and height will be made to be a multiple of the current pixel scale. This is to prevent thin black strips from rendering along the bottom edge and the right edge of the window when the dimensions of the window exceed the dimensions of the scaled screen content.
* Implement window scalingBen Bridle2023-11-05
| | | | | | A window now can declare a scale factor to be used when rendering logical pixels to a physical window. Each logical pixel will be drawn as an NxN block of physical pixels, where N is the scale factor.
* Rewrite phosphorBen Bridle2023-10-11
| | | | | | | | | | | | This has been a long-awaited task, the code has been accumulating small changes for a while now. This commit consolidates all these changes in order to make the code more readable and maintainable for the future. Notable changes: - Remove the concept of a ProgramController - Remove all of the dead OpenGL stub code - Update winit to version 28.1, from 27.4 - Use softbuffer for writing pixels to the native display server
* First commit, before upgrading winit to version 28.1Ben Bridle2023-10-10