This commit is contained in:
parent
bc94b68c0c
commit
e9ce480f96
10 changed files with 175 additions and 136 deletions
|
@ -1,7 +1,7 @@
|
|||
use std::sync::Arc;
|
||||
use crate::vulkan::{VkInstance, VkPhysicalDevice, LOG_TARGET};
|
||||
use ash::prelude::VkResult;
|
||||
use ash::vk;
|
||||
use std::sync::Arc;
|
||||
|
||||
pub struct VkDevice {
|
||||
instance: Arc<VkInstance>,
|
||||
|
@ -37,7 +37,9 @@ impl VkDevice {
|
|||
.enabled_features(&features);
|
||||
|
||||
let device = unsafe {
|
||||
instance.handle.create_device(physical_device.handle, &device_create_info, None)?
|
||||
instance
|
||||
.handle
|
||||
.create_device(physical_device.handle, &device_create_info, None)?
|
||||
};
|
||||
log::debug!(target: LOG_TARGET, "Device created ({:?})", device.handle());
|
||||
|
||||
|
@ -53,11 +55,16 @@ impl VkDevice {
|
|||
|
||||
pub(super) fn get_device_queue(&self, queue_index: u32) -> vk::Queue {
|
||||
unsafe {
|
||||
self.handle.get_device_queue(self.queue_family_index, queue_index)
|
||||
self.handle
|
||||
.get_device_queue(self.queue_family_index, queue_index)
|
||||
}
|
||||
}
|
||||
|
||||
pub(super) fn create_image_view(&self, image: vk::Image, surface_format: vk::SurfaceFormatKHR) -> VkResult<vk::ImageView> {
|
||||
pub(super) fn create_image_view(
|
||||
&self,
|
||||
image: vk::Image,
|
||||
surface_format: vk::SurfaceFormatKHR,
|
||||
) -> VkResult<vk::ImageView> {
|
||||
let create_view_info = vk::ImageViewCreateInfo::default()
|
||||
.view_type(vk::ImageViewType::TYPE_2D)
|
||||
.format(surface_format.format)
|
||||
|
@ -79,13 +86,19 @@ impl VkDevice {
|
|||
unsafe { self.handle.create_image_view(&create_view_info, None) }
|
||||
}
|
||||
|
||||
pub(super) fn create_command_pool(&self, info: &vk::CommandPoolCreateInfo) -> VkResult<vk::CommandPool> {
|
||||
pub(super) fn create_command_pool(
|
||||
&self,
|
||||
info: &vk::CommandPoolCreateInfo,
|
||||
) -> VkResult<vk::CommandPool> {
|
||||
let info = info.queue_family_index(self.queue_family_index);
|
||||
|
||||
unsafe { self.handle.create_command_pool(&info, None) }
|
||||
}
|
||||
|
||||
pub(super) fn allocate_command_buffers(&self, info: &vk::CommandBufferAllocateInfo) -> VkResult<Vec<vk::CommandBuffer>> {
|
||||
pub(super) fn allocate_command_buffers(
|
||||
&self,
|
||||
info: &vk::CommandBufferAllocateInfo,
|
||||
) -> VkResult<Vec<vk::CommandBuffer>> {
|
||||
unsafe { self.handle.allocate_command_buffers(&info) }
|
||||
}
|
||||
|
||||
|
@ -93,7 +106,10 @@ impl VkDevice {
|
|||
unsafe { self.handle.create_fence(&info, None) }
|
||||
}
|
||||
|
||||
pub(super) fn create_semaphore(&self, info: &vk::SemaphoreCreateInfo) -> VkResult<vk::Semaphore> {
|
||||
pub(super) fn create_semaphore(
|
||||
&self,
|
||||
info: &vk::SemaphoreCreateInfo,
|
||||
) -> VkResult<vk::Semaphore> {
|
||||
unsafe { self.handle.create_semaphore(&info, None) }
|
||||
}
|
||||
}
|
||||
|
@ -105,4 +121,4 @@ impl Drop for VkDevice {
|
|||
log::debug!(target: LOG_TARGET, "Device destroyed ({:?})", self.handle.handle());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue