pub struct Surface<W> { /* private fields */ }
Expand description
Represents a surface on the screen.
Creating a Surface
is platform-specific.
Implementations
sourceimpl<W> Surface<W>
impl<W> Surface<W>
sourcepub unsafe fn from_raw_surface(
instance: Arc<Instance>,
surface: SurfaceKHR,
win: W
) -> Surface<W>
pub unsafe fn from_raw_surface(
instance: Arc<Instance>,
surface: SurfaceKHR,
win: W
) -> Surface<W>
Creates a Surface
given the raw handler.
Be careful when using it
sourcepub fn from_display_mode(
display_mode: &DisplayMode,
plane: &DisplayPlane
) -> Result<Arc<Surface<()>>, SurfaceCreationError>
pub fn from_display_mode(
display_mode: &DisplayMode,
plane: &DisplayPlane
) -> Result<Arc<Surface<()>>, SurfaceCreationError>
Creates a Surface
that covers a display mode.
Panic
- Panics if
display_mode
andplane
don’t belong to the same physical device. - Panics if
plane
doesn’t support the display ofdisplay_mode
.
sourcepub unsafe fn from_hwnd<T, U>(
instance: Arc<Instance>,
hinstance: *const T,
hwnd: *const U,
win: W
) -> Result<Arc<Surface<W>>, SurfaceCreationError>
pub unsafe fn from_hwnd<T, U>(
instance: Arc<Instance>,
hinstance: *const T,
hwnd: *const U,
win: W
) -> Result<Arc<Surface<W>>, SurfaceCreationError>
Creates a Surface
from a Win32 window.
The surface’s min, max and current extent will always match the window’s dimensions.
Safety
The caller must ensure that the hinstance
and the hwnd
are both correct and stay
alive for the entire lifetime of the surface. The win
parameter can be used to ensure this.
sourcepub unsafe fn from_xcb<C>(
instance: Arc<Instance>,
connection: *const C,
window: u32,
win: W
) -> Result<Arc<Surface<W>>, SurfaceCreationError>
pub unsafe fn from_xcb<C>(
instance: Arc<Instance>,
connection: *const C,
window: u32,
win: W
) -> Result<Arc<Surface<W>>, SurfaceCreationError>
Creates a Surface
from an XCB window.
The surface’s min, max and current extent will always match the window’s dimensions.
Safety
The caller must ensure that the connection
and the window
are both correct and stay
alive for the entire lifetime of the surface. The win
parameter can be used to ensure this.
sourcepub unsafe fn from_xlib<D>(
instance: Arc<Instance>,
display: *const D,
window: c_ulong,
win: W
) -> Result<Arc<Surface<W>>, SurfaceCreationError>
pub unsafe fn from_xlib<D>(
instance: Arc<Instance>,
display: *const D,
window: c_ulong,
win: W
) -> Result<Arc<Surface<W>>, SurfaceCreationError>
Creates a Surface
from an Xlib window.
The surface’s min, max and current extent will always match the window’s dimensions.
Safety
The caller must ensure that the display
and the window
are both correct and stay
alive for the entire lifetime of the surface. The win
parameter can be used to ensure this.
sourcepub unsafe fn from_wayland<D, S>(
instance: Arc<Instance>,
display: *const D,
surface: *const S,
win: W
) -> Result<Arc<Surface<W>>, SurfaceCreationError>
pub unsafe fn from_wayland<D, S>(
instance: Arc<Instance>,
display: *const D,
surface: *const S,
win: W
) -> Result<Arc<Surface<W>>, SurfaceCreationError>
Creates a Surface
from a Wayland window.
The window’s dimensions will be set to the size of the swapchain.
Safety
The caller must ensure that the display
and the surface
are both correct and stay
alive for the entire lifetime of the surface. The win
parameter can be used to ensure this.
sourcepub unsafe fn from_anativewindow<T>(
instance: Arc<Instance>,
window: *const T,
win: W
) -> Result<Arc<Surface<W>>, SurfaceCreationError>
pub unsafe fn from_anativewindow<T>(
instance: Arc<Instance>,
window: *const T,
win: W
) -> Result<Arc<Surface<W>>, SurfaceCreationError>
Creates a Surface
from an Android window.
Safety
The caller must ensure that the window
is correct and stays alive for the entire
lifetime of the surface. The win
parameter can be used to ensure this.
sourcepub unsafe fn from_ios_moltenvk<T>(
instance: Arc<Instance>,
view: *const T,
win: W
) -> Result<Arc<Surface<W>>, SurfaceCreationError>
pub unsafe fn from_ios_moltenvk<T>(
instance: Arc<Instance>,
view: *const T,
win: W
) -> Result<Arc<Surface<W>>, SurfaceCreationError>
Creates a Surface
from an iOS UIView
.
Safety
- The caller must ensure that the
view
is correct and stays alive for the entire lifetime of the surface. The win parameter can be used to ensure this. - The
UIView
must be backed by aCALayer
instance of typeCAMetalLayer
.
sourcepub unsafe fn from_macos_moltenvk<T>(
instance: Arc<Instance>,
view: *const T,
win: W
) -> Result<Arc<Surface<W>>, SurfaceCreationError>
pub unsafe fn from_macos_moltenvk<T>(
instance: Arc<Instance>,
view: *const T,
win: W
) -> Result<Arc<Surface<W>>, SurfaceCreationError>
Creates a Surface
from a MacOS NSView
.
Safety
- The caller must ensure that the
view
is correct and stays alive for the entire lifetime of the surface. Thewin
parameter can be used to ensure this. - The
NSView
must be backed by aCALayer
instance of typeCAMetalLayer
.
sourcepub unsafe fn from_vi_surface<T>(
instance: Arc<Instance>,
window: *const T,
win: W
) -> Result<Arc<Surface<W>>, SurfaceCreationError>
pub unsafe fn from_vi_surface<T>(
instance: Arc<Instance>,
window: *const T,
win: W
) -> Result<Arc<Surface<W>>, SurfaceCreationError>
Creates a Surface
from a code:nn::code:vi::code:Layer
.
Safety
The caller must ensure that the window
is correct and stays alive for the entire
lifetime of the surface. The win
parameter can be used to ensure this.
sourcepub fn is_supported(
&self,
queue: QueueFamily<'_>
) -> Result<bool, CapabilitiesError>
pub fn is_supported(
&self,
queue: QueueFamily<'_>
) -> Result<bool, CapabilitiesError>
Returns true if the given queue family can draw on this surface.
sourcepub fn capabilities(
&self,
device: PhysicalDevice<'_>
) -> Result<Capabilities, CapabilitiesError>
pub fn capabilities(
&self,
device: PhysicalDevice<'_>
) -> Result<Capabilities, CapabilitiesError>
Retrieves the capabilities of a surface when used by a certain device.
Panic
- Panics if the device and the surface don’t belong to the same instance.
pub fn window(&self) -> &W
Trait Implementations
sourceimpl<W> VulkanObject for Surface<W>
impl<W> VulkanObject for Surface<W>
sourceconst TYPE: DebugReportObjectTypeEXT = 26u32
const TYPE: DebugReportObjectTypeEXT = 26u32
DebugReportObjectTypeEXT
of the internal Vulkan handle.