pub struct AshRender<'a> {Show 21 fields
pub paused: bool,
pub descriptor_sets_render: Vec<DescriptorSet>,
pub descriptor_sets_compute: Vec<DescriptorSet>,
pub screenshot_ctx: ScreenshotCtx<'a>,
pub push_constants_range: u32,
pub scissors: Rect2D,
pub viewport: Viewport,
pub resolution: Extent2D,
pub rendering_complete_semaphore: Semaphore,
pub present_complete_semaphore: Semaphore,
pub command_pool: VkCommandPool,
pub command_pool_transfer: VkCommandPool,
pub pipeline_cache: PipelineCache,
pub pipelines: Vec<Pipeline>,
pub render_pass: VkRenderPass,
pub framebuffers: Vec<Framebuffer>,
pub swapchain: VkSwapchain,
pub surface: VkSurface,
pub device_properties: VkDeviceProperties,
pub queues: VkQueues,
pub device: VkDevice,
/* private fields */
}
Expand description
The main struct that holds all render primitives
Rust documentation states for FIFO drop order for struct fields. Or in the other words it’s the same order that they’re declared.
Fields
paused: bool
descriptor_sets_render: Vec<DescriptorSet>
descriptor_sets_compute: Vec<DescriptorSet>
screenshot_ctx: ScreenshotCtx<'a>
push_constants_range: u32
scissors: Rect2D
viewport: Viewport
resolution: Extent2D
rendering_complete_semaphore: Semaphore
present_complete_semaphore: Semaphore
command_pool: VkCommandPool
command_pool_transfer: VkCommandPool
pipeline_cache: PipelineCache
pipelines: Vec<Pipeline>
render_pass: VkRenderPass
framebuffers: Vec<Framebuffer>
swapchain: VkSwapchain
surface: VkSurface
device_properties: VkDeviceProperties
queues: VkQueues
device: VkDevice
Implementations
sourceimpl<'a> AshRender<'a>
impl<'a> AshRender<'a>
pub fn get_info(&self) -> RendererInfo
pub fn get_device_name(&self) -> Result<&str, Utf8Error>
pub fn get_device_type(&self) -> &str
pub fn get_vendor_name(&self) -> &str
pub fn get_vulkan_version_name(&self) -> VkResult<Cow<'_, str>>
pub fn new<W: HasRawWindowHandle + HasRawDisplayHandle>(
window: &W,
push_constants_range: u32
) -> Result<Self, Box<dyn Error>>
pub fn render(&mut self, push_constant: PushConstant) -> VkResult<()>
pub fn resize(&mut self) -> VkResult<()>
pub fn create_compute_pipeline(
&self,
shader: ShaderCreateInfo<'_>
) -> VkResult<Pipeline>
pub fn create_render_pipeline(
&self,
vert_code: ShaderCreateInfo<'_>,
frag_code: ShaderCreateInfo<'_>
) -> VkResult<Pipeline>
pub fn push_compute_pipeline(
&mut self,
comp: ShaderCreateInfo<'_>
) -> VkResult<()>
pub fn push_render_pipeline(
&mut self,
vert: ShaderCreateInfo<'_>,
frag: ShaderCreateInfo<'_>
) -> VkResult<()>
pub fn rebuild_compute_pipeline(
&mut self,
index: usize,
comp: ShaderCreateInfo<'_>
) -> VkResult<()>
pub fn rebuild_render_pipeline(
&mut self,
index: usize,
vert: ShaderCreateInfo<'_>,
frag: ShaderCreateInfo<'_>
) -> VkResult<()>
pub fn create_graphics_pipeline_layout(
&self
) -> VkResult<(PipelineLayout, Vec<DescriptorSetLayout>)>
pub fn create_compute_pipeline_layout(
&self
) -> VkResult<(PipelineLayout, Vec<DescriptorSetLayout>)>
pub fn capture_frame(&mut self) -> VkResult<Frame>
pub fn update_fft_texture(&mut self, data: &[f32]) -> VkResult<()>
pub fn screenshot_layout(&self) -> SubresourceLayout
pub fn screenshot_dimentions(&self) -> ImageDimentions
Trait Implementations
Auto Trait Implementations
impl<'a> RefUnwindSafe for AshRender<'a>
impl<'a> !Send for AshRender<'a>
impl<'a> !Sync for AshRender<'a>
impl<'a> Unpin for AshRender<'a>
impl<'a> !UnwindSafe for AshRender<'a>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more