more brainstorming on how spriting and computing is going to work

This commit is contained in:
2019-08-27 01:46:25 -07:00
parent be20f3ae2a
commit c39994a7ae
4 changed files with 120 additions and 11 deletions

View File

@@ -35,6 +35,7 @@ pub struct VkProcessor<'a> {
impl<'a> VkProcessor<'a> {
pub fn new(instance: &'a Arc<Instance>, surface: &'a Arc<Surface<Window>>) -> VkProcessor<'a> {
let physical = PhysicalDevice::enumerate(instance).next().unwrap();
@@ -72,12 +73,10 @@ impl<'a> VkProcessor<'a> {
}
}
pub fn compile_kernel(&mut self, filename: String) {
self.compute_kernel = Some(ComputeKernel::new(filename, self.device.clone()));
}
pub fn create_swapchain(&mut self, surface: &'a Arc<Surface<Window>>) {
let (mut swapchain, images) = {
let capabilities = surface.capabilities(self.physical).unwrap();
@@ -154,8 +153,11 @@ impl<'a> VkProcessor<'a> {
surface: &'a Arc<Surface<Window>>,
mut frame_future: Box<dyn GpuFuture>,
canvas_frame: CanvasFrame,
) -> Box<dyn GpuFuture> {
self.canvas.draw(canvas_frame);
self.canvas.allocate_vertex_buffers(self.device.clone());
let mut framebuffers =
self.canvas.window_size_dependent_setup(&self.swapchain_images.clone().unwrap().clone());
@@ -196,9 +198,6 @@ impl<'a> VkProcessor<'a> {
.copy_buffer_to_image(self.compute_image.clone().unwrap().clone().rw_buffers.get(0).unwrap().clone(),
self.compute_image.clone().unwrap().clone().get_swap_buffer().clone()).unwrap();
self.canvas.draw(canvas_frame);
self.canvas.allocate_vertex_buffers(self.device.clone());
let mut command_buffer = self.canvas.draw_commands(command_buffer, framebuffers, image_num);
let command_buffer = command_buffer.build().unwrap();