Going to just normalize to a single hardcoded enum of vertex definitions. Seems like quite a backpeddle....

This commit is contained in:
2020-02-10 23:39:58 -08:00
parent cd0c1e6052
commit 80c0d323be
7 changed files with 162 additions and 76 deletions

View File

@@ -1,13 +1,18 @@
use std::sync::Arc;
use crate::util::vertex_3d::Vertex3D;
use crate::canvas::*;
use crate::canvas::managed::handles::{CanvasFontHandle, CanvasImageHandle, CanvasTextureHandle};
use crate::canvas::managed::handles::{CanvasFontHandle, CanvasImageHandle, CanvasTextureHandle, Handle};
use crate::canvas::managed::shader::text_shader::GlyphInstance;
use crate::canvas::canvas_frame::{DrawableTest, Drawable};
use crate::{VertexTypes, ImplVertexData1};
use crate::canvas::canvas_frame::dynhash::DynHash;
///
#[derive(Debug, Clone)]
pub struct Sprite {
pub verts: VertexTypes::TexturedType(vec![]),
pub vertices: [(f32, f32, f32); 6],
pub ti_position: [(f32, f32); 6],
@@ -98,6 +103,18 @@ impl Sprite {
}
}
}
impl<V: Into<VertexTypes>, H: Handle + DynHash> DrawableTest<V, H> for Sprite{
fn get_vertices(&self) -> V {
VertexTypes::TexturedType(vec![ImplVertexData1{ x: 0, y: 0 }])
}
fn get_handle(&self) -> H {
self.texture_handle.unwrap()
}
}
impl Drawable for Sprite {
fn get_vertices(&self) -> Vec<(f32, f32, f32)> {
self.vertices.to_vec()