typed primitive buffers + macro for creation
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
use crate::{
|
||||
ActiveSensors, SensorMap, UiRegion, WidgetId, Widgets,
|
||||
primitive::{PrimitiveData, PrimitiveInstance, Primitives},
|
||||
primitive::{Primitive, Primitives},
|
||||
};
|
||||
|
||||
pub struct Painter<'a, Ctx: 'static> {
|
||||
@@ -28,16 +28,8 @@ impl<'a, Ctx> Painter<'a, Ctx> {
|
||||
region: UiRegion::full(),
|
||||
}
|
||||
}
|
||||
pub fn write<Data: PrimitiveData>(&mut self, data: Data) {
|
||||
let ptr = self.primitives.data.len() as u32;
|
||||
let region = self.region;
|
||||
self.primitives
|
||||
.instances
|
||||
.push(PrimitiveInstance { region, ptr });
|
||||
self.primitives.data.push(Data::DISCRIM);
|
||||
self.primitives
|
||||
.data
|
||||
.extend_from_slice(bytemuck::cast_slice::<_, u32>(&[data]));
|
||||
pub fn write<P: Primitive>(&mut self, data: P) {
|
||||
self.primitives.write(data, self.region);
|
||||
}
|
||||
|
||||
pub fn draw<W>(&mut self, id: &WidgetId<W>)
|
||||
|
||||
Reference in New Issue
Block a user