bevy/src/render/render_resource/batching/batch.rs
2020-03-25 17:31:59 -07:00

26 lines
867 B
Rust

use crate::{asset::HandleUntyped, render::render_resource::RenderResourceAssignments};
use legion::prelude::Entity;
use std::collections::{HashSet, HashMap};
#[derive(PartialEq, Eq, Debug, Default)]
pub struct Batch {
pub handles: Vec<HandleUntyped>,
pub entities: HashSet<Entity>,
pub instanced_entity_indices: HashMap<Entity, usize>,
pub current_instanced_entity_index: usize,
pub render_resource_assignments: RenderResourceAssignments,
}
impl Batch {
pub fn add_entity(&mut self, entity: Entity) {
self.entities.insert(entity);
}
pub fn add_instanced_entity(&mut self, entity: Entity) {
if let None = self.instanced_entity_indices.get(&entity) {
self.instanced_entity_indices.insert(entity, self.current_instanced_entity_index);
self.current_instanced_entity_index += 1;
}
}
}