temp
This commit is contained in:
@@ -44,7 +44,7 @@ impl TestGame {
|
|||||||
fn update(self: &mut Self, renderer: &mut VulkanRenderer) {
|
fn update(self: &mut Self, renderer: &mut VulkanRenderer) {
|
||||||
self.input.frame_start();
|
self.input.frame_start();
|
||||||
|
|
||||||
let new_time = (renderer.game_data.start_time.elapsed().unwrap().as_micros() as f64 / 1000000.0) as f32;
|
// let new_time = (renderer.game_data.start_time.elapsed().unwrap().as_micros() as f64 / 1000000.0) as f32;
|
||||||
// let frame_time = new_time - renderer.game_data.uniform_buffers.iter().map(|ubo| ubo.time).max_by(|a,b| if a > b {Ordering::Greater} else {Ordering::Less} ).unwrap();
|
// let frame_time = new_time - renderer.game_data.uniform_buffers.iter().map(|ubo| ubo.time).max_by(|a,b| if a > b {Ordering::Greater} else {Ordering::Less} ).unwrap();
|
||||||
// renderer.game_data.uniform_buffers.iter_mut().for_each(|ubo| ubo.time = new_time);
|
// renderer.game_data.uniform_buffers.iter_mut().for_each(|ubo| ubo.time = new_time);
|
||||||
|
|
||||||
@@ -63,7 +63,7 @@ impl TestGame {
|
|||||||
|
|
||||||
if self.input.button_just_pressed("test") {
|
if self.input.button_just_pressed("test") {
|
||||||
println!("test");
|
println!("test");
|
||||||
self.cubes = self.test_meshes.iter().map(|(mesh, tex_id)| renderer.add_game_object(GameObject::new(*mesh, *tex_id, renderer))).collect();
|
self.cubes = self.test_meshes.iter().map(|(mesh, tex_id)| renderer.add_game_object(GameObject::new(*mesh, *tex_id))).collect();
|
||||||
}
|
}
|
||||||
|
|
||||||
self.cam_rotation = self.cam_rotation * Quaternion::from_angle_y(Deg(self.input.get_axis("look_horizontal") * 0.05));
|
self.cam_rotation = self.cam_rotation * Quaternion::from_angle_y(Deg(self.input.get_axis("look_horizontal") * 0.05));
|
||||||
|
|||||||
@@ -14,8 +14,7 @@ use vulkano::sync;
|
|||||||
use vulkano::format::{Format, ClearValue};
|
use vulkano::format::{Format, ClearValue};
|
||||||
use vulkano::instance::debug::{DebugCallback, MessageTypes};
|
use vulkano::instance::debug::{DebugCallback, MessageTypes};
|
||||||
use vulkano::memory::pool::{PotentialDedicatedAllocation, StdMemoryPoolAlloc};
|
use vulkano::memory::pool::{PotentialDedicatedAllocation, StdMemoryPoolAlloc};
|
||||||
use vulkano::descriptor::descriptor_set::{PersistentDescriptorSet, FixedSizeDescriptorSetsPool, FixedSizeDescriptorSet};
|
use vulkano::descriptor::descriptor_set::{FixedSizeDescriptorSetsPool, FixedSizeDescriptorSet, PersistentDescriptorSetBuf, PersistentDescriptorSetImg, PersistentDescriptorSetSampler};
|
||||||
use vulkano::descriptor::DescriptorSet;
|
|
||||||
use vulkano::sampler::{Sampler, Filter, MipmapMode, SamplerAddressMode};
|
use vulkano::sampler::{Sampler, Filter, MipmapMode, SamplerAddressMode};
|
||||||
|
|
||||||
use vulkano_win::VkSurfaceBuild;
|
use vulkano_win::VkSurfaceBuild;
|
||||||
@@ -77,7 +76,7 @@ pub struct GameObject {
|
|||||||
pub(crate) type GameObjectHandle = usize;
|
pub(crate) type GameObjectHandle = usize;
|
||||||
pub(crate) type MeshHandle = usize;
|
pub(crate) type MeshHandle = usize;
|
||||||
|
|
||||||
type FixedGraphicsDescriptorSet = Arc<FixedSizeDescriptorSet<Arc<GraphicsPipelineAbstract + Send + Sync>, ((), vulkano::descriptor::descriptor_set::PersistentDescriptorSetBuf<std::sync::Arc<vulkano::buffer::CpuAccessibleBuffer<vs::ty::UniformBufferObject>>>)>>;
|
type FixedGraphicsDescriptorSet = Arc<FixedSizeDescriptorSet<Arc<dyn GraphicsPipelineAbstract + Send + Sync>, ((((), PersistentDescriptorSetBuf<Arc<CpuAccessibleBuffer<vs::ty::UniformBufferObject>>>), PersistentDescriptorSetImg<Arc<ImmutableImage<Format>>>), PersistentDescriptorSetSampler)>>;
|
||||||
|
|
||||||
pub struct GameData {
|
pub struct GameData {
|
||||||
pub start_time: SystemTime,
|
pub start_time: SystemTime,
|
||||||
@@ -286,8 +285,6 @@ impl VulkanRenderer {
|
|||||||
|
|
||||||
default_tex_future.flush().unwrap();
|
default_tex_future.flush().unwrap();
|
||||||
|
|
||||||
data.textures.push(default_tex);
|
|
||||||
|
|
||||||
// Dynamic viewports allow us to recreate just the viewport when the window is resized
|
// Dynamic viewports allow us to recreate just the viewport when the window is resized
|
||||||
// Otherwise we would have to recreate the whole pipeline.
|
// Otherwise we would have to recreate the whole pipeline.
|
||||||
let mut dynamic_state = DynamicState { line_width: None, viewports: None, scissors: None };
|
let mut dynamic_state = DynamicState { line_width: None, viewports: None, scissors: None };
|
||||||
@@ -310,20 +307,18 @@ impl VulkanRenderer {
|
|||||||
let descriptor_set_pool = Mutex::new(FixedSizeDescriptorSetsPool::new(pipeline.clone(), 0));
|
let descriptor_set_pool = Mutex::new(FixedSizeDescriptorSetsPool::new(pipeline.clone(), 0));
|
||||||
let descriptor_sets = uniform_buffers
|
let descriptor_sets = uniform_buffers
|
||||||
.iter()
|
.iter()
|
||||||
.map(|uniform_buffer|
|
.map(|uniform_buffer| {
|
||||||
Arc::new(
|
Arc::new(
|
||||||
descriptor_set_pool
|
descriptor_set_pool
|
||||||
.lock()
|
.lock().unwrap().next()
|
||||||
.unwrap()
|
.add_buffer(uniform_buffer.clone()).unwrap()
|
||||||
.next()
|
.add_sampled_image(default_tex.clone(), sampler.clone()).unwrap()
|
||||||
.add_buffer(uniform_buffer.clone())
|
.build().unwrap())
|
||||||
.unwrap()
|
})
|
||||||
.build()
|
|
||||||
.unwrap()
|
|
||||||
)
|
|
||||||
)
|
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
|
data.textures.push(default_tex);
|
||||||
|
|
||||||
// In the loop below we are going to submit commands to the GPU. Submitting a command produces
|
// In the loop below we are going to submit commands to the GPU. Submitting a command produces
|
||||||
// an object that implements the `GpuFuture` trait, which holds the resources for as long as
|
// an object that implements the `GpuFuture` trait, which holds the resources for as long as
|
||||||
// they are in use by the GPU.
|
// they are in use by the GPU.
|
||||||
@@ -611,7 +606,7 @@ fn create_pipeline<V: vulkano::pipeline::vertex::Vertex>(device: Arc<Device>, re
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl GameObject {
|
impl GameObject {
|
||||||
pub fn new(mesh: MeshHandle, texture_index: usize, renderer: &VulkanRenderer) -> GameObject {
|
pub fn new(mesh: MeshHandle, texture_index: usize) -> GameObject {
|
||||||
GameObject { mesh_index: mesh, texture_index, model_matrix: Matrix4::identity() }
|
GameObject { mesh_index: mesh, texture_index, model_matrix: Matrix4::identity() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user