feo_oop_engine/graphics/
mod.rs1pub mod frame_system;
6pub mod three_vertex_buffers_definition;
7pub mod graphics_system;
8pub mod pass_builder;
9pub mod draw_pass_manager;
10pub mod lighting_pass_manager;
11
12use {
13 crate::{
14 components::{
15 Normal,
16 TextureIndex,
17 Vertex
18 },
19 registration::relation::ParentWrapper,
20 components::triangle_mesh::TriangleMesh,
21 },
22 self::{
23 draw_pass_manager::DrawPassManager,
24 lighting_pass_manager::LightingPassManager
25 },
26 std::sync::Arc,
27 vulkano::buffer::CpuAccessibleBuffer
28};
29
30pub trait Drawable {
31 fn add_to_draw_pass_manager(&self, draw_pass_manager: &mut DrawPassManager);
33
34 fn load_into_managers(
51 &self,
52 this: ParentWrapper,
53 draw_pass_manager: &mut DrawPassManager,
54 lighting_pass_manager: &mut LightingPassManager,
55 );
56
57 fn get_visible(&self) -> bool;
59
60 fn add_triangle_mesh(&mut self, triangle_mesh: Arc<TriangleMesh>) -> Result<(), ()>;
62
63 fn get_triangle_mesh(&self) -> Vec<Arc<TriangleMesh>>;
64 fn get_vertex_buffer(&self) -> Vec<Option<Arc<CpuAccessibleBuffer<[Vertex]>>>>;
65 fn get_normals_buffer(&self) -> Vec<Option<Arc<CpuAccessibleBuffer<[Normal]>>>>;
66 fn get_texture_indices_buffer(&self) -> Vec<Option<Arc<CpuAccessibleBuffer<[TextureIndex]>>>>;
67}