pub fn custom_pipeline<T: Plumber<'static>, F>(&self, shader_name: Option<&str>, pipe: F ) -> T
    where
        F: FnOnce(&Device, PipelineLayout, VertexLayout, wgpu::ShaderModule, wgpu::MultisampleState, Option<&str>) -> Pipeline
    {
        log::info!("Creating pipeline");
        let desc = T::description();
        let pipe_layout = self.device.create_pipeline_layout(desc.pipeline_layout);
        let vertex_layout = VertexLayout::from(desc.vertex_layout);
        let shader = self.device.create_shader(desc.shader, shader_name).wgpu;
        let name = desc.name;

        let mut b_layouts = Vec::new();
        for s in pipe_layout.b_layouts.iter() {
            b_layouts.push(&s.wgpu)
        }

        T::setup(pipe(
            &self.device,
            pipe_layout,
            vertex_layout,
            shader,
            wgpu::MultisampleState {
                count: self.sample_count,
                mask: !0,
                alpha_to_coverage_enabled: false
            },
            name
        ),
        &self)
    }
/// Create a pipeline, However your have the responsibility of providing the [`Pipeline`].
Create a pipeline, However your have the responsibility of providing the [`Pipeline`].
Create a pipeline However your have the responsibility of providing the [ ` Pipeline ` ] .
pub fn custom_pipeline<T: Plumber<'static>, F>(&self, shader_name: Option<&str>, pipe: F ) -> T
    where
        F: FnOnce(&Device, PipelineLayout, VertexLayout, wgpu::ShaderModule, wgpu::MultisampleState, Option<&str>) -> Pipeline
    {
        log::info!("Creating pipeline");
        let desc = T::description();
        let pipe_layout = self.device.create_pipeline_layout(desc.pipeline_layout);
        let vertex_layout = VertexLayout::from(desc.vertex_layout);
        let shader = self.device.create_shader(desc.shader, shader_name).wgpu;
        let name = desc.name;
        let mut b_layouts = Vec::new();
        for s in pipe_layout.b_layouts.iter() {
            b_layouts.push(&s.wgpu)
        }
        T::setup(pipe(
            &self.device,
            pipe_layout,
            vertex_layout,
            shader,
            wgpu::MultisampleState {
                count: self.sample_count,
                mask: !0,
                alpha_to_coverage_enabled: false
            },
            name
        ),
        &self)
    }
pub fn custom_pipeline < T : Plumber < ' static > , F > ( & self , shader_name : Option < & str > , pipe : F ) -> T where F : FnOnce ( & Device , PipelineLayout , VertexLayout , wgpu :: ShaderModule , wgpu :: MultisampleState , Option < & str > ) -> Pipeline { log :: info ! ( " " ) ; let desc = T :: description ( ) ; let pipe_layout = self . device . create_pipeline_layout ( desc . pipeline_layout ) ; let vertex_layout = VertexLayout :: from ( desc . vertex_layout ) ; let shader = self . device . create_shader ( desc . shader , shader_name ) . wgpu ; let name = desc . name ; let mut b_layouts = Vec :: new ( ) ; for s in pipe_layout . b_layouts . iter ( ) { b_layouts . push ( & s . wgpu ) } T :: setup ( pipe ( & self . device , pipe_layout , vertex_layout , shader , wgpu :: MultisampleState { count : self . sample_count , mask : ! 0 , alpha_to_coverage_enabled : false } , name ) , & self ) }
Create a pipeline, However your have the responsibility of providing the [`Pipeline`].
Create a pipeline However your have the responsibility of providing the [ ` Pipeline ` ] .
&self
shader_name
Option<&str>
pipe
F