Either these calls to `replace` are unnecessary, or I'm going to learn something
I really need to know.
The only way difference I can see between `replace` and a simple assignment is
that `replace` returns ownership of the value to the caller, so the old value is
dropped after the new value has been put in place. But if Rust lets us assign to
or move from a variable, that means that no other alias can observe that
happening --- which I think means that the drop can't possibly care whether it
occurs before or after the move.
* Allow Surface to reference an external window object
This makes the Surface struct generic across a Window
type, so that a surface can own (or reference, if W is
an Arc) an external window object.
This also updates vulkano-win to take advantage of this.
There is no longer a dedicated Window struct in vulkano-win.
Instead, the Surface is simply passed ownership of the
winit::Window.
This fixes#844
* Update examples for new surface API
* Update Changelog
* Remove unnecessary send/sync bounds
* Update swapchain docs for new Surface behavior
* Fixed the layer scaling issue on macOS. Changed the triangle example to use the surface extents instead of window dimensions, as that seems to be a more robust source of correct information.
* Updated changelog. Fixed other examples' window extent problem.
* Added Swapchain recreation to triangle example
* Triangle example no longer panics when manually resizing window
* Triangle example now correctly resizes viewport
* Added window resizing support to image example
* Removed unused code from image example
* Moved dimension definition earlier in triangle and image example
* Replaced width and height variables in examples with dimensions
* Added window resizing support to teapot example
* Removed unused code from teapot example
* Removed duplicate code creating framebuffers