bevy_core_pipeline/fullscreen_vertex_shader/
mod.rs1use bevy_asset::{load_embedded_asset, Handle};
2use bevy_ecs::{resource::Resource, world::FromWorld};
3use bevy_render::render_resource::VertexState;
4use bevy_shader::Shader;
5
6#[derive(Resource, Clone)]
8pub struct FullscreenShader(Handle<Shader>);
9
10impl FromWorld for FullscreenShader {
11 fn from_world(world: &mut bevy_ecs::world::World) -> Self {
12 Self(load_embedded_asset!(world, "fullscreen.wgsl"))
13 }
14}
15
16impl FullscreenShader {
17 pub fn shader(&self) -> Handle<Shader> {
19 self.0.clone()
20 }
21
22 pub fn to_vertex_state(&self) -> VertexState {
34 VertexState {
35 shader: self.0.clone(),
36 shader_defs: Vec::new(),
37 entry_point: Some("fullscreen_vertex_shader".into()),
38 buffers: Vec::new(),
39 }
40 }
41}