Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 265f2a2c70 | |||
| 3c516badd4 | |||
| 00dce54aea |
@@ -59,10 +59,13 @@ impl std::fmt::Display for LoadError{
|
|||||||
}
|
}
|
||||||
impl std::error::Error for LoadError{}
|
impl std::error::Error for LoadError{}
|
||||||
|
|
||||||
pub fn load<P:AsRef<std::path::Path>>(path:P)->Result<strafesnet_common::map::CompleteMap,LoadError>{
|
pub fn load_file<P:AsRef<std::path::Path>>(path:P)->Result<strafesnet_common::map::CompleteMap,LoadError>{
|
||||||
//blocking because it's simpler...
|
//blocking because it's simpler...
|
||||||
let file=std::fs::File::open(path).map_err(LoadError::File)?;
|
let file=std::fs::File::open(path).map_err(LoadError::File)?;
|
||||||
match read(file).map_err(LoadError::ReadError)?{
|
load(file)
|
||||||
|
}
|
||||||
|
pub fn load<R:Read+std::io::Seek>(reader:R)->Result<strafesnet_common::map::CompleteMap,LoadError>{
|
||||||
|
match read(reader).map_err(LoadError::ReadError)?{
|
||||||
#[cfg(feature="snf")]
|
#[cfg(feature="snf")]
|
||||||
DataStructure::StrafesNET(map)=>Ok(map),
|
DataStructure::StrafesNET(map)=>Ok(map),
|
||||||
#[cfg(feature="roblox")]
|
#[cfg(feature="roblox")]
|
||||||
|
|||||||
@@ -14,6 +14,9 @@ WorkerDescription{
|
|||||||
*/
|
*/
|
||||||
//up to three frames in flight, dropping new frame requests when all three are busy, and dropping output frames when one renders out of order
|
//up to three frames in flight, dropping new frame requests when all three are busy, and dropping output frames when one renders out of order
|
||||||
|
|
||||||
|
fn print(message:&str){
|
||||||
|
web_sys::console::log_1(&message.into());
|
||||||
|
}
|
||||||
pub fn new<'a>(
|
pub fn new<'a>(
|
||||||
mut graphics:crate::graphics::GraphicsState,
|
mut graphics:crate::graphics::GraphicsState,
|
||||||
mut config:wgpu::SurfaceConfiguration,
|
mut config:wgpu::SurfaceConfiguration,
|
||||||
@@ -33,10 +36,18 @@ pub fn new<'a>(
|
|||||||
}
|
}
|
||||||
Instruction::Render(frame_state)=>{
|
Instruction::Render(frame_state)=>{
|
||||||
if let Some((size,user_settings))=resize.take(){
|
if let Some((size,user_settings))=resize.take(){
|
||||||
println!("Resizing to {:?}",size);
|
print(format!("Resizing to {:?}",size).as_str());
|
||||||
//let t0=std::time::Instant::now();
|
//let t0=std::time::Instant::now();
|
||||||
config.width=size.width.clamp(1,2560/2);
|
match size{
|
||||||
config.height=size.height.clamp(1,1440/2);
|
winit::dpi::PhysicalSize{width:2560,height:1440}=>{
|
||||||
|
config.width=size.width.clamp(1,2560);
|
||||||
|
config.height=size.height.clamp(1,1440);
|
||||||
|
},
|
||||||
|
_=>{
|
||||||
|
config.width=size.width.clamp(1,1280);
|
||||||
|
config.height=size.height.clamp(1,720);
|
||||||
|
}
|
||||||
|
}
|
||||||
surface.configure(&device,&config);
|
surface.configure(&device,&config);
|
||||||
graphics.resize(&device,&config,&user_settings);
|
graphics.resize(&device,&config,&user_settings);
|
||||||
//println!("Resize took {:?}",t0.elapsed());
|
//println!("Resize took {:?}",t0.elapsed());
|
||||||
|
|||||||
@@ -211,13 +211,13 @@ pub async fn setup_and_start(title:String){
|
|||||||
setup_context,
|
setup_context,
|
||||||
);
|
);
|
||||||
|
|
||||||
if let Some(arg)=std::env::args().nth(1){
|
//if let Some(arg)=std::env::args().nth(1){
|
||||||
let path=std::path::PathBuf::from(arg);
|
//let path=std::path::PathBuf::from(arg);
|
||||||
window_thread.send(TimedInstruction{
|
window_thread.send(TimedInstruction{
|
||||||
time:integer::Time::ZERO,
|
time:integer::Time::ZERO,
|
||||||
instruction:WindowInstruction::WindowEvent(winit::event::WindowEvent::DroppedFile(path)),
|
instruction:WindowInstruction::WindowEvent(winit::event::WindowEvent::DroppedFile("".into())),
|
||||||
}).unwrap();
|
}).unwrap();
|
||||||
};
|
//};
|
||||||
|
|
||||||
println!("Entering event loop...");
|
println!("Entering event loop...");
|
||||||
let root_time=chrono::Utc::now();
|
let root_time=chrono::Utc::now();
|
||||||
|
|||||||
@@ -25,8 +25,10 @@ impl WindowContext<'_>{
|
|||||||
}
|
}
|
||||||
fn window_event(&mut self,time:integer::Time,event:winit::event::WindowEvent){
|
fn window_event(&mut self,time:integer::Time,event:winit::event::WindowEvent){
|
||||||
match event{
|
match event{
|
||||||
winit::event::WindowEvent::DroppedFile(path)=>{
|
winit::event::WindowEvent::DroppedFile(_path)=>{
|
||||||
match crate::file::load(path.as_path()){
|
//match crate::file::load_file(path.as_path()){
|
||||||
|
let data=include_bytes!("/run/media/quat/Files/Documents/map-files/verify-scripts/maps/bhop_snfm/5692152916.snfm");
|
||||||
|
match crate::file::load(std::io::Cursor::new(data.as_slice())){
|
||||||
Ok(map)=>self.physics_thread.send(TimedInstruction{time,instruction:crate::physics_worker::Instruction::ChangeMap(map)}).unwrap(),
|
Ok(map)=>self.physics_thread.send(TimedInstruction{time,instruction:crate::physics_worker::Instruction::ChangeMap(map)}).unwrap(),
|
||||||
Err(e)=>println!("Failed to load map: {e}"),
|
Err(e)=>println!("Failed to load map: {e}"),
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user