fn create_base_graphics_pipeline_and_shaders(
    logical_device: &Device, shader_store: &Arc<RwLock<ShaderStore<VulkanShaderFunctions>>>,
    extent: vk::Extent2D, render_pass: vk::RenderPass,
    resolve_attachment: Option<ResolveAttachment>, depth_buffer: DepthAttachment,
    msaa_config: &MsaaConfig,
  ) -> SarektResult<BasePipelineBundle> {
    let (vertex_shader_handle, fragment_shader_handle) =
      Self::create_default_shaders(shader_store)?;

    let default_descriptor_set_layouts =
      Self::create_default_descriptor_set_layouts(logical_device)?;

    Self::create_base_graphics_pipeline(
      logical_device,
      shader_store,
      extent,
      render_pass,
      resolve_attachment,
      depth_buffer,
      msaa_config,
      default_descriptor_set_layouts,
      vertex_shader_handle,
      fragment_shader_handle,
    )
  }
/// Creates the base pipeline for Sarekt.  A user can load custom shaders,
/// etc, to create custom pipelines (passed back as opaque handles) based off
/// this one that they can pass when requesting a draw.
///
/// TODO(issue#2) RENDERING_CAPABILITIES allow for creating custom pipelines
/// via LoadShaders etc.  When that is done, allow for disabling default
/// pipeline creation via config if it wont be used to save resources.
///
/// TODO(issue#17) RENDERING_CAPABILITIES enable pipeline cache.
Creates the base pipeline for Sarekt.  A user can load custom shaders,
etc, to create custom pipelines (passed back as opaque handles) based off
this one that they can pass when requesting a draw.




Creates the base pipeline for Sarekt . A user can load custom shaders etc to create custom pipelines ( passed back as opaque handles ) based off this one that they can pass when requesting a draw .
fn create_base_graphics_pipeline_and_shaders(
    logical_device: &Device, shader_store: &Arc<RwLock<ShaderStore<VulkanShaderFunctions>>>,
    extent: vk::Extent2D, render_pass: vk::RenderPass,
    resolve_attachment: Option<ResolveAttachment>, depth_buffer: DepthAttachment,
    msaa_config: &MsaaConfig,
  ) -> SarektResult<BasePipelineBundle> {
    let (vertex_shader_handle, fragment_shader_handle) =
      Self::create_default_shaders(shader_store)?;
    let default_descriptor_set_layouts =
      Self::create_default_descriptor_set_layouts(logical_device)?;
    Self::create_base_graphics_pipeline(
      logical_device,
      shader_store,
      extent,
      render_pass,
      resolve_attachment,
      depth_buffer,
      msaa_config,
      default_descriptor_set_layouts,
      vertex_shader_handle,
      fragment_shader_handle,
    )
  }
fn create_base_graphics_pipeline_and_shaders ( logical_device : & Device , shader_store : & Arc < RwLock < ShaderStore < VulkanShaderFunctions > > > , extent : vk :: Extent2D , render_pass : vk :: RenderPass , resolve_attachment : Option < ResolveAttachment > , depth_buffer : DepthAttachment , msaa_config : & MsaaConfig , ) -> SarektResult < BasePipelineBundle > { let ( vertex_shader_handle , fragment_shader_handle ) = Self :: create_default_shaders ( shader_store ) ? ; let default_descriptor_set_layouts = Self :: create_default_descriptor_set_layouts ( logical_device ) ? ; Self :: create_base_graphics_pipeline ( logical_device , shader_store , extent , render_pass , resolve_attachment , depth_buffer , msaa_config , default_descriptor_set_layouts , vertex_shader_handle , fragment_shader_handle , ) }
Creates the base pipeline for Sarekt.
Creates the base pipeline for Sarekt .
logical_device
&Device
shader_store
&Arc<RwLock<ShaderStore<VulkanShaderFunctions>>>
extent
vk::Extent2D
render_pass
vk::RenderPass
resolve_attachment
Option<ResolveAttachment>
depth_buffer
DepthAttachment
msaa_config
&MsaaConfig
logical_device
&Device
shader_store
&Arc<RwLock<ShaderStore<VulkanShaderFunctions>>>
extent
vk::Extent2D
render_pass
vk::RenderPass
resolve_attachment
Option<ResolveAttachment>
depth_buffer
DepthAttachment
msaa_config
&MsaaConfig