forked from StrafesNET/strafe-project
minimize lints
This commit is contained in:
parent
42310c5d2b
commit
c34ff18069
@ -1005,9 +1005,3 @@ fn test_is_empty_volume(){
|
|||||||
assert!(!is_empty_volume([vec3::X.fix_3(),vec3::Y.fix_3(),vec3::Z.fix_3()].to_vec()));
|
assert!(!is_empty_volume([vec3::X.fix_3(),vec3::Y.fix_3(),vec3::Z.fix_3()].to_vec()));
|
||||||
assert!(is_empty_volume([vec3::X.fix_3(),vec3::Y.fix_3(),vec3::Z.fix_3(),vec3::NEG_X.fix_3()].to_vec()));
|
assert!(is_empty_volume([vec3::X.fix_3(),vec3::Y.fix_3(),vec3::Z.fix_3(),vec3::NEG_X.fix_3()].to_vec()));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn build_me_a_cube(){
|
|
||||||
let mesh=PhysicsMesh::unit_cube();
|
|
||||||
//println!("mesh={:?}",mesh);
|
|
||||||
}
|
|
||||||
|
@ -229,12 +229,6 @@ impl PhysicsModels{
|
|||||||
.map(|model|&model.transform),
|
.map(|model|&model.transform),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fn contact_model(&self,model_id:ContactModelId)->&ContactModel{
|
|
||||||
&self.contact_models[&model_id]
|
|
||||||
}
|
|
||||||
fn intersect_model(&self,model_id:IntersectModelId)->&IntersectModel{
|
|
||||||
&self.intersect_models[&model_id]
|
|
||||||
}
|
|
||||||
fn contact_attr(&self,model_id:ContactModelId)->&gameplay_attributes::ContactAttributes{
|
fn contact_attr(&self,model_id:ContactModelId)->&gameplay_attributes::ContactAttributes{
|
||||||
&self.contact_attributes[&self.contact_models[&model_id].attr_id]
|
&self.contact_attributes[&self.contact_models[&model_id].attr_id]
|
||||||
}
|
}
|
||||||
@ -269,7 +263,7 @@ impl PhysicsCamera{
|
|||||||
);
|
);
|
||||||
self.clamped_mouse_pos=unclamped_mouse_pos;
|
self.clamped_mouse_pos=unclamped_mouse_pos;
|
||||||
}
|
}
|
||||||
pub fn simulate_move_angles(&self,mouse_delta:glam::IVec2)->glam::Vec2 {
|
pub fn simulate_move_angles(&self,mouse_delta:glam::IVec2)->glam::Vec2{
|
||||||
let a=-self.sensitivity.mul_int((self.clamped_mouse_pos+mouse_delta).as_i64vec2());
|
let a=-self.sensitivity.mul_int((self.clamped_mouse_pos+mouse_delta).as_i64vec2());
|
||||||
let ax=Angle32::wrap_from_i64(a.x);
|
let ax=Angle32::wrap_from_i64(a.x);
|
||||||
let ay=Angle32::clamp_from_i64(a.y)
|
let ay=Angle32::clamp_from_i64(a.y)
|
||||||
@ -1873,7 +1867,6 @@ fn atomic_input_instruction(state:&mut PhysicsState,data:&PhysicsData,ins:TimedI
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod test{
|
mod test{
|
||||||
use crate::body::VirtualBody;
|
|
||||||
use strafesnet_common::integer::{vec3::{self,int as int3},mat3};
|
use strafesnet_common::integer::{vec3::{self,int as int3},mat3};
|
||||||
use super::*;
|
use super::*;
|
||||||
fn test_collision_axis_aligned(relative_body:Body,expected_collision_time:Option<Time>){
|
fn test_collision_axis_aligned(relative_body:Body,expected_collision_time:Option<Time>){
|
||||||
|
@ -4,6 +4,7 @@ use std::{io::{Cursor,Read},path::Path};
|
|||||||
use strafesnet_physics::physics::{PhysicsData,PhysicsState,PhysicsContext};
|
use strafesnet_physics::physics::{PhysicsData,PhysicsState,PhysicsContext};
|
||||||
|
|
||||||
fn main(){
|
fn main(){
|
||||||
|
run_replay().unwrap();
|
||||||
test_determinism().unwrap();
|
test_determinism().unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -240,7 +240,7 @@ impl PartialMap2{
|
|||||||
.enumerate().map(|(new_texture_id,(old_texture_id,texture))|{
|
.enumerate().map(|(new_texture_id,(old_texture_id,texture))|{
|
||||||
(texture,(old_texture_id,model::TextureId::new(new_texture_id as u32)))
|
(texture,(old_texture_id,model::TextureId::new(new_texture_id as u32)))
|
||||||
}).unzip();
|
}).unzip();
|
||||||
let render_configs=render_configs.into_iter().map(|(render_config_id,mut render_config)|{
|
let render_configs=render_configs.into_iter().map(|(_render_config_id,mut render_config)|{
|
||||||
//this may generate duplicate no-texture render configs but idc
|
//this may generate duplicate no-texture render configs but idc
|
||||||
render_config.texture=render_config.texture.and_then(|texture_id|
|
render_config.texture=render_config.texture.and_then(|texture_id|
|
||||||
texture_id_map.get(&texture_id).copied()
|
texture_id_map.get(&texture_id).copied()
|
||||||
|
@ -23,7 +23,7 @@ impl PauseState for Unpaused{
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone,Copy,Hash,Eq,PartialEq,PartialOrd,Debug)]
|
#[derive(Clone,Copy,Hash,Eq,PartialEq,PartialOrd,Debug)]
|
||||||
enum Inner{}
|
pub enum Inner{}
|
||||||
type InnerTime=Time<Inner>;
|
type InnerTime=Time<Inner>;
|
||||||
|
|
||||||
#[derive(Clone,Copy,Debug)]
|
#[derive(Clone,Copy,Debug)]
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
// This whole thing should be a drive macro
|
||||||
|
|
||||||
pub trait Updatable<Updater>{
|
pub trait Updatable<Updater>{
|
||||||
fn update(&mut self,update:Updater);
|
fn update(&mut self,update:Updater);
|
||||||
}
|
}
|
||||||
@ -53,4 +55,3 @@ impl Updatable<OuterUpdate> for Outer{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//*/
|
|
@ -12,8 +12,8 @@ authors = ["Rhys Lloyd <krakow20@gmail.com>"]
|
|||||||
[features]
|
[features]
|
||||||
default = ["legacy"]
|
default = ["legacy"]
|
||||||
legacy = ["dep:url","dep:vbsp"]
|
legacy = ["dep:url","dep:vbsp"]
|
||||||
#roblox = ["dep:lazy-regex"]
|
roblox = []
|
||||||
#source = ["dep:vbsp"]
|
source = ["dep:vbsp"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
strafesnet_common = { path = "../common", registry = "strafesnet" }
|
strafesnet_common = { path = "../common", registry = "strafesnet" }
|
||||||
|
@ -57,7 +57,7 @@ fn from_f32(){
|
|||||||
assert_eq!(b,Ok(a));
|
assert_eq!(b,Ok(a));
|
||||||
//I32F32::MIN hits a special case since it's not representable as a positive signed integer
|
//I32F32::MIN hits a special case since it's not representable as a positive signed integer
|
||||||
//TODO: don't return an overflow because this is technically possible
|
//TODO: don't return an overflow because this is technically possible
|
||||||
let a=I32F32::MIN;
|
let _a=I32F32::MIN;
|
||||||
let b:Result<I32F32,_>=Into::<f32>::into(I32F32::MIN).try_into();
|
let b:Result<I32F32,_>=Into::<f32>::into(I32F32::MIN).try_into();
|
||||||
assert_eq!(b,Err(crate::fixed::FixedFromFloatError::Overflow));
|
assert_eq!(b,Err(crate::fixed::FixedFromFloatError::Overflow));
|
||||||
//16 is within the 24 bits of float precision
|
//16 is within the 24 bits of float precision
|
||||||
|
@ -42,7 +42,7 @@ pub struct Place{
|
|||||||
services:roblox_emulator::context::Services,
|
services:roblox_emulator::context::Services,
|
||||||
}
|
}
|
||||||
impl Place{
|
impl Place{
|
||||||
fn new(dom:WeakDom)->Option<Self>{
|
pub fn new(dom:WeakDom)->Option<Self>{
|
||||||
let context=roblox_emulator::context::Context::from_ref(&dom);
|
let context=roblox_emulator::context::Context::from_ref(&dom);
|
||||||
Some(Self{
|
Some(Self{
|
||||||
services:context.find_services()?,
|
services:context.find_services()?,
|
||||||
|
@ -3,6 +3,7 @@ use std::collections::HashMap;
|
|||||||
use rbx_mesh::mesh::{Vertex2, Vertex2Truncated};
|
use rbx_mesh::mesh::{Vertex2, Vertex2Truncated};
|
||||||
use strafesnet_common::{integer::vec3,model::{self, ColorId, IndexedVertex, NormalId, PolygonGroup, PolygonList, PositionId, TextureCoordinateId, VertexId}};
|
use strafesnet_common::{integer::vec3,model::{self, ColorId, IndexedVertex, NormalId, PolygonGroup, PolygonList, PositionId, TextureCoordinateId, VertexId}};
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub enum Error{
|
pub enum Error{
|
||||||
Planar64Vec3(strafesnet_common::integer::Planar64TryFromFloatError),
|
Planar64Vec3(strafesnet_common::integer::Planar64TryFromFloatError),
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
use strafesnet_common::model::{Color4,TextureCoordinate,Mesh,IndexedGraphicsGroup,IndexedPhysicsGroup,IndexedVertex,PolygonGroupId,PolygonGroup,PolygonList,IndexedVertexList,PositionId,TextureCoordinateId,NormalId,ColorId,VertexId,RenderConfigId};
|
use strafesnet_common::model::{Color4,TextureCoordinate,Mesh,IndexedGraphicsGroup,IndexedPhysicsGroup,IndexedVertex,PolygonGroupId,PolygonGroup,PolygonList,PositionId,TextureCoordinateId,NormalId,ColorId,VertexId,RenderConfigId};
|
||||||
use strafesnet_common::integer::{vec3,Planar64Vec3};
|
use strafesnet_common::integer::{vec3,Planar64Vec3};
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
@ -126,9 +126,6 @@ const CORNERWEDGE_DEFAULT_NORMALS:[Planar64Vec3;5]=[
|
|||||||
vec3::int( 0,-1, 0),//CornerWedge::Bottom
|
vec3::int( 0,-1, 0),//CornerWedge::Bottom
|
||||||
vec3::int( 0, 0,-1),//CornerWedge::Front
|
vec3::int( 0, 0,-1),//CornerWedge::Front
|
||||||
];
|
];
|
||||||
pub fn unit_sphere(render:RenderConfigId)->Mesh{
|
|
||||||
unit_cube(render)
|
|
||||||
}
|
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
pub struct CubeFaceDescription([Option<FaceDescription>;6]);
|
pub struct CubeFaceDescription([Option<FaceDescription>;6]);
|
||||||
impl CubeFaceDescription{
|
impl CubeFaceDescription{
|
||||||
@ -139,20 +136,16 @@ impl CubeFaceDescription{
|
|||||||
self.0.into_iter().enumerate().filter_map(|v|v.1.map(|u|(v.0,u)))
|
self.0.into_iter().enumerate().filter_map(|v|v.1.map(|u|(v.0,u)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pub fn unit_cube(render:RenderConfigId)->Mesh{
|
// pub fn unit_cube(render:RenderConfigId)->Mesh{
|
||||||
let mut t=CubeFaceDescription::default();
|
// let mut t=CubeFaceDescription::default();
|
||||||
t.insert(CubeFace::Right,FaceDescription::new_with_render_id(render));
|
// t.insert(CubeFace::Right,FaceDescription::new_with_render_id(render));
|
||||||
t.insert(CubeFace::Top,FaceDescription::new_with_render_id(render));
|
// t.insert(CubeFace::Top,FaceDescription::new_with_render_id(render));
|
||||||
t.insert(CubeFace::Back,FaceDescription::new_with_render_id(render));
|
// t.insert(CubeFace::Back,FaceDescription::new_with_render_id(render));
|
||||||
t.insert(CubeFace::Left,FaceDescription::new_with_render_id(render));
|
// t.insert(CubeFace::Left,FaceDescription::new_with_render_id(render));
|
||||||
t.insert(CubeFace::Bottom,FaceDescription::new_with_render_id(render));
|
// t.insert(CubeFace::Bottom,FaceDescription::new_with_render_id(render));
|
||||||
t.insert(CubeFace::Front,FaceDescription::new_with_render_id(render));
|
// t.insert(CubeFace::Front,FaceDescription::new_with_render_id(render));
|
||||||
generate_partial_unit_cube(t)
|
// generate_partial_unit_cube(t)
|
||||||
}
|
// }
|
||||||
pub fn unit_cylinder(render:RenderConfigId)->Mesh{
|
|
||||||
//lmao
|
|
||||||
unit_cube(render)
|
|
||||||
}
|
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
pub struct WedgeFaceDescription([Option<FaceDescription>;5]);
|
pub struct WedgeFaceDescription([Option<FaceDescription>;5]);
|
||||||
impl WedgeFaceDescription{
|
impl WedgeFaceDescription{
|
||||||
@ -163,15 +156,15 @@ impl WedgeFaceDescription{
|
|||||||
self.0.into_iter().enumerate().filter_map(|v|v.1.map(|u|(v.0,u)))
|
self.0.into_iter().enumerate().filter_map(|v|v.1.map(|u|(v.0,u)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pub fn unit_wedge(render:RenderConfigId)->Mesh{
|
// pub fn unit_wedge(render:RenderConfigId)->Mesh{
|
||||||
let mut t=WedgeFaceDescription::default();
|
// let mut t=WedgeFaceDescription::default();
|
||||||
t.insert(WedgeFace::Right,FaceDescription::new_with_render_id(render));
|
// t.insert(WedgeFace::Right,FaceDescription::new_with_render_id(render));
|
||||||
t.insert(WedgeFace::TopFront,FaceDescription::new_with_render_id(render));
|
// t.insert(WedgeFace::TopFront,FaceDescription::new_with_render_id(render));
|
||||||
t.insert(WedgeFace::Back,FaceDescription::new_with_render_id(render));
|
// t.insert(WedgeFace::Back,FaceDescription::new_with_render_id(render));
|
||||||
t.insert(WedgeFace::Left,FaceDescription::new_with_render_id(render));
|
// t.insert(WedgeFace::Left,FaceDescription::new_with_render_id(render));
|
||||||
t.insert(WedgeFace::Bottom,FaceDescription::new_with_render_id(render));
|
// t.insert(WedgeFace::Bottom,FaceDescription::new_with_render_id(render));
|
||||||
generate_partial_unit_wedge(t)
|
// generate_partial_unit_wedge(t)
|
||||||
}
|
// }
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
pub struct CornerWedgeFaceDescription([Option<FaceDescription>;5]);
|
pub struct CornerWedgeFaceDescription([Option<FaceDescription>;5]);
|
||||||
impl CornerWedgeFaceDescription{
|
impl CornerWedgeFaceDescription{
|
||||||
@ -182,15 +175,15 @@ impl CornerWedgeFaceDescription{
|
|||||||
self.0.into_iter().enumerate().filter_map(|v|v.1.map(|u|(v.0,u)))
|
self.0.into_iter().enumerate().filter_map(|v|v.1.map(|u|(v.0,u)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pub fn unit_cornerwedge(render:RenderConfigId)->Mesh{
|
// pub fn unit_cornerwedge(render:RenderConfigId)->Mesh{
|
||||||
let mut t=CornerWedgeFaceDescription::default();
|
// let mut t=CornerWedgeFaceDescription::default();
|
||||||
t.insert(CornerWedgeFace::Right,FaceDescription::new_with_render_id(render));
|
// t.insert(CornerWedgeFace::Right,FaceDescription::new_with_render_id(render));
|
||||||
t.insert(CornerWedgeFace::TopBack,FaceDescription::new_with_render_id(render));
|
// t.insert(CornerWedgeFace::TopBack,FaceDescription::new_with_render_id(render));
|
||||||
t.insert(CornerWedgeFace::TopLeft,FaceDescription::new_with_render_id(render));
|
// t.insert(CornerWedgeFace::TopLeft,FaceDescription::new_with_render_id(render));
|
||||||
t.insert(CornerWedgeFace::Bottom,FaceDescription::new_with_render_id(render));
|
// t.insert(CornerWedgeFace::Bottom,FaceDescription::new_with_render_id(render));
|
||||||
t.insert(CornerWedgeFace::Front,FaceDescription::new_with_render_id(render));
|
// t.insert(CornerWedgeFace::Front,FaceDescription::new_with_render_id(render));
|
||||||
generate_partial_unit_cornerwedge(t)
|
// generate_partial_unit_cornerwedge(t)
|
||||||
}
|
// }
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct FaceDescription{
|
pub struct FaceDescription{
|
||||||
|
@ -130,9 +130,9 @@ impl ModesBuilder{
|
|||||||
fn push_mode_update(&mut self,mode_id:gameplay_modes::ModeId,mode_update:gameplay_modes::ModeUpdate){
|
fn push_mode_update(&mut self,mode_id:gameplay_modes::ModeId,mode_update:gameplay_modes::ModeUpdate){
|
||||||
self.mode_updates.push((mode_id,mode_update));
|
self.mode_updates.push((mode_id,mode_update));
|
||||||
}
|
}
|
||||||
fn push_stage_update(&mut self,mode_id:gameplay_modes::ModeId,stage_id:gameplay_modes::StageId,stage_update:gameplay_modes::StageUpdate){
|
// fn push_stage_update(&mut self,mode_id:gameplay_modes::ModeId,stage_id:gameplay_modes::StageId,stage_update:gameplay_modes::StageUpdate){
|
||||||
self.stage_updates.push((mode_id,stage_id,stage_update));
|
// self.stage_updates.push((mode_id,stage_id,stage_update));
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
fn get_attributes(name:&str,can_collide:bool,velocity:Planar64Vec3,model_id:model::ModelId,modes_builder:&mut ModesBuilder,wormhole_in_model_to_id:&mut HashMap<model::ModelId,u32>,wormhole_id_to_out_model:&mut HashMap<u32,model::ModelId>)->attr::CollisionAttributes{
|
fn get_attributes(name:&str,can_collide:bool,velocity:Planar64Vec3,model_id:model::ModelId,modes_builder:&mut ModesBuilder,wormhole_in_model_to_id:&mut HashMap<model::ModelId,u32>,wormhole_id_to_out_model:&mut HashMap<u32,model::ModelId>)->attr::CollisionAttributes{
|
||||||
let mut general=attr::GeneralAttributes::default();
|
let mut general=attr::GeneralAttributes::default();
|
||||||
@ -485,9 +485,6 @@ where
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
//at this point a new model is going to be generated for sure.
|
|
||||||
let model_id=model::ModelId::new(primitive_models_deferred_attributes.len() as u32);
|
|
||||||
|
|
||||||
//TODO: also detect "CylinderMesh" etc here
|
//TODO: also detect "CylinderMesh" etc here
|
||||||
let shape=match object.class.as_str(){
|
let shape=match object.class.as_str(){
|
||||||
"Part"=>if let Some(rbx_dom_weak::types::Variant::Enum(shape))=object.properties.get("Shape"){
|
"Part"=>if let Some(rbx_dom_weak::types::Variant::Enum(shape))=object.properties.get("Shape"){
|
||||||
@ -889,8 +886,14 @@ impl PartialMap2{
|
|||||||
=textures.into_iter().enumerate().map(|(new_texture_id,(old_texture_id,texture))|{
|
=textures.into_iter().enumerate().map(|(new_texture_id,(old_texture_id,texture))|{
|
||||||
(texture,(old_texture_id,model::TextureId::new(new_texture_id as u32)))
|
(texture,(old_texture_id,model::TextureId::new(new_texture_id as u32)))
|
||||||
}).unzip();
|
}).unzip();
|
||||||
let render_configs=render_configs.into_iter().map(|(render_config_id,mut render_config)|{
|
let render_configs=render_configs.into_iter().map(|(_render_config_id,mut render_config)|{
|
||||||
//this may generate duplicate no-texture render configs but idc
|
// This may generate duplicate no-texture render configs but idc
|
||||||
|
//
|
||||||
|
// This is because some textures may not exist, so the render config
|
||||||
|
// that it points to is unique but is texture.
|
||||||
|
//
|
||||||
|
// I don't think this needs to be fixed because missing textures
|
||||||
|
// should be a conversion error anyways.
|
||||||
render_config.texture=render_config.texture.and_then(|texture_id|
|
render_config.texture=render_config.texture.and_then(|texture_id|
|
||||||
texture_id_map.get(&texture_id).copied()
|
texture_id_map.get(&texture_id).copied()
|
||||||
);
|
);
|
||||||
|
@ -95,21 +95,6 @@ enum ResourceType{
|
|||||||
//Video,
|
//Video,
|
||||||
//Animation,
|
//Animation,
|
||||||
}
|
}
|
||||||
const RESOURCE_TYPE_VARIANT_COUNT:u8=2;
|
|
||||||
#[binrw]
|
|
||||||
#[brw(little)]
|
|
||||||
struct ResourceId(u128);
|
|
||||||
impl ResourceId{
|
|
||||||
fn resource_type(&self)->Option<ResourceType>{
|
|
||||||
let discriminant=self.0 as u8;
|
|
||||||
//TODO: use this when it is stabilized https://github.com/rust-lang/rust/issues/73662
|
|
||||||
//if (discriminant as usize)<std::mem::variant_count::<ResourceType>(){
|
|
||||||
match discriminant<RESOURCE_TYPE_VARIANT_COUNT{
|
|
||||||
true=>Some(unsafe{std::mem::transmute::<u8,ResourceType>(discriminant)}),
|
|
||||||
false=>None,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
struct ResourceMap<T>{
|
struct ResourceMap<T>{
|
||||||
meshes:HashMap<strafesnet_common::model::MeshId,T>,
|
meshes:HashMap<strafesnet_common::model::MeshId,T>,
|
||||||
@ -136,11 +121,6 @@ struct ResourceBlockHeader{
|
|||||||
resource:ResourceType,
|
resource:ResourceType,
|
||||||
id:BlockId,
|
id:BlockId,
|
||||||
}
|
}
|
||||||
#[binrw]
|
|
||||||
#[brw(little)]
|
|
||||||
struct ResourceExternalHeader{
|
|
||||||
resource_uuid:ResourceId,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[binrw]
|
#[binrw]
|
||||||
#[brw(little)]
|
#[brw(little)]
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
use std::io::Read;
|
use std::io::Read;
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub enum ReadError{
|
pub enum ReadError{
|
||||||
#[cfg(feature="roblox")]
|
#[cfg(feature="roblox")]
|
||||||
@ -59,6 +60,7 @@ pub fn read<R:Read+std::io::Seek>(input:R)->Result<ReadFormat,ReadError>{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub enum LoadError{
|
pub enum LoadError{
|
||||||
ReadError(ReadError),
|
ReadError(ReadError),
|
||||||
|
@ -20,11 +20,6 @@ struct SetupContextPartial1{
|
|||||||
fn create_window(title:&str,event_loop:&winit::event_loop::EventLoop<()>)->Result<winit::window::Window,winit::error::OsError>{
|
fn create_window(title:&str,event_loop:&winit::event_loop::EventLoop<()>)->Result<winit::window::Window,winit::error::OsError>{
|
||||||
let mut attr=winit::window::WindowAttributes::default();
|
let mut attr=winit::window::WindowAttributes::default();
|
||||||
attr=attr.with_title(title);
|
attr=attr.with_title(title);
|
||||||
#[cfg(windows_OFF)] // TODO
|
|
||||||
{
|
|
||||||
use winit::platform::windows::WindowBuilderExtWindows;
|
|
||||||
builder=builder.with_no_redirection_bitmap(true);
|
|
||||||
}
|
|
||||||
event_loop.create_window(attr)
|
event_loop.create_window(attr)
|
||||||
}
|
}
|
||||||
fn create_instance()->SetupContextPartial1{
|
fn create_instance()->SetupContextPartial1{
|
||||||
@ -105,14 +100,12 @@ impl<'a> SetupContextPartial2<'a>{
|
|||||||
required_downlevel_capabilities.flags - downlevel_capabilities.flags
|
required_downlevel_capabilities.flags - downlevel_capabilities.flags
|
||||||
);
|
);
|
||||||
SetupContextPartial3{
|
SetupContextPartial3{
|
||||||
instance:self.instance,
|
|
||||||
surface:self.surface,
|
surface:self.surface,
|
||||||
adapter,
|
adapter,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
struct SetupContextPartial3<'a>{
|
struct SetupContextPartial3<'a>{
|
||||||
instance:wgpu::Instance,
|
|
||||||
surface:wgpu::Surface<'a>,
|
surface:wgpu::Surface<'a>,
|
||||||
adapter:wgpu::Adapter,
|
adapter:wgpu::Adapter,
|
||||||
}
|
}
|
||||||
@ -138,7 +131,6 @@ impl<'a> SetupContextPartial3<'a>{
|
|||||||
.expect("Unable to find a suitable GPU adapter!");
|
.expect("Unable to find a suitable GPU adapter!");
|
||||||
|
|
||||||
SetupContextPartial4{
|
SetupContextPartial4{
|
||||||
instance:self.instance,
|
|
||||||
surface:self.surface,
|
surface:self.surface,
|
||||||
adapter:self.adapter,
|
adapter:self.adapter,
|
||||||
device,
|
device,
|
||||||
@ -147,7 +139,6 @@ impl<'a> SetupContextPartial3<'a>{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
struct SetupContextPartial4<'a>{
|
struct SetupContextPartial4<'a>{
|
||||||
instance:wgpu::Instance,
|
|
||||||
surface:wgpu::Surface<'a>,
|
surface:wgpu::Surface<'a>,
|
||||||
adapter:wgpu::Adapter,
|
adapter:wgpu::Adapter,
|
||||||
device:wgpu::Device,
|
device:wgpu::Device,
|
||||||
@ -164,7 +155,6 @@ impl<'a> SetupContextPartial4<'a>{
|
|||||||
self.surface.configure(&self.device, &config);
|
self.surface.configure(&self.device, &config);
|
||||||
|
|
||||||
SetupContext{
|
SetupContext{
|
||||||
instance:self.instance,
|
|
||||||
surface:self.surface,
|
surface:self.surface,
|
||||||
device:self.device,
|
device:self.device,
|
||||||
queue:self.queue,
|
queue:self.queue,
|
||||||
@ -173,7 +163,6 @@ impl<'a> SetupContextPartial4<'a>{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
pub struct SetupContext<'a>{
|
pub struct SetupContext<'a>{
|
||||||
pub instance:wgpu::Instance,
|
|
||||||
pub surface:wgpu::Surface<'a>,
|
pub surface:wgpu::Surface<'a>,
|
||||||
pub device:wgpu::Device,
|
pub device:wgpu::Device,
|
||||||
pub queue:wgpu::Queue,
|
pub queue:wgpu::Queue,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user