# [−] [src] Trait sfml_rust::canvas::managed::shader::shader_common::CompiledShader

    pub trait CompiledShader {
        fn new<V>(
            filename: String,
            device: Arc<Device>,
            handle: Arc<CompiledShaderHandle>,
            render_pass: Arc<dyn RenderPassAbstract + Send + Sync>
        ) -> Self
        where
            Self: Sized,
            V: Vertex;
        fn get_name(&self) -> String;
        fn get_handle(&self) -> Arc<CompiledShaderHandle>;
        fn get_pipeline(&self) -> Arc<dyn GraphicsPipelineAbstract + Sync + Send>;
        fn get_renderpass(&self) -> Arc<dyn RenderPassAbstract + Send + Sync>;
        fn recompile<V: Vertex>(
            self,
            render_pass: Arc<dyn RenderPassAbstract + Send + Sync>
        ) -> Self
        where
            Self: Sized;
    }

## Required methods

### `fn new<V>(
filename: String,
device: Arc<Device>,
handle: Arc<CompiledShaderHandle>,
render_pass: Arc<dyn RenderPassAbstract + Send + Sync>
) -> Self where
Self: Sized,
V: Vertex,`

### `fn get_name(&self) -> String`

### `fn get_handle(&self) -> Arc<CompiledShaderHandle>`

### `fn get_pipeline(&self) -> Arc<dyn GraphicsPipelineAbstract + Sync + Send>`

### `fn get_renderpass(&self) -> Arc<dyn RenderPassAbstract + Send + Sync>`

### `fn recompile<V: Vertex>(
self,
render_pass: Arc<dyn RenderPassAbstract + Send + Sync>
) -> Self where
Self: Sized,`

Loading content...

## Implementors

### `impl CompiledShader for GenericShader` [src]

Convenience interface so we don't have to juggle shader types

#### `fn new<V: Vertex>(
filename: String,
device: Arc<Device>,
handle: Arc<CompiledShaderHandle>,
render_pass: Arc<dyn RenderPassAbstract + Send + Sync>
) -> GenericShader` [src]

This will explode when the shader does not want to compile

#### `fn get_name(&self) -> String` [src]

#### `fn get_handle(&self) -> Arc<CompiledShaderHandle>` [src]

#### `fn get_pipeline(&self) -> Arc<dyn GraphicsPipelineAbstract + Sync + Send>` [src]

#### `fn get_renderpass(&self) -> Arc<dyn RenderPassAbstract + Send + Sync>` [src]

#### `fn recompile<V: Vertex>(
self,
render_pass: Arc<dyn RenderPassAbstract + Send + Sync>
) -> GenericShader` [src]

### `impl CompiledShader for TextShader` [src]

Convenience interface so we don't have to juggle shader types

#### `fn new<V: Vertex>(
filename: String,
device: Arc<Device>,
handle: Arc<CompiledShaderHandle>,
render_pass: Arc<dyn RenderPassAbstract + Send + Sync>
) -> TextShader` [src]

This will explode when the shader does not want to compile

#### `fn get_name(&self) -> String` [src]

#### `fn get_handle(&self) -> Arc<CompiledShaderHandle>` [src]

#### `fn get_pipeline(&self) -> Arc<dyn GraphicsPipelineAbstract + Sync + Send>` [src]

#### `fn get_renderpass(&self) -> Arc<dyn RenderPassAbstract + Send + Sync>` [src]

#### `fn recompile<V: Vertex>(
self,
render_pass: Arc<dyn RenderPassAbstract + Send + Sync>
) -> TextShader` [src]

Loading content...

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g., `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g., `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g., `str,u8` or `String,struct:Vec,test`)