compiles and renders textures again
This commit is contained in:
@@ -30,10 +30,10 @@ use vulkano::pipeline::vertex::{VertexDefinition, Vertex};
|
||||
use crate::canvas::managed::shader::dynamic_vertex::RuntimeVertexDef;
|
||||
use crate::canvas::managed::handles::{CanvasTextureHandle, CanvasImageHandle, CanvasFontHandle, CompiledShaderHandle, Handle, DrawableHandle};
|
||||
use crate::canvas::managed::gpu_buffers::{CanvasImage, CanvasTexture, CanvasFont};
|
||||
use crate::canvas::managed::shader::shader_common::CompiledGraphicsPipeline;
|
||||
use crate::canvas::managed::shader::shader_common::CompiledShader;
|
||||
use crate::canvas::managed::shader::generic_shader::GenericShader;
|
||||
use crate::VertexTypes;
|
||||
use crate::util::vertex::{TextVertex3D, TextureVertex2D, ImageVertex2D, ColorVertex2D, CanvasFrameAllocation};
|
||||
use crate::util::vertex::{TextVertex3D, TextureVertex3D, ImageVertex3D, ColorVertex3D, CanvasFrameAllocation};
|
||||
use shade_runner::Input;
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ pub struct CanvasState {
|
||||
font_buffers: Vec<Arc<CanvasFont>>,
|
||||
|
||||
/// Compiled Graphics pipelines have a handle which self describe their position in this vector
|
||||
shader_buffers: Vec<Arc<Box<dyn CompiledGraphicsPipeline>>>,
|
||||
shader_buffers: Vec<Arc<Box<dyn CompiledShader>>>,
|
||||
|
||||
/// Looks like we gotta hold onto the queue for managing textures
|
||||
queue: Arc<Queue>,
|
||||
@@ -260,13 +260,13 @@ impl CanvasState {
|
||||
filename: String,
|
||||
physical: PhysicalDevice,
|
||||
capabilities: Capabilities) -> Option<Arc<CompiledShaderHandle>>
|
||||
where T: CompiledGraphicsPipeline, V: Vertex {
|
||||
where T: CompiledShader, V: Vertex {
|
||||
|
||||
let handle = Arc::new(CompiledShaderHandle {
|
||||
handle: self.shader_buffers.len() as u32
|
||||
});
|
||||
|
||||
let shader: Box<dyn CompiledGraphicsPipeline> = Box::new(T::new::<V>(
|
||||
let shader: Box<dyn CompiledShader> = Box::new(T::new::<V>(
|
||||
filename.clone(),
|
||||
self.device.clone(),
|
||||
handle.clone(),
|
||||
@@ -390,9 +390,9 @@ impl CanvasState {
|
||||
/// Consume and allocate the canvas frame data to the GPU
|
||||
pub fn allocate(&mut self, canvas_frame: CanvasFrame) -> CanvasFrameAllocation {
|
||||
|
||||
let mut colored_vertex_buffer: Vec<ColorVertex2D> = Vec::default();
|
||||
let mut textured_vertex_buffer: HashMap<Arc<CanvasTextureHandle>, Vec<TextureVertex2D>> = HashMap::new();
|
||||
let mut image_vertex_buffer: HashMap<Arc<CanvasImageHandle>, Vec<ImageVertex2D>> = HashMap::new();
|
||||
let mut colored_vertex_buffer: Vec<ColorVertex3D> = Vec::default();
|
||||
let mut textured_vertex_buffer: HashMap<Arc<CanvasTextureHandle>, Vec<TextureVertex3D>> = HashMap::new();
|
||||
let mut image_vertex_buffer: HashMap<Arc<CanvasImageHandle>, Vec<ImageVertex3D>> = HashMap::new();
|
||||
let mut text_instances: HashMap<Arc<CanvasFontHandle>, Vec<TextVertex3D>> = HashMap::new();
|
||||
|
||||
for value in canvas_frame.map {
|
||||
@@ -477,7 +477,7 @@ impl CanvasState {
|
||||
// This looks a little weird as colored_vertex_buffer is a vec of GPU allocated vecs.
|
||||
// But we can pass in multiple vertex buffers
|
||||
|
||||
if allocated_buffers.colored_vertex_buffer.is_empty() {
|
||||
if !allocated_buffers.colored_vertex_buffer.is_empty() {
|
||||
command_buffer = command_buffer.draw(
|
||||
shader.get_pipeline().clone(),
|
||||
&self.dynamic_state.clone(),
|
||||
@@ -529,10 +529,10 @@ impl CanvasState {
|
||||
}
|
||||
|
||||
// Text
|
||||
let mut shader = self.shader_buffers.get(
|
||||
self.get_shader_handle(String::from("simple_text"))
|
||||
.unwrap().clone().get_handle() as usize
|
||||
).unwrap();
|
||||
// let mut shader = self.shader_buffers.get(
|
||||
// self.get_shader_handle(String::from("simple_text"))
|
||||
// .unwrap().clone().get_handle() as usize
|
||||
// ).unwrap();
|
||||
|
||||
//
|
||||
// if !self.text_instances.is_empty() {
|
||||
|
||||
Reference in New Issue
Block a user