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

@@ -11,7 +11,7 @@ use winit::Window;
use crate::compute::compu_state::CompuState;
use vulkano::image::ImageUsage;
use crate::compute::compu_frame::CompuFrame;
use crate::canvas::canvas_frame::CanvasFrame;
use crate::canvas::canvas_frame::{CanvasFrame, CanvasFrameTest};
use std::time::Duration;
use vulkano::pipeline::depth_stencil::{DynamicStencilValue, StencilFaceFlags};
use vulkano::pipeline::vertex::{OneVertexOneInstanceDefinition, SingleBufferDefinition};
@@ -21,6 +21,7 @@ use crate::canvas::managed::shader::generic_shader::GenericShader;
use crate::canvas::managed::shader::text_shader::TextShader;
use crate::canvas::managed::handles::{CanvasTextureHandle, CompiledShaderHandle, CanvasFontHandle, CanvasImageHandle};
use crate::compute::managed::handles::{CompuKernelHandle, CompuBufferHandle};
use crate::{ImplVertexData1, VertexTypes};
/// VKProcessor holds the vulkan instance information, the swapchain,
@@ -223,9 +224,10 @@ impl<'a> VkProcessor<'a> {
}
///
pub fn run(&mut self,
pub fn run<VTypes: Into<VertexTypes>>(&mut self,
surface: &'a Arc<Surface<Window>>,
canvas_frame: CanvasFrame,
//canvas_frame: CanvasFrame,
canvas_frame: CanvasFrameTest<VTypes>,
compute_frame: CompuFrame,
) {
@@ -268,7 +270,8 @@ impl<'a> VkProcessor<'a> {
// take the canvas frame and create the vertex buffers
// TODO: This performs gpu buffer creation. Shouldn't be in hotpath??
let g = hprof::enter("Canvas creates GPU buffers");
self.canvas_state.draw(canvas_frame);
//self.canvas_state.draw(canvas_frame);
}
let mut command_buffer =
@@ -282,7 +285,9 @@ impl<'a> VkProcessor<'a> {
let g = hprof::enter("Push draw commands to command buffer");
// Add the draw commands
let mut command_buffer = self.canvas_state.draw_commands(command_buffer, framebuffers, image_num);
//let mut command_buffer = self.canvas_state.draw_commands(command_buffer, framebuffers, image_num);
let mut command_buffer =
self.canvas_state.draw_commands_test(command_buffer, framebuffers, image_num, canvas_frame);
// And build
let command_buffer = command_buffer.build().unwrap();