Trait VkObject

Source
pub trait VkObject: VkHandle {
    const TYPE: VkObjectType;

    // Provided method
    fn set_name(&self, name: Option<&CStr>) -> Result<()>
       where Self: DeviceChild<ConcreteDevice: InstanceChild<ConcreteInstance: InstanceExtensions>>,
             Self::Handle: VkRawHandle { ... }
}
Expand description

An object in Vulkan

Required Associated Constants§

Provided Methods§

Source

fn set_name(&self, name: Option<&CStr>) -> Result<()>
where Self: DeviceChild<ConcreteDevice: InstanceChild<ConcreteInstance: InstanceExtensions>>, Self::Handle: VkRawHandle,

Available on crate features Implements and VK_EXT_debug_utils only.

Give a user-friendly name to this object.

§Failures

On failure, this command returns

  • VK_ERROR_OUT_OF_HOST_MEMORY
  • VK_ERROR_OUT_OF_DEVICE_MEMORY

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<T: VkObject + ?Sized> VkObject for &T

Source§

const TYPE: VkObjectType = T::TYPE

Source§

impl<T: VkObject + ?Sized> VkObject for &mut T

Source§

const TYPE: VkObjectType = T::TYPE

Source§

impl<T: VkObject + ?Sized> VkObject for Rc<T>

Source§

const TYPE: VkObjectType = T::TYPE

Source§

impl<T: VkObject + ?Sized> VkObject for Arc<T>

Source§

const TYPE: VkObjectType = T::TYPE

Source§

impl<T: VkObject + ?Sized> VkObject for Ref<'_, T>

Source§

const TYPE: VkObjectType = T::TYPE

Source§

impl<T: VkObject + ?Sized> VkObject for RefMut<'_, T>

Source§

const TYPE: VkObjectType = T::TYPE

Source§

impl<T: VkObject + ?Sized> VkObject for MutexGuard<'_, T>

Source§

const TYPE: VkObjectType = T::TYPE

Implementors§

Source§

impl VkObject for DisplayMode

Available on crate feature VK_KHR_display only.
Source§

const TYPE: VkObjectType = 1_000_002_001i32

Source§

impl VkObject for InstanceObject

Source§

impl<'r, Device: VkHandle<Handle = VkDevice>> VkObject for FramebufferObject<'r, Device>

Source§

const TYPE: VkObjectType = 24i32

Source§

impl<Buffer: DeviceChildHandle> VkObject for BufferViewObject<Buffer>

Source§

const TYPE: VkObjectType = 13i32

Source§

impl<Device> VkObject for CommandBufferObject<Device>

Source§

impl<Device> VkObject for QueueObject<Device>

Source§

impl<Device: Device> VkObject for DescriptorUpdateTemplateObject<Device>

Available on crate feature VK_KHR_descriptor_update_template only.
Source§

const TYPE: VkObjectType = 1_000_085_000i32

Source§

impl<Device: VkHandle<Handle = VkDevice>> VkObject for BufferObject<Device>

Source§

impl<Device: VkHandle<Handle = VkDevice>> VkObject for DeviceMemoryObject<Device>

Source§

impl<Device: VkHandle<Handle = VkDevice>> VkObject for ImageObject<Device>

Source§

const TYPE: VkObjectType = 10i32

Source§

impl<Device: VkHandle<Handle = VkDevice>> VkObject for SamplerObject<Device>

Source§

const TYPE: VkObjectType = 21i32

Source§

impl<Device: VkHandle<Handle = VkDevice>> VkObject for CommandPoolObject<Device>

Source§

const TYPE: VkObjectType = 25i32

Source§

impl<Device: VkHandle<Handle = VkDevice>> VkObject for DescriptorPoolObject<Device>

Source§

const TYPE: VkObjectType = 22i32

Source§

impl<Device: VkHandle<Handle = VkDevice>> VkObject for DescriptorSetLayoutObject<Device>

Source§

const TYPE: VkObjectType = 20i32

Source§

impl<Device: VkHandle<Handle = VkDevice>> VkObject for EventObject<Device>

Source§

const TYPE: VkObjectType = 11i32

Source§

impl<Device: VkHandle<Handle = VkDevice>> VkObject for FenceObject<Device>

Source§

impl<Device: VkHandle<Handle = VkDevice>> VkObject for PipelineCacheObject<Device>

Source§

const TYPE: VkObjectType = 16i32

Source§

impl<Device: VkHandle<Handle = VkDevice>> VkObject for PipelineLayoutObject<Device>

Source§

const TYPE: VkObjectType = 17i32

Source§

impl<Device: VkHandle<Handle = VkDevice>> VkObject for PipelineObject<Device>

Source§

const TYPE: VkObjectType = 19i32

Source§

impl<Device: VkHandle<Handle = VkDevice>> VkObject for QueryPoolObject<Device>

Source§

const TYPE: VkObjectType = 12i32

Source§

impl<Device: VkHandle<Handle = VkDevice>> VkObject for RenderPassObject<Device>

Source§

const TYPE: VkObjectType = 18i32

Source§

impl<Device: VkHandle<Handle = VkDevice>> VkObject for SemaphoreObject<Device>

Source§

impl<Device: VkHandle<Handle = VkDevice>> VkObject for ShaderModuleObject<Device>

Source§

const TYPE: VkObjectType = 15i32

Source§

impl<Device: VkHandle<Handle = VkDevice>, Surface: VkHandle<Handle = VkSurfaceKHR>> VkObject for SurfaceSwapchainObject<Device, Surface>

Source§

const TYPE: VkObjectType = 1_000_001_000i32

Source§

impl<Image: DeviceChildHandle> VkObject for ImageViewObject<Image>

Source§

const TYPE: VkObjectType = 14i32

Source§

impl<Instance> VkObject for DeviceObject<Instance>

Source§

impl<Instance: Instance + InstanceExtensions> VkObject for DebugReportCallbackObject<Instance>

Available on crate feature VK_EXT_debug_report only.
Source§

const TYPE: VkObjectType = 1_000_011_000i32

Source§

impl<Instance: Instance + InstanceExtensions> VkObject for DebugUtilsMessengerObject<Instance>

Available on crate feature VK_EXT_debug_utils only.
Source§

const TYPE: VkObjectType = 1_000_128_000i32

Source§

impl<Instance: Instance> VkObject for SurfaceObject<Instance>

Source§

const TYPE: VkObjectType = 1_000_000_000i32

Source§

impl<Owner: Instance> VkObject for PhysicalDeviceObject<Owner>

Source§

impl<PhysicalDevice: PhysicalDevice> VkObject for Display<PhysicalDevice>

Available on crate feature VK_KHR_display only.
Source§

const TYPE: VkObjectType = 1_000_002_000i32

Source§

impl<Swapchain> VkObject for SwapchainImage<Swapchain>

Source§

const TYPE: VkObjectType = 10i32