pub struct RenderDevice { /* private fields */ }
Expand description

A combination of the VulkanInstance, LogicalDevice, and queues required by this application.

Implementations§

source§

impl RenderDevice

source

pub unsafe fn new( instance: VulkanInstance, features: PhysicalDeviceFeatures, surface: SurfaceKHR ) -> Result<Self, GraphicsError>

Create a new render device.

Params
  • instance - the VulkanInstance used to create all application resources. The RenderDevice takes ownership of the vulkan instance so it can be destroyed in the correct order.
  • features - the physical device features required by this application.
  • surface - the surface this application will use for swapchain presentation. Typically provided by the windowing system.
Safety

Unsafe because the application must destroy the render device before exit. The application must also destroy all resources created by the logical device before destroying the render device.

source

pub fn memory(&self) -> MutexGuard<'_, MemoryAllocator>

Borrow the device memory allocator.

source

pub fn set_debug_name( &self, handle: impl Handle, object_type: ObjectType, name: impl Into<String> )

Set the name that shows up in Vulkan debug logs for a given resource.

Params
  • handle - a Vulkan resource represented by the Ash library
  • object_type - the Vulkan object type
  • name - a human-readable name for the object. This will show up in debug logs if the object is referenced.
source

pub fn presentation_queue(&self) -> &Queue

The queue this application uses for graphics operations.

source

pub fn graphics_queue(&self) -> &Queue

The queue this application uses for graphics operations.

source

pub fn entry(&self) -> &Entry

The Ash entry used by this RenderDevice.

source

pub fn ash(&self) -> &Instance

The Ash instance used by this RenderDevice.

source

pub unsafe fn device(&self) -> &Device

The Ash logical device used to interface with the underlying Vulkan hardware device.

Safety

The caller must not keep copies of the device handle after the render device is dropped.

source

pub unsafe fn surface(&self) -> &SurfaceKHR

The KHR surface provided by the window system for rendering.

Safety

The caller must not keep copies of the device handle after the render device is dropped.

source

pub fn get_surface_formats( &self ) -> Result<Vec<SurfaceFormatKHR>, GraphicsError>

Get all of the surface formats supported by this device.

source

pub fn get_present_modes(&self) -> Result<Vec<PresentModeKHR>, GraphicsError>

Get all of the presentation modes supported by this device.

source

pub fn get_surface_capabilities( &self ) -> Result<SurfaceCapabilitiesKHR, GraphicsError>

Get the surface capabilities for this device.

Trait Implementations§

source§

impl Debug for RenderDevice

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for RenderDevice

source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Drop for RenderDevice

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Pointable for T

source§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<SS, SP> SupersetOf<SS> for SPwhere SS: SubsetOf<SP>,

source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
source§

impl<T> ToString for Twhere T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.